diff --git a/htdocs/app/Http/Controllers/DokterController.php b/htdocs/app/Http/Controllers/DokterController.php index 0ad58d60..76e48b04 100644 --- a/htdocs/app/Http/Controllers/DokterController.php +++ b/htdocs/app/Http/Controllers/DokterController.php @@ -1242,6 +1242,9 @@ class DokterController extends Controller $pesan = 'Sejumlah data di rentang '.$request->input('isi').' Berhasil di arsipkan'; } catch (Exception $e) { $pesan = $e->getMessage(); + Log::error('Gagal Arsipkan Data.', [ + 'message' => $e->getMessage(), + ]); } return $pesan; } else if ($worklist == 'getvitek'){ diff --git a/htdocs/app/Http/Controllers/JsonTransferController.php b/htdocs/app/Http/Controllers/JsonTransferController.php index 7c8e55eb..38ee4936 100644 --- a/htdocs/app/Http/Controllers/JsonTransferController.php +++ b/htdocs/app/Http/Controllers/JsonTransferController.php @@ -13,17 +13,37 @@ class JsonTransferController extends Controller public function index() { - $tables = DB::select("SELECT tablename FROM pg_tables WHERE schemaname = 'public'"); - $tableNames = array_map(fn($t) => $t->tablename, $tables); + //POSTGRESS + //$tables = DB::select("SELECT tablename FROM pg_tables WHERE schemaname = 'public'"); + //$tableNames = array_map(fn($t) => $t->tablename, $tables); + //MYSQL + $tables = DB::select('SHOW TABLES'); + $tableNames = array_map('current', $tables); + $tableInfo = []; - return view('backup', compact('tableNames')); + foreach ($tableNames as $table) { + $filePath = base_path($this->exportPath . $table . '.json'); + $fileSize = file_exists($filePath) ? filesize($filePath) : null; + + $tableInfo[] = [ + 'name' => $table, + 'size' => $fileSize, + ]; + } + return view('backup', compact('tableInfo')); } public function generate() { - $tables = DB::select("SELECT tablename FROM pg_tables WHERE schemaname = 'public'"); - $tableNames = array_map(fn($t) => $t->tablename, $tables); + //POSTGRESS + + //$tables = DB::select("SELECT tablename FROM pg_tables WHERE schemaname = 'public'"); + //$tableNames = array_map(fn($t) => $t->tablename, $tables); + //MYSQL + $tables = DB::select('SHOW TABLES'); + $tableNames = array_map('current', $tables); + foreach ($tableNames as $table) { try { $data = DB::table($table)->get(); @@ -87,7 +107,11 @@ class JsonTransferController extends Controller // Kosongkan tabel sebelum import (opsional, hati-hati!) DB::table($table)->truncate(); - DB::table($table)->insert($data); + $chunks = array_chunk($data, 200); // ubah 1000 sesuai kemampuan server + + foreach ($chunks as $chunk) { + DB::table($table)->insert($chunk); + } DB::commit(); return redirect()->back()->with('success', "Data untuk tabel $table berhasil di-import."); diff --git a/htdocs/app/Http/Controllers/ListController.php b/htdocs/app/Http/Controllers/ListController.php index c4472216..3316755b 100644 --- a/htdocs/app/Http/Controllers/ListController.php +++ b/htdocs/app/Http/Controllers/ListController.php @@ -65,155 +65,234 @@ class ListController extends Controller $lokasi = $request->input('poli'); $valcari = $request->input('valcari'); $master = $request->input('master'); - if ($jenis == 'verificationppds'){ - $valcari = $request->input('poli'); + $lamanurlhasil = url('/').'/hasil/'; + if ($jenis === null){$jenis = '';} + if ($master == 'logbook') { + list($start, $end) = explode(' - ', $mulai); + $startDate = Carbon::createFromFormat('m/d/Y', $start)->format('Y-m-d'); + $endDate = Carbon::createFromFormat('m/d/Y', $end)->format('Y-m-d'); + $arraylist = Periksa::select('id', 'mulai', 'akhir', 'noloket', 'nofoto', 'noregister', 'asalpasien', 'nmrs', 'pasien_id', 'nmpasien', 'jkpasien', 'tgllahirpasien', 'tlppasien', 'alamatpasien', 'reques', 'usia', 'berat', 'ruangan_id', 'ruangan', 'dokter_id', 'ppdssenior', 'middleppds', 'ppdsjunior', 'ppdsmiddle2', 'ppdsjunior2', 'analis', 'excutor', 'nmdokter', 'nmppdssenior', 'nmmiddleppds', 'nmppdsjunior', 'nmppdsmiddle2', 'nmppdsjunior2', 'nmanalis', 'nmexcutor', 'klinisi', 'klinis', 'keterangan', 'kesimpulan', 'poli_id', 'asuransi', 'urgensi', 'diagnosa', 'diagnosa2', 'modality', 'dlp', 'daftar', 'foto', 'tgldraft', 'nmdrafter', 'baca', 'nmpembaca', 'verifikasi', 'export', 'tgladendum', 'nmadendum', 'filefoto', 'status', 'created_at', 'updated_at', + DB::raw("CASE + WHEN ppdssenior = $valcari THEN 'SENIOR' + WHEN middleppds = $valcari THEN 'MIDDLE' + WHEN ppdsjunior = $valcari THEN 'JUNIOR' + WHEN ppdsmiddle2 = $valcari THEN 'MIDDLE' + ELSE 'JUNIOR' + END AS role")); + $arraylist = $arraylist->whereBetween('daftar', [$startDate, $endDate]); + $arraylist = $arraylist->where(function($query) use ($valcari) { + $query->where('ppdssenior', $valcari) + ->orWhere('middleppds', $valcari) + ->orWhere('ppdsjunior', $valcari) + ->orWhere('ppdsmiddle2', $valcari) + ->orWhere('ppdsjunior2', $valcari); + })->get(); + } else if ($master == 'pengambilan') { + $arraylist = Periksa::select( + DB::raw("CONCAT('', nofoto, '') as tlsnofoto"), + DB::raw("CONCAT('', noregister, '') as tlsnoregister"), + DB::raw("CONCAT('', nmpasien, '') as tlsnama"), + DB::raw("CONCAT('', urgensi, '') as tlsurgensi"), + DB::raw("CONCAT('', reques, '') as tlsreques"), + DB::raw("CONCAT('', ruangan, '') as tlsruangan"), + DB::raw("CONCAT('', daftar, '') as tlsdaftar"), + DB::raw("CONCAT('', status, '') as tlsstatus"), + DB::raw("CONCAT('', asalpasien, '') as asalpasien"), + 'tlppasien as telpon', 'ruangan_id as idruangan', 'dokter_id as iddokter', 'id', 'daftar', 'nofoto', 'noloket', 'nmdokter as dokter')->whereNotNull('verifikasi')->where('status', '!=', 'Arsip'); + if ($valcari != ''){ + if ($jenis == 'norm'){ + $arraylist = $arraylist->where('noregister', $valcari); + } else { + $arraylist = $arraylist->where('nofoto', $valcari); + } + } + if ($akhir != '' AND $mulai != $akhir){ + $arraylist = $arraylist->whereBetween('daftar', [$mulai, $akhir]); + } else { + if ($jenis == 'ThisDay' OR $jenis == ''){ + if ($mulai == '' OR is_null($mulai)){ $mulai = date('Y-m-d'); } + $arraylist = $arraylist->whereDate('daftar', $mulai); + } else if ($jenis == 'mundur2'){ + $arraylist = $arraylist->whereDate('daftar', '>=', Carbon::today()->subDays(2)); + } else if ($jenis == 'mundur3'){ + $arraylist = $arraylist->whereDate('daftar', '>=', Carbon::today()->subDays(2)); + } else { + + } + } + $arraylist = $arraylist->get(); + } else if ($master == 'verificationppds') { + $arraylist = Periksa::select('id', 'mulai', 'akhir', 'noloket', 'nofoto', 'noregister', 'asalpasien', 'nmrs', 'pasien_id', 'nmpasien', 'jkpasien', 'tgllahirpasien', 'tlppasien', 'alamatpasien', 'reques', 'usia', 'berat','ruangan', 'nmdokter', 'nmppdssenior', 'nmmiddleppds', 'nmppdsjunior', 'nmppdsmiddle2', 'nmppdsjunior2', 'nmanalis', 'nmexcutor', 'klinisi', 'klinis', 'asuransi', 'urgensi', 'diagnosa', 'diagnosa2', 'modality', 'dlp', 'daftar', 'foto', 'tgldraft', 'nmdrafter', 'baca', 'nmpembaca', 'verifikasi', 'export', 'tgladendum', 'nmadendum', 'filefoto', 'status', + DB::raw('DATE(daftar) as daftartgl'), + DB::raw('TIME(daftar) as daftarjam'), + DB::raw('TIME(export) as cetakjam'), + DB::raw('TIME(verifikasi) as verifikasijam'), + DB::raw('TIME(baca) as bacajam'), + DB::raw('TIME(foto) as fotojam'), + DB::raw("GROUP_CONCAT(nofoto SEPARATOR '
') as nofoto_list"), + DB::raw("GROUP_CONCAT(reques SEPARATOR '
') as reques_list"), + DB::raw("CASE WHEN jkpasien = 'L' THEN '1' ELSE '' END AS l"), + DB::raw("CASE WHEN jkpasien = 'P' THEN '1' ELSE '' END AS p"), + DB::raw("CASE WHEN asuransi = 'JKN' THEN '1' WHEN asuransi = 'BPJS' THEN '1' ELSE '' END AS jkn"), + DB::raw("CASE WHEN asuransi = 'Billing' THEN '1' ELSE '' END AS billing"), + DB::raw("CASE WHEN asuransi = 'GCU' THEN '1' ELSE '' END AS gcu"), + DB::raw("CASE WHEN asuransi = 'MANDIRI' THEN '1' WHEN asuransi = 'Umum' THEN '1' ELSE '' END AS umum"), + DB::raw("CASE WHEN asuransi = 'SWASTA' THEN '1' ELSE '' END AS swasta"), + DB::raw("CASE WHEN asuransi = 'TAG' THEN '1' ELSE '' END AS tag"), + DB::raw("CASE WHEN urgensi != 'CITO' THEN '1' ELSE '' END AS elective"), + DB::raw("CASE WHEN urgensi = 'CITO' THEN '1' ELSE '' END AS cito"), + DB::raw("CASE + WHEN nofoto LIKE '%IGD%' THEN 'IGD' + WHEN nofoto LIKE '%PAV%' THEN 'PAVILIUN' + ELSE 'SENTRAL' + END AS inputor"), + DB::raw("CASE + WHEN status IS NULL THEN 'NEW' + WHEN status LIKE '%Dibatalkan%' THEN 'Batal' + WHEN status LIKE '%Telah%' THEN 'Telah di kirim ke worklist/modalitas' + WHEN status LIKE '%Diperiksa%' THEN 'Diperiksa' + WHEN status LIKE '%Draft%' THEN 'Draft' + WHEN status LIKE '%Expertise%' THEN 'Expertise' + WHEN status LIKE '%Decliend%' THEN 'Decliend' + WHEN status LIKE '%Selesai%' THEN 'Selesai' + WHEN status LIKE '%Arsip%' THEN 'Arsip' + ELSE 'Unkown' + END AS status_label")); + + if ($valcari == 'allspv'){ + $arraylist = $arraylist->where('status', 'LIKE', 'Expertise Saved (Un Verified)')->whereNull('periksa.verifikasi'); + } else { + $arraylist = $arraylist->where('status', 'LIKE', 'Expertise Saved (Un Verified)')->whereNull('periksa.verifikasi')->where('periksa.dokter_id', Session('id')); + } + $arraylist = $arraylist->get(); + } else { + $arraylist = Periksa::select('id', 'mulai', 'akhir', 'noloket', 'nofoto', 'noregister', 'asalpasien', 'nmrs', 'pasien_id', 'nmpasien', 'jkpasien', 'tgllahirpasien', 'tlppasien', 'alamatpasien', 'reques', 'usia', 'berat', 'ruangan_id', 'ruangan', 'dokter_id', 'ppdssenior', 'middleppds', 'ppdsjunior', 'ppdsmiddle2', 'ppdsjunior2', 'analis', 'excutor', 'nmdokter', 'nmppdssenior', 'nmmiddleppds', 'nmppdsjunior', 'nmppdsmiddle2', 'nmppdsjunior2', 'nmanalis', 'nmexcutor', 'klinisi', 'klinis', 'keterangan', 'kesimpulan', 'poli_id', 'asuransi', 'urgensi', 'diagnosa', 'diagnosa2', 'modality', 'dlp', 'daftar', 'foto', 'tgldraft', 'nmdrafter', 'baca', 'nmpembaca', 'verifikasi', 'export', 'tgladendum', 'nmadendum', 'filefoto', 'status', 'created_at', 'updated_at', + DB::raw('DATE(daftar) as daftartgl'), + DB::raw('TIME(daftar) as daftarjam'), + DB::raw('TIME(export) as cetakjam'), + DB::raw('TIME(verifikasi) as verifikasijam'), + DB::raw('TIME(baca) as bacajam'), + DB::raw('TIME(foto) as fotojam'), + DB::raw("CASE WHEN jkpasien = 'L' THEN '1' ELSE '' END AS l"), + DB::raw("CASE WHEN jkpasien = 'P' THEN '1' ELSE '' END AS p"), + DB::raw("CONCAT('https://10.10.123.218/hasil/', nofoto) as urlhasil"), + DB::raw("CASE WHEN asuransi = 'JKN' THEN '1' WHEN asuransi = 'BPJS' THEN '1' ELSE '' END AS jkn"), + DB::raw("CASE WHEN asuransi = 'Billing' THEN '1' ELSE '' END AS billing"), + DB::raw("CASE WHEN asuransi = 'GCU' THEN '1' ELSE '' END AS gcu"), + DB::raw("CASE WHEN asuransi = 'MANDIRI' THEN '1' WHEN asuransi = 'Umum' THEN '1' ELSE '' END AS umum"), + DB::raw("CASE WHEN asuransi = 'SWASTA' THEN '1' ELSE '' END AS swasta"), + DB::raw("CASE WHEN asuransi = 'TAG' THEN '1' ELSE '' END AS tag"), + DB::raw("CASE WHEN urgensi != 'CITO' THEN '1' ELSE '' END AS elective"), + DB::raw("CASE WHEN urgensi = 'CITO' THEN '1' ELSE '' END AS cito"), + DB::raw("CASE + WHEN status IS NULL THEN 'NEW' + WHEN status LIKE '%Dibatalkan%' THEN 'Batal' + WHEN status LIKE '%Telah%' THEN 'Telah di kirim ke worklist/modalitas' + WHEN status LIKE '%Diperiksa%' THEN 'Diperiksa' + WHEN status LIKE '%Draft%' THEN 'Draft' + WHEN status LIKE '%Expertise%' THEN 'Expertise' + WHEN status LIKE '%Decliend%' THEN 'Decliend' + WHEN status LIKE '%Selesai%' THEN 'Selesai' + WHEN status LIKE '%Arsip%' THEN 'Arsip' + ELSE 'Unkown' + END AS status_label"), + DB::raw("CASE + WHEN status IS NULL THEN CONCAT('', nofoto, '') + WHEN status LIKE '%Dibatalkan%' THEN CONCAT('', nofoto, '') + WHEN status LIKE '%Telah%' THEN CONCAT('', nofoto, '') + WHEN status LIKE '%Diperiksa%' THEN CONCAT('', nofoto, '') + WHEN status LIKE '%Draft%' THEN CONCAT('', nofoto, '') + WHEN status LIKE '%Expertise%' THEN CONCAT('', nofoto, '') + WHEN status LIKE '%Decliend%' THEN CONCAT('', nofoto, '') + WHEN status LIKE '%Selesai%' THEN CONCAT('', nofoto, '') + WHEN status LIKE '%Arsip%' THEN CONCAT('', nofoto, '') + ELSE CONCAT('', nofoto, '') + END AS tlsnofoto"), + DB::raw("CASE + WHEN status IS NULL THEN CONCAT('', noregister, '') + WHEN status LIKE '%Dibatalkan%' THEN CONCAT('', noregister, '') + WHEN status LIKE '%Telah%' THEN CONCAT('', noregister, '') + WHEN status LIKE '%Diperiksa%' THEN CONCAT('', noregister, '') + WHEN status LIKE '%Draft%' THEN CONCAT('', noregister, '') + WHEN status LIKE '%Expertise%' THEN CONCAT('', noregister, '') + WHEN status LIKE '%Decliend%' THEN CONCAT('', noregister, '') + WHEN status LIKE '%Selesai%' THEN CONCAT('', noregister, '') + WHEN status LIKE '%Arsip%' THEN CONCAT('', noregister, '') + ELSE CONCAT('', noregister, '') + END AS tlsnoregister"), + DB::raw("CASE + WHEN status IS NULL THEN CONCAT('', nmpasien, '') + WHEN status LIKE '%Dibatalkan%' THEN CONCAT('', nmpasien, '') + WHEN status LIKE '%Telah%' THEN CONCAT('', nmpasien, '') + WHEN status LIKE '%Diperiksa%' THEN CONCAT('', nmpasien, '') + WHEN status LIKE '%Draft%' THEN CONCAT('', nmpasien, '') + WHEN status LIKE '%Expertise%' THEN CONCAT('', nmpasien, '') + WHEN status LIKE '%Decliend%' THEN CONCAT('', nmpasien, '') + WHEN status LIKE '%Selesai%' THEN CONCAT('', nmpasien, '') + WHEN status LIKE '%Arsip%' THEN CONCAT('', nmpasien, '') + ELSE CONCAT('', nmpasien, '') + END AS tlsnama"), + DB::raw("CASE + WHEN status IS NULL THEN CONCAT('', reques, '') + WHEN status LIKE '%Dibatalkan%' THEN CONCAT('', reques, '') + WHEN status LIKE '%Telah%' THEN CONCAT('', reques, '') + WHEN status LIKE '%Diperiksa%' THEN CONCAT('', reques, '') + WHEN status LIKE '%Draft%' THEN CONCAT('', reques, '') + WHEN status LIKE '%Expertise%' THEN CONCAT('', reques, '') + WHEN status LIKE '%Decliend%' THEN CONCAT('', reques, '') + WHEN status LIKE '%Selesai%' THEN CONCAT('', reques, '') + WHEN status LIKE '%Arsip%' THEN CONCAT('', reques, '') + ELSE CONCAT('', reques, '') + END AS tlsreques") + ); + + + if ($jenis == 'ThisDay') { + $arraylist = $arraylist->where(function($q) { + $q->where(function($sub) { + $sub->whereNotIn('status', ['Selesai', 'Arsip']) + ->where('status', 'not like', 'Dibatalkan%'); + })->orWhereNull('status'); + }); + } else if ($jenis == 'ThisDayPendaftaran') { + $arraylist = $arraylist->whereDate('daftar', Carbon::today()); + } else if ($jenis == 'mundur2') { + $arraylist = $arraylist->whereDate('daftar', '>=', Carbon::today()->subDays(2)); + } else if ($jenis == 'mundur3') { + $arraylist = $arraylist->whereDate('daftar', '>=', Carbon::today()->subDays(3)); + } else if ($jenis === 'searchbydate') { + $mulai = $mulai ?: date("Y-m-d"); + $akhir = $akhir ?: date("Y-m-d"); + if ($mulai >= $akhir) { + $akhir = date('Y-m-d', strtotime($akhir . ' +1 day')); + } + $arraylist = $arraylist->whereBetween('daftar', [$mulai, $akhir]); + } else if ($jenis === 'searchbydatemanual') { + $mulai = $mulai ?: date("Y-m-d"); + $akhir = $akhir ?: date("Y-m-d"); + if ($mulai >= $akhir) { + $akhir = date('Y-m-d', strtotime($akhir . ' +1 day')); + } + $arraylist = $arraylist->whereBetween('daftar', [$mulai, $akhir])->whereNotIn('pendaftar', ['supervisor', 'admin', 'analis', 'ppds', 'developer']); + } else { + switch ($jenis) { + case 'norm': + $arraylist = $arraylist->where('noregister', 'LIKE', '%'.$valcari.'%'); + case 'nofoto': + $arraylist = $arraylist->where('nofoto', 'LIKE', '%'.$valcari.'%'); + case 'rekues': + $arraylist = $arraylist->where('reques', 'LIKE', '%'.$valcari.'%'); + case 'keterangan': + $arraylist = $arraylist->where('keterangan', 'LIKE', '%'.$valcari.'%'); + case 'kesimpulan': + $arraylist = $arraylist->where('keterangan', 'LIKE', '%'.$valcari.'%'); + default: + $arraylist = $arraylist->where('nmpasien', 'LIKE', '%'.$valcari.'%'); + } + } + $arraylist = $arraylist->orderBy('id', 'DESC')->get(); } - $total = 0; - $data = $this->getDataBasedOnMaster($master, $jenis, $mulai, $akhir, $valcari); - if (!empty($data)){ - $dataArray = $data->get()->toArray(); - $total = count($dataArray); - $arraylist = array_map(function ($list) use ($master) { - $tgl = $list['tgllahirpasien']; - $poli_id = $list['poli_id']; - $foto = $list['foto']; - $baca = $list['baca']; - $export = $list['export']; - $nofoto = $list['nofoto']; - $noregister = $list['noregister']; - $usia = $list['usia']; - $urgensi = $list['urgensi']; - $reques = $list['reques']; - $ruangan = $list['ruangan']; - $daftar = $list['daftar']; - $status = $list['status']; - $asalpasien = $list['asalpasien']; - $dokter_id = $list['dokter_id']; - $ppdssenior = $list['ppdssenior']; - $middleppds = $list['middleppds']; - $ppdsjunior = $list['ppdsjunior']; - $middleppds2= $list['ppdsmiddle2']; - $ppdsjunior2= $list['ppdsjunior2']; - $pasiedin = $list['pasien_id']; - $keterangan = $list['keterangan']; - $kesimpulan = $list['kesimpulan']; - $verifikasi = $list['verifikasi']; - $nama = $list['nmpasien']; - $jk = $list['jkpasien']; - $telpon = $list['tlppasien']; - $alamat = $list['alamatpasien']; - $tgllahir = $list['tgllahirpasien']; - $ktp = $list['ktp']; - $bpjs = $list['bpjs']; - $nmpendaftar= $list['pendaftar']; - if ($nmpendaftar == 'supervisor' OR $nmpendaftar == 'admin' OR $nmpendaftar == 'analis' OR $nmpendaftar == 'ppds' OR $nmpendaftar == 'developer'){ - $nmpendaftar = $list['nmpendaftar']; - } else { - $nmpendaftar = 'SIMRS'; - } - $from = $verifikasi ? \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $verifikasi) : null; - $to = $verifikasi ? \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $verifikasi)->toString() : ''; - if ($from && $from->isValid()) { - $durasi = $verifikasi ? \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $verifikasi)->diffForHumans($from) : 'On Progress'; - } else { - $durasi = 'On Progress'; - } - if ($middleppds2 != 0){ - $ppdsas = 'Middle'; - $otherppds = $list['nmppdsmiddle2']; - } else { - $ppdsas = 'Junior'; - $otherppds = $ppdsjunior2; - $otherppds = $list['nmppdsjunior2']; - } - - $arrdaftar = explode(" ", $daftar); - $tgldaftar = $arrdaftar[0]; - $jamdaftar = $arrdaftar[1]; - $daftar = $tgldaftar; - $tglfoto = $foto ?: date("Y-m-d H:i:s"); - $datatampilan = $this->setStatusStyles($status, $nofoto, $noregister, $nama, $telpon, $jk, $usia, $urgensi, $reques, $ruangan, $daftar, $asalpasien); - return [ - 'asalpasien' => $list['asalpasien'], - 'tlsnofoto' => $datatampilan['nofoto'], - 'tlsnoregister' => $datatampilan['noregister'], - 'tlsnama' => $datatampilan['nama'], - 'tlsjk' => $datatampilan['jk'], - 'tlsusia' => $datatampilan['usia'], - 'tlsurgensi' => ($list['urgensi'] == 'CITO') ? 'C I T O' : $datatampilan['urgensi'], - 'tlsreques' => $datatampilan['reques'], - 'tlsruangan' => $list['ruangan'], - 'tlsdaftar' => $datatampilan['daftar'], - 'tlsstatus' => $datatampilan['status'], - 'id' => $list['id'], - 'nofoto' => $nofoto, - 'noregister' => $noregister, - 'nama' => $nama, - 'jk' => $jk, - 'usia' => $usia, - 'urgensi' => $urgensi, - 'poli' => $reques, - 'idpasien' => $pasiedin, - 'ruangan' => $ruangan, - 'daftar' => $list['daftar'], - 'daftartgl' => $daftar, - 'daftarjam' => $jamdaftar, - 'status' => $status, - 'dokter' => $master != 'kiriman' ? $list['nmdokter'] : '', - 'ppds1' => $master != 'kiriman' ? $list['nmppdssenior'] : '', - 'ppds2' => $master != 'kiriman' ? $list['nmmiddleppds'] : '', - 'ppds3' => $master != 'kiriman' ? $list['nmppdsjunior'] : '', - 'keterangan' => $keterangan, - 'kesimpulan' => $kesimpulan, - 'noloket' => $list['noloket'], - 'idruangan' => $list['ruangan_id'], - 'iddokter' => $list['dokter_id'], - 'ppdssenior' => $list['ppdssenior'], - 'middleppds' => $list['middleppds'], - 'ppdsjunior' => $list['ppdsjunior'], - 'diagnosa' => $list['diagnosa'], - 'diagnosa2' => $list['diagnosa2'], - 'kd_spesimen' => $list['kd_spesimen'], - 'nm_spesimen' => $list['nm_spesimen'], - 'berat' => $list['berat'], - 'klinis' => $list['klinis'], - 'klinisi' => $list['klinisi'], - 'filefoto' => $list['filefoto'], - 'dlp' => $list['dlp'], - 'analis' => $list['analis'], - 'excutor' => $list['excutor'], - 'modality' => $list['modality'], - 'viewfoto' => $list['foto'], - 'tglfoto' => $tglfoto, - 'nmppdssenior' => $list['nmppdssenior'], - 'nmmiddleppds' => $list['nmmiddleppds'], - 'nmppdsjunior' => $list['nmppdsjunior'], - 'nmppdsmiddle2' => $list['nmppdsmiddle2'], - 'nmppdsjunior2' => $list['nmppdsjunior2'], - 'nmanalis' => $list['nmanalis'], - 'nmexcutor' => $list['nmexcutor'], - 'telpon' => $list['tlppasien'], - 'asuransi' => $list['asuransi'], - 'tgllahir' => $list['tgllahirpasien'], - 'alamat' => $list['alamatpasien'], - 'poli_id' => $list['poli_id'], - 'nmpendaftar' => $nmpendaftar, - 'timestamp1' => $from ? $from->toString() : null, - 'timestamp2' => $to, - 'durasi' => $durasi, - 'ppdsas' => $ppdsas, - 'otherppds' => $otherppds, - 'ktp' => $ktp, - 'bpjs' => $bpjs, - ]; - }, $dataArray); - } - $response = [ - 'message' => 'List Laporan', - 'data' => $arraylist, - 'total' => $total - ]; - return response()->json($response, 200); + echo json_encode($arraylist); } public function listDetail(Request $request) { $id = $request->input('id'); diff --git a/htdocs/public/high/assets/css/bootstrap.min.css b/htdocs/public/high/assets/css/bootstrap.min.css deleted file mode 100644 index 6561b6f4..00000000 --- a/htdocs/public/high/assets/css/bootstrap.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v4.0.0 (https://getbootstrap.com) - * Copyright 2011-2018 The Bootstrap Authors - * Copyright 2011-2018 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014 \00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-sm-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-sm-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-sm-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-sm-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-sm-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-sm-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-sm-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-sm-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-sm-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-sm-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-sm-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-sm-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-sm-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-md-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-md-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-md-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-md-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-md-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-md-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-md-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-md-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-md-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-md-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-md-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-md-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-md-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-md-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-lg-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-lg-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-lg-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-lg-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-lg-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-lg-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-lg-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-lg-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-lg-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-lg-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-lg-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-lg-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-lg-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-xl-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-xl-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-xl-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-xl-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-xl-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-xl-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-xl-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-xl-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-xl-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-xl-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-xl-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-xl-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-xl-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;max-width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:not([size]):not([multiple]){height:calc(2.25rem + 2px)}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm,.input-group-lg>.form-control-plaintext.form-control,.input-group-lg>.input-group-append>.form-control-plaintext.btn,.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-sm>.form-control-plaintext.form-control,.input-group-sm>.input-group-append>.form-control-plaintext.btn,.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),select.form-control-sm:not([size]):not([multiple]){height:calc(1.8125rem + 2px)}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),select.form-control-lg:not([size]):not([multiple]){height:calc(2.875rem + 2px)}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(40,167,69,.8);border-radius:.2rem}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{background-color:#71dd8a}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label::before,.was-validated .custom-file-input:valid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(220,53,69,.8);border-radius:.2rem}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{background-color:#efa2a9}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label::before,.was-validated .custom-file-input:invalid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{background-image:none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;background-color:transparent;background-image:none;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;background-image:none;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;background-image:none;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;background-image:none;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;background-color:transparent}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:underline;border-color:transparent;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;transition:opacity .15s linear}.fade.show{opacity:1}.collapse{display:none}.collapse.show{display:block}tr.collapse.show{display:table-row}tbody.collapse.show{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}.dropdown,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropup .dropdown-menu{margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after{margin-left:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file:focus,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::before{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label,.input-group>.custom-file:not(:first-child) .custom-file-label::before{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 5px rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-control{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:focus~.custom-file-control::before{border-color:#80bdff}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(calc(2.25rem + 2px) - 1px * 2);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.nav{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .dropup .dropdown-menu{top:auto;bottom:100%}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .dropup .dropdown-menu{top:auto;bottom:100%}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .dropup .dropdown-menu{top:auto;bottom:100%}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .dropup .dropdown-menu{top:auto;bottom:100%}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .dropup .dropdown-menu{top:auto;bottom:100%}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem}.card-columns .card{display:inline-block;width:100%}}.breadcrumb{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;padding-left:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-webkit-box;display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;background-color:#007bff;transition:width .6s ease}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;-ms-flex:1;flex:1}.list-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:focus,.close:hover{color:#000;text-decoration:none;opacity:.75}.close:not(:disabled):not(.disabled){cursor:pointer}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-content{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;background-color:rgba(255,255,255,.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-sm-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-md-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-lg-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-xl-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;-webkit-clip-path:inset(50%);clip-path:inset(50%);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;-webkit-clip-path:none;clip-path:none}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-muted{color:#6c757d!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}} -/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/htdocs/public/high/assets/css/icons.css b/htdocs/public/high/assets/css/icons.css deleted file mode 100644 index 721972bb..00000000 --- a/htdocs/public/high/assets/css/icons.css +++ /dev/null @@ -1,13661 +0,0 @@ -@charset "UTF-8"; -/* -Template Name: Highdmin - Responsive Bootstrap 4 Admin Dashboard -Author: CoderThemes -Email: coderthemes@gmail.com -File: Icons -*/ -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ -/* FONT PATH - * -------------------------- */ -@font-face { - font-family: 'FontAwesome'; - src: url("../fonts/fontawesome-webfont.eot?v=4.7.0"); - src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"), url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg"); - font-weight: normal; - font-style: normal; -} - -.fa { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -/* makes the font 33% larger relative to the icon container */ -.fa-lg { - font-size: 1.33333em; - line-height: 0.75em; - vertical-align: -15%; -} - -.fa-2x { - font-size: 2em; -} - -.fa-3x { - font-size: 3em; -} - -.fa-4x { - font-size: 4em; -} - -.fa-5x { - font-size: 5em; -} - -.fa-fw { - width: 1.28571em; - text-align: center; -} - -.fa-ul { - padding-left: 0; - margin-left: 2.14286em; - list-style-type: none; -} - -.fa-ul > li { - position: relative; -} - -.fa-li { - position: absolute; - left: -2.14286em; - width: 2.14286em; - top: 0.14286em; - text-align: center; -} - -.fa-li.fa-lg { - left: -1.85714em; -} - -.fa-border { - padding: .2em .25em .15em; - border: solid 0.08em #eee; - border-radius: .1em; -} - -.fa-pull-left { - float: left; -} - -.fa-pull-right { - float: right; -} - -.fa.fa-pull-left { - margin-right: .3em; -} - -.fa.fa-pull-right { - margin-left: .3em; -} - -/* Deprecated as of 4.4.0 */ -.pull-right { - float: right; -} - -.pull-left { - float: left; -} - -.fa.pull-left { - margin-right: .3em; -} - -.fa.pull-right { - margin-left: .3em; -} - -.fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} - -.fa-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} - -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); -} - -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); -} - -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - transform: rotate(270deg); -} - -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - -webkit-transform: scale(-1, 1); - -ms-transform: scale(-1, 1); - transform: scale(-1, 1); -} - -.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - -webkit-transform: scale(1, -1); - -ms-transform: scale(1, -1); - transform: scale(1, -1); -} - -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical { - filter: none; -} - -.fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} - -.fa-stack-1x, .fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} - -.fa-stack-1x { - line-height: inherit; -} - -.fa-stack-2x { - font-size: 2em; -} - -.fa-inverse { - color: #fff; -} - -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ -.fa-glass:before { - content: ""; -} - -.fa-music:before { - content: ""; -} - -.fa-search:before { - content: ""; -} - -.fa-envelope-o:before { - content: ""; -} - -.fa-heart:before { - content: ""; -} - -.fa-star:before { - content: ""; -} - -.fa-star-o:before { - content: ""; -} - -.fa-user:before { - content: ""; -} - -.fa-film:before { - content: ""; -} - -.fa-th-large:before { - content: ""; -} - -.fa-th:before { - content: ""; -} - -.fa-th-list:before { - content: ""; -} - -.fa-check:before { - content: ""; -} - -.fa-remove:before, -.fa-close:before, -.fa-times:before { - content: ""; -} - -.fa-search-plus:before { - content: ""; -} - -.fa-search-minus:before { - content: ""; -} - -.fa-power-off:before { - content: ""; -} - -.fa-signal:before { - content: ""; -} - -.fa-gear:before, -.fa-cog:before { - content: ""; -} - -.fa-trash-o:before { - content: ""; -} - -.fa-home:before { - content: ""; -} - -.fa-file-o:before { - content: ""; -} - -.fa-clock-o:before { - content: ""; -} - -.fa-road:before { - content: ""; -} - -.fa-download:before { - content: ""; -} - -.fa-arrow-circle-o-down:before { - content: ""; -} - -.fa-arrow-circle-o-up:before { - content: ""; -} - -.fa-inbox:before { - content: ""; -} - -.fa-play-circle-o:before { - content: ""; -} - -.fa-rotate-right:before, -.fa-repeat:before { - content: ""; -} - -.fa-refresh:before { - content: ""; -} - -.fa-list-alt:before { - content: ""; -} - -.fa-lock:before { - content: ""; -} - -.fa-flag:before { - content: ""; -} - -.fa-headphones:before { - content: ""; -} - -.fa-volume-off:before { - content: ""; -} - -.fa-volume-down:before { - content: ""; -} - -.fa-volume-up:before { - content: ""; -} - -.fa-qrcode:before { - content: ""; -} - -.fa-barcode:before { - content: ""; -} - -.fa-tag:before { - content: ""; -} - -.fa-tags:before { - content: ""; -} - -.fa-book:before { - content: ""; -} - -.fa-bookmark:before { - content: ""; -} - -.fa-print:before { - content: ""; -} - -.fa-camera:before { - content: ""; -} - -.fa-font:before { - content: ""; -} - -.fa-bold:before { - content: ""; -} - -.fa-italic:before { - content: ""; -} - -.fa-text-height:before { - content: ""; -} - -.fa-text-width:before { - content: ""; -} - -.fa-align-left:before { - content: ""; -} - -.fa-align-center:before { - content: ""; -} - -.fa-align-right:before { - content: ""; -} - -.fa-align-justify:before { - content: ""; -} - -.fa-list:before { - content: ""; -} - -.fa-dedent:before, -.fa-outdent:before { - content: ""; -} - -.fa-indent:before { - content: ""; -} - -.fa-video-camera:before { - content: ""; -} - -.fa-photo:before, -.fa-image:before, -.fa-picture-o:before { - content: ""; -} - -.fa-pencil:before { - content: ""; -} - -.fa-map-marker:before { - content: ""; -} - -.fa-adjust:before { - content: ""; -} - -.fa-tint:before { - content: ""; -} - -.fa-edit:before, -.fa-pencil-square-o:before { - content: ""; -} - -.fa-share-square-o:before { - content: ""; -} - -.fa-check-square-o:before { - content: ""; -} - -.fa-arrows:before { - content: ""; -} - -.fa-step-backward:before { - content: ""; -} - -.fa-fast-backward:before { - content: ""; -} - -.fa-backward:before { - content: ""; -} - -.fa-play:before { - content: ""; -} - -.fa-pause:before { - content: ""; -} - -.fa-stop:before { - content: ""; -} - -.fa-forward:before { - content: ""; -} - -.fa-fast-forward:before { - content: ""; -} - -.fa-step-forward:before { - content: ""; -} - -.fa-eject:before { - content: ""; -} - -.fa-chevron-left:before { - content: ""; -} - -.fa-chevron-right:before { - content: ""; -} - -.fa-plus-circle:before { - content: ""; -} - -.fa-minus-circle:before { - content: ""; -} - -.fa-times-circle:before { - content: ""; -} - -.fa-check-circle:before { - content: ""; -} - -.fa-question-circle:before { - content: ""; -} - -.fa-info-circle:before { - content: ""; -} - -.fa-crosshairs:before { - content: ""; -} - -.fa-times-circle-o:before { - content: ""; -} - -.fa-check-circle-o:before { - content: ""; -} - -.fa-ban:before { - content: ""; -} - -.fa-arrow-left:before { - content: ""; -} - -.fa-arrow-right:before { - content: ""; -} - -.fa-arrow-up:before { - content: ""; -} - -.fa-arrow-down:before { - content: ""; -} - -.fa-mail-forward:before, -.fa-share:before { - content: ""; -} - -.fa-expand:before { - content: ""; -} - -.fa-compress:before { - content: ""; -} - -.fa-plus:before { - content: ""; -} - -.fa-minus:before { - content: ""; -} - -.fa-asterisk:before { - content: ""; -} - -.fa-exclamation-circle:before { - content: ""; -} - -.fa-gift:before { - content: ""; -} - -.fa-leaf:before { - content: ""; -} - -.fa-fire:before { - content: ""; -} - -.fa-eye:before { - content: ""; -} - -.fa-eye-slash:before { - content: ""; -} - -.fa-warning:before, -.fa-exclamation-triangle:before { - content: ""; -} - -.fa-plane:before { - content: ""; -} - -.fa-calendar:before { - content: ""; -} - -.fa-random:before { - content: ""; -} - -.fa-comment:before { - content: ""; -} - -.fa-magnet:before { - content: ""; -} - -.fa-chevron-up:before { - content: ""; -} - -.fa-chevron-down:before { - content: ""; -} - -.fa-retweet:before { - content: ""; -} - -.fa-shopping-cart:before { - content: ""; -} - -.fa-folder:before { - content: ""; -} - -.fa-folder-open:before { - content: ""; -} - -.fa-arrows-v:before { - content: ""; -} - -.fa-arrows-h:before { - content: ""; -} - -.fa-bar-chart-o:before, -.fa-bar-chart:before { - content: ""; -} - -.fa-twitter-square:before { - content: ""; -} - -.fa-facebook-square:before { - content: ""; -} - -.fa-camera-retro:before { - content: ""; -} - -.fa-key:before { - content: ""; -} - -.fa-gears:before, -.fa-cogs:before { - content: ""; -} - -.fa-comments:before { - content: ""; -} - -.fa-thumbs-o-up:before { - content: ""; -} - -.fa-thumbs-o-down:before { - content: ""; -} - -.fa-star-half:before { - content: ""; -} - -.fa-heart-o:before { - content: ""; -} - -.fa-sign-out:before { - content: ""; -} - -.fa-linkedin-square:before { - content: ""; -} - -.fa-thumb-tack:before { - content: ""; -} - -.fa-external-link:before { - content: ""; -} - -.fa-sign-in:before { - content: ""; -} - -.fa-trophy:before { - content: ""; -} - -.fa-github-square:before { - content: ""; -} - -.fa-upload:before { - content: ""; -} - -.fa-lemon-o:before { - content: ""; -} - -.fa-phone:before { - content: ""; -} - -.fa-square-o:before { - content: ""; -} - -.fa-bookmark-o:before { - content: ""; -} - -.fa-phone-square:before { - content: ""; -} - -.fa-twitter:before { - content: ""; -} - -.fa-facebook-f:before, -.fa-facebook:before { - content: ""; -} - -.fa-github:before { - content: ""; -} - -.fa-unlock:before { - content: ""; -} - -.fa-credit-card:before { - content: ""; -} - -.fa-feed:before, -.fa-rss:before { - content: ""; -} - -.fa-hdd-o:before { - content: ""; -} - -.fa-bullhorn:before { - content: ""; -} - -.fa-bell:before { - content: ""; -} - -.fa-certificate:before { - content: ""; -} - -.fa-hand-o-right:before { - content: ""; -} - -.fa-hand-o-left:before { - content: ""; -} - -.fa-hand-o-up:before { - content: ""; -} - -.fa-hand-o-down:before { - content: ""; -} - -.fa-arrow-circle-left:before { - content: ""; -} - -.fa-arrow-circle-right:before { - content: ""; -} - -.fa-arrow-circle-up:before { - content: ""; -} - -.fa-arrow-circle-down:before { - content: ""; -} - -.fa-globe:before { - content: ""; -} - -.fa-wrench:before { - content: ""; -} - -.fa-tasks:before { - content: ""; -} - -.fa-filter:before { - content: ""; -} - -.fa-briefcase:before { - content: ""; -} - -.fa-arrows-alt:before { - content: ""; -} - -.fa-group:before, -.fa-users:before { - content: ""; -} - -.fa-chain:before, -.fa-link:before { - content: ""; -} - -.fa-cloud:before { - content: ""; -} - -.fa-flask:before { - content: ""; -} - -.fa-cut:before, -.fa-scissors:before { - content: ""; -} - -.fa-copy:before, -.fa-files-o:before { - content: ""; -} - -.fa-paperclip:before { - content: ""; -} - -.fa-save:before, -.fa-floppy-o:before { - content: ""; -} - -.fa-square:before { - content: ""; -} - -.fa-navicon:before, -.fa-reorder:before, -.fa-bars:before { - content: ""; -} - -.fa-list-ul:before { - content: ""; -} - -.fa-list-ol:before { - content: ""; -} - -.fa-strikethrough:before { - content: ""; -} - -.fa-underline:before { - content: ""; -} - -.fa-table:before { - content: ""; -} - -.fa-magic:before { - content: ""; -} - -.fa-truck:before { - content: ""; -} - -.fa-pinterest:before { - content: ""; -} - -.fa-pinterest-square:before { - content: ""; -} - -.fa-google-plus-square:before { - content: ""; -} - -.fa-google-plus:before { - content: ""; -} - -.fa-money:before { - content: ""; -} - -.fa-caret-down:before { - content: ""; -} - -.fa-caret-up:before { - content: ""; -} - -.fa-caret-left:before { - content: ""; -} - -.fa-caret-right:before { - content: ""; -} - -.fa-columns:before { - content: ""; -} - -.fa-unsorted:before, -.fa-sort:before { - content: ""; -} - -.fa-sort-down:before, -.fa-sort-desc:before { - content: ""; -} - -.fa-sort-up:before, -.fa-sort-asc:before { - content: ""; -} - -.fa-envelope:before { - content: ""; -} - -.fa-linkedin:before { - content: ""; -} - -.fa-rotate-left:before, -.fa-undo:before { - content: ""; -} - -.fa-legal:before, -.fa-gavel:before { - content: ""; -} - -.fa-dashboard:before, -.fa-tachometer:before { - content: ""; -} - -.fa-comment-o:before { - content: ""; -} - -.fa-comments-o:before { - content: ""; -} - -.fa-flash:before, -.fa-bolt:before { - content: ""; -} - -.fa-sitemap:before { - content: ""; -} - -.fa-umbrella:before { - content: ""; -} - -.fa-paste:before, -.fa-clipboard:before { - content: ""; -} - -.fa-lightbulb-o:before { - content: ""; -} - -.fa-exchange:before { - content: ""; -} - -.fa-cloud-download:before { - content: ""; -} - -.fa-cloud-upload:before { - content: ""; -} - -.fa-user-md:before { - content: ""; -} - -.fa-stethoscope:before { - content: ""; -} - -.fa-suitcase:before { - content: ""; -} - -.fa-bell-o:before { - content: ""; -} - -.fa-coffee:before { - content: ""; -} - -.fa-cutlery:before { - content: ""; -} - -.fa-file-text-o:before { - content: ""; -} - -.fa-building-o:before { - content: ""; -} - -.fa-hospital-o:before { - content: ""; -} - -.fa-ambulance:before { - content: ""; -} - -.fa-medkit:before { - content: ""; -} - -.fa-fighter-jet:before { - content: ""; -} - -.fa-beer:before { - content: ""; -} - -.fa-h-square:before { - content: ""; -} - -.fa-plus-square:before { - content: ""; -} - -.fa-angle-double-left:before { - content: ""; -} - -.fa-angle-double-right:before { - content: ""; -} - -.fa-angle-double-up:before { - content: ""; -} - -.fa-angle-double-down:before { - content: ""; -} - -.fa-angle-left:before { - content: ""; -} - -.fa-angle-right:before { - content: ""; -} - -.fa-angle-up:before { - content: ""; -} - -.fa-angle-down:before { - content: ""; -} - -.fa-desktop:before { - content: ""; -} - -.fa-laptop:before { - content: ""; -} - -.fa-tablet:before { - content: ""; -} - -.fa-mobile-phone:before, -.fa-mobile:before { - content: ""; -} - -.fa-circle-o:before { - content: ""; -} - -.fa-quote-left:before { - content: ""; -} - -.fa-quote-right:before { - content: ""; -} - -.fa-spinner:before { - content: ""; -} - -.fa-circle:before { - content: ""; -} - -.fa-mail-reply:before, -.fa-reply:before { - content: ""; -} - -.fa-github-alt:before { - content: ""; -} - -.fa-folder-o:before { - content: ""; -} - -.fa-folder-open-o:before { - content: ""; -} - -.fa-smile-o:before { - content: ""; -} - -.fa-frown-o:before { - content: ""; -} - -.fa-meh-o:before { - content: ""; -} - -.fa-gamepad:before { - content: ""; -} - -.fa-keyboard-o:before { - content: ""; -} - -.fa-flag-o:before { - content: ""; -} - -.fa-flag-checkered:before { - content: ""; -} - -.fa-terminal:before { - content: ""; -} - -.fa-code:before { - content: ""; -} - -.fa-mail-reply-all:before, -.fa-reply-all:before { - content: ""; -} - -.fa-star-half-empty:before, -.fa-star-half-full:before, -.fa-star-half-o:before { - content: ""; -} - -.fa-location-arrow:before { - content: ""; -} - -.fa-crop:before { - content: ""; -} - -.fa-code-fork:before { - content: ""; -} - -.fa-unlink:before, -.fa-chain-broken:before { - content: ""; -} - -.fa-question:before { - content: ""; -} - -.fa-info:before { - content: ""; -} - -.fa-exclamation:before { - content: ""; -} - -.fa-superscript:before { - content: ""; -} - -.fa-subscript:before { - content: ""; -} - -.fa-eraser:before { - content: ""; -} - -.fa-puzzle-piece:before { - content: ""; -} - -.fa-microphone:before { - content: ""; -} - -.fa-microphone-slash:before { - content: ""; -} - -.fa-shield:before { - content: ""; -} - -.fa-calendar-o:before { - content: ""; -} - -.fa-fire-extinguisher:before { - content: ""; -} - -.fa-rocket:before { - content: ""; -} - -.fa-maxcdn:before { - content: ""; -} - -.fa-chevron-circle-left:before { - content: ""; -} - -.fa-chevron-circle-right:before { - content: ""; -} - -.fa-chevron-circle-up:before { - content: ""; -} - -.fa-chevron-circle-down:before { - content: ""; -} - -.fa-html5:before { - content: ""; -} - -.fa-css3:before { - content: ""; -} - -.fa-anchor:before { - content: ""; -} - -.fa-unlock-alt:before { - content: ""; -} - -.fa-bullseye:before { - content: ""; -} - -.fa-ellipsis-h:before { - content: ""; -} - -.fa-ellipsis-v:before { - content: ""; -} - -.fa-rss-square:before { - content: ""; -} - -.fa-play-circle:before { - content: ""; -} - -.fa-ticket:before { - content: ""; -} - -.fa-minus-square:before { - content: ""; -} - -.fa-minus-square-o:before { - content: ""; -} - -.fa-level-up:before { - content: ""; -} - -.fa-level-down:before { - content: ""; -} - -.fa-check-square:before { - content: ""; -} - -.fa-pencil-square:before { - content: ""; -} - -.fa-external-link-square:before { - content: ""; -} - -.fa-share-square:before { - content: ""; -} - -.fa-compass:before { - content: ""; -} - -.fa-toggle-down:before, -.fa-caret-square-o-down:before { - content: ""; -} - -.fa-toggle-up:before, -.fa-caret-square-o-up:before { - content: ""; -} - -.fa-toggle-right:before, -.fa-caret-square-o-right:before { - content: ""; -} - -.fa-euro:before, -.fa-eur:before { - content: ""; -} - -.fa-gbp:before { - content: ""; -} - -.fa-dollar:before, -.fa-usd:before { - content: ""; -} - -.fa-rupee:before, -.fa-inr:before { - content: ""; -} - -.fa-cny:before, -.fa-rmb:before, -.fa-yen:before, -.fa-jpy:before { - content: ""; -} - -.fa-ruble:before, -.fa-rouble:before, -.fa-rub:before { - content: ""; -} - -.fa-won:before, -.fa-krw:before { - content: ""; -} - -.fa-bitcoin:before, -.fa-btc:before { - content: ""; -} - -.fa-file:before { - content: ""; -} - -.fa-file-text:before { - content: ""; -} - -.fa-sort-alpha-asc:before { - content: ""; -} - -.fa-sort-alpha-desc:before { - content: ""; -} - -.fa-sort-amount-asc:before { - content: ""; -} - -.fa-sort-amount-desc:before { - content: ""; -} - -.fa-sort-numeric-asc:before { - content: ""; -} - -.fa-sort-numeric-desc:before { - content: ""; -} - -.fa-thumbs-up:before { - content: ""; -} - -.fa-thumbs-down:before { - content: ""; -} - -.fa-youtube-square:before { - content: ""; -} - -.fa-youtube:before { - content: ""; -} - -.fa-xing:before { - content: ""; -} - -.fa-xing-square:before { - content: ""; -} - -.fa-youtube-play:before { - content: ""; -} - -.fa-dropbox:before { - content: ""; -} - -.fa-stack-overflow:before { - content: ""; -} - -.fa-instagram:before { - content: ""; -} - -.fa-flickr:before { - content: ""; -} - -.fa-adn:before { - content: ""; -} - -.fa-bitbucket:before { - content: ""; -} - -.fa-bitbucket-square:before { - content: ""; -} - -.fa-tumblr:before { - content: ""; -} - -.fa-tumblr-square:before { - content: ""; -} - -.fa-long-arrow-down:before { - content: ""; -} - -.fa-long-arrow-up:before { - content: ""; -} - -.fa-long-arrow-left:before { - content: ""; -} - -.fa-long-arrow-right:before { - content: ""; -} - -.fa-apple:before { - content: ""; -} - -.fa-windows:before { - content: ""; -} - -.fa-android:before { - content: ""; -} - -.fa-linux:before { - content: ""; -} - -.fa-dribbble:before { - content: ""; -} - -.fa-skype:before { - content: ""; -} - -.fa-foursquare:before { - content: ""; -} - -.fa-trello:before { - content: ""; -} - -.fa-female:before { - content: ""; -} - -.fa-male:before { - content: ""; -} - -.fa-gittip:before, -.fa-gratipay:before { - content: ""; -} - -.fa-sun-o:before { - content: ""; -} - -.fa-moon-o:before { - content: ""; -} - -.fa-archive:before { - content: ""; -} - -.fa-bug:before { - content: ""; -} - -.fa-vk:before { - content: ""; -} - -.fa-weibo:before { - content: ""; -} - -.fa-renren:before { - content: ""; -} - -.fa-pagelines:before { - content: ""; -} - -.fa-stack-exchange:before { - content: ""; -} - -.fa-arrow-circle-o-right:before { - content: ""; -} - -.fa-arrow-circle-o-left:before { - content: ""; -} - -.fa-toggle-left:before, -.fa-caret-square-o-left:before { - content: ""; -} - -.fa-dot-circle-o:before { - content: ""; -} - -.fa-wheelchair:before { - content: ""; -} - -.fa-vimeo-square:before { - content: ""; -} - -.fa-turkish-lira:before, -.fa-try:before { - content: ""; -} - -.fa-plus-square-o:before { - content: ""; -} - -.fa-space-shuttle:before { - content: ""; -} - -.fa-slack:before { - content: ""; -} - -.fa-envelope-square:before { - content: ""; -} - -.fa-wordpress:before { - content: ""; -} - -.fa-openid:before { - content: ""; -} - -.fa-institution:before, -.fa-bank:before, -.fa-university:before { - content: ""; -} - -.fa-mortar-board:before, -.fa-graduation-cap:before { - content: ""; -} - -.fa-yahoo:before { - content: ""; -} - -.fa-google:before { - content: ""; -} - -.fa-reddit:before { - content: ""; -} - -.fa-reddit-square:before { - content: ""; -} - -.fa-stumbleupon-circle:before { - content: ""; -} - -.fa-stumbleupon:before { - content: ""; -} - -.fa-delicious:before { - content: ""; -} - -.fa-digg:before { - content: ""; -} - -.fa-pied-piper-pp:before { - content: ""; -} - -.fa-pied-piper-alt:before { - content: ""; -} - -.fa-drupal:before { - content: ""; -} - -.fa-joomla:before { - content: ""; -} - -.fa-language:before { - content: ""; -} - -.fa-fax:before { - content: ""; -} - -.fa-building:before { - content: ""; -} - -.fa-child:before { - content: ""; -} - -.fa-paw:before { - content: ""; -} - -.fa-spoon:before { - content: ""; -} - -.fa-cube:before { - content: ""; -} - -.fa-cubes:before { - content: ""; -} - -.fa-behance:before { - content: ""; -} - -.fa-behance-square:before { - content: ""; -} - -.fa-steam:before { - content: ""; -} - -.fa-steam-square:before { - content: ""; -} - -.fa-recycle:before { - content: ""; -} - -.fa-automobile:before, -.fa-car:before { - content: ""; -} - -.fa-cab:before, -.fa-taxi:before { - content: ""; -} - -.fa-tree:before { - content: ""; -} - -.fa-spotify:before { - content: ""; -} - -.fa-deviantart:before { - content: ""; -} - -.fa-soundcloud:before { - content: ""; -} - -.fa-database:before { - content: ""; -} - -.fa-file-pdf-o:before { - content: ""; -} - -.fa-file-word-o:before { - content: ""; -} - -.fa-file-excel-o:before { - content: ""; -} - -.fa-file-powerpoint-o:before { - content: ""; -} - -.fa-file-photo-o:before, -.fa-file-picture-o:before, -.fa-file-image-o:before { - content: ""; -} - -.fa-file-zip-o:before, -.fa-file-archive-o:before { - content: ""; -} - -.fa-file-sound-o:before, -.fa-file-audio-o:before { - content: ""; -} - -.fa-file-movie-o:before, -.fa-file-video-o:before { - content: ""; -} - -.fa-file-code-o:before { - content: ""; -} - -.fa-vine:before { - content: ""; -} - -.fa-codepen:before { - content: ""; -} - -.fa-jsfiddle:before { - content: ""; -} - -.fa-life-bouy:before, -.fa-life-buoy:before, -.fa-life-saver:before, -.fa-support:before, -.fa-life-ring:before { - content: ""; -} - -.fa-circle-o-notch:before { - content: ""; -} - -.fa-ra:before, -.fa-resistance:before, -.fa-rebel:before { - content: ""; -} - -.fa-ge:before, -.fa-empire:before { - content: ""; -} - -.fa-git-square:before { - content: ""; -} - -.fa-git:before { - content: ""; -} - -.fa-y-combinator-square:before, -.fa-yc-square:before, -.fa-hacker-news:before { - content: ""; -} - -.fa-tencent-weibo:before { - content: ""; -} - -.fa-qq:before { - content: ""; -} - -.fa-wechat:before, -.fa-weixin:before { - content: ""; -} - -.fa-send:before, -.fa-paper-plane:before { - content: ""; -} - -.fa-send-o:before, -.fa-paper-plane-o:before { - content: ""; -} - -.fa-history:before { - content: ""; -} - -.fa-circle-thin:before { - content: ""; -} - -.fa-header:before { - content: ""; -} - -.fa-paragraph:before { - content: ""; -} - -.fa-sliders:before { - content: ""; -} - -.fa-share-alt:before { - content: ""; -} - -.fa-share-alt-square:before { - content: ""; -} - -.fa-bomb:before { - content: ""; -} - -.fa-soccer-ball-o:before, -.fa-futbol-o:before { - content: ""; -} - -.fa-tty:before { - content: ""; -} - -.fa-binoculars:before { - content: ""; -} - -.fa-plug:before { - content: ""; -} - -.fa-slideshare:before { - content: ""; -} - -.fa-twitch:before { - content: ""; -} - -.fa-yelp:before { - content: ""; -} - -.fa-newspaper-o:before { - content: ""; -} - -.fa-wifi:before { - content: ""; -} - -.fa-calculator:before { - content: ""; -} - -.fa-paypal:before { - content: ""; -} - -.fa-google-wallet:before { - content: ""; -} - -.fa-cc-visa:before { - content: ""; -} - -.fa-cc-mastercard:before { - content: ""; -} - -.fa-cc-discover:before { - content: ""; -} - -.fa-cc-amex:before { - content: ""; -} - -.fa-cc-paypal:before { - content: ""; -} - -.fa-cc-stripe:before { - content: ""; -} - -.fa-bell-slash:before { - content: ""; -} - -.fa-bell-slash-o:before { - content: ""; -} - -.fa-trash:before { - content: ""; -} - -.fa-copyright:before { - content: ""; -} - -.fa-at:before { - content: ""; -} - -.fa-eyedropper:before { - content: ""; -} - -.fa-paint-brush:before { - content: ""; -} - -.fa-birthday-cake:before { - content: ""; -} - -.fa-area-chart:before { - content: ""; -} - -.fa-pie-chart:before { - content: ""; -} - -.fa-line-chart:before { - content: ""; -} - -.fa-lastfm:before { - content: ""; -} - -.fa-lastfm-square:before { - content: ""; -} - -.fa-toggle-off:before { - content: ""; -} - -.fa-toggle-on:before { - content: ""; -} - -.fa-bicycle:before { - content: ""; -} - -.fa-bus:before { - content: ""; -} - -.fa-ioxhost:before { - content: ""; -} - -.fa-angellist:before { - content: ""; -} - -.fa-cc:before { - content: ""; -} - -.fa-shekel:before, -.fa-sheqel:before, -.fa-ils:before { - content: ""; -} - -.fa-meanpath:before { - content: ""; -} - -.fa-buysellads:before { - content: ""; -} - -.fa-connectdevelop:before { - content: ""; -} - -.fa-dashcube:before { - content: ""; -} - -.fa-forumbee:before { - content: ""; -} - -.fa-leanpub:before { - content: ""; -} - -.fa-sellsy:before { - content: ""; -} - -.fa-shirtsinbulk:before { - content: ""; -} - -.fa-simplybuilt:before { - content: ""; -} - -.fa-skyatlas:before { - content: ""; -} - -.fa-cart-plus:before { - content: ""; -} - -.fa-cart-arrow-down:before { - content: ""; -} - -.fa-diamond:before { - content: ""; -} - -.fa-ship:before { - content: ""; -} - -.fa-user-secret:before { - content: ""; -} - -.fa-motorcycle:before { - content: ""; -} - -.fa-street-view:before { - content: ""; -} - -.fa-heartbeat:before { - content: ""; -} - -.fa-venus:before { - content: ""; -} - -.fa-mars:before { - content: ""; -} - -.fa-mercury:before { - content: ""; -} - -.fa-intersex:before, -.fa-transgender:before { - content: ""; -} - -.fa-transgender-alt:before { - content: ""; -} - -.fa-venus-double:before { - content: ""; -} - -.fa-mars-double:before { - content: ""; -} - -.fa-venus-mars:before { - content: ""; -} - -.fa-mars-stroke:before { - content: ""; -} - -.fa-mars-stroke-v:before { - content: ""; -} - -.fa-mars-stroke-h:before { - content: ""; -} - -.fa-neuter:before { - content: ""; -} - -.fa-genderless:before { - content: ""; -} - -.fa-facebook-official:before { - content: ""; -} - -.fa-pinterest-p:before { - content: ""; -} - -.fa-whatsapp:before { - content: ""; -} - -.fa-server:before { - content: ""; -} - -.fa-user-plus:before { - content: ""; -} - -.fa-user-times:before { - content: ""; -} - -.fa-hotel:before, -.fa-bed:before { - content: ""; -} - -.fa-viacoin:before { - content: ""; -} - -.fa-train:before { - content: ""; -} - -.fa-subway:before { - content: ""; -} - -.fa-medium:before { - content: ""; -} - -.fa-yc:before, -.fa-y-combinator:before { - content: ""; -} - -.fa-optin-monster:before { - content: ""; -} - -.fa-opencart:before { - content: ""; -} - -.fa-expeditedssl:before { - content: ""; -} - -.fa-battery-4:before, -.fa-battery:before, -.fa-battery-full:before { - content: ""; -} - -.fa-battery-3:before, -.fa-battery-three-quarters:before { - content: ""; -} - -.fa-battery-2:before, -.fa-battery-half:before { - content: ""; -} - -.fa-battery-1:before, -.fa-battery-quarter:before { - content: ""; -} - -.fa-battery-0:before, -.fa-battery-empty:before { - content: ""; -} - -.fa-mouse-pointer:before { - content: ""; -} - -.fa-i-cursor:before { - content: ""; -} - -.fa-object-group:before { - content: ""; -} - -.fa-object-ungroup:before { - content: ""; -} - -.fa-sticky-note:before { - content: ""; -} - -.fa-sticky-note-o:before { - content: ""; -} - -.fa-cc-jcb:before { - content: ""; -} - -.fa-cc-diners-club:before { - content: ""; -} - -.fa-clone:before { - content: ""; -} - -.fa-balance-scale:before { - content: ""; -} - -.fa-hourglass-o:before { - content: ""; -} - -.fa-hourglass-1:before, -.fa-hourglass-start:before { - content: ""; -} - -.fa-hourglass-2:before, -.fa-hourglass-half:before { - content: ""; -} - -.fa-hourglass-3:before, -.fa-hourglass-end:before { - content: ""; -} - -.fa-hourglass:before { - content: ""; -} - -.fa-hand-grab-o:before, -.fa-hand-rock-o:before { - content: ""; -} - -.fa-hand-stop-o:before, -.fa-hand-paper-o:before { - content: ""; -} - -.fa-hand-scissors-o:before { - content: ""; -} - -.fa-hand-lizard-o:before { - content: ""; -} - -.fa-hand-spock-o:before { - content: ""; -} - -.fa-hand-pointer-o:before { - content: ""; -} - -.fa-hand-peace-o:before { - content: ""; -} - -.fa-trademark:before { - content: ""; -} - -.fa-registered:before { - content: ""; -} - -.fa-creative-commons:before { - content: ""; -} - -.fa-gg:before { - content: ""; -} - -.fa-gg-circle:before { - content: ""; -} - -.fa-tripadvisor:before { - content: ""; -} - -.fa-odnoklassniki:before { - content: ""; -} - -.fa-odnoklassniki-square:before { - content: ""; -} - -.fa-get-pocket:before { - content: ""; -} - -.fa-wikipedia-w:before { - content: ""; -} - -.fa-safari:before { - content: ""; -} - -.fa-chrome:before { - content: ""; -} - -.fa-firefox:before { - content: ""; -} - -.fa-opera:before { - content: ""; -} - -.fa-internet-explorer:before { - content: ""; -} - -.fa-tv:before, -.fa-television:before { - content: ""; -} - -.fa-contao:before { - content: ""; -} - -.fa-500px:before { - content: ""; -} - -.fa-amazon:before { - content: ""; -} - -.fa-calendar-plus-o:before { - content: ""; -} - -.fa-calendar-minus-o:before { - content: ""; -} - -.fa-calendar-times-o:before { - content: ""; -} - -.fa-calendar-check-o:before { - content: ""; -} - -.fa-industry:before { - content: ""; -} - -.fa-map-pin:before { - content: ""; -} - -.fa-map-signs:before { - content: ""; -} - -.fa-map-o:before { - content: ""; -} - -.fa-map:before { - content: ""; -} - -.fa-commenting:before { - content: ""; -} - -.fa-commenting-o:before { - content: ""; -} - -.fa-houzz:before { - content: ""; -} - -.fa-vimeo:before { - content: ""; -} - -.fa-black-tie:before { - content: ""; -} - -.fa-fonticons:before { - content: ""; -} - -.fa-reddit-alien:before { - content: ""; -} - -.fa-edge:before { - content: ""; -} - -.fa-credit-card-alt:before { - content: ""; -} - -.fa-codiepie:before { - content: ""; -} - -.fa-modx:before { - content: ""; -} - -.fa-fort-awesome:before { - content: ""; -} - -.fa-usb:before { - content: ""; -} - -.fa-product-hunt:before { - content: ""; -} - -.fa-mixcloud:before { - content: ""; -} - -.fa-scribd:before { - content: ""; -} - -.fa-pause-circle:before { - content: ""; -} - -.fa-pause-circle-o:before { - content: ""; -} - -.fa-stop-circle:before { - content: ""; -} - -.fa-stop-circle-o:before { - content: ""; -} - -.fa-shopping-bag:before { - content: ""; -} - -.fa-shopping-basket:before { - content: ""; -} - -.fa-hashtag:before { - content: ""; -} - -.fa-bluetooth:before { - content: ""; -} - -.fa-bluetooth-b:before { - content: ""; -} - -.fa-percent:before { - content: ""; -} - -.fa-gitlab:before { - content: ""; -} - -.fa-wpbeginner:before { - content: ""; -} - -.fa-wpforms:before { - content: ""; -} - -.fa-envira:before { - content: ""; -} - -.fa-universal-access:before { - content: ""; -} - -.fa-wheelchair-alt:before { - content: ""; -} - -.fa-question-circle-o:before { - content: ""; -} - -.fa-blind:before { - content: ""; -} - -.fa-audio-description:before { - content: ""; -} - -.fa-volume-control-phone:before { - content: ""; -} - -.fa-braille:before { - content: ""; -} - -.fa-assistive-listening-systems:before { - content: ""; -} - -.fa-asl-interpreting:before, -.fa-american-sign-language-interpreting:before { - content: ""; -} - -.fa-deafness:before, -.fa-hard-of-hearing:before, -.fa-deaf:before { - content: ""; -} - -.fa-glide:before { - content: ""; -} - -.fa-glide-g:before { - content: ""; -} - -.fa-signing:before, -.fa-sign-language:before { - content: ""; -} - -.fa-low-vision:before { - content: ""; -} - -.fa-viadeo:before { - content: ""; -} - -.fa-viadeo-square:before { - content: ""; -} - -.fa-snapchat:before { - content: ""; -} - -.fa-snapchat-ghost:before { - content: ""; -} - -.fa-snapchat-square:before { - content: ""; -} - -.fa-pied-piper:before { - content: ""; -} - -.fa-first-order:before { - content: ""; -} - -.fa-yoast:before { - content: ""; -} - -.fa-themeisle:before { - content: ""; -} - -.fa-google-plus-circle:before, -.fa-google-plus-official:before { - content: ""; -} - -.fa-fa:before, -.fa-font-awesome:before { - content: ""; -} - -.fa-handshake-o:before { - content: ""; -} - -.fa-envelope-open:before { - content: ""; -} - -.fa-envelope-open-o:before { - content: ""; -} - -.fa-linode:before { - content: ""; -} - -.fa-address-book:before { - content: ""; -} - -.fa-address-book-o:before { - content: ""; -} - -.fa-vcard:before, -.fa-address-card:before { - content: ""; -} - -.fa-vcard-o:before, -.fa-address-card-o:before { - content: ""; -} - -.fa-user-circle:before { - content: ""; -} - -.fa-user-circle-o:before { - content: ""; -} - -.fa-user-o:before { - content: ""; -} - -.fa-id-badge:before { - content: ""; -} - -.fa-drivers-license:before, -.fa-id-card:before { - content: ""; -} - -.fa-drivers-license-o:before, -.fa-id-card-o:before { - content: ""; -} - -.fa-quora:before { - content: ""; -} - -.fa-free-code-camp:before { - content: ""; -} - -.fa-telegram:before { - content: ""; -} - -.fa-thermometer-4:before, -.fa-thermometer:before, -.fa-thermometer-full:before { - content: ""; -} - -.fa-thermometer-3:before, -.fa-thermometer-three-quarters:before { - content: ""; -} - -.fa-thermometer-2:before, -.fa-thermometer-half:before { - content: ""; -} - -.fa-thermometer-1:before, -.fa-thermometer-quarter:before { - content: ""; -} - -.fa-thermometer-0:before, -.fa-thermometer-empty:before { - content: ""; -} - -.fa-shower:before { - content: ""; -} - -.fa-bathtub:before, -.fa-s15:before, -.fa-bath:before { - content: ""; -} - -.fa-podcast:before { - content: ""; -} - -.fa-window-maximize:before { - content: ""; -} - -.fa-window-minimize:before { - content: ""; -} - -.fa-window-restore:before { - content: ""; -} - -.fa-times-rectangle:before, -.fa-window-close:before { - content: ""; -} - -.fa-times-rectangle-o:before, -.fa-window-close-o:before { - content: ""; -} - -.fa-bandcamp:before { - content: ""; -} - -.fa-grav:before { - content: ""; -} - -.fa-etsy:before { - content: ""; -} - -.fa-imdb:before { - content: ""; -} - -.fa-ravelry:before { - content: ""; -} - -.fa-eercast:before { - content: ""; -} - -.fa-microchip:before { - content: ""; -} - -.fa-snowflake-o:before { - content: ""; -} - -.fa-superpowers:before { - content: ""; -} - -.fa-wpexplorer:before { - content: ""; -} - -.fa-meetup:before { - content: ""; -} - -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} - -.sr-only-focusable:active, .sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} - -/* MaterialDesignIcons.com */ -@font-face { - font-family: "Material Design Icons"; - src: url("../fonts/materialdesignicons-webfont.eot?v=2.0.46"); - src: url("../fonts/materialdesignicons-webfont.eot?#iefix&v=2.0.46") format("embedded-opentype"), url("../fonts/materialdesignicons-webfont.woff2?v=2.0.46") format("woff2"), url("../fonts/materialdesignicons-webfont.woff?v=2.0.46") format("woff"), url("../fonts/materialdesignicons-webfont.ttf?v=2.0.46") format("truetype"), url("../fonts/materialdesignicons-webfont.svg?v=2.0.46#materialdesigniconsregular") format("svg"); - font-weight: normal; - font-style: normal; -} - -.mdi:before, -.mdi-set { - display: inline-block; - font: normal normal normal 24px/1 "Material Design Icons"; - font-size: inherit; - text-rendering: auto; - line-height: inherit; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.mdi-access-point:before { - content: "\F002"; -} - -.mdi-access-point-network:before { - content: "\F003"; -} - -.mdi-account:before { - content: "\F004"; -} - -.mdi-account-alert:before { - content: "\F005"; -} - -.mdi-account-box:before { - content: "\F006"; -} - -.mdi-account-box-outline:before { - content: "\F007"; -} - -.mdi-account-card-details:before { - content: "\F5D2"; -} - -.mdi-account-check:before { - content: "\F008"; -} - -.mdi-account-circle:before { - content: "\F009"; -} - -.mdi-account-convert:before { - content: "\F00A"; -} - -.mdi-account-edit:before { - content: "\F6BB"; -} - -.mdi-account-key:before { - content: "\F00B"; -} - -.mdi-account-location:before { - content: "\F00C"; -} - -.mdi-account-minus:before { - content: "\F00D"; -} - -.mdi-account-multiple:before { - content: "\F00E"; -} - -.mdi-account-multiple-minus:before { - content: "\F5D3"; -} - -.mdi-account-multiple-outline:before { - content: "\F00F"; -} - -.mdi-account-multiple-plus:before { - content: "\F010"; -} - -.mdi-account-network:before { - content: "\F011"; -} - -.mdi-account-off:before { - content: "\F012"; -} - -.mdi-account-outline:before { - content: "\F013"; -} - -.mdi-account-plus:before { - content: "\F014"; -} - -.mdi-account-remove:before { - content: "\F015"; -} - -.mdi-account-search:before { - content: "\F016"; -} - -.mdi-account-settings:before { - content: "\F630"; -} - -.mdi-account-settings-variant:before { - content: "\F631"; -} - -.mdi-account-star:before { - content: "\F017"; -} - -.mdi-account-switch:before { - content: "\F019"; -} - -.mdi-adjust:before { - content: "\F01A"; -} - -.mdi-air-conditioner:before { - content: "\F01B"; -} - -.mdi-airballoon:before { - content: "\F01C"; -} - -.mdi-airplane:before { - content: "\F01D"; -} - -.mdi-airplane-landing:before { - content: "\F5D4"; -} - -.mdi-airplane-off:before { - content: "\F01E"; -} - -.mdi-airplane-takeoff:before { - content: "\F5D5"; -} - -.mdi-airplay:before { - content: "\F01F"; -} - -.mdi-alarm:before { - content: "\F020"; -} - -.mdi-alarm-bell:before { - content: "\F78D"; -} - -.mdi-alarm-check:before { - content: "\F021"; -} - -.mdi-alarm-light:before { - content: "\F78E"; -} - -.mdi-alarm-multiple:before { - content: "\F022"; -} - -.mdi-alarm-off:before { - content: "\F023"; -} - -.mdi-alarm-plus:before { - content: "\F024"; -} - -.mdi-alarm-snooze:before { - content: "\F68D"; -} - -.mdi-album:before { - content: "\F025"; -} - -.mdi-alert:before { - content: "\F026"; -} - -.mdi-alert-box:before { - content: "\F027"; -} - -.mdi-alert-circle:before { - content: "\F028"; -} - -.mdi-alert-circle-outline:before { - content: "\F5D6"; -} - -.mdi-alert-decagram:before { - content: "\F6BC"; -} - -.mdi-alert-octagon:before { - content: "\F029"; -} - -.mdi-alert-octagram:before { - content: "\F766"; -} - -.mdi-alert-outline:before { - content: "\F02A"; -} - -.mdi-all-inclusive:before { - content: "\F6BD"; -} - -.mdi-alpha:before { - content: "\F02B"; -} - -.mdi-alphabetical:before { - content: "\F02C"; -} - -.mdi-altimeter:before { - content: "\F5D7"; -} - -.mdi-amazon:before { - content: "\F02D"; -} - -.mdi-amazon-clouddrive:before { - content: "\F02E"; -} - -.mdi-ambulance:before { - content: "\F02F"; -} - -.mdi-amplifier:before { - content: "\F030"; -} - -.mdi-anchor:before { - content: "\F031"; -} - -.mdi-android:before { - content: "\F032"; -} - -.mdi-android-debug-bridge:before { - content: "\F033"; -} - -.mdi-android-head:before { - content: "\F78F"; -} - -.mdi-android-studio:before { - content: "\F034"; -} - -.mdi-angular:before { - content: "\F6B1"; -} - -.mdi-angularjs:before { - content: "\F6BE"; -} - -.mdi-animation:before { - content: "\F5D8"; -} - -.mdi-apple:before { - content: "\F035"; -} - -.mdi-apple-finder:before { - content: "\F036"; -} - -.mdi-apple-ios:before { - content: "\F037"; -} - -.mdi-apple-keyboard-caps:before { - content: "\F632"; -} - -.mdi-apple-keyboard-command:before { - content: "\F633"; -} - -.mdi-apple-keyboard-control:before { - content: "\F634"; -} - -.mdi-apple-keyboard-option:before { - content: "\F635"; -} - -.mdi-apple-keyboard-shift:before { - content: "\F636"; -} - -.mdi-apple-mobileme:before { - content: "\F038"; -} - -.mdi-apple-safari:before { - content: "\F039"; -} - -.mdi-application:before { - content: "\F614"; -} - -.mdi-approval:before { - content: "\F790"; -} - -.mdi-apps:before { - content: "\F03B"; -} - -.mdi-archive:before { - content: "\F03C"; -} - -.mdi-arrange-bring-forward:before { - content: "\F03D"; -} - -.mdi-arrange-bring-to-front:before { - content: "\F03E"; -} - -.mdi-arrange-send-backward:before { - content: "\F03F"; -} - -.mdi-arrange-send-to-back:before { - content: "\F040"; -} - -.mdi-arrow-all:before { - content: "\F041"; -} - -.mdi-arrow-bottom-left:before { - content: "\F042"; -} - -.mdi-arrow-bottom-right:before { - content: "\F043"; -} - -.mdi-arrow-collapse:before { - content: "\F615"; -} - -.mdi-arrow-collapse-all:before { - content: "\F044"; -} - -.mdi-arrow-collapse-down:before { - content: "\F791"; -} - -.mdi-arrow-collapse-left:before { - content: "\F792"; -} - -.mdi-arrow-collapse-right:before { - content: "\F793"; -} - -.mdi-arrow-collapse-up:before { - content: "\F794"; -} - -.mdi-arrow-down:before { - content: "\F045"; -} - -.mdi-arrow-down-bold:before { - content: "\F72D"; -} - -.mdi-arrow-down-bold-box:before { - content: "\F72E"; -} - -.mdi-arrow-down-bold-box-outline:before { - content: "\F72F"; -} - -.mdi-arrow-down-bold-circle:before { - content: "\F047"; -} - -.mdi-arrow-down-bold-circle-outline:before { - content: "\F048"; -} - -.mdi-arrow-down-bold-hexagon-outline:before { - content: "\F049"; -} - -.mdi-arrow-down-box:before { - content: "\F6BF"; -} - -.mdi-arrow-down-drop-circle:before { - content: "\F04A"; -} - -.mdi-arrow-down-drop-circle-outline:before { - content: "\F04B"; -} - -.mdi-arrow-down-thick:before { - content: "\F046"; -} - -.mdi-arrow-expand:before { - content: "\F616"; -} - -.mdi-arrow-expand-all:before { - content: "\F04C"; -} - -.mdi-arrow-expand-down:before { - content: "\F795"; -} - -.mdi-arrow-expand-left:before { - content: "\F796"; -} - -.mdi-arrow-expand-right:before { - content: "\F797"; -} - -.mdi-arrow-expand-up:before { - content: "\F798"; -} - -.mdi-arrow-left:before { - content: "\F04D"; -} - -.mdi-arrow-left-bold:before { - content: "\F730"; -} - -.mdi-arrow-left-bold-box:before { - content: "\F731"; -} - -.mdi-arrow-left-bold-box-outline:before { - content: "\F732"; -} - -.mdi-arrow-left-bold-circle:before { - content: "\F04F"; -} - -.mdi-arrow-left-bold-circle-outline:before { - content: "\F050"; -} - -.mdi-arrow-left-bold-hexagon-outline:before { - content: "\F051"; -} - -.mdi-arrow-left-box:before { - content: "\F6C0"; -} - -.mdi-arrow-left-drop-circle:before { - content: "\F052"; -} - -.mdi-arrow-left-drop-circle-outline:before { - content: "\F053"; -} - -.mdi-arrow-left-thick:before { - content: "\F04E"; -} - -.mdi-arrow-right:before { - content: "\F054"; -} - -.mdi-arrow-right-bold:before { - content: "\F733"; -} - -.mdi-arrow-right-bold-box:before { - content: "\F734"; -} - -.mdi-arrow-right-bold-box-outline:before { - content: "\F735"; -} - -.mdi-arrow-right-bold-circle:before { - content: "\F056"; -} - -.mdi-arrow-right-bold-circle-outline:before { - content: "\F057"; -} - -.mdi-arrow-right-bold-hexagon-outline:before { - content: "\F058"; -} - -.mdi-arrow-right-box:before { - content: "\F6C1"; -} - -.mdi-arrow-right-drop-circle:before { - content: "\F059"; -} - -.mdi-arrow-right-drop-circle-outline:before { - content: "\F05A"; -} - -.mdi-arrow-right-thick:before { - content: "\F055"; -} - -.mdi-arrow-top-left:before { - content: "\F05B"; -} - -.mdi-arrow-top-right:before { - content: "\F05C"; -} - -.mdi-arrow-up:before { - content: "\F05D"; -} - -.mdi-arrow-up-bold:before { - content: "\F736"; -} - -.mdi-arrow-up-bold-box:before { - content: "\F737"; -} - -.mdi-arrow-up-bold-box-outline:before { - content: "\F738"; -} - -.mdi-arrow-up-bold-circle:before { - content: "\F05F"; -} - -.mdi-arrow-up-bold-circle-outline:before { - content: "\F060"; -} - -.mdi-arrow-up-bold-hexagon-outline:before { - content: "\F061"; -} - -.mdi-arrow-up-box:before { - content: "\F6C2"; -} - -.mdi-arrow-up-drop-circle:before { - content: "\F062"; -} - -.mdi-arrow-up-drop-circle-outline:before { - content: "\F063"; -} - -.mdi-arrow-up-thick:before { - content: "\F05E"; -} - -.mdi-assistant:before { - content: "\F064"; -} - -.mdi-asterisk:before { - content: "\F6C3"; -} - -.mdi-at:before { - content: "\F065"; -} - -.mdi-atom:before { - content: "\F767"; -} - -.mdi-attachment:before { - content: "\F066"; -} - -.mdi-audiobook:before { - content: "\F067"; -} - -.mdi-auto-fix:before { - content: "\F068"; -} - -.mdi-auto-upload:before { - content: "\F069"; -} - -.mdi-autorenew:before { - content: "\F06A"; -} - -.mdi-av-timer:before { - content: "\F06B"; -} - -.mdi-baby:before { - content: "\F06C"; -} - -.mdi-baby-buggy:before { - content: "\F68E"; -} - -.mdi-backburger:before { - content: "\F06D"; -} - -.mdi-backspace:before { - content: "\F06E"; -} - -.mdi-backup-restore:before { - content: "\F06F"; -} - -.mdi-bandcamp:before { - content: "\F674"; -} - -.mdi-bank:before { - content: "\F070"; -} - -.mdi-barcode:before { - content: "\F071"; -} - -.mdi-barcode-scan:before { - content: "\F072"; -} - -.mdi-barley:before { - content: "\F073"; -} - -.mdi-barrel:before { - content: "\F074"; -} - -.mdi-basecamp:before { - content: "\F075"; -} - -.mdi-basket:before { - content: "\F076"; -} - -.mdi-basket-fill:before { - content: "\F077"; -} - -.mdi-basket-unfill:before { - content: "\F078"; -} - -.mdi-battery:before { - content: "\F079"; -} - -.mdi-battery-10:before { - content: "\F07A"; -} - -.mdi-battery-20:before { - content: "\F07B"; -} - -.mdi-battery-30:before { - content: "\F07C"; -} - -.mdi-battery-40:before { - content: "\F07D"; -} - -.mdi-battery-50:before { - content: "\F07E"; -} - -.mdi-battery-60:before { - content: "\F07F"; -} - -.mdi-battery-70:before { - content: "\F080"; -} - -.mdi-battery-80:before { - content: "\F081"; -} - -.mdi-battery-90:before { - content: "\F082"; -} - -.mdi-battery-alert:before { - content: "\F083"; -} - -.mdi-battery-charging:before { - content: "\F084"; -} - -.mdi-battery-charging-100:before { - content: "\F085"; -} - -.mdi-battery-charging-20:before { - content: "\F086"; -} - -.mdi-battery-charging-30:before { - content: "\F087"; -} - -.mdi-battery-charging-40:before { - content: "\F088"; -} - -.mdi-battery-charging-60:before { - content: "\F089"; -} - -.mdi-battery-charging-80:before { - content: "\F08A"; -} - -.mdi-battery-charging-90:before { - content: "\F08B"; -} - -.mdi-battery-minus:before { - content: "\F08C"; -} - -.mdi-battery-negative:before { - content: "\F08D"; -} - -.mdi-battery-outline:before { - content: "\F08E"; -} - -.mdi-battery-plus:before { - content: "\F08F"; -} - -.mdi-battery-positive:before { - content: "\F090"; -} - -.mdi-battery-unknown:before { - content: "\F091"; -} - -.mdi-beach:before { - content: "\F092"; -} - -.mdi-beaker:before { - content: "\F68F"; -} - -.mdi-beats:before { - content: "\F097"; -} - -.mdi-beer:before { - content: "\F098"; -} - -.mdi-behance:before { - content: "\F099"; -} - -.mdi-bell:before { - content: "\F09A"; -} - -.mdi-bell-off:before { - content: "\F09B"; -} - -.mdi-bell-outline:before { - content: "\F09C"; -} - -.mdi-bell-plus:before { - content: "\F09D"; -} - -.mdi-bell-ring:before { - content: "\F09E"; -} - -.mdi-bell-ring-outline:before { - content: "\F09F"; -} - -.mdi-bell-sleep:before { - content: "\F0A0"; -} - -.mdi-beta:before { - content: "\F0A1"; -} - -.mdi-bible:before { - content: "\F0A2"; -} - -.mdi-bike:before { - content: "\F0A3"; -} - -.mdi-bing:before { - content: "\F0A4"; -} - -.mdi-binoculars:before { - content: "\F0A5"; -} - -.mdi-bio:before { - content: "\F0A6"; -} - -.mdi-biohazard:before { - content: "\F0A7"; -} - -.mdi-bitbucket:before { - content: "\F0A8"; -} - -.mdi-black-mesa:before { - content: "\F0A9"; -} - -.mdi-blackberry:before { - content: "\F0AA"; -} - -.mdi-blender:before { - content: "\F0AB"; -} - -.mdi-blinds:before { - content: "\F0AC"; -} - -.mdi-block-helper:before { - content: "\F0AD"; -} - -.mdi-blogger:before { - content: "\F0AE"; -} - -.mdi-bluetooth:before { - content: "\F0AF"; -} - -.mdi-bluetooth-audio:before { - content: "\F0B0"; -} - -.mdi-bluetooth-connect:before { - content: "\F0B1"; -} - -.mdi-bluetooth-off:before { - content: "\F0B2"; -} - -.mdi-bluetooth-settings:before { - content: "\F0B3"; -} - -.mdi-bluetooth-transfer:before { - content: "\F0B4"; -} - -.mdi-blur:before { - content: "\F0B5"; -} - -.mdi-blur-linear:before { - content: "\F0B6"; -} - -.mdi-blur-off:before { - content: "\F0B7"; -} - -.mdi-blur-radial:before { - content: "\F0B8"; -} - -.mdi-bomb:before { - content: "\F690"; -} - -.mdi-bomb-off:before { - content: "\F6C4"; -} - -.mdi-bone:before { - content: "\F0B9"; -} - -.mdi-book:before { - content: "\F0BA"; -} - -.mdi-book-minus:before { - content: "\F5D9"; -} - -.mdi-book-multiple:before { - content: "\F0BB"; -} - -.mdi-book-multiple-variant:before { - content: "\F0BC"; -} - -.mdi-book-open:before { - content: "\F0BD"; -} - -.mdi-book-open-page-variant:before { - content: "\F5DA"; -} - -.mdi-book-open-variant:before { - content: "\F0BE"; -} - -.mdi-book-plus:before { - content: "\F5DB"; -} - -.mdi-book-secure:before { - content: "\F799"; -} - -.mdi-book-unsecure:before { - content: "\F79A"; -} - -.mdi-book-variant:before { - content: "\F0BF"; -} - -.mdi-bookmark:before { - content: "\F0C0"; -} - -.mdi-bookmark-check:before { - content: "\F0C1"; -} - -.mdi-bookmark-music:before { - content: "\F0C2"; -} - -.mdi-bookmark-outline:before { - content: "\F0C3"; -} - -.mdi-bookmark-plus:before { - content: "\F0C5"; -} - -.mdi-bookmark-plus-outline:before { - content: "\F0C4"; -} - -.mdi-bookmark-remove:before { - content: "\F0C6"; -} - -.mdi-boombox:before { - content: "\F5DC"; -} - -.mdi-bootstrap:before { - content: "\F6C5"; -} - -.mdi-border-all:before { - content: "\F0C7"; -} - -.mdi-border-bottom:before { - content: "\F0C8"; -} - -.mdi-border-color:before { - content: "\F0C9"; -} - -.mdi-border-horizontal:before { - content: "\F0CA"; -} - -.mdi-border-inside:before { - content: "\F0CB"; -} - -.mdi-border-left:before { - content: "\F0CC"; -} - -.mdi-border-none:before { - content: "\F0CD"; -} - -.mdi-border-outside:before { - content: "\F0CE"; -} - -.mdi-border-right:before { - content: "\F0CF"; -} - -.mdi-border-style:before { - content: "\F0D0"; -} - -.mdi-border-top:before { - content: "\F0D1"; -} - -.mdi-border-vertical:before { - content: "\F0D2"; -} - -.mdi-bow-tie:before { - content: "\F677"; -} - -.mdi-bowl:before { - content: "\F617"; -} - -.mdi-bowling:before { - content: "\F0D3"; -} - -.mdi-box:before { - content: "\F0D4"; -} - -.mdi-box-cutter:before { - content: "\F0D5"; -} - -.mdi-box-shadow:before { - content: "\F637"; -} - -.mdi-bridge:before { - content: "\F618"; -} - -.mdi-briefcase:before { - content: "\F0D6"; -} - -.mdi-briefcase-check:before { - content: "\F0D7"; -} - -.mdi-briefcase-download:before { - content: "\F0D8"; -} - -.mdi-briefcase-upload:before { - content: "\F0D9"; -} - -.mdi-brightness-1:before { - content: "\F0DA"; -} - -.mdi-brightness-2:before { - content: "\F0DB"; -} - -.mdi-brightness-3:before { - content: "\F0DC"; -} - -.mdi-brightness-4:before { - content: "\F0DD"; -} - -.mdi-brightness-5:before { - content: "\F0DE"; -} - -.mdi-brightness-6:before { - content: "\F0DF"; -} - -.mdi-brightness-7:before { - content: "\F0E0"; -} - -.mdi-brightness-auto:before { - content: "\F0E1"; -} - -.mdi-broom:before { - content: "\F0E2"; -} - -.mdi-brush:before { - content: "\F0E3"; -} - -.mdi-buffer:before { - content: "\F619"; -} - -.mdi-bug:before { - content: "\F0E4"; -} - -.mdi-bulletin-board:before { - content: "\F0E5"; -} - -.mdi-bullhorn:before { - content: "\F0E6"; -} - -.mdi-bullseye:before { - content: "\F5DD"; -} - -.mdi-burst-mode:before { - content: "\F5DE"; -} - -.mdi-bus:before { - content: "\F0E7"; -} - -.mdi-bus-articulated-end:before { - content: "\F79B"; -} - -.mdi-bus-articulated-front:before { - content: "\F79C"; -} - -.mdi-bus-double-decker:before { - content: "\F79D"; -} - -.mdi-bus-school:before { - content: "\F79E"; -} - -.mdi-bus-side:before { - content: "\F79F"; -} - -.mdi-cached:before { - content: "\F0E8"; -} - -.mdi-cake:before { - content: "\F0E9"; -} - -.mdi-cake-layered:before { - content: "\F0EA"; -} - -.mdi-cake-variant:before { - content: "\F0EB"; -} - -.mdi-calculator:before { - content: "\F0EC"; -} - -.mdi-calendar:before { - content: "\F0ED"; -} - -.mdi-calendar-blank:before { - content: "\F0EE"; -} - -.mdi-calendar-check:before { - content: "\F0EF"; -} - -.mdi-calendar-clock:before { - content: "\F0F0"; -} - -.mdi-calendar-multiple:before { - content: "\F0F1"; -} - -.mdi-calendar-multiple-check:before { - content: "\F0F2"; -} - -.mdi-calendar-plus:before { - content: "\F0F3"; -} - -.mdi-calendar-question:before { - content: "\F691"; -} - -.mdi-calendar-range:before { - content: "\F678"; -} - -.mdi-calendar-remove:before { - content: "\F0F4"; -} - -.mdi-calendar-text:before { - content: "\F0F5"; -} - -.mdi-calendar-today:before { - content: "\F0F6"; -} - -.mdi-call-made:before { - content: "\F0F7"; -} - -.mdi-call-merge:before { - content: "\F0F8"; -} - -.mdi-call-missed:before { - content: "\F0F9"; -} - -.mdi-call-received:before { - content: "\F0FA"; -} - -.mdi-call-split:before { - content: "\F0FB"; -} - -.mdi-camcorder:before { - content: "\F0FC"; -} - -.mdi-camcorder-box:before { - content: "\F0FD"; -} - -.mdi-camcorder-box-off:before { - content: "\F0FE"; -} - -.mdi-camcorder-off:before { - content: "\F0FF"; -} - -.mdi-camera:before { - content: "\F100"; -} - -.mdi-camera-burst:before { - content: "\F692"; -} - -.mdi-camera-enhance:before { - content: "\F101"; -} - -.mdi-camera-front:before { - content: "\F102"; -} - -.mdi-camera-front-variant:before { - content: "\F103"; -} - -.mdi-camera-gopro:before { - content: "\F7A0"; -} - -.mdi-camera-iris:before { - content: "\F104"; -} - -.mdi-camera-metering-center:before { - content: "\F7A1"; -} - -.mdi-camera-metering-matrix:before { - content: "\F7A2"; -} - -.mdi-camera-metering-partial:before { - content: "\F7A3"; -} - -.mdi-camera-metering-spot:before { - content: "\F7A4"; -} - -.mdi-camera-off:before { - content: "\F5DF"; -} - -.mdi-camera-party-mode:before { - content: "\F105"; -} - -.mdi-camera-rear:before { - content: "\F106"; -} - -.mdi-camera-rear-variant:before { - content: "\F107"; -} - -.mdi-camera-switch:before { - content: "\F108"; -} - -.mdi-camera-timer:before { - content: "\F109"; -} - -.mdi-cancel:before { - content: "\F739"; -} - -.mdi-candle:before { - content: "\F5E2"; -} - -.mdi-candycane:before { - content: "\F10A"; -} - -.mdi-cannabis:before { - content: "\F7A5"; -} - -.mdi-car:before { - content: "\F10B"; -} - -.mdi-car-battery:before { - content: "\F10C"; -} - -.mdi-car-connected:before { - content: "\F10D"; -} - -.mdi-car-convertable:before { - content: "\F7A6"; -} - -.mdi-car-estate:before { - content: "\F7A7"; -} - -.mdi-car-hatchback:before { - content: "\F7A8"; -} - -.mdi-car-pickup:before { - content: "\F7A9"; -} - -.mdi-car-side:before { - content: "\F7AA"; -} - -.mdi-car-sports:before { - content: "\F7AB"; -} - -.mdi-car-wash:before { - content: "\F10E"; -} - -.mdi-caravan:before { - content: "\F7AC"; -} - -.mdi-cards:before { - content: "\F638"; -} - -.mdi-cards-outline:before { - content: "\F639"; -} - -.mdi-cards-playing-outline:before { - content: "\F63A"; -} - -.mdi-cards-variant:before { - content: "\F6C6"; -} - -.mdi-carrot:before { - content: "\F10F"; -} - -.mdi-cart:before { - content: "\F110"; -} - -.mdi-cart-off:before { - content: "\F66B"; -} - -.mdi-cart-outline:before { - content: "\F111"; -} - -.mdi-cart-plus:before { - content: "\F112"; -} - -.mdi-case-sensitive-alt:before { - content: "\F113"; -} - -.mdi-cash:before { - content: "\F114"; -} - -.mdi-cash-100:before { - content: "\F115"; -} - -.mdi-cash-multiple:before { - content: "\F116"; -} - -.mdi-cash-usd:before { - content: "\F117"; -} - -.mdi-cast:before { - content: "\F118"; -} - -.mdi-cast-connected:before { - content: "\F119"; -} - -.mdi-cast-off:before { - content: "\F789"; -} - -.mdi-castle:before { - content: "\F11A"; -} - -.mdi-cat:before { - content: "\F11B"; -} - -.mdi-cctv:before { - content: "\F7AD"; -} - -.mdi-ceiling-light:before { - content: "\F768"; -} - -.mdi-cellphone:before { - content: "\F11C"; -} - -.mdi-cellphone-android:before { - content: "\F11D"; -} - -.mdi-cellphone-basic:before { - content: "\F11E"; -} - -.mdi-cellphone-dock:before { - content: "\F11F"; -} - -.mdi-cellphone-iphone:before { - content: "\F120"; -} - -.mdi-cellphone-link:before { - content: "\F121"; -} - -.mdi-cellphone-link-off:before { - content: "\F122"; -} - -.mdi-cellphone-settings:before { - content: "\F123"; -} - -.mdi-certificate:before { - content: "\F124"; -} - -.mdi-chair-school:before { - content: "\F125"; -} - -.mdi-chart-arc:before { - content: "\F126"; -} - -.mdi-chart-areaspline:before { - content: "\F127"; -} - -.mdi-chart-bar:before { - content: "\F128"; -} - -.mdi-chart-bar-stacked:before { - content: "\F769"; -} - -.mdi-chart-bubble:before { - content: "\F5E3"; -} - -.mdi-chart-donut:before { - content: "\F7AE"; -} - -.mdi-chart-donut-variant:before { - content: "\F7AF"; -} - -.mdi-chart-gantt:before { - content: "\F66C"; -} - -.mdi-chart-histogram:before { - content: "\F129"; -} - -.mdi-chart-line:before { - content: "\F12A"; -} - -.mdi-chart-line-stacked:before { - content: "\F76A"; -} - -.mdi-chart-line-variant:before { - content: "\F7B0"; -} - -.mdi-chart-pie:before { - content: "\F12B"; -} - -.mdi-chart-scatterplot-hexbin:before { - content: "\F66D"; -} - -.mdi-chart-timeline:before { - content: "\F66E"; -} - -.mdi-check:before { - content: "\F12C"; -} - -.mdi-check-all:before { - content: "\F12D"; -} - -.mdi-check-circle:before { - content: "\F5E0"; -} - -.mdi-check-circle-outline:before { - content: "\F5E1"; -} - -.mdi-checkbox-blank:before { - content: "\F12E"; -} - -.mdi-checkbox-blank-circle:before { - content: "\F12F"; -} - -.mdi-checkbox-blank-circle-outline:before { - content: "\F130"; -} - -.mdi-checkbox-blank-outline:before { - content: "\F131"; -} - -.mdi-checkbox-marked:before { - content: "\F132"; -} - -.mdi-checkbox-marked-circle:before { - content: "\F133"; -} - -.mdi-checkbox-marked-circle-outline:before { - content: "\F134"; -} - -.mdi-checkbox-marked-outline:before { - content: "\F135"; -} - -.mdi-checkbox-multiple-blank:before { - content: "\F136"; -} - -.mdi-checkbox-multiple-blank-circle:before { - content: "\F63B"; -} - -.mdi-checkbox-multiple-blank-circle-outline:before { - content: "\F63C"; -} - -.mdi-checkbox-multiple-blank-outline:before { - content: "\F137"; -} - -.mdi-checkbox-multiple-marked:before { - content: "\F138"; -} - -.mdi-checkbox-multiple-marked-circle:before { - content: "\F63D"; -} - -.mdi-checkbox-multiple-marked-circle-outline:before { - content: "\F63E"; -} - -.mdi-checkbox-multiple-marked-outline:before { - content: "\F139"; -} - -.mdi-checkerboard:before { - content: "\F13A"; -} - -.mdi-chemical-weapon:before { - content: "\F13B"; -} - -.mdi-chevron-double-down:before { - content: "\F13C"; -} - -.mdi-chevron-double-left:before { - content: "\F13D"; -} - -.mdi-chevron-double-right:before { - content: "\F13E"; -} - -.mdi-chevron-double-up:before { - content: "\F13F"; -} - -.mdi-chevron-down:before { - content: "\F140"; -} - -.mdi-chevron-left:before { - content: "\F141"; -} - -.mdi-chevron-right:before { - content: "\F142"; -} - -.mdi-chevron-up:before { - content: "\F143"; -} - -.mdi-chili-hot:before { - content: "\F7B1"; -} - -.mdi-chili-medium:before { - content: "\F7B2"; -} - -.mdi-chili-mild:before { - content: "\F7B3"; -} - -.mdi-chip:before { - content: "\F61A"; -} - -.mdi-church:before { - content: "\F144"; -} - -.mdi-circle:before { - content: "\F764"; -} - -.mdi-circle-outline:before { - content: "\F765"; -} - -.mdi-cisco-webex:before { - content: "\F145"; -} - -.mdi-city:before { - content: "\F146"; -} - -.mdi-clipboard:before { - content: "\F147"; -} - -.mdi-clipboard-account:before { - content: "\F148"; -} - -.mdi-clipboard-alert:before { - content: "\F149"; -} - -.mdi-clipboard-arrow-down:before { - content: "\F14A"; -} - -.mdi-clipboard-arrow-left:before { - content: "\F14B"; -} - -.mdi-clipboard-check:before { - content: "\F14C"; -} - -.mdi-clipboard-flow:before { - content: "\F6C7"; -} - -.mdi-clipboard-outline:before { - content: "\F14D"; -} - -.mdi-clipboard-plus:before { - content: "\F750"; -} - -.mdi-clipboard-text:before { - content: "\F14E"; -} - -.mdi-clippy:before { - content: "\F14F"; -} - -.mdi-clock:before { - content: "\F150"; -} - -.mdi-clock-alert:before { - content: "\F5CE"; -} - -.mdi-clock-end:before { - content: "\F151"; -} - -.mdi-clock-fast:before { - content: "\F152"; -} - -.mdi-clock-in:before { - content: "\F153"; -} - -.mdi-clock-out:before { - content: "\F154"; -} - -.mdi-clock-start:before { - content: "\F155"; -} - -.mdi-close:before { - content: "\F156"; -} - -.mdi-close-box:before { - content: "\F157"; -} - -.mdi-close-box-outline:before { - content: "\F158"; -} - -.mdi-close-circle:before { - content: "\F159"; -} - -.mdi-close-circle-outline:before { - content: "\F15A"; -} - -.mdi-close-network:before { - content: "\F15B"; -} - -.mdi-close-octagon:before { - content: "\F15C"; -} - -.mdi-close-octagon-outline:before { - content: "\F15D"; -} - -.mdi-close-outline:before { - content: "\F6C8"; -} - -.mdi-closed-caption:before { - content: "\F15E"; -} - -.mdi-cloud:before { - content: "\F15F"; -} - -.mdi-cloud-braces:before { - content: "\F7B4"; -} - -.mdi-cloud-check:before { - content: "\F160"; -} - -.mdi-cloud-circle:before { - content: "\F161"; -} - -.mdi-cloud-download:before { - content: "\F162"; -} - -.mdi-cloud-off-outline:before { - content: "\F164"; -} - -.mdi-cloud-outline:before { - content: "\F163"; -} - -.mdi-cloud-print:before { - content: "\F165"; -} - -.mdi-cloud-print-outline:before { - content: "\F166"; -} - -.mdi-cloud-sync:before { - content: "\F63F"; -} - -.mdi-cloud-tags:before { - content: "\F7B5"; -} - -.mdi-cloud-upload:before { - content: "\F167"; -} - -.mdi-code-array:before { - content: "\F168"; -} - -.mdi-code-braces:before { - content: "\F169"; -} - -.mdi-code-brackets:before { - content: "\F16A"; -} - -.mdi-code-equal:before { - content: "\F16B"; -} - -.mdi-code-greater-than:before { - content: "\F16C"; -} - -.mdi-code-greater-than-or-equal:before { - content: "\F16D"; -} - -.mdi-code-less-than:before { - content: "\F16E"; -} - -.mdi-code-less-than-or-equal:before { - content: "\F16F"; -} - -.mdi-code-not-equal:before { - content: "\F170"; -} - -.mdi-code-not-equal-variant:before { - content: "\F171"; -} - -.mdi-code-parentheses:before { - content: "\F172"; -} - -.mdi-code-string:before { - content: "\F173"; -} - -.mdi-code-tags:before { - content: "\F174"; -} - -.mdi-code-tags-check:before { - content: "\F693"; -} - -.mdi-codepen:before { - content: "\F175"; -} - -.mdi-coffee:before { - content: "\F176"; -} - -.mdi-coffee-outline:before { - content: "\F6C9"; -} - -.mdi-coffee-to-go:before { - content: "\F177"; -} - -.mdi-coin:before { - content: "\F178"; -} - -.mdi-coins:before { - content: "\F694"; -} - -.mdi-collage:before { - content: "\F640"; -} - -.mdi-color-helper:before { - content: "\F179"; -} - -.mdi-comment:before { - content: "\F17A"; -} - -.mdi-comment-account:before { - content: "\F17B"; -} - -.mdi-comment-account-outline:before { - content: "\F17C"; -} - -.mdi-comment-alert:before { - content: "\F17D"; -} - -.mdi-comment-alert-outline:before { - content: "\F17E"; -} - -.mdi-comment-check:before { - content: "\F17F"; -} - -.mdi-comment-check-outline:before { - content: "\F180"; -} - -.mdi-comment-multiple-outline:before { - content: "\F181"; -} - -.mdi-comment-outline:before { - content: "\F182"; -} - -.mdi-comment-plus-outline:before { - content: "\F183"; -} - -.mdi-comment-processing:before { - content: "\F184"; -} - -.mdi-comment-processing-outline:before { - content: "\F185"; -} - -.mdi-comment-question-outline:before { - content: "\F186"; -} - -.mdi-comment-remove-outline:before { - content: "\F187"; -} - -.mdi-comment-text:before { - content: "\F188"; -} - -.mdi-comment-text-outline:before { - content: "\F189"; -} - -.mdi-compare:before { - content: "\F18A"; -} - -.mdi-compass:before { - content: "\F18B"; -} - -.mdi-compass-outline:before { - content: "\F18C"; -} - -.mdi-console:before { - content: "\F18D"; -} - -.mdi-console-line:before { - content: "\F7B6"; -} - -.mdi-contact-mail:before { - content: "\F18E"; -} - -.mdi-contacts:before { - content: "\F6CA"; -} - -.mdi-content-copy:before { - content: "\F18F"; -} - -.mdi-content-cut:before { - content: "\F190"; -} - -.mdi-content-duplicate:before { - content: "\F191"; -} - -.mdi-content-paste:before { - content: "\F192"; -} - -.mdi-content-save:before { - content: "\F193"; -} - -.mdi-content-save-all:before { - content: "\F194"; -} - -.mdi-content-save-settings:before { - content: "\F61B"; -} - -.mdi-contrast:before { - content: "\F195"; -} - -.mdi-contrast-box:before { - content: "\F196"; -} - -.mdi-contrast-circle:before { - content: "\F197"; -} - -.mdi-cookie:before { - content: "\F198"; -} - -.mdi-copyright:before { - content: "\F5E6"; -} - -.mdi-corn:before { - content: "\F7B7"; -} - -.mdi-counter:before { - content: "\F199"; -} - -.mdi-cow:before { - content: "\F19A"; -} - -.mdi-creation:before { - content: "\F1C9"; -} - -.mdi-credit-card:before { - content: "\F19B"; -} - -.mdi-credit-card-multiple:before { - content: "\F19C"; -} - -.mdi-credit-card-off:before { - content: "\F5E4"; -} - -.mdi-credit-card-plus:before { - content: "\F675"; -} - -.mdi-credit-card-scan:before { - content: "\F19D"; -} - -.mdi-crop:before { - content: "\F19E"; -} - -.mdi-crop-free:before { - content: "\F19F"; -} - -.mdi-crop-landscape:before { - content: "\F1A0"; -} - -.mdi-crop-portrait:before { - content: "\F1A1"; -} - -.mdi-crop-rotate:before { - content: "\F695"; -} - -.mdi-crop-square:before { - content: "\F1A2"; -} - -.mdi-crosshairs:before { - content: "\F1A3"; -} - -.mdi-crosshairs-gps:before { - content: "\F1A4"; -} - -.mdi-crown:before { - content: "\F1A5"; -} - -.mdi-cube:before { - content: "\F1A6"; -} - -.mdi-cube-outline:before { - content: "\F1A7"; -} - -.mdi-cube-send:before { - content: "\F1A8"; -} - -.mdi-cube-unfolded:before { - content: "\F1A9"; -} - -.mdi-cup:before { - content: "\F1AA"; -} - -.mdi-cup-off:before { - content: "\F5E5"; -} - -.mdi-cup-water:before { - content: "\F1AB"; -} - -.mdi-currency-btc:before { - content: "\F1AC"; -} - -.mdi-currency-chf:before { - content: "\F7B8"; -} - -.mdi-currency-cny:before { - content: "\F7B9"; -} - -.mdi-currency-eth:before { - content: "\F7BA"; -} - -.mdi-currency-eur:before { - content: "\F1AD"; -} - -.mdi-currency-gbp:before { - content: "\F1AE"; -} - -.mdi-currency-inr:before { - content: "\F1AF"; -} - -.mdi-currency-jpy:before { - content: "\F7BB"; -} - -.mdi-currency-krw:before { - content: "\F7BC"; -} - -.mdi-currency-ngn:before { - content: "\F1B0"; -} - -.mdi-currency-rub:before { - content: "\F1B1"; -} - -.mdi-currency-sign:before { - content: "\F7BD"; -} - -.mdi-currency-try:before { - content: "\F1B2"; -} - -.mdi-currency-twd:before { - content: "\F7BE"; -} - -.mdi-currency-usd:before { - content: "\F1B3"; -} - -.mdi-currency-usd-off:before { - content: "\F679"; -} - -.mdi-cursor-default:before { - content: "\F1B4"; -} - -.mdi-cursor-default-outline:before { - content: "\F1B5"; -} - -.mdi-cursor-move:before { - content: "\F1B6"; -} - -.mdi-cursor-pointer:before { - content: "\F1B7"; -} - -.mdi-cursor-text:before { - content: "\F5E7"; -} - -.mdi-database:before { - content: "\F1B8"; -} - -.mdi-database-minus:before { - content: "\F1B9"; -} - -.mdi-database-plus:before { - content: "\F1BA"; -} - -.mdi-debug-step-into:before { - content: "\F1BB"; -} - -.mdi-debug-step-out:before { - content: "\F1BC"; -} - -.mdi-debug-step-over:before { - content: "\F1BD"; -} - -.mdi-decagram:before { - content: "\F76B"; -} - -.mdi-decagram-outline:before { - content: "\F76C"; -} - -.mdi-decimal-decrease:before { - content: "\F1BE"; -} - -.mdi-decimal-increase:before { - content: "\F1BF"; -} - -.mdi-delete:before { - content: "\F1C0"; -} - -.mdi-delete-circle:before { - content: "\F682"; -} - -.mdi-delete-empty:before { - content: "\F6CB"; -} - -.mdi-delete-forever:before { - content: "\F5E8"; -} - -.mdi-delete-sweep:before { - content: "\F5E9"; -} - -.mdi-delete-variant:before { - content: "\F1C1"; -} - -.mdi-delta:before { - content: "\F1C2"; -} - -.mdi-deskphone:before { - content: "\F1C3"; -} - -.mdi-desktop-classic:before { - content: "\F7BF"; -} - -.mdi-desktop-mac:before { - content: "\F1C4"; -} - -.mdi-desktop-tower:before { - content: "\F1C5"; -} - -.mdi-details:before { - content: "\F1C6"; -} - -.mdi-developer-board:before { - content: "\F696"; -} - -.mdi-deviantart:before { - content: "\F1C7"; -} - -.mdi-dialpad:before { - content: "\F61C"; -} - -.mdi-diamond:before { - content: "\F1C8"; -} - -.mdi-dice-1:before { - content: "\F1CA"; -} - -.mdi-dice-2:before { - content: "\F1CB"; -} - -.mdi-dice-3:before { - content: "\F1CC"; -} - -.mdi-dice-4:before { - content: "\F1CD"; -} - -.mdi-dice-5:before { - content: "\F1CE"; -} - -.mdi-dice-6:before { - content: "\F1CF"; -} - -.mdi-dice-d10:before { - content: "\F76E"; -} - -.mdi-dice-d20:before { - content: "\F5EA"; -} - -.mdi-dice-d4:before { - content: "\F5EB"; -} - -.mdi-dice-d6:before { - content: "\F5EC"; -} - -.mdi-dice-d8:before { - content: "\F5ED"; -} - -.mdi-dice-multiple:before { - content: "\F76D"; -} - -.mdi-dictionary:before { - content: "\F61D"; -} - -.mdi-dip-switch:before { - content: "\F7C0"; -} - -.mdi-directions:before { - content: "\F1D0"; -} - -.mdi-directions-fork:before { - content: "\F641"; -} - -.mdi-discord:before { - content: "\F66F"; -} - -.mdi-disk:before { - content: "\F5EE"; -} - -.mdi-disk-alert:before { - content: "\F1D1"; -} - -.mdi-disqus:before { - content: "\F1D2"; -} - -.mdi-disqus-outline:before { - content: "\F1D3"; -} - -.mdi-division:before { - content: "\F1D4"; -} - -.mdi-division-box:before { - content: "\F1D5"; -} - -.mdi-dna:before { - content: "\F683"; -} - -.mdi-dns:before { - content: "\F1D6"; -} - -.mdi-do-not-disturb:before { - content: "\F697"; -} - -.mdi-do-not-disturb-off:before { - content: "\F698"; -} - -.mdi-dolby:before { - content: "\F6B2"; -} - -.mdi-domain:before { - content: "\F1D7"; -} - -.mdi-donkey:before { - content: "\F7C1"; -} - -.mdi-dots-horizontal:before { - content: "\F1D8"; -} - -.mdi-dots-horizontal-circle:before { - content: "\F7C2"; -} - -.mdi-dots-vertical:before { - content: "\F1D9"; -} - -.mdi-dots-vertical-circle:before { - content: "\F7C3"; -} - -.mdi-douban:before { - content: "\F699"; -} - -.mdi-download:before { - content: "\F1DA"; -} - -.mdi-download-network:before { - content: "\F6F3"; -} - -.mdi-drag:before { - content: "\F1DB"; -} - -.mdi-drag-horizontal:before { - content: "\F1DC"; -} - -.mdi-drag-vertical:before { - content: "\F1DD"; -} - -.mdi-drawing:before { - content: "\F1DE"; -} - -.mdi-drawing-box:before { - content: "\F1DF"; -} - -.mdi-dribbble:before { - content: "\F1E0"; -} - -.mdi-dribbble-box:before { - content: "\F1E1"; -} - -.mdi-drone:before { - content: "\F1E2"; -} - -.mdi-dropbox:before { - content: "\F1E3"; -} - -.mdi-drupal:before { - content: "\F1E4"; -} - -.mdi-duck:before { - content: "\F1E5"; -} - -.mdi-dumbbell:before { - content: "\F1E6"; -} - -.mdi-ear-hearing:before { - content: "\F7C4"; -} - -.mdi-earth:before { - content: "\F1E7"; -} - -.mdi-earth-box:before { - content: "\F6CC"; -} - -.mdi-earth-box-off:before { - content: "\F6CD"; -} - -.mdi-earth-off:before { - content: "\F1E8"; -} - -.mdi-edge:before { - content: "\F1E9"; -} - -.mdi-eject:before { - content: "\F1EA"; -} - -.mdi-elephant:before { - content: "\F7C5"; -} - -.mdi-elevation-decline:before { - content: "\F1EB"; -} - -.mdi-elevation-rise:before { - content: "\F1EC"; -} - -.mdi-elevator:before { - content: "\F1ED"; -} - -.mdi-email:before { - content: "\F1EE"; -} - -.mdi-email-alert:before { - content: "\F6CE"; -} - -.mdi-email-open:before { - content: "\F1EF"; -} - -.mdi-email-open-outline:before { - content: "\F5EF"; -} - -.mdi-email-outline:before { - content: "\F1F0"; -} - -.mdi-email-secure:before { - content: "\F1F1"; -} - -.mdi-email-variant:before { - content: "\F5F0"; -} - -.mdi-emby:before { - content: "\F6B3"; -} - -.mdi-emoticon:before { - content: "\F1F2"; -} - -.mdi-emoticon-cool:before { - content: "\F1F3"; -} - -.mdi-emoticon-dead:before { - content: "\F69A"; -} - -.mdi-emoticon-devil:before { - content: "\F1F4"; -} - -.mdi-emoticon-excited:before { - content: "\F69B"; -} - -.mdi-emoticon-happy:before { - content: "\F1F5"; -} - -.mdi-emoticon-neutral:before { - content: "\F1F6"; -} - -.mdi-emoticon-poop:before { - content: "\F1F7"; -} - -.mdi-emoticon-sad:before { - content: "\F1F8"; -} - -.mdi-emoticon-tongue:before { - content: "\F1F9"; -} - -.mdi-engine:before { - content: "\F1FA"; -} - -.mdi-engine-outline:before { - content: "\F1FB"; -} - -.mdi-equal:before { - content: "\F1FC"; -} - -.mdi-equal-box:before { - content: "\F1FD"; -} - -.mdi-eraser:before { - content: "\F1FE"; -} - -.mdi-eraser-variant:before { - content: "\F642"; -} - -.mdi-escalator:before { - content: "\F1FF"; -} - -.mdi-ethernet:before { - content: "\F200"; -} - -.mdi-ethernet-cable:before { - content: "\F201"; -} - -.mdi-ethernet-cable-off:before { - content: "\F202"; -} - -.mdi-etsy:before { - content: "\F203"; -} - -.mdi-ev-station:before { - content: "\F5F1"; -} - -.mdi-eventbrite:before { - content: "\F7C6"; -} - -.mdi-evernote:before { - content: "\F204"; -} - -.mdi-exclamation:before { - content: "\F205"; -} - -.mdi-exit-to-app:before { - content: "\F206"; -} - -.mdi-export:before { - content: "\F207"; -} - -.mdi-eye:before { - content: "\F208"; -} - -.mdi-eye-off:before { - content: "\F209"; -} - -.mdi-eye-off-outline:before { - content: "\F6D0"; -} - -.mdi-eye-outline:before { - content: "\F6CF"; -} - -.mdi-eyedropper:before { - content: "\F20A"; -} - -.mdi-eyedropper-variant:before { - content: "\F20B"; -} - -.mdi-face:before { - content: "\F643"; -} - -.mdi-face-profile:before { - content: "\F644"; -} - -.mdi-facebook:before { - content: "\F20C"; -} - -.mdi-facebook-box:before { - content: "\F20D"; -} - -.mdi-facebook-messenger:before { - content: "\F20E"; -} - -.mdi-factory:before { - content: "\F20F"; -} - -.mdi-fan:before { - content: "\F210"; -} - -.mdi-fast-forward:before { - content: "\F211"; -} - -.mdi-fast-forward-outline:before { - content: "\F6D1"; -} - -.mdi-fax:before { - content: "\F212"; -} - -.mdi-feather:before { - content: "\F6D2"; -} - -.mdi-ferry:before { - content: "\F213"; -} - -.mdi-file:before { - content: "\F214"; -} - -.mdi-file-account:before { - content: "\F73A"; -} - -.mdi-file-chart:before { - content: "\F215"; -} - -.mdi-file-check:before { - content: "\F216"; -} - -.mdi-file-cloud:before { - content: "\F217"; -} - -.mdi-file-delimited:before { - content: "\F218"; -} - -.mdi-file-document:before { - content: "\F219"; -} - -.mdi-file-document-box:before { - content: "\F21A"; -} - -.mdi-file-excel:before { - content: "\F21B"; -} - -.mdi-file-excel-box:before { - content: "\F21C"; -} - -.mdi-file-export:before { - content: "\F21D"; -} - -.mdi-file-find:before { - content: "\F21E"; -} - -.mdi-file-hidden:before { - content: "\F613"; -} - -.mdi-file-image:before { - content: "\F21F"; -} - -.mdi-file-import:before { - content: "\F220"; -} - -.mdi-file-lock:before { - content: "\F221"; -} - -.mdi-file-multiple:before { - content: "\F222"; -} - -.mdi-file-music:before { - content: "\F223"; -} - -.mdi-file-outline:before { - content: "\F224"; -} - -.mdi-file-pdf:before { - content: "\F225"; -} - -.mdi-file-pdf-box:before { - content: "\F226"; -} - -.mdi-file-plus:before { - content: "\F751"; -} - -.mdi-file-powerpoint:before { - content: "\F227"; -} - -.mdi-file-powerpoint-box:before { - content: "\F228"; -} - -.mdi-file-presentation-box:before { - content: "\F229"; -} - -.mdi-file-restore:before { - content: "\F670"; -} - -.mdi-file-send:before { - content: "\F22A"; -} - -.mdi-file-tree:before { - content: "\F645"; -} - -.mdi-file-video:before { - content: "\F22B"; -} - -.mdi-file-word:before { - content: "\F22C"; -} - -.mdi-file-word-box:before { - content: "\F22D"; -} - -.mdi-file-xml:before { - content: "\F22E"; -} - -.mdi-film:before { - content: "\F22F"; -} - -.mdi-filmstrip:before { - content: "\F230"; -} - -.mdi-filmstrip-off:before { - content: "\F231"; -} - -.mdi-filter:before { - content: "\F232"; -} - -.mdi-filter-outline:before { - content: "\F233"; -} - -.mdi-filter-remove:before { - content: "\F234"; -} - -.mdi-filter-remove-outline:before { - content: "\F235"; -} - -.mdi-filter-variant:before { - content: "\F236"; -} - -.mdi-find-replace:before { - content: "\F6D3"; -} - -.mdi-fingerprint:before { - content: "\F237"; -} - -.mdi-fire:before { - content: "\F238"; -} - -.mdi-firefox:before { - content: "\F239"; -} - -.mdi-fish:before { - content: "\F23A"; -} - -.mdi-flag:before { - content: "\F23B"; -} - -.mdi-flag-checkered:before { - content: "\F23C"; -} - -.mdi-flag-outline:before { - content: "\F23D"; -} - -.mdi-flag-outline-variant:before { - content: "\F23E"; -} - -.mdi-flag-triangle:before { - content: "\F23F"; -} - -.mdi-flag-variant:before { - content: "\F240"; -} - -.mdi-flash:before { - content: "\F241"; -} - -.mdi-flash-auto:before { - content: "\F242"; -} - -.mdi-flash-off:before { - content: "\F243"; -} - -.mdi-flash-outline:before { - content: "\F6D4"; -} - -.mdi-flash-red-eye:before { - content: "\F67A"; -} - -.mdi-flashlight:before { - content: "\F244"; -} - -.mdi-flashlight-off:before { - content: "\F245"; -} - -.mdi-flask:before { - content: "\F093"; -} - -.mdi-flask-empty:before { - content: "\F094"; -} - -.mdi-flask-empty-outline:before { - content: "\F095"; -} - -.mdi-flask-outline:before { - content: "\F096"; -} - -.mdi-flattr:before { - content: "\F246"; -} - -.mdi-flip-to-back:before { - content: "\F247"; -} - -.mdi-flip-to-front:before { - content: "\F248"; -} - -.mdi-floppy:before { - content: "\F249"; -} - -.mdi-flower:before { - content: "\F24A"; -} - -.mdi-folder:before { - content: "\F24B"; -} - -.mdi-folder-account:before { - content: "\F24C"; -} - -.mdi-folder-download:before { - content: "\F24D"; -} - -.mdi-folder-google-drive:before { - content: "\F24E"; -} - -.mdi-folder-image:before { - content: "\F24F"; -} - -.mdi-folder-lock:before { - content: "\F250"; -} - -.mdi-folder-lock-open:before { - content: "\F251"; -} - -.mdi-folder-move:before { - content: "\F252"; -} - -.mdi-folder-multiple:before { - content: "\F253"; -} - -.mdi-folder-multiple-image:before { - content: "\F254"; -} - -.mdi-folder-multiple-outline:before { - content: "\F255"; -} - -.mdi-folder-open:before { - content: "\F76F"; -} - -.mdi-folder-outline:before { - content: "\F256"; -} - -.mdi-folder-plus:before { - content: "\F257"; -} - -.mdi-folder-remove:before { - content: "\F258"; -} - -.mdi-folder-star:before { - content: "\F69C"; -} - -.mdi-folder-upload:before { - content: "\F259"; -} - -.mdi-font-awesome:before { - content: "\F03A"; -} - -.mdi-food:before { - content: "\F25A"; -} - -.mdi-food-apple:before { - content: "\F25B"; -} - -.mdi-food-croissant:before { - content: "\F7C7"; -} - -.mdi-food-fork-drink:before { - content: "\F5F2"; -} - -.mdi-food-off:before { - content: "\F5F3"; -} - -.mdi-food-variant:before { - content: "\F25C"; -} - -.mdi-football:before { - content: "\F25D"; -} - -.mdi-football-australian:before { - content: "\F25E"; -} - -.mdi-football-helmet:before { - content: "\F25F"; -} - -.mdi-forklift:before { - content: "\F7C8"; -} - -.mdi-format-align-bottom:before { - content: "\F752"; -} - -.mdi-format-align-center:before { - content: "\F260"; -} - -.mdi-format-align-justify:before { - content: "\F261"; -} - -.mdi-format-align-left:before { - content: "\F262"; -} - -.mdi-format-align-middle:before { - content: "\F753"; -} - -.mdi-format-align-right:before { - content: "\F263"; -} - -.mdi-format-align-top:before { - content: "\F754"; -} - -.mdi-format-annotation-plus:before { - content: "\F646"; -} - -.mdi-format-bold:before { - content: "\F264"; -} - -.mdi-format-clear:before { - content: "\F265"; -} - -.mdi-format-color-fill:before { - content: "\F266"; -} - -.mdi-format-color-text:before { - content: "\F69D"; -} - -.mdi-format-float-center:before { - content: "\F267"; -} - -.mdi-format-float-left:before { - content: "\F268"; -} - -.mdi-format-float-none:before { - content: "\F269"; -} - -.mdi-format-float-right:before { - content: "\F26A"; -} - -.mdi-format-font:before { - content: "\F6D5"; -} - -.mdi-format-header-1:before { - content: "\F26B"; -} - -.mdi-format-header-2:before { - content: "\F26C"; -} - -.mdi-format-header-3:before { - content: "\F26D"; -} - -.mdi-format-header-4:before { - content: "\F26E"; -} - -.mdi-format-header-5:before { - content: "\F26F"; -} - -.mdi-format-header-6:before { - content: "\F270"; -} - -.mdi-format-header-decrease:before { - content: "\F271"; -} - -.mdi-format-header-equal:before { - content: "\F272"; -} - -.mdi-format-header-increase:before { - content: "\F273"; -} - -.mdi-format-header-pound:before { - content: "\F274"; -} - -.mdi-format-horizontal-align-center:before { - content: "\F61E"; -} - -.mdi-format-horizontal-align-left:before { - content: "\F61F"; -} - -.mdi-format-horizontal-align-right:before { - content: "\F620"; -} - -.mdi-format-indent-decrease:before { - content: "\F275"; -} - -.mdi-format-indent-increase:before { - content: "\F276"; -} - -.mdi-format-italic:before { - content: "\F277"; -} - -.mdi-format-line-spacing:before { - content: "\F278"; -} - -.mdi-format-line-style:before { - content: "\F5C8"; -} - -.mdi-format-line-weight:before { - content: "\F5C9"; -} - -.mdi-format-list-bulleted:before { - content: "\F279"; -} - -.mdi-format-list-bulleted-type:before { - content: "\F27A"; -} - -.mdi-format-list-checks:before { - content: "\F755"; -} - -.mdi-format-list-numbers:before { - content: "\F27B"; -} - -.mdi-format-page-break:before { - content: "\F6D6"; -} - -.mdi-format-paint:before { - content: "\F27C"; -} - -.mdi-format-paragraph:before { - content: "\F27D"; -} - -.mdi-format-pilcrow:before { - content: "\F6D7"; -} - -.mdi-format-quote-close:before { - content: "\F27E"; -} - -.mdi-format-quote-open:before { - content: "\F756"; -} - -.mdi-format-rotate-90:before { - content: "\F6A9"; -} - -.mdi-format-section:before { - content: "\F69E"; -} - -.mdi-format-size:before { - content: "\F27F"; -} - -.mdi-format-strikethrough:before { - content: "\F280"; -} - -.mdi-format-strikethrough-variant:before { - content: "\F281"; -} - -.mdi-format-subscript:before { - content: "\F282"; -} - -.mdi-format-superscript:before { - content: "\F283"; -} - -.mdi-format-text:before { - content: "\F284"; -} - -.mdi-format-textdirection-l-to-r:before { - content: "\F285"; -} - -.mdi-format-textdirection-r-to-l:before { - content: "\F286"; -} - -.mdi-format-title:before { - content: "\F5F4"; -} - -.mdi-format-underline:before { - content: "\F287"; -} - -.mdi-format-vertical-align-bottom:before { - content: "\F621"; -} - -.mdi-format-vertical-align-center:before { - content: "\F622"; -} - -.mdi-format-vertical-align-top:before { - content: "\F623"; -} - -.mdi-format-wrap-inline:before { - content: "\F288"; -} - -.mdi-format-wrap-square:before { - content: "\F289"; -} - -.mdi-format-wrap-tight:before { - content: "\F28A"; -} - -.mdi-format-wrap-top-bottom:before { - content: "\F28B"; -} - -.mdi-forum:before { - content: "\F28C"; -} - -.mdi-forward:before { - content: "\F28D"; -} - -.mdi-foursquare:before { - content: "\F28E"; -} - -.mdi-fridge:before { - content: "\F28F"; -} - -.mdi-fridge-filled:before { - content: "\F290"; -} - -.mdi-fridge-filled-bottom:before { - content: "\F291"; -} - -.mdi-fridge-filled-top:before { - content: "\F292"; -} - -.mdi-fuel:before { - content: "\F7C9"; -} - -.mdi-fullscreen:before { - content: "\F293"; -} - -.mdi-fullscreen-exit:before { - content: "\F294"; -} - -.mdi-function:before { - content: "\F295"; -} - -.mdi-gamepad:before { - content: "\F296"; -} - -.mdi-gamepad-variant:before { - content: "\F297"; -} - -.mdi-garage:before { - content: "\F6D8"; -} - -.mdi-garage-open:before { - content: "\F6D9"; -} - -.mdi-gas-cylinder:before { - content: "\F647"; -} - -.mdi-gas-station:before { - content: "\F298"; -} - -.mdi-gate:before { - content: "\F299"; -} - -.mdi-gauge:before { - content: "\F29A"; -} - -.mdi-gavel:before { - content: "\F29B"; -} - -.mdi-gender-female:before { - content: "\F29C"; -} - -.mdi-gender-male:before { - content: "\F29D"; -} - -.mdi-gender-male-female:before { - content: "\F29E"; -} - -.mdi-gender-transgender:before { - content: "\F29F"; -} - -.mdi-gesture:before { - content: "\F7CA"; -} - -.mdi-gesture-double-tap:before { - content: "\F73B"; -} - -.mdi-gesture-swipe-down:before { - content: "\F73C"; -} - -.mdi-gesture-swipe-left:before { - content: "\F73D"; -} - -.mdi-gesture-swipe-right:before { - content: "\F73E"; -} - -.mdi-gesture-swipe-up:before { - content: "\F73F"; -} - -.mdi-gesture-tap:before { - content: "\F740"; -} - -.mdi-gesture-two-double-tap:before { - content: "\F741"; -} - -.mdi-gesture-two-tap:before { - content: "\F742"; -} - -.mdi-ghost:before { - content: "\F2A0"; -} - -.mdi-gift:before { - content: "\F2A1"; -} - -.mdi-git:before { - content: "\F2A2"; -} - -.mdi-github-box:before { - content: "\F2A3"; -} - -.mdi-github-circle:before { - content: "\F2A4"; -} - -.mdi-github-face:before { - content: "\F6DA"; -} - -.mdi-glass-flute:before { - content: "\F2A5"; -} - -.mdi-glass-mug:before { - content: "\F2A6"; -} - -.mdi-glass-stange:before { - content: "\F2A7"; -} - -.mdi-glass-tulip:before { - content: "\F2A8"; -} - -.mdi-glassdoor:before { - content: "\F2A9"; -} - -.mdi-glasses:before { - content: "\F2AA"; -} - -.mdi-gmail:before { - content: "\F2AB"; -} - -.mdi-gnome:before { - content: "\F2AC"; -} - -.mdi-gondola:before { - content: "\F685"; -} - -.mdi-google:before { - content: "\F2AD"; -} - -.mdi-google-analytics:before { - content: "\F7CB"; -} - -.mdi-google-assistant:before { - content: "\F7CC"; -} - -.mdi-google-cardboard:before { - content: "\F2AE"; -} - -.mdi-google-chrome:before { - content: "\F2AF"; -} - -.mdi-google-circles:before { - content: "\F2B0"; -} - -.mdi-google-circles-communities:before { - content: "\F2B1"; -} - -.mdi-google-circles-extended:before { - content: "\F2B2"; -} - -.mdi-google-circles-group:before { - content: "\F2B3"; -} - -.mdi-google-controller:before { - content: "\F2B4"; -} - -.mdi-google-controller-off:before { - content: "\F2B5"; -} - -.mdi-google-drive:before { - content: "\F2B6"; -} - -.mdi-google-earth:before { - content: "\F2B7"; -} - -.mdi-google-glass:before { - content: "\F2B8"; -} - -.mdi-google-keep:before { - content: "\F6DB"; -} - -.mdi-google-maps:before { - content: "\F5F5"; -} - -.mdi-google-nearby:before { - content: "\F2B9"; -} - -.mdi-google-pages:before { - content: "\F2BA"; -} - -.mdi-google-photos:before { - content: "\F6DC"; -} - -.mdi-google-physical-web:before { - content: "\F2BB"; -} - -.mdi-google-play:before { - content: "\F2BC"; -} - -.mdi-google-plus:before { - content: "\F2BD"; -} - -.mdi-google-plus-box:before { - content: "\F2BE"; -} - -.mdi-google-translate:before { - content: "\F2BF"; -} - -.mdi-google-wallet:before { - content: "\F2C0"; -} - -.mdi-gradient:before { - content: "\F69F"; -} - -.mdi-grease-pencil:before { - content: "\F648"; -} - -.mdi-grid:before { - content: "\F2C1"; -} - -.mdi-grid-large:before { - content: "\F757"; -} - -.mdi-grid-off:before { - content: "\F2C2"; -} - -.mdi-group:before { - content: "\F2C3"; -} - -.mdi-guitar-acoustic:before { - content: "\F770"; -} - -.mdi-guitar-electric:before { - content: "\F2C4"; -} - -.mdi-guitar-pick:before { - content: "\F2C5"; -} - -.mdi-guitar-pick-outline:before { - content: "\F2C6"; -} - -.mdi-hackernews:before { - content: "\F624"; -} - -.mdi-hamburger:before { - content: "\F684"; -} - -.mdi-hand-pointing-right:before { - content: "\F2C7"; -} - -.mdi-hanger:before { - content: "\F2C8"; -} - -.mdi-hangouts:before { - content: "\F2C9"; -} - -.mdi-harddisk:before { - content: "\F2CA"; -} - -.mdi-headphones:before { - content: "\F2CB"; -} - -.mdi-headphones-box:before { - content: "\F2CC"; -} - -.mdi-headphones-off:before { - content: "\F7CD"; -} - -.mdi-headphones-settings:before { - content: "\F2CD"; -} - -.mdi-headset:before { - content: "\F2CE"; -} - -.mdi-headset-dock:before { - content: "\F2CF"; -} - -.mdi-headset-off:before { - content: "\F2D0"; -} - -.mdi-heart:before { - content: "\F2D1"; -} - -.mdi-heart-box:before { - content: "\F2D2"; -} - -.mdi-heart-box-outline:before { - content: "\F2D3"; -} - -.mdi-heart-broken:before { - content: "\F2D4"; -} - -.mdi-heart-half:before { - content: "\F6DE"; -} - -.mdi-heart-half-full:before { - content: "\F6DD"; -} - -.mdi-heart-half-outline:before { - content: "\F6DF"; -} - -.mdi-heart-off:before { - content: "\F758"; -} - -.mdi-heart-outline:before { - content: "\F2D5"; -} - -.mdi-heart-pulse:before { - content: "\F5F6"; -} - -.mdi-help:before { - content: "\F2D6"; -} - -.mdi-help-box:before { - content: "\F78A"; -} - -.mdi-help-circle:before { - content: "\F2D7"; -} - -.mdi-help-circle-outline:before { - content: "\F625"; -} - -.mdi-help-network:before { - content: "\F6F4"; -} - -.mdi-hexagon:before { - content: "\F2D8"; -} - -.mdi-hexagon-multiple:before { - content: "\F6E0"; -} - -.mdi-hexagon-outline:before { - content: "\F2D9"; -} - -.mdi-high-definition:before { - content: "\F7CE"; -} - -.mdi-highway:before { - content: "\F5F7"; -} - -.mdi-history:before { - content: "\F2DA"; -} - -.mdi-hololens:before { - content: "\F2DB"; -} - -.mdi-home:before { - content: "\F2DC"; -} - -.mdi-home-assistant:before { - content: "\F7CF"; -} - -.mdi-home-automation:before { - content: "\F7D0"; -} - -.mdi-home-circle:before { - content: "\F7D1"; -} - -.mdi-home-map-marker:before { - content: "\F5F8"; -} - -.mdi-home-modern:before { - content: "\F2DD"; -} - -.mdi-home-outline:before { - content: "\F6A0"; -} - -.mdi-home-variant:before { - content: "\F2DE"; -} - -.mdi-hook:before { - content: "\F6E1"; -} - -.mdi-hook-off:before { - content: "\F6E2"; -} - -.mdi-hops:before { - content: "\F2DF"; -} - -.mdi-hospital:before { - content: "\F2E0"; -} - -.mdi-hospital-building:before { - content: "\F2E1"; -} - -.mdi-hospital-marker:before { - content: "\F2E2"; -} - -.mdi-hotel:before { - content: "\F2E3"; -} - -.mdi-houzz:before { - content: "\F2E4"; -} - -.mdi-houzz-box:before { - content: "\F2E5"; -} - -.mdi-human:before { - content: "\F2E6"; -} - -.mdi-human-child:before { - content: "\F2E7"; -} - -.mdi-human-female:before { - content: "\F649"; -} - -.mdi-human-greeting:before { - content: "\F64A"; -} - -.mdi-human-handsdown:before { - content: "\F64B"; -} - -.mdi-human-handsup:before { - content: "\F64C"; -} - -.mdi-human-male:before { - content: "\F64D"; -} - -.mdi-human-male-female:before { - content: "\F2E8"; -} - -.mdi-human-pregnant:before { - content: "\F5CF"; -} - -.mdi-humble-bundle:before { - content: "\F743"; -} - -.mdi-image:before { - content: "\F2E9"; -} - -.mdi-image-album:before { - content: "\F2EA"; -} - -.mdi-image-area:before { - content: "\F2EB"; -} - -.mdi-image-area-close:before { - content: "\F2EC"; -} - -.mdi-image-broken:before { - content: "\F2ED"; -} - -.mdi-image-broken-variant:before { - content: "\F2EE"; -} - -.mdi-image-filter:before { - content: "\F2EF"; -} - -.mdi-image-filter-black-white:before { - content: "\F2F0"; -} - -.mdi-image-filter-center-focus:before { - content: "\F2F1"; -} - -.mdi-image-filter-center-focus-weak:before { - content: "\F2F2"; -} - -.mdi-image-filter-drama:before { - content: "\F2F3"; -} - -.mdi-image-filter-frames:before { - content: "\F2F4"; -} - -.mdi-image-filter-hdr:before { - content: "\F2F5"; -} - -.mdi-image-filter-none:before { - content: "\F2F6"; -} - -.mdi-image-filter-tilt-shift:before { - content: "\F2F7"; -} - -.mdi-image-filter-vintage:before { - content: "\F2F8"; -} - -.mdi-image-multiple:before { - content: "\F2F9"; -} - -.mdi-import:before { - content: "\F2FA"; -} - -.mdi-inbox:before { - content: "\F686"; -} - -.mdi-inbox-arrow-down:before { - content: "\F2FB"; -} - -.mdi-inbox-arrow-up:before { - content: "\F3D1"; -} - -.mdi-incognito:before { - content: "\F5F9"; -} - -.mdi-infinity:before { - content: "\F6E3"; -} - -.mdi-information:before { - content: "\F2FC"; -} - -.mdi-information-outline:before { - content: "\F2FD"; -} - -.mdi-information-variant:before { - content: "\F64E"; -} - -.mdi-instagram:before { - content: "\F2FE"; -} - -.mdi-instapaper:before { - content: "\F2FF"; -} - -.mdi-internet-explorer:before { - content: "\F300"; -} - -.mdi-invert-colors:before { - content: "\F301"; -} - -.mdi-itunes:before { - content: "\F676"; -} - -.mdi-jeepney:before { - content: "\F302"; -} - -.mdi-jira:before { - content: "\F303"; -} - -.mdi-jsfiddle:before { - content: "\F304"; -} - -.mdi-json:before { - content: "\F626"; -} - -.mdi-keg:before { - content: "\F305"; -} - -.mdi-kettle:before { - content: "\F5FA"; -} - -.mdi-key:before { - content: "\F306"; -} - -.mdi-key-change:before { - content: "\F307"; -} - -.mdi-key-minus:before { - content: "\F308"; -} - -.mdi-key-plus:before { - content: "\F309"; -} - -.mdi-key-remove:before { - content: "\F30A"; -} - -.mdi-key-variant:before { - content: "\F30B"; -} - -.mdi-keyboard:before { - content: "\F30C"; -} - -.mdi-keyboard-backspace:before { - content: "\F30D"; -} - -.mdi-keyboard-caps:before { - content: "\F30E"; -} - -.mdi-keyboard-close:before { - content: "\F30F"; -} - -.mdi-keyboard-off:before { - content: "\F310"; -} - -.mdi-keyboard-return:before { - content: "\F311"; -} - -.mdi-keyboard-tab:before { - content: "\F312"; -} - -.mdi-keyboard-variant:before { - content: "\F313"; -} - -.mdi-kickstarter:before { - content: "\F744"; -} - -.mdi-kodi:before { - content: "\F314"; -} - -.mdi-label:before { - content: "\F315"; -} - -.mdi-label-outline:before { - content: "\F316"; -} - -.mdi-lambda:before { - content: "\F627"; -} - -.mdi-lamp:before { - content: "\F6B4"; -} - -.mdi-lan:before { - content: "\F317"; -} - -.mdi-lan-connect:before { - content: "\F318"; -} - -.mdi-lan-disconnect:before { - content: "\F319"; -} - -.mdi-lan-pending:before { - content: "\F31A"; -} - -.mdi-language-c:before { - content: "\F671"; -} - -.mdi-language-cpp:before { - content: "\F672"; -} - -.mdi-language-csharp:before { - content: "\F31B"; -} - -.mdi-language-css3:before { - content: "\F31C"; -} - -.mdi-language-go:before { - content: "\F7D2"; -} - -.mdi-language-html5:before { - content: "\F31D"; -} - -.mdi-language-javascript:before { - content: "\F31E"; -} - -.mdi-language-php:before { - content: "\F31F"; -} - -.mdi-language-python:before { - content: "\F320"; -} - -.mdi-language-python-text:before { - content: "\F321"; -} - -.mdi-language-r:before { - content: "\F7D3"; -} - -.mdi-language-swift:before { - content: "\F6E4"; -} - -.mdi-language-typescript:before { - content: "\F6E5"; -} - -.mdi-laptop:before { - content: "\F322"; -} - -.mdi-laptop-chromebook:before { - content: "\F323"; -} - -.mdi-laptop-mac:before { - content: "\F324"; -} - -.mdi-laptop-off:before { - content: "\F6E6"; -} - -.mdi-laptop-windows:before { - content: "\F325"; -} - -.mdi-lastfm:before { - content: "\F326"; -} - -.mdi-launch:before { - content: "\F327"; -} - -.mdi-lava-lamp:before { - content: "\F7D4"; -} - -.mdi-layers:before { - content: "\F328"; -} - -.mdi-layers-off:before { - content: "\F329"; -} - -.mdi-lead-pencil:before { - content: "\F64F"; -} - -.mdi-leaf:before { - content: "\F32A"; -} - -.mdi-led-off:before { - content: "\F32B"; -} - -.mdi-led-on:before { - content: "\F32C"; -} - -.mdi-led-outline:before { - content: "\F32D"; -} - -.mdi-led-strip:before { - content: "\F7D5"; -} - -.mdi-led-variant-off:before { - content: "\F32E"; -} - -.mdi-led-variant-on:before { - content: "\F32F"; -} - -.mdi-led-variant-outline:before { - content: "\F330"; -} - -.mdi-library:before { - content: "\F331"; -} - -.mdi-library-books:before { - content: "\F332"; -} - -.mdi-library-music:before { - content: "\F333"; -} - -.mdi-library-plus:before { - content: "\F334"; -} - -.mdi-lightbulb:before { - content: "\F335"; -} - -.mdi-lightbulb-on:before { - content: "\F6E7"; -} - -.mdi-lightbulb-on-outline:before { - content: "\F6E8"; -} - -.mdi-lightbulb-outline:before { - content: "\F336"; -} - -.mdi-link:before { - content: "\F337"; -} - -.mdi-link-off:before { - content: "\F338"; -} - -.mdi-link-variant:before { - content: "\F339"; -} - -.mdi-link-variant-off:before { - content: "\F33A"; -} - -.mdi-linkedin:before { - content: "\F33B"; -} - -.mdi-linkedin-box:before { - content: "\F33C"; -} - -.mdi-linux:before { - content: "\F33D"; -} - -.mdi-loading:before { - content: "\F771"; -} - -.mdi-lock:before { - content: "\F33E"; -} - -.mdi-lock-open:before { - content: "\F33F"; -} - -.mdi-lock-open-outline:before { - content: "\F340"; -} - -.mdi-lock-outline:before { - content: "\F341"; -} - -.mdi-lock-pattern:before { - content: "\F6E9"; -} - -.mdi-lock-plus:before { - content: "\F5FB"; -} - -.mdi-lock-reset:before { - content: "\F772"; -} - -.mdi-locker:before { - content: "\F7D6"; -} - -.mdi-locker-multiple:before { - content: "\F7D7"; -} - -.mdi-login:before { - content: "\F342"; -} - -.mdi-login-variant:before { - content: "\F5FC"; -} - -.mdi-logout:before { - content: "\F343"; -} - -.mdi-logout-variant:before { - content: "\F5FD"; -} - -.mdi-looks:before { - content: "\F344"; -} - -.mdi-loop:before { - content: "\F6EA"; -} - -.mdi-loupe:before { - content: "\F345"; -} - -.mdi-lumx:before { - content: "\F346"; -} - -.mdi-magnet:before { - content: "\F347"; -} - -.mdi-magnet-on:before { - content: "\F348"; -} - -.mdi-magnify:before { - content: "\F349"; -} - -.mdi-magnify-minus:before { - content: "\F34A"; -} - -.mdi-magnify-minus-outline:before { - content: "\F6EB"; -} - -.mdi-magnify-plus:before { - content: "\F34B"; -} - -.mdi-magnify-plus-outline:before { - content: "\F6EC"; -} - -.mdi-mail-ru:before { - content: "\F34C"; -} - -.mdi-mailbox:before { - content: "\F6ED"; -} - -.mdi-map:before { - content: "\F34D"; -} - -.mdi-map-marker:before { - content: "\F34E"; -} - -.mdi-map-marker-circle:before { - content: "\F34F"; -} - -.mdi-map-marker-minus:before { - content: "\F650"; -} - -.mdi-map-marker-multiple:before { - content: "\F350"; -} - -.mdi-map-marker-off:before { - content: "\F351"; -} - -.mdi-map-marker-outline:before { - content: "\F7D8"; -} - -.mdi-map-marker-plus:before { - content: "\F651"; -} - -.mdi-map-marker-radius:before { - content: "\F352"; -} - -.mdi-margin:before { - content: "\F353"; -} - -.mdi-markdown:before { - content: "\F354"; -} - -.mdi-marker:before { - content: "\F652"; -} - -.mdi-marker-check:before { - content: "\F355"; -} - -.mdi-martini:before { - content: "\F356"; -} - -.mdi-material-ui:before { - content: "\F357"; -} - -.mdi-math-compass:before { - content: "\F358"; -} - -.mdi-matrix:before { - content: "\F628"; -} - -.mdi-maxcdn:before { - content: "\F359"; -} - -.mdi-medical-bag:before { - content: "\F6EE"; -} - -.mdi-medium:before { - content: "\F35A"; -} - -.mdi-memory:before { - content: "\F35B"; -} - -.mdi-menu:before { - content: "\F35C"; -} - -.mdi-menu-down:before { - content: "\F35D"; -} - -.mdi-menu-down-outline:before { - content: "\F6B5"; -} - -.mdi-menu-left:before { - content: "\F35E"; -} - -.mdi-menu-right:before { - content: "\F35F"; -} - -.mdi-menu-up:before { - content: "\F360"; -} - -.mdi-menu-up-outline:before { - content: "\F6B6"; -} - -.mdi-message:before { - content: "\F361"; -} - -.mdi-message-alert:before { - content: "\F362"; -} - -.mdi-message-bulleted:before { - content: "\F6A1"; -} - -.mdi-message-bulleted-off:before { - content: "\F6A2"; -} - -.mdi-message-draw:before { - content: "\F363"; -} - -.mdi-message-image:before { - content: "\F364"; -} - -.mdi-message-outline:before { - content: "\F365"; -} - -.mdi-message-plus:before { - content: "\F653"; -} - -.mdi-message-processing:before { - content: "\F366"; -} - -.mdi-message-reply:before { - content: "\F367"; -} - -.mdi-message-reply-text:before { - content: "\F368"; -} - -.mdi-message-settings:before { - content: "\F6EF"; -} - -.mdi-message-settings-variant:before { - content: "\F6F0"; -} - -.mdi-message-text:before { - content: "\F369"; -} - -.mdi-message-text-outline:before { - content: "\F36A"; -} - -.mdi-message-video:before { - content: "\F36B"; -} - -.mdi-meteor:before { - content: "\F629"; -} - -.mdi-metronome:before { - content: "\F7D9"; -} - -.mdi-metronome-tick:before { - content: "\F7DA"; -} - -.mdi-micro-sd:before { - content: "\F7DB"; -} - -.mdi-microphone:before { - content: "\F36C"; -} - -.mdi-microphone-off:before { - content: "\F36D"; -} - -.mdi-microphone-outline:before { - content: "\F36E"; -} - -.mdi-microphone-settings:before { - content: "\F36F"; -} - -.mdi-microphone-variant:before { - content: "\F370"; -} - -.mdi-microphone-variant-off:before { - content: "\F371"; -} - -.mdi-microscope:before { - content: "\F654"; -} - -.mdi-microsoft:before { - content: "\F372"; -} - -.mdi-minecraft:before { - content: "\F373"; -} - -.mdi-minus:before { - content: "\F374"; -} - -.mdi-minus-box:before { - content: "\F375"; -} - -.mdi-minus-box-outline:before { - content: "\F6F1"; -} - -.mdi-minus-circle:before { - content: "\F376"; -} - -.mdi-minus-circle-outline:before { - content: "\F377"; -} - -.mdi-minus-network:before { - content: "\F378"; -} - -.mdi-mixcloud:before { - content: "\F62A"; -} - -.mdi-mixer:before { - content: "\F7DC"; -} - -.mdi-monitor:before { - content: "\F379"; -} - -.mdi-monitor-multiple:before { - content: "\F37A"; -} - -.mdi-more:before { - content: "\F37B"; -} - -.mdi-motorbike:before { - content: "\F37C"; -} - -.mdi-mouse:before { - content: "\F37D"; -} - -.mdi-mouse-off:before { - content: "\F37E"; -} - -.mdi-mouse-variant:before { - content: "\F37F"; -} - -.mdi-mouse-variant-off:before { - content: "\F380"; -} - -.mdi-move-resize:before { - content: "\F655"; -} - -.mdi-move-resize-variant:before { - content: "\F656"; -} - -.mdi-movie:before { - content: "\F381"; -} - -.mdi-movie-roll:before { - content: "\F7DD"; -} - -.mdi-multiplication:before { - content: "\F382"; -} - -.mdi-multiplication-box:before { - content: "\F383"; -} - -.mdi-mushroom:before { - content: "\F7DE"; -} - -.mdi-mushroom-outline:before { - content: "\F7DF"; -} - -.mdi-music:before { - content: "\F759"; -} - -.mdi-music-box:before { - content: "\F384"; -} - -.mdi-music-box-outline:before { - content: "\F385"; -} - -.mdi-music-circle:before { - content: "\F386"; -} - -.mdi-music-note:before { - content: "\F387"; -} - -.mdi-music-note-bluetooth:before { - content: "\F5FE"; -} - -.mdi-music-note-bluetooth-off:before { - content: "\F5FF"; -} - -.mdi-music-note-eighth:before { - content: "\F388"; -} - -.mdi-music-note-half:before { - content: "\F389"; -} - -.mdi-music-note-off:before { - content: "\F38A"; -} - -.mdi-music-note-quarter:before { - content: "\F38B"; -} - -.mdi-music-note-sixteenth:before { - content: "\F38C"; -} - -.mdi-music-note-whole:before { - content: "\F38D"; -} - -.mdi-music-off:before { - content: "\F75A"; -} - -.mdi-nature:before { - content: "\F38E"; -} - -.mdi-nature-people:before { - content: "\F38F"; -} - -.mdi-navigation:before { - content: "\F390"; -} - -.mdi-near-me:before { - content: "\F5CD"; -} - -.mdi-needle:before { - content: "\F391"; -} - -.mdi-nest-protect:before { - content: "\F392"; -} - -.mdi-nest-thermostat:before { - content: "\F393"; -} - -.mdi-netflix:before { - content: "\F745"; -} - -.mdi-network:before { - content: "\F6F2"; -} - -.mdi-new-box:before { - content: "\F394"; -} - -.mdi-newspaper:before { - content: "\F395"; -} - -.mdi-nfc:before { - content: "\F396"; -} - -.mdi-nfc-tap:before { - content: "\F397"; -} - -.mdi-nfc-variant:before { - content: "\F398"; -} - -.mdi-ninja:before { - content: "\F773"; -} - -.mdi-nintendo-switch:before { - content: "\F7E0"; -} - -.mdi-nodejs:before { - content: "\F399"; -} - -.mdi-note:before { - content: "\F39A"; -} - -.mdi-note-multiple:before { - content: "\F6B7"; -} - -.mdi-note-multiple-outline:before { - content: "\F6B8"; -} - -.mdi-note-outline:before { - content: "\F39B"; -} - -.mdi-note-plus:before { - content: "\F39C"; -} - -.mdi-note-plus-outline:before { - content: "\F39D"; -} - -.mdi-note-text:before { - content: "\F39E"; -} - -.mdi-notification-clear-all:before { - content: "\F39F"; -} - -.mdi-npm:before { - content: "\F6F6"; -} - -.mdi-nuke:before { - content: "\F6A3"; -} - -.mdi-null:before { - content: "\F7E1"; -} - -.mdi-numeric:before { - content: "\F3A0"; -} - -.mdi-numeric-0-box:before { - content: "\F3A1"; -} - -.mdi-numeric-0-box-multiple-outline:before { - content: "\F3A2"; -} - -.mdi-numeric-0-box-outline:before { - content: "\F3A3"; -} - -.mdi-numeric-1-box:before { - content: "\F3A4"; -} - -.mdi-numeric-1-box-multiple-outline:before { - content: "\F3A5"; -} - -.mdi-numeric-1-box-outline:before { - content: "\F3A6"; -} - -.mdi-numeric-2-box:before { - content: "\F3A7"; -} - -.mdi-numeric-2-box-multiple-outline:before { - content: "\F3A8"; -} - -.mdi-numeric-2-box-outline:before { - content: "\F3A9"; -} - -.mdi-numeric-3-box:before { - content: "\F3AA"; -} - -.mdi-numeric-3-box-multiple-outline:before { - content: "\F3AB"; -} - -.mdi-numeric-3-box-outline:before { - content: "\F3AC"; -} - -.mdi-numeric-4-box:before { - content: "\F3AD"; -} - -.mdi-numeric-4-box-multiple-outline:before { - content: "\F3AE"; -} - -.mdi-numeric-4-box-outline:before { - content: "\F3AF"; -} - -.mdi-numeric-5-box:before { - content: "\F3B0"; -} - -.mdi-numeric-5-box-multiple-outline:before { - content: "\F3B1"; -} - -.mdi-numeric-5-box-outline:before { - content: "\F3B2"; -} - -.mdi-numeric-6-box:before { - content: "\F3B3"; -} - -.mdi-numeric-6-box-multiple-outline:before { - content: "\F3B4"; -} - -.mdi-numeric-6-box-outline:before { - content: "\F3B5"; -} - -.mdi-numeric-7-box:before { - content: "\F3B6"; -} - -.mdi-numeric-7-box-multiple-outline:before { - content: "\F3B7"; -} - -.mdi-numeric-7-box-outline:before { - content: "\F3B8"; -} - -.mdi-numeric-8-box:before { - content: "\F3B9"; -} - -.mdi-numeric-8-box-multiple-outline:before { - content: "\F3BA"; -} - -.mdi-numeric-8-box-outline:before { - content: "\F3BB"; -} - -.mdi-numeric-9-box:before { - content: "\F3BC"; -} - -.mdi-numeric-9-box-multiple-outline:before { - content: "\F3BD"; -} - -.mdi-numeric-9-box-outline:before { - content: "\F3BE"; -} - -.mdi-numeric-9-plus-box:before { - content: "\F3BF"; -} - -.mdi-numeric-9-plus-box-multiple-outline:before { - content: "\F3C0"; -} - -.mdi-numeric-9-plus-box-outline:before { - content: "\F3C1"; -} - -.mdi-nut:before { - content: "\F6F7"; -} - -.mdi-nutrition:before { - content: "\F3C2"; -} - -.mdi-oar:before { - content: "\F67B"; -} - -.mdi-octagon:before { - content: "\F3C3"; -} - -.mdi-octagon-outline:before { - content: "\F3C4"; -} - -.mdi-octagram:before { - content: "\F6F8"; -} - -.mdi-octagram-outline:before { - content: "\F774"; -} - -.mdi-odnoklassniki:before { - content: "\F3C5"; -} - -.mdi-office:before { - content: "\F3C6"; -} - -.mdi-oil:before { - content: "\F3C7"; -} - -.mdi-oil-temperature:before { - content: "\F3C8"; -} - -.mdi-omega:before { - content: "\F3C9"; -} - -.mdi-onedrive:before { - content: "\F3CA"; -} - -.mdi-onenote:before { - content: "\F746"; -} - -.mdi-opacity:before { - content: "\F5CC"; -} - -.mdi-open-in-app:before { - content: "\F3CB"; -} - -.mdi-open-in-new:before { - content: "\F3CC"; -} - -.mdi-openid:before { - content: "\F3CD"; -} - -.mdi-opera:before { - content: "\F3CE"; -} - -.mdi-orbit:before { - content: "\F018"; -} - -.mdi-ornament:before { - content: "\F3CF"; -} - -.mdi-ornament-variant:before { - content: "\F3D0"; -} - -.mdi-owl:before { - content: "\F3D2"; -} - -.mdi-package:before { - content: "\F3D3"; -} - -.mdi-package-down:before { - content: "\F3D4"; -} - -.mdi-package-up:before { - content: "\F3D5"; -} - -.mdi-package-variant:before { - content: "\F3D6"; -} - -.mdi-package-variant-closed:before { - content: "\F3D7"; -} - -.mdi-page-first:before { - content: "\F600"; -} - -.mdi-page-last:before { - content: "\F601"; -} - -.mdi-page-layout-body:before { - content: "\F6F9"; -} - -.mdi-page-layout-footer:before { - content: "\F6FA"; -} - -.mdi-page-layout-header:before { - content: "\F6FB"; -} - -.mdi-page-layout-sidebar-left:before { - content: "\F6FC"; -} - -.mdi-page-layout-sidebar-right:before { - content: "\F6FD"; -} - -.mdi-palette:before { - content: "\F3D8"; -} - -.mdi-palette-advanced:before { - content: "\F3D9"; -} - -.mdi-panda:before { - content: "\F3DA"; -} - -.mdi-pandora:before { - content: "\F3DB"; -} - -.mdi-panorama:before { - content: "\F3DC"; -} - -.mdi-panorama-fisheye:before { - content: "\F3DD"; -} - -.mdi-panorama-horizontal:before { - content: "\F3DE"; -} - -.mdi-panorama-vertical:before { - content: "\F3DF"; -} - -.mdi-panorama-wide-angle:before { - content: "\F3E0"; -} - -.mdi-paper-cut-vertical:before { - content: "\F3E1"; -} - -.mdi-paperclip:before { - content: "\F3E2"; -} - -.mdi-parking:before { - content: "\F3E3"; -} - -.mdi-passport:before { - content: "\F7E2"; -} - -.mdi-pause:before { - content: "\F3E4"; -} - -.mdi-pause-circle:before { - content: "\F3E5"; -} - -.mdi-pause-circle-outline:before { - content: "\F3E6"; -} - -.mdi-pause-octagon:before { - content: "\F3E7"; -} - -.mdi-pause-octagon-outline:before { - content: "\F3E8"; -} - -.mdi-paw:before { - content: "\F3E9"; -} - -.mdi-paw-off:before { - content: "\F657"; -} - -.mdi-pen:before { - content: "\F3EA"; -} - -.mdi-pencil:before { - content: "\F3EB"; -} - -.mdi-pencil-box:before { - content: "\F3EC"; -} - -.mdi-pencil-box-outline:before { - content: "\F3ED"; -} - -.mdi-pencil-circle:before { - content: "\F6FE"; -} - -.mdi-pencil-circle-outline:before { - content: "\F775"; -} - -.mdi-pencil-lock:before { - content: "\F3EE"; -} - -.mdi-pencil-off:before { - content: "\F3EF"; -} - -.mdi-pentagon:before { - content: "\F6FF"; -} - -.mdi-pentagon-outline:before { - content: "\F700"; -} - -.mdi-percent:before { - content: "\F3F0"; -} - -.mdi-periodic-table-co2:before { - content: "\F7E3"; -} - -.mdi-periscope:before { - content: "\F747"; -} - -.mdi-pharmacy:before { - content: "\F3F1"; -} - -.mdi-phone:before { - content: "\F3F2"; -} - -.mdi-phone-bluetooth:before { - content: "\F3F3"; -} - -.mdi-phone-classic:before { - content: "\F602"; -} - -.mdi-phone-forward:before { - content: "\F3F4"; -} - -.mdi-phone-hangup:before { - content: "\F3F5"; -} - -.mdi-phone-in-talk:before { - content: "\F3F6"; -} - -.mdi-phone-incoming:before { - content: "\F3F7"; -} - -.mdi-phone-locked:before { - content: "\F3F8"; -} - -.mdi-phone-log:before { - content: "\F3F9"; -} - -.mdi-phone-minus:before { - content: "\F658"; -} - -.mdi-phone-missed:before { - content: "\F3FA"; -} - -.mdi-phone-outgoing:before { - content: "\F3FB"; -} - -.mdi-phone-paused:before { - content: "\F3FC"; -} - -.mdi-phone-plus:before { - content: "\F659"; -} - -.mdi-phone-settings:before { - content: "\F3FD"; -} - -.mdi-phone-voip:before { - content: "\F3FE"; -} - -.mdi-pi:before { - content: "\F3FF"; -} - -.mdi-pi-box:before { - content: "\F400"; -} - -.mdi-piano:before { - content: "\F67C"; -} - -.mdi-pig:before { - content: "\F401"; -} - -.mdi-pill:before { - content: "\F402"; -} - -.mdi-pillar:before { - content: "\F701"; -} - -.mdi-pin:before { - content: "\F403"; -} - -.mdi-pin-off:before { - content: "\F404"; -} - -.mdi-pine-tree:before { - content: "\F405"; -} - -.mdi-pine-tree-box:before { - content: "\F406"; -} - -.mdi-pinterest:before { - content: "\F407"; -} - -.mdi-pinterest-box:before { - content: "\F408"; -} - -.mdi-pipe:before { - content: "\F7E4"; -} - -.mdi-pipe-disconnected:before { - content: "\F7E5"; -} - -.mdi-pistol:before { - content: "\F702"; -} - -.mdi-pizza:before { - content: "\F409"; -} - -.mdi-plane-shield:before { - content: "\F6BA"; -} - -.mdi-play:before { - content: "\F40A"; -} - -.mdi-play-box-outline:before { - content: "\F40B"; -} - -.mdi-play-circle:before { - content: "\F40C"; -} - -.mdi-play-circle-outline:before { - content: "\F40D"; -} - -.mdi-play-pause:before { - content: "\F40E"; -} - -.mdi-play-protected-content:before { - content: "\F40F"; -} - -.mdi-playlist-check:before { - content: "\F5C7"; -} - -.mdi-playlist-minus:before { - content: "\F410"; -} - -.mdi-playlist-play:before { - content: "\F411"; -} - -.mdi-playlist-plus:before { - content: "\F412"; -} - -.mdi-playlist-remove:before { - content: "\F413"; -} - -.mdi-playstation:before { - content: "\F414"; -} - -.mdi-plex:before { - content: "\F6B9"; -} - -.mdi-plus:before { - content: "\F415"; -} - -.mdi-plus-box:before { - content: "\F416"; -} - -.mdi-plus-box-outline:before { - content: "\F703"; -} - -.mdi-plus-circle:before { - content: "\F417"; -} - -.mdi-plus-circle-multiple-outline:before { - content: "\F418"; -} - -.mdi-plus-circle-outline:before { - content: "\F419"; -} - -.mdi-plus-network:before { - content: "\F41A"; -} - -.mdi-plus-one:before { - content: "\F41B"; -} - -.mdi-plus-outline:before { - content: "\F704"; -} - -.mdi-pocket:before { - content: "\F41C"; -} - -.mdi-pokeball:before { - content: "\F41D"; -} - -.mdi-polaroid:before { - content: "\F41E"; -} - -.mdi-poll:before { - content: "\F41F"; -} - -.mdi-poll-box:before { - content: "\F420"; -} - -.mdi-polymer:before { - content: "\F421"; -} - -.mdi-pool:before { - content: "\F606"; -} - -.mdi-popcorn:before { - content: "\F422"; -} - -.mdi-pot:before { - content: "\F65A"; -} - -.mdi-pot-mix:before { - content: "\F65B"; -} - -.mdi-pound:before { - content: "\F423"; -} - -.mdi-pound-box:before { - content: "\F424"; -} - -.mdi-power:before { - content: "\F425"; -} - -.mdi-power-plug:before { - content: "\F6A4"; -} - -.mdi-power-plug-off:before { - content: "\F6A5"; -} - -.mdi-power-settings:before { - content: "\F426"; -} - -.mdi-power-socket:before { - content: "\F427"; -} - -.mdi-power-socket-eu:before { - content: "\F7E6"; -} - -.mdi-power-socket-uk:before { - content: "\F7E7"; -} - -.mdi-power-socket-us:before { - content: "\F7E8"; -} - -.mdi-prescription:before { - content: "\F705"; -} - -.mdi-presentation:before { - content: "\F428"; -} - -.mdi-presentation-play:before { - content: "\F429"; -} - -.mdi-printer:before { - content: "\F42A"; -} - -.mdi-printer-3d:before { - content: "\F42B"; -} - -.mdi-printer-alert:before { - content: "\F42C"; -} - -.mdi-printer-settings:before { - content: "\F706"; -} - -.mdi-priority-high:before { - content: "\F603"; -} - -.mdi-priority-low:before { - content: "\F604"; -} - -.mdi-professional-hexagon:before { - content: "\F42D"; -} - -.mdi-projector:before { - content: "\F42E"; -} - -.mdi-projector-screen:before { - content: "\F42F"; -} - -.mdi-publish:before { - content: "\F6A6"; -} - -.mdi-pulse:before { - content: "\F430"; -} - -.mdi-puzzle:before { - content: "\F431"; -} - -.mdi-qqchat:before { - content: "\F605"; -} - -.mdi-qrcode:before { - content: "\F432"; -} - -.mdi-qrcode-scan:before { - content: "\F433"; -} - -.mdi-quadcopter:before { - content: "\F434"; -} - -.mdi-quality-high:before { - content: "\F435"; -} - -.mdi-quicktime:before { - content: "\F436"; -} - -.mdi-radar:before { - content: "\F437"; -} - -.mdi-radiator:before { - content: "\F438"; -} - -.mdi-radio:before { - content: "\F439"; -} - -.mdi-radio-handheld:before { - content: "\F43A"; -} - -.mdi-radio-tower:before { - content: "\F43B"; -} - -.mdi-radioactive:before { - content: "\F43C"; -} - -.mdi-radiobox-blank:before { - content: "\F43D"; -} - -.mdi-radiobox-marked:before { - content: "\F43E"; -} - -.mdi-raspberrypi:before { - content: "\F43F"; -} - -.mdi-ray-end:before { - content: "\F440"; -} - -.mdi-ray-end-arrow:before { - content: "\F441"; -} - -.mdi-ray-start:before { - content: "\F442"; -} - -.mdi-ray-start-arrow:before { - content: "\F443"; -} - -.mdi-ray-start-end:before { - content: "\F444"; -} - -.mdi-ray-vertex:before { - content: "\F445"; -} - -.mdi-rdio:before { - content: "\F446"; -} - -.mdi-react:before { - content: "\F707"; -} - -.mdi-read:before { - content: "\F447"; -} - -.mdi-readability:before { - content: "\F448"; -} - -.mdi-receipt:before { - content: "\F449"; -} - -.mdi-record:before { - content: "\F44A"; -} - -.mdi-record-rec:before { - content: "\F44B"; -} - -.mdi-recycle:before { - content: "\F44C"; -} - -.mdi-reddit:before { - content: "\F44D"; -} - -.mdi-redo:before { - content: "\F44E"; -} - -.mdi-redo-variant:before { - content: "\F44F"; -} - -.mdi-refresh:before { - content: "\F450"; -} - -.mdi-regex:before { - content: "\F451"; -} - -.mdi-relative-scale:before { - content: "\F452"; -} - -.mdi-reload:before { - content: "\F453"; -} - -.mdi-remote:before { - content: "\F454"; -} - -.mdi-rename-box:before { - content: "\F455"; -} - -.mdi-reorder-horizontal:before { - content: "\F687"; -} - -.mdi-reorder-vertical:before { - content: "\F688"; -} - -.mdi-repeat:before { - content: "\F456"; -} - -.mdi-repeat-off:before { - content: "\F457"; -} - -.mdi-repeat-once:before { - content: "\F458"; -} - -.mdi-replay:before { - content: "\F459"; -} - -.mdi-reply:before { - content: "\F45A"; -} - -.mdi-reply-all:before { - content: "\F45B"; -} - -.mdi-reproduction:before { - content: "\F45C"; -} - -.mdi-resize-bottom-right:before { - content: "\F45D"; -} - -.mdi-responsive:before { - content: "\F45E"; -} - -.mdi-restart:before { - content: "\F708"; -} - -.mdi-restore:before { - content: "\F6A7"; -} - -.mdi-rewind:before { - content: "\F45F"; -} - -.mdi-rewind-outline:before { - content: "\F709"; -} - -.mdi-rhombus:before { - content: "\F70A"; -} - -.mdi-rhombus-outline:before { - content: "\F70B"; -} - -.mdi-ribbon:before { - content: "\F460"; -} - -.mdi-rice:before { - content: "\F7E9"; -} - -.mdi-ring:before { - content: "\F7EA"; -} - -.mdi-road:before { - content: "\F461"; -} - -.mdi-road-variant:before { - content: "\F462"; -} - -.mdi-robot:before { - content: "\F6A8"; -} - -.mdi-rocket:before { - content: "\F463"; -} - -.mdi-roomba:before { - content: "\F70C"; -} - -.mdi-rotate-3d:before { - content: "\F464"; -} - -.mdi-rotate-left:before { - content: "\F465"; -} - -.mdi-rotate-left-variant:before { - content: "\F466"; -} - -.mdi-rotate-right:before { - content: "\F467"; -} - -.mdi-rotate-right-variant:before { - content: "\F468"; -} - -.mdi-rounded-corner:before { - content: "\F607"; -} - -.mdi-router-wireless:before { - content: "\F469"; -} - -.mdi-routes:before { - content: "\F46A"; -} - -.mdi-rowing:before { - content: "\F608"; -} - -.mdi-rss:before { - content: "\F46B"; -} - -.mdi-rss-box:before { - content: "\F46C"; -} - -.mdi-ruler:before { - content: "\F46D"; -} - -.mdi-run:before { - content: "\F70D"; -} - -.mdi-run-fast:before { - content: "\F46E"; -} - -.mdi-sale:before { - content: "\F46F"; -} - -.mdi-sass:before { - content: "\F7EB"; -} - -.mdi-satellite:before { - content: "\F470"; -} - -.mdi-satellite-variant:before { - content: "\F471"; -} - -.mdi-saxophone:before { - content: "\F609"; -} - -.mdi-scale:before { - content: "\F472"; -} - -.mdi-scale-balance:before { - content: "\F5D1"; -} - -.mdi-scale-bathroom:before { - content: "\F473"; -} - -.mdi-scanner:before { - content: "\F6AA"; -} - -.mdi-school:before { - content: "\F474"; -} - -.mdi-screen-rotation:before { - content: "\F475"; -} - -.mdi-screen-rotation-lock:before { - content: "\F476"; -} - -.mdi-screwdriver:before { - content: "\F477"; -} - -.mdi-script:before { - content: "\F478"; -} - -.mdi-sd:before { - content: "\F479"; -} - -.mdi-seal:before { - content: "\F47A"; -} - -.mdi-search-web:before { - content: "\F70E"; -} - -.mdi-seat-flat:before { - content: "\F47B"; -} - -.mdi-seat-flat-angled:before { - content: "\F47C"; -} - -.mdi-seat-individual-suite:before { - content: "\F47D"; -} - -.mdi-seat-legroom-extra:before { - content: "\F47E"; -} - -.mdi-seat-legroom-normal:before { - content: "\F47F"; -} - -.mdi-seat-legroom-reduced:before { - content: "\F480"; -} - -.mdi-seat-recline-extra:before { - content: "\F481"; -} - -.mdi-seat-recline-normal:before { - content: "\F482"; -} - -.mdi-security:before { - content: "\F483"; -} - -.mdi-security-home:before { - content: "\F689"; -} - -.mdi-security-network:before { - content: "\F484"; -} - -.mdi-select:before { - content: "\F485"; -} - -.mdi-select-all:before { - content: "\F486"; -} - -.mdi-select-inverse:before { - content: "\F487"; -} - -.mdi-select-off:before { - content: "\F488"; -} - -.mdi-selection:before { - content: "\F489"; -} - -.mdi-selection-off:before { - content: "\F776"; -} - -.mdi-send:before { - content: "\F48A"; -} - -.mdi-send-secure:before { - content: "\F7EC"; -} - -.mdi-serial-port:before { - content: "\F65C"; -} - -.mdi-server:before { - content: "\F48B"; -} - -.mdi-server-minus:before { - content: "\F48C"; -} - -.mdi-server-network:before { - content: "\F48D"; -} - -.mdi-server-network-off:before { - content: "\F48E"; -} - -.mdi-server-off:before { - content: "\F48F"; -} - -.mdi-server-plus:before { - content: "\F490"; -} - -.mdi-server-remove:before { - content: "\F491"; -} - -.mdi-server-security:before { - content: "\F492"; -} - -.mdi-set-all:before { - content: "\F777"; -} - -.mdi-set-center:before { - content: "\F778"; -} - -.mdi-set-center-right:before { - content: "\F779"; -} - -.mdi-set-left:before { - content: "\F77A"; -} - -.mdi-set-left-center:before { - content: "\F77B"; -} - -.mdi-set-left-right:before { - content: "\F77C"; -} - -.mdi-set-none:before { - content: "\F77D"; -} - -.mdi-set-right:before { - content: "\F77E"; -} - -.mdi-settings:before { - content: "\F493"; -} - -.mdi-settings-box:before { - content: "\F494"; -} - -.mdi-shape-circle-plus:before { - content: "\F65D"; -} - -.mdi-shape-plus:before { - content: "\F495"; -} - -.mdi-shape-polygon-plus:before { - content: "\F65E"; -} - -.mdi-shape-rectangle-plus:before { - content: "\F65F"; -} - -.mdi-shape-square-plus:before { - content: "\F660"; -} - -.mdi-share:before { - content: "\F496"; -} - -.mdi-share-variant:before { - content: "\F497"; -} - -.mdi-shield:before { - content: "\F498"; -} - -.mdi-shield-half-full:before { - content: "\F77F"; -} - -.mdi-shield-outline:before { - content: "\F499"; -} - -.mdi-shopping:before { - content: "\F49A"; -} - -.mdi-shopping-music:before { - content: "\F49B"; -} - -.mdi-shovel:before { - content: "\F70F"; -} - -.mdi-shovel-off:before { - content: "\F710"; -} - -.mdi-shredder:before { - content: "\F49C"; -} - -.mdi-shuffle:before { - content: "\F49D"; -} - -.mdi-shuffle-disabled:before { - content: "\F49E"; -} - -.mdi-shuffle-variant:before { - content: "\F49F"; -} - -.mdi-sigma:before { - content: "\F4A0"; -} - -.mdi-sigma-lower:before { - content: "\F62B"; -} - -.mdi-sign-caution:before { - content: "\F4A1"; -} - -.mdi-sign-direction:before { - content: "\F780"; -} - -.mdi-sign-text:before { - content: "\F781"; -} - -.mdi-signal:before { - content: "\F4A2"; -} - -.mdi-signal-2g:before { - content: "\F711"; -} - -.mdi-signal-3g:before { - content: "\F712"; -} - -.mdi-signal-4g:before { - content: "\F713"; -} - -.mdi-signal-hspa:before { - content: "\F714"; -} - -.mdi-signal-hspa-plus:before { - content: "\F715"; -} - -.mdi-signal-off:before { - content: "\F782"; -} - -.mdi-signal-variant:before { - content: "\F60A"; -} - -.mdi-silverware:before { - content: "\F4A3"; -} - -.mdi-silverware-fork:before { - content: "\F4A4"; -} - -.mdi-silverware-spoon:before { - content: "\F4A5"; -} - -.mdi-silverware-variant:before { - content: "\F4A6"; -} - -.mdi-sim:before { - content: "\F4A7"; -} - -.mdi-sim-alert:before { - content: "\F4A8"; -} - -.mdi-sim-off:before { - content: "\F4A9"; -} - -.mdi-sitemap:before { - content: "\F4AA"; -} - -.mdi-skip-backward:before { - content: "\F4AB"; -} - -.mdi-skip-forward:before { - content: "\F4AC"; -} - -.mdi-skip-next:before { - content: "\F4AD"; -} - -.mdi-skip-next-circle:before { - content: "\F661"; -} - -.mdi-skip-next-circle-outline:before { - content: "\F662"; -} - -.mdi-skip-previous:before { - content: "\F4AE"; -} - -.mdi-skip-previous-circle:before { - content: "\F663"; -} - -.mdi-skip-previous-circle-outline:before { - content: "\F664"; -} - -.mdi-skull:before { - content: "\F68B"; -} - -.mdi-skype:before { - content: "\F4AF"; -} - -.mdi-skype-business:before { - content: "\F4B0"; -} - -.mdi-slack:before { - content: "\F4B1"; -} - -.mdi-sleep:before { - content: "\F4B2"; -} - -.mdi-sleep-off:before { - content: "\F4B3"; -} - -.mdi-smoking:before { - content: "\F4B4"; -} - -.mdi-smoking-off:before { - content: "\F4B5"; -} - -.mdi-snapchat:before { - content: "\F4B6"; -} - -.mdi-snowflake:before { - content: "\F716"; -} - -.mdi-snowman:before { - content: "\F4B7"; -} - -.mdi-soccer:before { - content: "\F4B8"; -} - -.mdi-sofa:before { - content: "\F4B9"; -} - -.mdi-solid:before { - content: "\F68C"; -} - -.mdi-sort:before { - content: "\F4BA"; -} - -.mdi-sort-alphabetical:before { - content: "\F4BB"; -} - -.mdi-sort-ascending:before { - content: "\F4BC"; -} - -.mdi-sort-descending:before { - content: "\F4BD"; -} - -.mdi-sort-numeric:before { - content: "\F4BE"; -} - -.mdi-sort-variant:before { - content: "\F4BF"; -} - -.mdi-soundcloud:before { - content: "\F4C0"; -} - -.mdi-source-branch:before { - content: "\F62C"; -} - -.mdi-source-commit:before { - content: "\F717"; -} - -.mdi-source-commit-end:before { - content: "\F718"; -} - -.mdi-source-commit-end-local:before { - content: "\F719"; -} - -.mdi-source-commit-local:before { - content: "\F71A"; -} - -.mdi-source-commit-next-local:before { - content: "\F71B"; -} - -.mdi-source-commit-start:before { - content: "\F71C"; -} - -.mdi-source-commit-start-next-local:before { - content: "\F71D"; -} - -.mdi-source-fork:before { - content: "\F4C1"; -} - -.mdi-source-merge:before { - content: "\F62D"; -} - -.mdi-source-pull:before { - content: "\F4C2"; -} - -.mdi-soy-sauce:before { - content: "\F7ED"; -} - -.mdi-speaker:before { - content: "\F4C3"; -} - -.mdi-speaker-off:before { - content: "\F4C4"; -} - -.mdi-speaker-wireless:before { - content: "\F71E"; -} - -.mdi-speedometer:before { - content: "\F4C5"; -} - -.mdi-spellcheck:before { - content: "\F4C6"; -} - -.mdi-spotify:before { - content: "\F4C7"; -} - -.mdi-spotlight:before { - content: "\F4C8"; -} - -.mdi-spotlight-beam:before { - content: "\F4C9"; -} - -.mdi-spray:before { - content: "\F665"; -} - -.mdi-square:before { - content: "\F763"; -} - -.mdi-square-inc:before { - content: "\F4CA"; -} - -.mdi-square-inc-cash:before { - content: "\F4CB"; -} - -.mdi-square-outline:before { - content: "\F762"; -} - -.mdi-square-root:before { - content: "\F783"; -} - -.mdi-stackexchange:before { - content: "\F60B"; -} - -.mdi-stackoverflow:before { - content: "\F4CC"; -} - -.mdi-stadium:before { - content: "\F71F"; -} - -.mdi-stairs:before { - content: "\F4CD"; -} - -.mdi-standard-definition:before { - content: "\F7EE"; -} - -.mdi-star:before { - content: "\F4CE"; -} - -.mdi-star-circle:before { - content: "\F4CF"; -} - -.mdi-star-half:before { - content: "\F4D0"; -} - -.mdi-star-off:before { - content: "\F4D1"; -} - -.mdi-star-outline:before { - content: "\F4D2"; -} - -.mdi-steam:before { - content: "\F4D3"; -} - -.mdi-steering:before { - content: "\F4D4"; -} - -.mdi-step-backward:before { - content: "\F4D5"; -} - -.mdi-step-backward-2:before { - content: "\F4D6"; -} - -.mdi-step-forward:before { - content: "\F4D7"; -} - -.mdi-step-forward-2:before { - content: "\F4D8"; -} - -.mdi-stethoscope:before { - content: "\F4D9"; -} - -.mdi-sticker:before { - content: "\F5D0"; -} - -.mdi-sticker-emoji:before { - content: "\F784"; -} - -.mdi-stocking:before { - content: "\F4DA"; -} - -.mdi-stop:before { - content: "\F4DB"; -} - -.mdi-stop-circle:before { - content: "\F666"; -} - -.mdi-stop-circle-outline:before { - content: "\F667"; -} - -.mdi-store:before { - content: "\F4DC"; -} - -.mdi-store-24-hour:before { - content: "\F4DD"; -} - -.mdi-stove:before { - content: "\F4DE"; -} - -.mdi-subdirectory-arrow-left:before { - content: "\F60C"; -} - -.mdi-subdirectory-arrow-right:before { - content: "\F60D"; -} - -.mdi-subway:before { - content: "\F6AB"; -} - -.mdi-subway-variant:before { - content: "\F4DF"; -} - -.mdi-summit:before { - content: "\F785"; -} - -.mdi-sunglasses:before { - content: "\F4E0"; -} - -.mdi-surround-sound:before { - content: "\F5C5"; -} - -.mdi-surround-sound-2-0:before { - content: "\F7EF"; -} - -.mdi-surround-sound-3-1:before { - content: "\F7F0"; -} - -.mdi-surround-sound-5-1:before { - content: "\F7F1"; -} - -.mdi-surround-sound-7-1:before { - content: "\F7F2"; -} - -.mdi-svg:before { - content: "\F720"; -} - -.mdi-swap-horizontal:before { - content: "\F4E1"; -} - -.mdi-swap-vertical:before { - content: "\F4E2"; -} - -.mdi-swim:before { - content: "\F4E3"; -} - -.mdi-switch:before { - content: "\F4E4"; -} - -.mdi-sword:before { - content: "\F4E5"; -} - -.mdi-sword-cross:before { - content: "\F786"; -} - -.mdi-sync:before { - content: "\F4E6"; -} - -.mdi-sync-alert:before { - content: "\F4E7"; -} - -.mdi-sync-off:before { - content: "\F4E8"; -} - -.mdi-tab:before { - content: "\F4E9"; -} - -.mdi-tab-plus:before { - content: "\F75B"; -} - -.mdi-tab-unselected:before { - content: "\F4EA"; -} - -.mdi-table:before { - content: "\F4EB"; -} - -.mdi-table-column-plus-after:before { - content: "\F4EC"; -} - -.mdi-table-column-plus-before:before { - content: "\F4ED"; -} - -.mdi-table-column-remove:before { - content: "\F4EE"; -} - -.mdi-table-column-width:before { - content: "\F4EF"; -} - -.mdi-table-edit:before { - content: "\F4F0"; -} - -.mdi-table-large:before { - content: "\F4F1"; -} - -.mdi-table-row-height:before { - content: "\F4F2"; -} - -.mdi-table-row-plus-after:before { - content: "\F4F3"; -} - -.mdi-table-row-plus-before:before { - content: "\F4F4"; -} - -.mdi-table-row-remove:before { - content: "\F4F5"; -} - -.mdi-tablet:before { - content: "\F4F6"; -} - -.mdi-tablet-android:before { - content: "\F4F7"; -} - -.mdi-tablet-ipad:before { - content: "\F4F8"; -} - -.mdi-taco:before { - content: "\F761"; -} - -.mdi-tag:before { - content: "\F4F9"; -} - -.mdi-tag-faces:before { - content: "\F4FA"; -} - -.mdi-tag-heart:before { - content: "\F68A"; -} - -.mdi-tag-multiple:before { - content: "\F4FB"; -} - -.mdi-tag-outline:before { - content: "\F4FC"; -} - -.mdi-tag-plus:before { - content: "\F721"; -} - -.mdi-tag-remove:before { - content: "\F722"; -} - -.mdi-tag-text-outline:before { - content: "\F4FD"; -} - -.mdi-target:before { - content: "\F4FE"; -} - -.mdi-taxi:before { - content: "\F4FF"; -} - -.mdi-teamviewer:before { - content: "\F500"; -} - -.mdi-telegram:before { - content: "\F501"; -} - -.mdi-television:before { - content: "\F502"; -} - -.mdi-television-classic:before { - content: "\F7F3"; -} - -.mdi-television-guide:before { - content: "\F503"; -} - -.mdi-temperature-celsius:before { - content: "\F504"; -} - -.mdi-temperature-fahrenheit:before { - content: "\F505"; -} - -.mdi-temperature-kelvin:before { - content: "\F506"; -} - -.mdi-tennis:before { - content: "\F507"; -} - -.mdi-tent:before { - content: "\F508"; -} - -.mdi-terrain:before { - content: "\F509"; -} - -.mdi-test-tube:before { - content: "\F668"; -} - -.mdi-text-shadow:before { - content: "\F669"; -} - -.mdi-text-to-speech:before { - content: "\F50A"; -} - -.mdi-text-to-speech-off:before { - content: "\F50B"; -} - -.mdi-textbox:before { - content: "\F60E"; -} - -.mdi-textbox-password:before { - content: "\F7F4"; -} - -.mdi-texture:before { - content: "\F50C"; -} - -.mdi-theater:before { - content: "\F50D"; -} - -.mdi-theme-light-dark:before { - content: "\F50E"; -} - -.mdi-thermometer:before { - content: "\F50F"; -} - -.mdi-thermometer-lines:before { - content: "\F510"; -} - -.mdi-thought-bubble:before { - content: "\F7F5"; -} - -.mdi-thought-bubble-outline:before { - content: "\F7F6"; -} - -.mdi-thumb-down:before { - content: "\F511"; -} - -.mdi-thumb-down-outline:before { - content: "\F512"; -} - -.mdi-thumb-up:before { - content: "\F513"; -} - -.mdi-thumb-up-outline:before { - content: "\F514"; -} - -.mdi-thumbs-up-down:before { - content: "\F515"; -} - -.mdi-ticket:before { - content: "\F516"; -} - -.mdi-ticket-account:before { - content: "\F517"; -} - -.mdi-ticket-confirmation:before { - content: "\F518"; -} - -.mdi-ticket-percent:before { - content: "\F723"; -} - -.mdi-tie:before { - content: "\F519"; -} - -.mdi-tilde:before { - content: "\F724"; -} - -.mdi-timelapse:before { - content: "\F51A"; -} - -.mdi-timer:before { - content: "\F51B"; -} - -.mdi-timer-10:before { - content: "\F51C"; -} - -.mdi-timer-3:before { - content: "\F51D"; -} - -.mdi-timer-off:before { - content: "\F51E"; -} - -.mdi-timer-sand:before { - content: "\F51F"; -} - -.mdi-timer-sand-empty:before { - content: "\F6AC"; -} - -.mdi-timer-sand-full:before { - content: "\F78B"; -} - -.mdi-timetable:before { - content: "\F520"; -} - -.mdi-toggle-switch:before { - content: "\F521"; -} - -.mdi-toggle-switch-off:before { - content: "\F522"; -} - -.mdi-tooltip:before { - content: "\F523"; -} - -.mdi-tooltip-edit:before { - content: "\F524"; -} - -.mdi-tooltip-image:before { - content: "\F525"; -} - -.mdi-tooltip-outline:before { - content: "\F526"; -} - -.mdi-tooltip-outline-plus:before { - content: "\F527"; -} - -.mdi-tooltip-text:before { - content: "\F528"; -} - -.mdi-tooth:before { - content: "\F529"; -} - -.mdi-tor:before { - content: "\F52A"; -} - -.mdi-tower-beach:before { - content: "\F680"; -} - -.mdi-tower-fire:before { - content: "\F681"; -} - -.mdi-trackpad:before { - content: "\F7F7"; -} - -.mdi-traffic-light:before { - content: "\F52B"; -} - -.mdi-train:before { - content: "\F52C"; -} - -.mdi-tram:before { - content: "\F52D"; -} - -.mdi-transcribe:before { - content: "\F52E"; -} - -.mdi-transcribe-close:before { - content: "\F52F"; -} - -.mdi-transfer:before { - content: "\F530"; -} - -.mdi-transit-transfer:before { - content: "\F6AD"; -} - -.mdi-translate:before { - content: "\F5CA"; -} - -.mdi-treasure-chest:before { - content: "\F725"; -} - -.mdi-tree:before { - content: "\F531"; -} - -.mdi-trello:before { - content: "\F532"; -} - -.mdi-trending-down:before { - content: "\F533"; -} - -.mdi-trending-neutral:before { - content: "\F534"; -} - -.mdi-trending-up:before { - content: "\F535"; -} - -.mdi-triangle:before { - content: "\F536"; -} - -.mdi-triangle-outline:before { - content: "\F537"; -} - -.mdi-trophy:before { - content: "\F538"; -} - -.mdi-trophy-award:before { - content: "\F539"; -} - -.mdi-trophy-outline:before { - content: "\F53A"; -} - -.mdi-trophy-variant:before { - content: "\F53B"; -} - -.mdi-trophy-variant-outline:before { - content: "\F53C"; -} - -.mdi-truck:before { - content: "\F53D"; -} - -.mdi-truck-delivery:before { - content: "\F53E"; -} - -.mdi-truck-fast:before { - content: "\F787"; -} - -.mdi-truck-trailer:before { - content: "\F726"; -} - -.mdi-tshirt-crew:before { - content: "\F53F"; -} - -.mdi-tshirt-v:before { - content: "\F540"; -} - -.mdi-tumblr:before { - content: "\F541"; -} - -.mdi-tumblr-reblog:before { - content: "\F542"; -} - -.mdi-tune:before { - content: "\F62E"; -} - -.mdi-tune-vertical:before { - content: "\F66A"; -} - -.mdi-twitch:before { - content: "\F543"; -} - -.mdi-twitter:before { - content: "\F544"; -} - -.mdi-twitter-box:before { - content: "\F545"; -} - -.mdi-twitter-circle:before { - content: "\F546"; -} - -.mdi-twitter-retweet:before { - content: "\F547"; -} - -.mdi-uber:before { - content: "\F748"; -} - -.mdi-ubuntu:before { - content: "\F548"; -} - -.mdi-ultra-high-definition:before { - content: "\F7F8"; -} - -.mdi-umbraco:before { - content: "\F549"; -} - -.mdi-umbrella:before { - content: "\F54A"; -} - -.mdi-umbrella-outline:before { - content: "\F54B"; -} - -.mdi-undo:before { - content: "\F54C"; -} - -.mdi-undo-variant:before { - content: "\F54D"; -} - -.mdi-unfold-less-horizontal:before { - content: "\F54E"; -} - -.mdi-unfold-less-vertical:before { - content: "\F75F"; -} - -.mdi-unfold-more-horizontal:before { - content: "\F54F"; -} - -.mdi-unfold-more-vertical:before { - content: "\F760"; -} - -.mdi-ungroup:before { - content: "\F550"; -} - -.mdi-unity:before { - content: "\F6AE"; -} - -.mdi-untappd:before { - content: "\F551"; -} - -.mdi-update:before { - content: "\F6AF"; -} - -.mdi-upload:before { - content: "\F552"; -} - -.mdi-upload-network:before { - content: "\F6F5"; -} - -.mdi-usb:before { - content: "\F553"; -} - -.mdi-van-passenger:before { - content: "\F7F9"; -} - -.mdi-van-utility:before { - content: "\F7FA"; -} - -.mdi-vanish:before { - content: "\F7FB"; -} - -.mdi-vector-arrange-above:before { - content: "\F554"; -} - -.mdi-vector-arrange-below:before { - content: "\F555"; -} - -.mdi-vector-circle:before { - content: "\F556"; -} - -.mdi-vector-circle-variant:before { - content: "\F557"; -} - -.mdi-vector-combine:before { - content: "\F558"; -} - -.mdi-vector-curve:before { - content: "\F559"; -} - -.mdi-vector-difference:before { - content: "\F55A"; -} - -.mdi-vector-difference-ab:before { - content: "\F55B"; -} - -.mdi-vector-difference-ba:before { - content: "\F55C"; -} - -.mdi-vector-intersection:before { - content: "\F55D"; -} - -.mdi-vector-line:before { - content: "\F55E"; -} - -.mdi-vector-point:before { - content: "\F55F"; -} - -.mdi-vector-polygon:before { - content: "\F560"; -} - -.mdi-vector-polyline:before { - content: "\F561"; -} - -.mdi-vector-radius:before { - content: "\F749"; -} - -.mdi-vector-rectangle:before { - content: "\F5C6"; -} - -.mdi-vector-selection:before { - content: "\F562"; -} - -.mdi-vector-square:before { - content: "\F001"; -} - -.mdi-vector-triangle:before { - content: "\F563"; -} - -.mdi-vector-union:before { - content: "\F564"; -} - -.mdi-verified:before { - content: "\F565"; -} - -.mdi-vibrate:before { - content: "\F566"; -} - -.mdi-video:before { - content: "\F567"; -} - -.mdi-video-3d:before { - content: "\F7FC"; -} - -.mdi-video-off:before { - content: "\F568"; -} - -.mdi-video-switch:before { - content: "\F569"; -} - -.mdi-view-agenda:before { - content: "\F56A"; -} - -.mdi-view-array:before { - content: "\F56B"; -} - -.mdi-view-carousel:before { - content: "\F56C"; -} - -.mdi-view-column:before { - content: "\F56D"; -} - -.mdi-view-dashboard:before { - content: "\F56E"; -} - -.mdi-view-day:before { - content: "\F56F"; -} - -.mdi-view-grid:before { - content: "\F570"; -} - -.mdi-view-headline:before { - content: "\F571"; -} - -.mdi-view-list:before { - content: "\F572"; -} - -.mdi-view-module:before { - content: "\F573"; -} - -.mdi-view-parallel:before { - content: "\F727"; -} - -.mdi-view-quilt:before { - content: "\F574"; -} - -.mdi-view-sequential:before { - content: "\F728"; -} - -.mdi-view-stream:before { - content: "\F575"; -} - -.mdi-view-week:before { - content: "\F576"; -} - -.mdi-vimeo:before { - content: "\F577"; -} - -.mdi-vine:before { - content: "\F578"; -} - -.mdi-violin:before { - content: "\F60F"; -} - -.mdi-visualstudio:before { - content: "\F610"; -} - -.mdi-vk:before { - content: "\F579"; -} - -.mdi-vk-box:before { - content: "\F57A"; -} - -.mdi-vk-circle:before { - content: "\F57B"; -} - -.mdi-vlc:before { - content: "\F57C"; -} - -.mdi-voice:before { - content: "\F5CB"; -} - -.mdi-voicemail:before { - content: "\F57D"; -} - -.mdi-volume-high:before { - content: "\F57E"; -} - -.mdi-volume-low:before { - content: "\F57F"; -} - -.mdi-volume-medium:before { - content: "\F580"; -} - -.mdi-volume-minus:before { - content: "\F75D"; -} - -.mdi-volume-mute:before { - content: "\F75E"; -} - -.mdi-volume-off:before { - content: "\F581"; -} - -.mdi-volume-plus:before { - content: "\F75C"; -} - -.mdi-vpn:before { - content: "\F582"; -} - -.mdi-walk:before { - content: "\F583"; -} - -.mdi-wall:before { - content: "\F7FD"; -} - -.mdi-wallet:before { - content: "\F584"; -} - -.mdi-wallet-giftcard:before { - content: "\F585"; -} - -.mdi-wallet-membership:before { - content: "\F586"; -} - -.mdi-wallet-travel:before { - content: "\F587"; -} - -.mdi-wan:before { - content: "\F588"; -} - -.mdi-washing-machine:before { - content: "\F729"; -} - -.mdi-watch:before { - content: "\F589"; -} - -.mdi-watch-export:before { - content: "\F58A"; -} - -.mdi-watch-import:before { - content: "\F58B"; -} - -.mdi-watch-vibrate:before { - content: "\F6B0"; -} - -.mdi-water:before { - content: "\F58C"; -} - -.mdi-water-off:before { - content: "\F58D"; -} - -.mdi-water-percent:before { - content: "\F58E"; -} - -.mdi-water-pump:before { - content: "\F58F"; -} - -.mdi-watermark:before { - content: "\F612"; -} - -.mdi-waves:before { - content: "\F78C"; -} - -.mdi-weather-cloudy:before { - content: "\F590"; -} - -.mdi-weather-fog:before { - content: "\F591"; -} - -.mdi-weather-hail:before { - content: "\F592"; -} - -.mdi-weather-lightning:before { - content: "\F593"; -} - -.mdi-weather-lightning-rainy:before { - content: "\F67D"; -} - -.mdi-weather-night:before { - content: "\F594"; -} - -.mdi-weather-partlycloudy:before { - content: "\F595"; -} - -.mdi-weather-pouring:before { - content: "\F596"; -} - -.mdi-weather-rainy:before { - content: "\F597"; -} - -.mdi-weather-snowy:before { - content: "\F598"; -} - -.mdi-weather-snowy-rainy:before { - content: "\F67E"; -} - -.mdi-weather-sunny:before { - content: "\F599"; -} - -.mdi-weather-sunset:before { - content: "\F59A"; -} - -.mdi-weather-sunset-down:before { - content: "\F59B"; -} - -.mdi-weather-sunset-up:before { - content: "\F59C"; -} - -.mdi-weather-windy:before { - content: "\F59D"; -} - -.mdi-weather-windy-variant:before { - content: "\F59E"; -} - -.mdi-web:before { - content: "\F59F"; -} - -.mdi-webcam:before { - content: "\F5A0"; -} - -.mdi-webhook:before { - content: "\F62F"; -} - -.mdi-webpack:before { - content: "\F72A"; -} - -.mdi-wechat:before { - content: "\F611"; -} - -.mdi-weight:before { - content: "\F5A1"; -} - -.mdi-weight-kilogram:before { - content: "\F5A2"; -} - -.mdi-whatsapp:before { - content: "\F5A3"; -} - -.mdi-wheelchair-accessibility:before { - content: "\F5A4"; -} - -.mdi-white-balance-auto:before { - content: "\F5A5"; -} - -.mdi-white-balance-incandescent:before { - content: "\F5A6"; -} - -.mdi-white-balance-iridescent:before { - content: "\F5A7"; -} - -.mdi-white-balance-sunny:before { - content: "\F5A8"; -} - -.mdi-widgets:before { - content: "\F72B"; -} - -.mdi-wifi:before { - content: "\F5A9"; -} - -.mdi-wifi-off:before { - content: "\F5AA"; -} - -.mdi-wii:before { - content: "\F5AB"; -} - -.mdi-wiiu:before { - content: "\F72C"; -} - -.mdi-wikipedia:before { - content: "\F5AC"; -} - -.mdi-window-close:before { - content: "\F5AD"; -} - -.mdi-window-closed:before { - content: "\F5AE"; -} - -.mdi-window-maximize:before { - content: "\F5AF"; -} - -.mdi-window-minimize:before { - content: "\F5B0"; -} - -.mdi-window-open:before { - content: "\F5B1"; -} - -.mdi-window-restore:before { - content: "\F5B2"; -} - -.mdi-windows:before { - content: "\F5B3"; -} - -.mdi-wordpress:before { - content: "\F5B4"; -} - -.mdi-worker:before { - content: "\F5B5"; -} - -.mdi-wrap:before { - content: "\F5B6"; -} - -.mdi-wrench:before { - content: "\F5B7"; -} - -.mdi-wunderlist:before { - content: "\F5B8"; -} - -.mdi-xaml:before { - content: "\F673"; -} - -.mdi-xbox:before { - content: "\F5B9"; -} - -.mdi-xbox-controller:before { - content: "\F5BA"; -} - -.mdi-xbox-controller-battery-alert:before { - content: "\F74A"; -} - -.mdi-xbox-controller-battery-empty:before { - content: "\F74B"; -} - -.mdi-xbox-controller-battery-full:before { - content: "\F74C"; -} - -.mdi-xbox-controller-battery-low:before { - content: "\F74D"; -} - -.mdi-xbox-controller-battery-medium:before { - content: "\F74E"; -} - -.mdi-xbox-controller-battery-unknown:before { - content: "\F74F"; -} - -.mdi-xbox-controller-off:before { - content: "\F5BB"; -} - -.mdi-xda:before { - content: "\F5BC"; -} - -.mdi-xing:before { - content: "\F5BD"; -} - -.mdi-xing-box:before { - content: "\F5BE"; -} - -.mdi-xing-circle:before { - content: "\F5BF"; -} - -.mdi-xml:before { - content: "\F5C0"; -} - -.mdi-xmpp:before { - content: "\F7FE"; -} - -.mdi-yammer:before { - content: "\F788"; -} - -.mdi-yeast:before { - content: "\F5C1"; -} - -.mdi-yelp:before { - content: "\F5C2"; -} - -.mdi-yin-yang:before { - content: "\F67F"; -} - -.mdi-youtube-play:before { - content: "\F5C3"; -} - -.mdi-zip-box:before { - content: "\F5C4"; -} - -.mdi-blank:before { - content: "\F68C"; - visibility: hidden; -} - -.mdi-18px.mdi-set, .mdi-18px.mdi:before { - font-size: 18px; -} - -.mdi-24px.mdi-set, .mdi-24px.mdi:before { - font-size: 24px; -} - -.mdi-36px.mdi-set, .mdi-36px.mdi:before { - font-size: 36px; -} - -.mdi-48px.mdi-set, .mdi-48px.mdi:before { - font-size: 48px; -} - -.mdi-dark:before { - color: rgba(0, 0, 0, 0.54); -} - -.mdi-dark.mdi-inactive:before { - color: rgba(0, 0, 0, 0.26); -} - -.mdi-light:before { - color: white; -} - -.mdi-light.mdi-inactive:before { - color: rgba(255, 255, 255, 0.3); -} - -.mdi-rotate-45 { - /* - // Not included in production - &.mdi-flip-h:before { - -webkit-transform: scaleX(-1) rotate(45deg); - transform: scaleX(-1) rotate(45deg); - filter: FlipH; - -ms-filter: "FlipH"; - } - &.mdi-flip-v:before { - -webkit-transform: scaleY(-1) rotate(45deg); - -ms-transform: rotate(45deg); - transform: scaleY(-1) rotate(45deg); - filter: FlipV; - -ms-filter: "FlipV"; - } - */ -} - -.mdi-rotate-45:before { - -webkit-transform: rotate(45deg); - -ms-transform: rotate(45deg); - transform: rotate(45deg); -} - -.mdi-rotate-90 { - /* - // Not included in production - &.mdi-flip-h:before { - -webkit-transform: scaleX(-1) rotate(90deg); - transform: scaleX(-1) rotate(90deg); - filter: FlipH; - -ms-filter: "FlipH"; - } - &.mdi-flip-v:before { - -webkit-transform: scaleY(-1) rotate(90deg); - -ms-transform: rotate(90deg); - transform: scaleY(-1) rotate(90deg); - filter: FlipV; - -ms-filter: "FlipV"; - } - */ -} - -.mdi-rotate-90:before { - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); -} - -.mdi-rotate-135 { - /* - // Not included in production - &.mdi-flip-h:before { - -webkit-transform: scaleX(-1) rotate(135deg); - transform: scaleX(-1) rotate(135deg); - filter: FlipH; - -ms-filter: "FlipH"; - } - &.mdi-flip-v:before { - -webkit-transform: scaleY(-1) rotate(135deg); - -ms-transform: rotate(135deg); - transform: scaleY(-1) rotate(135deg); - filter: FlipV; - -ms-filter: "FlipV"; - } - */ -} - -.mdi-rotate-135:before { - -webkit-transform: rotate(135deg); - -ms-transform: rotate(135deg); - transform: rotate(135deg); -} - -.mdi-rotate-180 { - /* - // Not included in production - &.mdi-flip-h:before { - -webkit-transform: scaleX(-1) rotate(180deg); - transform: scaleX(-1) rotate(180deg); - filter: FlipH; - -ms-filter: "FlipH"; - } - &.mdi-flip-v:before { - -webkit-transform: scaleY(-1) rotate(180deg); - -ms-transform: rotate(180deg); - transform: scaleY(-1) rotate(180deg); - filter: FlipV; - -ms-filter: "FlipV"; - } - */ -} - -.mdi-rotate-180:before { - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); -} - -.mdi-rotate-225 { - /* - // Not included in production - &.mdi-flip-h:before { - -webkit-transform: scaleX(-1) rotate(225deg); - transform: scaleX(-1) rotate(225deg); - filter: FlipH; - -ms-filter: "FlipH"; - } - &.mdi-flip-v:before { - -webkit-transform: scaleY(-1) rotate(225deg); - -ms-transform: rotate(225deg); - transform: scaleY(-1) rotate(225deg); - filter: FlipV; - -ms-filter: "FlipV"; - } - */ -} - -.mdi-rotate-225:before { - -webkit-transform: rotate(225deg); - -ms-transform: rotate(225deg); - transform: rotate(225deg); -} - -.mdi-rotate-270 { - /* - // Not included in production - &.mdi-flip-h:before { - -webkit-transform: scaleX(-1) rotate(270deg); - transform: scaleX(-1) rotate(270deg); - filter: FlipH; - -ms-filter: "FlipH"; - } - &.mdi-flip-v:before { - -webkit-transform: scaleY(-1) rotate(270deg); - -ms-transform: rotate(270deg); - transform: scaleY(-1) rotate(270deg); - filter: FlipV; - -ms-filter: "FlipV"; - } - */ -} - -.mdi-rotate-270:before { - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - transform: rotate(270deg); -} - -.mdi-rotate-315 { - /* - // Not included in production - &.mdi-flip-h:before { - -webkit-transform: scaleX(-1) rotate(315deg); - transform: scaleX(-1) rotate(315deg); - filter: FlipH; - -ms-filter: "FlipH"; - } - &.mdi-flip-v:before { - -webkit-transform: scaleY(-1) rotate(315deg); - -ms-transform: rotate(315deg); - transform: scaleY(-1) rotate(315deg); - filter: FlipV; - -ms-filter: "FlipV"; - } - */ -} - -.mdi-rotate-315:before { - -webkit-transform: rotate(315deg); - -ms-transform: rotate(315deg); - transform: rotate(315deg); -} - -.mdi-flip-h:before { - -webkit-transform: scaleX(-1); - transform: scaleX(-1); - filter: FlipH; - -ms-filter: "FlipH"; -} - -.mdi-flip-v:before { - -webkit-transform: scaleY(-1); - transform: scaleY(-1); - filter: FlipV; - -ms-filter: "FlipV"; -} - -.mdi-spin:before { - -webkit-animation: mdi-spin 2s infinite linear; - animation: mdi-spin 2s infinite linear; -} - -@-webkit-keyframes mdi-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -@keyframes mdi-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -@font-face { - font-family: "feather"; - src: url("../fonts/feather-webfont.eot"); - src: url("../fonts/feather-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/feather-webfont.woff") format("woff"), url("../fonts/feather-webfont.ttf") format("truetype"), url("../fonts/feather-webfont.svg#feather") format("svg"); - font-weight: normal; - font-style: normal; -} - -/* Character Mapping Method */ -[data-fi]:before { - display: inline-block; - font-family: "feather"; - content: attr(data-icon); - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -/* CSS Class Mapping Method */ -[class^="fi-"], -[class*=" fi-"] { - display: inline-block; - font-family: "feather"; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.fi-eye:before { - content: "\e000"; -} - -.fi-paper-clip:before { - content: "\e001"; -} - -.fi-mail:before { - content: "\e002"; -} - -.fi-mail:before { - content: "\e002"; -} - -.fi-toggle:before { - content: "\e003"; -} - -.fi-layout:before { - content: "\e004"; -} - -.fi-link:before { - content: "\e005"; -} - -.fi-bell:before { - content: "\e006"; -} - -.fi-lock:before { - content: "\e007"; -} - -.fi-unlock:before { - content: "\e008"; -} - -.fi-ribbon:before { - content: "\e009"; -} - -.fi-image:before { - content: "\e010"; -} - -.fi-signal:before { - content: "\e011"; -} - -.fi-target:before { - content: "\e012"; -} - -.fi-clipboard:before { - content: "\e013"; -} - -.fi-clock:before { - content: "\e014"; -} - -.fi-clock:before { - content: "\e014"; -} - -.fi-watch:before { - content: "\e015"; -} - -.fi-air-play:before { - content: "\e016"; -} - -.fi-camera:before { - content: "\e017"; -} - -.fi-video:before { - content: "\e018"; -} - -.fi-disc:before { - content: "\e019"; -} - -.fi-printer:before { - content: "\e020"; -} - -.fi-monitor:before { - content: "\e021"; -} - -.fi-server:before { - content: "\e022"; -} - -.fi-cog:before { - content: "\e023"; -} - -.fi-heart:before { - content: "\e024"; -} - -.fi-paragraph:before { - content: "\e025"; -} - -.fi-align-justify:before { - content: "\e026"; -} - -.fi-align-left:before { - content: "\e027"; -} - -.fi-align-center:before { - content: "\e028"; -} - -.fi-align-right:before { - content: "\e029"; -} - -.fi-book:before { - content: "\e030"; -} - -.fi-layers:before { - content: "\e031"; -} - -.fi-stack:before { - content: "\e032"; -} - -.fi-stack-2:before { - content: "\e033"; -} - -.fi-paper:before { - content: "\e034"; -} - -.fi-paper-stack:before { - content: "\e035"; -} - -.fi-search:before { - content: "\e036"; -} - -.fi-zoom-in:before { - content: "\e037"; -} - -.fi-zoom-out:before { - content: "\e038"; -} - -.fi-reply:before { - content: "\e039"; -} - -.fi-circle-plus:before { - content: "\e040"; -} - -.fi-circle-minus:before { - content: "\e041"; -} - -.fi-circle-check:before { - content: "\e042"; -} - -.fi-circle-cross:before { - content: "\e043"; -} - -.fi-square-plus:before { - content: "\e044"; -} - -.fi-square-minus:before { - content: "\e045"; -} - -.fi-square-check:before { - content: "\e046"; -} - -.fi-square-cross:before { - content: "\e047"; -} - -.fi-microphone:before { - content: "\e048"; -} - -.fi-record:before { - content: "\e049"; -} - -.fi-skip-back:before { - content: "\e050"; -} - -.fi-rewind:before { - content: "\e051"; -} - -.fi-play:before { - content: "\e052"; -} - -.fi-pause:before { - content: "\e053"; -} - -.fi-stop:before { - content: "\e054"; -} - -.fi-fast-forward:before { - content: "\e055"; -} - -.fi-skip-forward:before { - content: "\e056"; -} - -.fi-shuffle:before { - content: "\e057"; -} - -.fi-repeat:before { - content: "\e058"; -} - -.fi-folder:before { - content: "\e059"; -} - -.fi-umbrella:before { - content: "\e060"; -} - -.fi-moon:before { - content: "\e061"; -} - -.fi-thermometer:before { - content: "\e062"; -} - -.fi-drop:before { - content: "\e063"; -} - -.fi-sun:before { - content: "\e064"; -} - -.fi-cloud:before { - content: "\e065"; -} - -.fi-cloud-upload:before { - content: "\e066"; -} - -.fi-cloud-download:before { - content: "\e067"; -} - -.fi-upload:before { - content: "\e068"; -} - -.fi-download:before { - content: "\e069"; -} - -.fi-location:before { - content: "\e070"; -} - -.fi-location-2:before { - content: "\e071"; -} - -.fi-map:before { - content: "\e072"; -} - -.fi-battery:before { - content: "\e073"; -} - -.fi-head:before { - content: "\e074"; -} - -.fi-briefcase:before { - content: "\e075"; -} - -.fi-speech-bubble:before { - content: "\e076"; -} - -.fi-anchor:before { - content: "\e077"; -} - -.fi-globe:before { - content: "\e078"; -} - -.fi-box:before { - content: "\e079"; -} - -.fi-reload:before { - content: "\e080"; -} - -.fi-share:before { - content: "\e081"; -} - -.fi-marquee:before { - content: "\e082"; -} - -.fi-marquee-plus:before { - content: "\e083"; -} - -.fi-marquee-minus:before { - content: "\e084"; -} - -.fi-tag:before { - content: "\e085"; -} - -.fi-power:before { - content: "\e086"; -} - -.fi-command:before { - content: "\e087"; -} - -.fi-alt:before { - content: "\e088"; -} - -.fi-esc:before { - content: "\e089"; -} - -.fi-bar-graph:before { - content: "\e090"; -} - -.fi-bar-graph-2:before { - content: "\e091"; -} - -.fi-pie-graph:before { - content: "\e092"; -} - -.fi-star:before { - content: "\e093"; -} - -.fi-arrow-left:before { - content: "\e094"; -} - -.fi-arrow-right:before { - content: "\e095"; -} - -.fi-arrow-up:before { - content: "\e096"; -} - -.fi-arrow-down:before { - content: "\e097"; -} - -.fi-volume:before { - content: "\e098"; -} - -.fi-mute:before { - content: "\e099"; -} - -.fi-content-right:before { - content: "\e100"; -} - -.fi-content-left:before { - content: "\e101"; -} - -.fi-grid:before { - content: "\e102"; -} - -.fi-grid-2:before { - content: "\e103"; -} - -.fi-columns:before { - content: "\e104"; -} - -.fi-loader:before { - content: "\e105"; -} - -.fi-bag:before { - content: "\e106"; -} - -.fi-ban:before { - content: "\e107"; -} - -.fi-flag:before { - content: "\e108"; -} - -.fi-trash:before { - content: "\e109"; -} - -.fi-expand:before { - content: "\e110"; -} - -.fi-contract:before { - content: "\e111"; -} - -.fi-maximize:before { - content: "\e112"; -} - -.fi-minimize:before { - content: "\e113"; -} - -.fi-plus:before { - content: "\e114"; -} - -.fi-minus:before { - content: "\e115"; -} - -.fi-check:before { - content: "\e116"; -} - -.fi-cross:before { - content: "\e117"; -} - -.fi-move:before { - content: "\e118"; -} - -.fi-delete:before { - content: "\e119"; -} - -.fi-menu:before { - content: "\e120"; -} - -.fi-archive:before { - content: "\e121"; -} - -.fi-inbox:before { - content: "\e122"; -} - -.fi-outbox:before { - content: "\e123"; -} - -.fi-file:before { - content: "\e124"; -} - -.fi-file-add:before { - content: "\e125"; -} - -.fi-file-subtract:before { - content: "\e126"; -} - -.fi-help:before { - content: "\e127"; -} - -.fi-open:before { - content: "\e128"; -} - -.fi-ellipsis:before { - content: "\e129"; -} - -@font-face { - font-family: "dripicons-v2"; - src: url("../fonts/dripicons-v2.eot"); - src: url("../fonts/dripicons-v2.eot?#iefix") format("embedded-opentype"), url("../fonts/dripicons-v2.woff") format("woff"), url("../fonts/dripicons-v2.ttf") format("truetype"), url("../fonts/dripicons-v2.svg#dripicons-v2") format("svg"); - font-weight: normal; - font-style: normal; -} - -[data-icon]:before { - font-family: "dripicons-v2" !important; - content: attr(data-icon); - font-style: normal !important; - font-weight: normal !important; - font-variant: normal !important; - text-transform: none !important; - speak: none; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -[class^="dripicons-"]:before, -[class*=" dripicons-"]:before { - font-family: "dripicons-v2" !important; - font-style: normal !important; - font-weight: normal !important; - font-variant: normal !important; - text-transform: none !important; - speak: none; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.dripicons-alarm:before { - content: "\61"; -} - -.dripicons-align-center:before { - content: "\62"; -} - -.dripicons-align-justify:before { - content: "\63"; -} - -.dripicons-align-left:before { - content: "\64"; -} - -.dripicons-align-right:before { - content: "\65"; -} - -.dripicons-anchor:before { - content: "\66"; -} - -.dripicons-archive:before { - content: "\67"; -} - -.dripicons-arrow-down:before { - content: "\68"; -} - -.dripicons-arrow-left:before { - content: "\69"; -} - -.dripicons-arrow-right:before { - content: "\6a"; -} - -.dripicons-arrow-thin-down:before { - content: "\6b"; -} - -.dripicons-arrow-thin-left:before { - content: "\6c"; -} - -.dripicons-arrow-thin-right:before { - content: "\6d"; -} - -.dripicons-arrow-thin-up:before { - content: "\6e"; -} - -.dripicons-arrow-up:before { - content: "\6f"; -} - -.dripicons-article:before { - content: "\70"; -} - -.dripicons-backspace:before { - content: "\71"; -} - -.dripicons-basket:before { - content: "\72"; -} - -.dripicons-basketball:before { - content: "\73"; -} - -.dripicons-battery-empty:before { - content: "\74"; -} - -.dripicons-battery-full:before { - content: "\75"; -} - -.dripicons-battery-low:before { - content: "\76"; -} - -.dripicons-battery-medium:before { - content: "\77"; -} - -.dripicons-bell:before { - content: "\78"; -} - -.dripicons-blog:before { - content: "\79"; -} - -.dripicons-bluetooth:before { - content: "\7a"; -} - -.dripicons-bold:before { - content: "\41"; -} - -.dripicons-bookmark:before { - content: "\42"; -} - -.dripicons-bookmarks:before { - content: "\43"; -} - -.dripicons-box:before { - content: "\44"; -} - -.dripicons-briefcase:before { - content: "\45"; -} - -.dripicons-brightness-low:before { - content: "\46"; -} - -.dripicons-brightness-max:before { - content: "\47"; -} - -.dripicons-brightness-medium:before { - content: "\48"; -} - -.dripicons-broadcast:before { - content: "\49"; -} - -.dripicons-browser:before { - content: "\4a"; -} - -.dripicons-browser-upload:before { - content: "\4b"; -} - -.dripicons-brush:before { - content: "\4c"; -} - -.dripicons-calendar:before { - content: "\4d"; -} - -.dripicons-camcorder:before { - content: "\4e"; -} - -.dripicons-camera:before { - content: "\4f"; -} - -.dripicons-card:before { - content: "\50"; -} - -.dripicons-cart:before { - content: "\51"; -} - -.dripicons-checklist:before { - content: "\52"; -} - -.dripicons-checkmark:before { - content: "\53"; -} - -.dripicons-chevron-down:before { - content: "\54"; -} - -.dripicons-chevron-left:before { - content: "\55"; -} - -.dripicons-chevron-right:before { - content: "\56"; -} - -.dripicons-chevron-up:before { - content: "\57"; -} - -.dripicons-clipboard:before { - content: "\58"; -} - -.dripicons-clock:before { - content: "\59"; -} - -.dripicons-clockwise:before { - content: "\5a"; -} - -.dripicons-cloud:before { - content: "\30"; -} - -.dripicons-cloud-download:before { - content: "\31"; -} - -.dripicons-cloud-upload:before { - content: "\32"; -} - -.dripicons-code:before { - content: "\33"; -} - -.dripicons-contract:before { - content: "\34"; -} - -.dripicons-contract-2:before { - content: "\35"; -} - -.dripicons-conversation:before { - content: "\36"; -} - -.dripicons-copy:before { - content: "\37"; -} - -.dripicons-crop:before { - content: "\38"; -} - -.dripicons-cross:before { - content: "\39"; -} - -.dripicons-crosshair:before { - content: "\21"; -} - -.dripicons-cutlery:before { - content: "\22"; -} - -.dripicons-device-desktop:before { - content: "\23"; -} - -.dripicons-device-mobile:before { - content: "\24"; -} - -.dripicons-device-tablet:before { - content: "\25"; -} - -.dripicons-direction:before { - content: "\26"; -} - -.dripicons-disc:before { - content: "\27"; -} - -.dripicons-document:before { - content: "\28"; -} - -.dripicons-document-delete:before { - content: "\29"; -} - -.dripicons-document-edit:before { - content: "\2a"; -} - -.dripicons-document-new:before { - content: "\2b"; -} - -.dripicons-document-remove:before { - content: "\2c"; -} - -.dripicons-dot:before { - content: "\2d"; -} - -.dripicons-dots-2:before { - content: "\2e"; -} - -.dripicons-dots-3:before { - content: "\2f"; -} - -.dripicons-download:before { - content: "\3a"; -} - -.dripicons-duplicate:before { - content: "\3b"; -} - -.dripicons-enter:before { - content: "\3c"; -} - -.dripicons-exit:before { - content: "\3d"; -} - -.dripicons-expand:before { - content: "\3e"; -} - -.dripicons-expand-2:before { - content: "\3f"; -} - -.dripicons-experiment:before { - content: "\40"; -} - -.dripicons-export:before { - content: "\5b"; -} - -.dripicons-feed:before { - content: "\5d"; -} - -.dripicons-flag:before { - content: "\5e"; -} - -.dripicons-flashlight:before { - content: "\5f"; -} - -.dripicons-folder:before { - content: "\60"; -} - -.dripicons-folder-open:before { - content: "\7b"; -} - -.dripicons-forward:before { - content: "\7c"; -} - -.dripicons-gaming:before { - content: "\7d"; -} - -.dripicons-gear:before { - content: "\7e"; -} - -.dripicons-graduation:before { - content: "\5c"; -} - -.dripicons-graph-bar:before { - content: "\e000"; -} - -.dripicons-graph-line:before { - content: "\e001"; -} - -.dripicons-graph-pie:before { - content: "\e002"; -} - -.dripicons-headset:before { - content: "\e003"; -} - -.dripicons-heart:before { - content: "\e004"; -} - -.dripicons-help:before { - content: "\e005"; -} - -.dripicons-home:before { - content: "\e006"; -} - -.dripicons-hourglass:before { - content: "\e007"; -} - -.dripicons-inbox:before { - content: "\e008"; -} - -.dripicons-information:before { - content: "\e009"; -} - -.dripicons-italic:before { - content: "\e00a"; -} - -.dripicons-jewel:before { - content: "\e00b"; -} - -.dripicons-lifting:before { - content: "\e00c"; -} - -.dripicons-lightbulb:before { - content: "\e00d"; -} - -.dripicons-link:before { - content: "\e00e"; -} - -.dripicons-link-broken:before { - content: "\e00f"; -} - -.dripicons-list:before { - content: "\e010"; -} - -.dripicons-loading:before { - content: "\e011"; -} - -.dripicons-location:before { - content: "\e012"; -} - -.dripicons-lock:before { - content: "\e013"; -} - -.dripicons-lock-open:before { - content: "\e014"; -} - -.dripicons-mail:before { - content: "\e015"; -} - -.dripicons-map:before { - content: "\e016"; -} - -.dripicons-media-loop:before { - content: "\e017"; -} - -.dripicons-media-next:before { - content: "\e018"; -} - -.dripicons-media-pause:before { - content: "\e019"; -} - -.dripicons-media-play:before { - content: "\e01a"; -} - -.dripicons-media-previous:before { - content: "\e01b"; -} - -.dripicons-media-record:before { - content: "\e01c"; -} - -.dripicons-media-shuffle:before { - content: "\e01d"; -} - -.dripicons-media-stop:before { - content: "\e01e"; -} - -.dripicons-medical:before { - content: "\e01f"; -} - -.dripicons-menu:before { - content: "\e020"; -} - -.dripicons-message:before { - content: "\e021"; -} - -.dripicons-meter:before { - content: "\e022"; -} - -.dripicons-microphone:before { - content: "\e023"; -} - -.dripicons-minus:before { - content: "\e024"; -} - -.dripicons-monitor:before { - content: "\e025"; -} - -.dripicons-move:before { - content: "\e026"; -} - -.dripicons-music:before { - content: "\e027"; -} - -.dripicons-network-1:before { - content: "\e028"; -} - -.dripicons-network-2:before { - content: "\e029"; -} - -.dripicons-network-3:before { - content: "\e02a"; -} - -.dripicons-network-4:before { - content: "\e02b"; -} - -.dripicons-network-5:before { - content: "\e02c"; -} - -.dripicons-pamphlet:before { - content: "\e02d"; -} - -.dripicons-paperclip:before { - content: "\e02e"; -} - -.dripicons-pencil:before { - content: "\e02f"; -} - -.dripicons-phone:before { - content: "\e030"; -} - -.dripicons-photo:before { - content: "\e031"; -} - -.dripicons-photo-group:before { - content: "\e032"; -} - -.dripicons-pill:before { - content: "\e033"; -} - -.dripicons-pin:before { - content: "\e034"; -} - -.dripicons-plus:before { - content: "\e035"; -} - -.dripicons-power:before { - content: "\e036"; -} - -.dripicons-preview:before { - content: "\e037"; -} - -.dripicons-print:before { - content: "\e038"; -} - -.dripicons-pulse:before { - content: "\e039"; -} - -.dripicons-question:before { - content: "\e03a"; -} - -.dripicons-reply:before { - content: "\e03b"; -} - -.dripicons-reply-all:before { - content: "\e03c"; -} - -.dripicons-return:before { - content: "\e03d"; -} - -.dripicons-retweet:before { - content: "\e03e"; -} - -.dripicons-rocket:before { - content: "\e03f"; -} - -.dripicons-scale:before { - content: "\e040"; -} - -.dripicons-search:before { - content: "\e041"; -} - -.dripicons-shopping-bag:before { - content: "\e042"; -} - -.dripicons-skip:before { - content: "\e043"; -} - -.dripicons-stack:before { - content: "\e044"; -} - -.dripicons-star:before { - content: "\e045"; -} - -.dripicons-stopwatch:before { - content: "\e046"; -} - -.dripicons-store:before { - content: "\e047"; -} - -.dripicons-suitcase:before { - content: "\e048"; -} - -.dripicons-swap:before { - content: "\e049"; -} - -.dripicons-tag:before { - content: "\e04a"; -} - -.dripicons-tag-delete:before { - content: "\e04b"; -} - -.dripicons-tags:before { - content: "\e04c"; -} - -.dripicons-thumbs-down:before { - content: "\e04d"; -} - -.dripicons-thumbs-up:before { - content: "\e04e"; -} - -.dripicons-ticket:before { - content: "\e04f"; -} - -.dripicons-time-reverse:before { - content: "\e050"; -} - -.dripicons-to-do:before { - content: "\e051"; -} - -.dripicons-toggles:before { - content: "\e052"; -} - -.dripicons-trash:before { - content: "\e053"; -} - -.dripicons-trophy:before { - content: "\e054"; -} - -.dripicons-upload:before { - content: "\e055"; -} - -.dripicons-user:before { - content: "\e056"; -} - -.dripicons-user-group:before { - content: "\e057"; -} - -.dripicons-user-id:before { - content: "\e058"; -} - -.dripicons-vibrate:before { - content: "\e059"; -} - -.dripicons-view-apps:before { - content: "\e05a"; -} - -.dripicons-view-list:before { - content: "\e05b"; -} - -.dripicons-view-list-large:before { - content: "\e05c"; -} - -.dripicons-view-thumb:before { - content: "\e05d"; -} - -.dripicons-volume-full:before { - content: "\e05e"; -} - -.dripicons-volume-low:before { - content: "\e05f"; -} - -.dripicons-volume-medium:before { - content: "\e060"; -} - -.dripicons-volume-off:before { - content: "\e061"; -} - -.dripicons-wallet:before { - content: "\e062"; -} - -.dripicons-warning:before { - content: "\e063"; -} - -.dripicons-web:before { - content: "\e064"; -} - -.dripicons-weight:before { - content: "\e065"; -} - -.dripicons-wifi:before { - content: "\e066"; -} - -.dripicons-wrong:before { - content: "\e067"; -} - -.dripicons-zoom-in:before { - content: "\e068"; -} - -.dripicons-zoom-out:before { - content: "\e069"; -} - -@font-face { - font-family: "simple-line-icons"; - src: url("../fonts/Simple-Line-Icons.eot?-i3a2kk"); - src: url("../fonts/Simple-Line-Icons.eot?#iefix-i3a2kk") format("embedded-opentype"), url("../fonts/Simple-Line-Icons.ttf?-i3a2kk") format("truetype"), url("../fonts/Simple-Line-Icons.woff2?-i3a2kk") format("woff2"), url("../fonts/Simple-Line-Icons.woff?-i3a2kk") format("woff"), url("../fonts/Simple-Line-Icons.svg?-i3a2kk#simple-line-icons") format("svg"); - font-weight: normal; - font-style: normal; -} - -.icon-user, .icon-people, .icon-user-female, .icon-user-follow, .icon-user-following, .icon-user-unfollow, .icon-login, .icon-logout, .icon-emotsmile, .icon-phone, .icon-call-end, .icon-call-in, .icon-call-out, .icon-map, .icon-location-pin, .icon-direction, .icon-directions, .icon-compass, .icon-layers, .icon-menu, .icon-list, .icon-options-vertical, .icon-options, .icon-arrow-down, .icon-arrow-left, .icon-arrow-right, .icon-arrow-up, .icon-arrow-up-circle, .icon-arrow-left-circle, .icon-arrow-right-circle, .icon-arrow-down-circle, .icon-check, .icon-clock, .icon-plus, .icon-close, .icon-trophy, .icon-screen-smartphone, .icon-screen-desktop, .icon-plane, .icon-notebook, .icon-mustache, .icon-mouse, .icon-magnet, .icon-energy, .icon-disc, .icon-cursor, .icon-cursor-move, .icon-crop, .icon-chemistry, .icon-speedometer, .icon-shield, .icon-screen-tablet, .icon-magic-wand, .icon-hourglass, .icon-graduation, .icon-ghost, .icon-game-controller, .icon-fire, .icon-eyeglass, .icon-envelope-open, .icon-envelope-letter, .icon-bell, .icon-badge, .icon-anchor, .icon-wallet, .icon-vector, .icon-speech, .icon-puzzle, .icon-printer, .icon-present, .icon-playlist, .icon-pin, .icon-picture, .icon-handbag, .icon-globe-alt, .icon-globe, .icon-folder-alt, .icon-folder, .icon-film, .icon-feed, .icon-drop, .icon-drawar, .icon-docs, .icon-doc, .icon-diamond, .icon-cup, .icon-calculator, .icon-bubbles, .icon-briefcase, .icon-book-open, .icon-basket-loaded, .icon-basket, .icon-bag, .icon-action-undo, .icon-action-redo, .icon-wrench, .icon-umbrella, .icon-trash, .icon-tag, .icon-support, .icon-frame, .icon-size-fullscreen, .icon-size-actual, .icon-shuffle, .icon-share-alt, .icon-share, .icon-rocket, .icon-question, .icon-pie-chart, .icon-pencil, .icon-note, .icon-loop, .icon-home, .icon-grid, .icon-graph, .icon-microphone, .icon-music-tone-alt, .icon-music-tone, .icon-earphones-alt, .icon-earphones, .icon-equalizer, .icon-like, .icon-dislike, .icon-control-start, .icon-control-rewind, .icon-control-play, .icon-control-pause, .icon-control-forward, .icon-control-end, .icon-volume-1, .icon-volume-2, .icon-volume-off, .icon-calender, .icon-bulb, .icon-chart, .icon-ban, .icon-bubble, .icon-camrecorder, .icon-camera, .icon-cloud-download, .icon-cloud-upload, .icon-envelope, .icon-eye, .icon-flag, .icon-heart, .icon-info, .icon-key, .icon-link, .icon-lock, .icon-lock-open, .icon-magnifier, .icon-magnifier-add, .icon-magnifier-remove, .icon-paper-clip, .icon-paper-plane, .icon-power, .icon-refresh, .icon-reload, .icon-settings, .icon-star, .icon-symble-female, .icon-symbol-male, .icon-target, .icon-credit-card, .icon-paypal, .icon-social-tumblr, .icon-social-twitter, .icon-social-facebook, .icon-social-instagram, .icon-social-linkedin, .icon-social-pintarest, .icon-social-github, .icon-social-gplus, .icon-social-reddit, .icon-social-skype, .icon-social-dribbble, .icon-social-behance, .icon-social-foursqare, .icon-social-soundcloud, .icon-social-spotify, .icon-social-stumbleupon, .icon-social-youtube, .icon-social-dropbox { - font-family: "simple-line-icons"; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - /* Better Font Rendering =========== */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.icon-user:before { - content: "\e005"; -} - -.icon-people:before { - content: "\e001"; -} - -.icon-user-female:before { - content: "\e000"; -} - -.icon-user-follow:before { - content: "\e002"; -} - -.icon-user-following:before { - content: "\e003"; -} - -.icon-user-unfollow:before { - content: "\e004"; -} - -.icon-login:before { - content: "\e066"; -} - -.icon-logout:before { - content: "\e065"; -} - -.icon-emotsmile:before { - content: "\e021"; -} - -.icon-phone:before { - content: "\e600"; -} - -.icon-call-end:before { - content: "\e048"; -} - -.icon-call-in:before { - content: "\e047"; -} - -.icon-call-out:before { - content: "\e046"; -} - -.icon-map:before { - content: "\e033"; -} - -.icon-location-pin:before { - content: "\e096"; -} - -.icon-direction:before { - content: "\e042"; -} - -.icon-directions:before { - content: "\e041"; -} - -.icon-compass:before { - content: "\e045"; -} - -.icon-layers:before { - content: "\e034"; -} - -.icon-menu:before { - content: "\e601"; -} - -.icon-list:before { - content: "\e067"; -} - -.icon-options-vertical:before { - content: "\e602"; -} - -.icon-options:before { - content: "\e603"; -} - -.icon-arrow-down:before { - content: "\e604"; -} - -.icon-arrow-left:before { - content: "\e605"; -} - -.icon-arrow-right:before { - content: "\e606"; -} - -.icon-arrow-up:before { - content: "\e607"; -} - -.icon-arrow-up-circle:before { - content: "\e078"; -} - -.icon-arrow-left-circle:before { - content: "\e07a"; -} - -.icon-arrow-right-circle:before { - content: "\e079"; -} - -.icon-arrow-down-circle:before { - content: "\e07b"; -} - -.icon-check:before { - content: "\e080"; -} - -.icon-clock:before { - content: "\e081"; -} - -.icon-plus:before { - content: "\e095"; -} - -.icon-close:before { - content: "\e082"; -} - -.icon-trophy:before { - content: "\e006"; -} - -.icon-screen-smartphone:before { - content: "\e010"; -} - -.icon-screen-desktop:before { - content: "\e011"; -} - -.icon-plane:before { - content: "\e012"; -} - -.icon-notebook:before { - content: "\e013"; -} - -.icon-mustache:before { - content: "\e014"; -} - -.icon-mouse:before { - content: "\e015"; -} - -.icon-magnet:before { - content: "\e016"; -} - -.icon-energy:before { - content: "\e020"; -} - -.icon-disc:before { - content: "\e022"; -} - -.icon-cursor:before { - content: "\e06e"; -} - -.icon-cursor-move:before { - content: "\e023"; -} - -.icon-crop:before { - content: "\e024"; -} - -.icon-chemistry:before { - content: "\e026"; -} - -.icon-speedometer:before { - content: "\e007"; -} - -.icon-shield:before { - content: "\e00e"; -} - -.icon-screen-tablet:before { - content: "\e00f"; -} - -.icon-magic-wand:before { - content: "\e017"; -} - -.icon-hourglass:before { - content: "\e018"; -} - -.icon-graduation:before { - content: "\e019"; -} - -.icon-ghost:before { - content: "\e01a"; -} - -.icon-game-controller:before { - content: "\e01b"; -} - -.icon-fire:before { - content: "\e01c"; -} - -.icon-eyeglass:before { - content: "\e01d"; -} - -.icon-envelope-open:before { - content: "\e01e"; -} - -.icon-envelope-letter:before { - content: "\e01f"; -} - -.icon-bell:before { - content: "\e027"; -} - -.icon-badge:before { - content: "\e028"; -} - -.icon-anchor:before { - content: "\e029"; -} - -.icon-wallet:before { - content: "\e02a"; -} - -.icon-vector:before { - content: "\e02b"; -} - -.icon-speech:before { - content: "\e02c"; -} - -.icon-puzzle:before { - content: "\e02d"; -} - -.icon-printer:before { - content: "\e02e"; -} - -.icon-present:before { - content: "\e02f"; -} - -.icon-playlist:before { - content: "\e030"; -} - -.icon-pin:before { - content: "\e031"; -} - -.icon-picture:before { - content: "\e032"; -} - -.icon-handbag:before { - content: "\e035"; -} - -.icon-globe-alt:before { - content: "\e036"; -} - -.icon-globe:before { - content: "\e037"; -} - -.icon-folder-alt:before { - content: "\e039"; -} - -.icon-folder:before { - content: "\e089"; -} - -.icon-film:before { - content: "\e03a"; -} - -.icon-feed:before { - content: "\e03b"; -} - -.icon-drop:before { - content: "\e03e"; -} - -.icon-drawar:before { - content: "\e03f"; -} - -.icon-docs:before { - content: "\e040"; -} - -.icon-doc:before { - content: "\e085"; -} - -.icon-diamond:before { - content: "\e043"; -} - -.icon-cup:before { - content: "\e044"; -} - -.icon-calculator:before { - content: "\e049"; -} - -.icon-bubbles:before { - content: "\e04a"; -} - -.icon-briefcase:before { - content: "\e04b"; -} - -.icon-book-open:before { - content: "\e04c"; -} - -.icon-basket-loaded:before { - content: "\e04d"; -} - -.icon-basket:before { - content: "\e04e"; -} - -.icon-bag:before { - content: "\e04f"; -} - -.icon-action-undo:before { - content: "\e050"; -} - -.icon-action-redo:before { - content: "\e051"; -} - -.icon-wrench:before { - content: "\e052"; -} - -.icon-umbrella:before { - content: "\e053"; -} - -.icon-trash:before { - content: "\e054"; -} - -.icon-tag:before { - content: "\e055"; -} - -.icon-support:before { - content: "\e056"; -} - -.icon-frame:before { - content: "\e038"; -} - -.icon-size-fullscreen:before { - content: "\e057"; -} - -.icon-size-actual:before { - content: "\e058"; -} - -.icon-shuffle:before { - content: "\e059"; -} - -.icon-share-alt:before { - content: "\e05a"; -} - -.icon-share:before { - content: "\e05b"; -} - -.icon-rocket:before { - content: "\e05c"; -} - -.icon-question:before { - content: "\e05d"; -} - -.icon-pie-chart:before { - content: "\e05e"; -} - -.icon-pencil:before { - content: "\e05f"; -} - -.icon-note:before { - content: "\e060"; -} - -.icon-loop:before { - content: "\e064"; -} - -.icon-home:before { - content: "\e069"; -} - -.icon-grid:before { - content: "\e06a"; -} - -.icon-graph:before { - content: "\e06b"; -} - -.icon-microphone:before { - content: "\e063"; -} - -.icon-music-tone-alt:before { - content: "\e061"; -} - -.icon-music-tone:before { - content: "\e062"; -} - -.icon-earphones-alt:before { - content: "\e03c"; -} - -.icon-earphones:before { - content: "\e03d"; -} - -.icon-equalizer:before { - content: "\e06c"; -} - -.icon-like:before { - content: "\e068"; -} - -.icon-dislike:before { - content: "\e06d"; -} - -.icon-control-start:before { - content: "\e06f"; -} - -.icon-control-rewind:before { - content: "\e070"; -} - -.icon-control-play:before { - content: "\e071"; -} - -.icon-control-pause:before { - content: "\e072"; -} - -.icon-control-forward:before { - content: "\e073"; -} - -.icon-control-end:before { - content: "\e074"; -} - -.icon-volume-1:before { - content: "\e09f"; -} - -.icon-volume-2:before { - content: "\e0a0"; -} - -.icon-volume-off:before { - content: "\e0a1"; -} - -.icon-calender:before { - content: "\e075"; -} - -.icon-bulb:before { - content: "\e076"; -} - -.icon-chart:before { - content: "\e077"; -} - -.icon-ban:before { - content: "\e07c"; -} - -.icon-bubble:before { - content: "\e07d"; -} - -.icon-camrecorder:before { - content: "\e07e"; -} - -.icon-camera:before { - content: "\e07f"; -} - -.icon-cloud-download:before { - content: "\e083"; -} - -.icon-cloud-upload:before { - content: "\e084"; -} - -.icon-envelope:before { - content: "\e086"; -} - -.icon-eye:before { - content: "\e087"; -} - -.icon-flag:before { - content: "\e088"; -} - -.icon-heart:before { - content: "\e08a"; -} - -.icon-info:before { - content: "\e08b"; -} - -.icon-key:before { - content: "\e08c"; -} - -.icon-link:before { - content: "\e08d"; -} - -.icon-lock:before { - content: "\e08e"; -} - -.icon-lock-open:before { - content: "\e08f"; -} - -.icon-magnifier:before { - content: "\e090"; -} - -.icon-magnifier-add:before { - content: "\e091"; -} - -.icon-magnifier-remove:before { - content: "\e092"; -} - -.icon-paper-clip:before { - content: "\e093"; -} - -.icon-paper-plane:before { - content: "\e094"; -} - -.icon-power:before { - content: "\e097"; -} - -.icon-refresh:before { - content: "\e098"; -} - -.icon-reload:before { - content: "\e099"; -} - -.icon-settings:before { - content: "\e09a"; -} - -.icon-star:before { - content: "\e09b"; -} - -.icon-symble-female:before { - content: "\e09c"; -} - -.icon-symbol-male:before { - content: "\e09d"; -} - -.icon-target:before { - content: "\e09e"; -} - -.icon-credit-card:before { - content: "\e025"; -} - -.icon-paypal:before { - content: "\e608"; -} - -.icon-social-tumblr:before { - content: "\e00a"; -} - -.icon-social-twitter:before { - content: "\e009"; -} - -.icon-social-facebook:before { - content: "\e00b"; -} - -.icon-social-instagram:before { - content: "\e609"; -} - -.icon-social-linkedin:before { - content: "\e60a"; -} - -.icon-social-pintarest:before { - content: "\e60b"; -} - -.icon-social-github:before { - content: "\e60c"; -} - -.icon-social-gplus:before { - content: "\e60d"; -} - -.icon-social-reddit:before { - content: "\e60e"; -} - -.icon-social-skype:before { - content: "\e60f"; -} - -.icon-social-dribbble:before { - content: "\e00d"; -} - -.icon-social-behance:before { - content: "\e610"; -} - -.icon-social-foursqare:before { - content: "\e611"; -} - -.icon-social-soundcloud:before { - content: "\e612"; -} - -.icon-social-spotify:before { - content: "\e613"; -} - -.icon-social-stumbleupon:before { - content: "\e614"; -} - -.icon-social-youtube:before { - content: "\e008"; -} - -.icon-social-dropbox:before { - content: "\e00c"; -} -/*# sourceMappingURL=icons.css.map */ \ No newline at end of file diff --git a/htdocs/public/high/assets/css/icons.css.map b/htdocs/public/high/assets/css/icons.css.map deleted file mode 100644 index 5e493608..00000000 --- a/htdocs/public/high/assets/css/icons.css.map +++ /dev/null @@ -1,34 +0,0 @@ -{ - "version": 3, - "mappings": "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", - "sources": [ - "../scss/icons.scss", - "../scss/icons/font-awesome/scss/font-awesome.scss", - "../scss/icons/font-awesome/scss/_variables.scss", - "../scss/icons/font-awesome/scss/_mixins.scss", - "../scss/icons/font-awesome/scss/_path.scss", - "../scss/icons/font-awesome/scss/_core.scss", - "../scss/icons/font-awesome/scss/_larger.scss", - "../scss/icons/font-awesome/scss/_fixed-width.scss", - "../scss/icons/font-awesome/scss/_list.scss", - "../scss/icons/font-awesome/scss/_bordered-pulled.scss", - "../scss/icons/font-awesome/scss/_animated.scss", - "../scss/icons/font-awesome/scss/_rotated-flipped.scss", - "../scss/icons/font-awesome/scss/_stacked.scss", - "../scss/icons/font-awesome/scss/_icons.scss", - "../scss/icons/font-awesome/scss/_screen-reader.scss", - "../scss/icons/material-design/scss/materialdesignicons.scss", - "../scss/icons/material-design/scss/_variables.scss", - "../scss/icons/material-design/scss/_functions.scss", - "../scss/icons/material-design/scss/_path.scss", - "../scss/icons/material-design/scss/_core.scss", - "../scss/icons/material-design/scss/_icons.scss", - "../scss/icons/material-design/scss/_extras.scss", - "../scss/icons/material-design/scss/_animated.scss", - "../scss/icons/feather/feather.scss", - "../scss/icons/dripicons/dripicons.scss", - "../scss/icons/simple-line-icons/scss/simple-line-icons.scss" - ], - "names": [], - "file": "icons.css" -} \ No newline at end of file diff --git a/htdocs/public/high/assets/css/style.css b/htdocs/public/high/assets/css/style.css deleted file mode 100644 index ce9fe27a..00000000 --- a/htdocs/public/high/assets/css/style.css +++ /dev/null @@ -1,6060 +0,0 @@ -/* -Template Name: Highdmin - Responsive Bootstrap 4 Admin Dashboard -Author: CoderThemes -Email: coderthemes@gmail.com -File: Main Css File -*/ -/* -1. Menu -2. Common -3. Helper -4. Bootstrap Reset -5. Waves Effect -6. Card -7. Buttons -8. Ribbons -9. Popovers and Tooltips -10. Checkbox & Radio -11. Alerts -12. Modal -13. Spinners -14. Widgets -15. Tabs -16. Progress -17. Sweet Alert -18. Charts -19. Email -20. Form Elements -21. Form Advanced -22. Form Validation -23. Form Pickers -24. Form Wizard -25. Summernote -26. Wysiwig -27. Form Uploads -28. Tables -29. Maps -30. Calendar -31. Tickets -32. taskboards -33. Projects -34. Companies -35. File Manager -36. Timeline -37. Profile -38. Print -39. FAQ -40. Pricing -41. Account-Pages -42. Search Results -43. Gallery -44. Coming Soon -45. Responsive -*/ -@import url("https://fonts.googleapis.com/css?family=Roboto:400,700"); -@import url("https://fonts.googleapis.com/css?family=Rubik:300,400,500,700"); -/* =========== - Menu - =============*/ -.container-fluid { - max-width: 95%; -} - -.wrapper { - padding-top: 120px; -} - -.page-title-box { - padding: 22px 0; -} - -#topnav { - position: fixed; - right: 0; - left: 0; - top: 0; - z-index: 1030; - border: 0; - -webkit-transition: all .5s ease; - transition: all .5s ease; - min-height: 62px; - background: #ffffff; - box-shadow: 0 0 18px 0 rgba(0, 0, 0, 0.2); -} - -#topnav .has-submenu.active a { - color: #ffffff; -} - -#topnav .has-submenu.active a i { - color: #ffffff; -} - -#topnav .has-submenu.active .submenu li.active > a { - color: #02c0ce; -} - -#topnav .topbar-main .logo { - color: #313a46 !important; - font-size: 20px; - font-weight: 700; - letter-spacing: 1px; - line-height: 60px; - text-transform: uppercase; - float: left; -} - -#topnav .topbar-main .logo-small { - display: none; -} - -#topnav .topbar-main .badge-topbar { - position: absolute; - top: 7px; - right: 7px; - z-index: 99; -} - -#topnav .topbar-main .nav > li > a { - height: 36px; - width: 36px; - padding: 0; - font-size: 24px; - line-height: 35px; - text-align: center; - border-radius: 50%; - margin: 12px 8px; - color: rgba(49, 58, 70, 0.7); -} - -#topnav .topbar-main .nav > li > a:focus, #topnav .topbar-main .nav > li > a:hover { - background-color: rgba(49, 58, 70, 0.1); - color: #313a46; -} - -#topnav .topbar-main .dropdown-menu-lg .list-group { - margin-bottom: 0; -} - -#topnav .topbar-main .dropdown-menu-lg .list-group-item { - border: none; - padding: 10px 20px; -} - -#topnav .topbar-main .dropdown-menu-lg .media-heading { - margin-bottom: 0; -} - -#topnav .topbar-main .dropdown-menu-lg .media-body p { - color: #828282; -} - -#topnav .topbar-main .navbar-nav { - margin: 0; -} - -#topnav .topbar-main .topbar-right-menu li { - float: left; -} - -#topnav .navbar-custom { - background-color: #02c0ce; -} - -#topnav .navbar-toggle { - border: 0; - position: relative; - padding: 0; - margin: 0; - cursor: pointer; -} - -#topnav .navbar-toggle:hover { - background-color: transparent; -} - -#topnav .navbar-toggle:hover span { - background-color: #313a46; -} - -#topnav .navbar-toggle:focus { - background-color: transparent; -} - -#topnav .navbar-toggle:focus span { - background-color: #313a46; -} - -#topnav .navbar-toggle .lines { - width: 25px; - display: block; - position: relative; - margin: 10px 10px 0 0; - padding-top: 13px; - height: 44px; - -webkit-transition: all .5s ease; - transition: all .5s ease; -} - -#topnav .navbar-toggle span { - height: 2px; - width: 100%; - background-color: rgba(49, 58, 70, 0.8); - display: block; - margin-bottom: 5px; - -webkit-transition: -webkit-transform .5s ease; - transition: -webkit-transform .5s ease; - transition: transform .5s ease; -} - -#topnav .navbar-toggle.open span { - position: absolute; -} - -#topnav .navbar-toggle.open span:first-child { - top: 18px; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); -} - -#topnav .navbar-toggle.open span:nth-child(2) { - visibility: hidden; -} - -#topnav .navbar-toggle.open span:last-child { - width: 100%; - top: 18px; - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); -} - -#topnav .navigation-menu { - list-style: none; - margin: 0; - padding: 0; -} - -#topnav .navigation-menu > li { - display: inline-block; - position: relative; -} - -#topnav .navigation-menu > li > a { - display: block; - color: rgba(255, 255, 255, 0.7); - font-weight: 500; - font-size: 16px; - -webkit-transition: all .5s ease; - transition: all .5s ease; - line-height: 20px; - padding-left: 25px; - padding-right: 25px; -} - -#topnav .navigation-menu > li > a:hover { - color: #ffffff; -} - -#topnav .navigation-menu > li > a:focus { - color: #ffffff; -} - -#topnav .navigation-menu > li > a:active { - color: #ffffff; -} - -#topnav .navigation-menu > li > a i { - font-size: 15px; - margin-right: 8px; - -webkit-transition: all .5s ease; - transition: all .5s ease; -} - -#topnav .navigation-menu > li > a:hover, #topnav .navigation-menu > li > a:focus { - background-color: transparent; -} - -/* - Responsive Menu -*/ -@media (min-width: 992px) { - #topnav .navigation-menu > li > a { - padding-top: 20px; - padding-bottom: 20px; - } - #topnav .navigation-menu > li:first-of-type > a { - padding-left: 0; - } - #topnav .navigation-menu > li.last-elements .submenu { - left: auto; - right: 0; - } - #topnav .navigation-menu > li.last-elements .submenu > li.has-submenu .submenu { - left: auto; - right: 100%; - margin-left: 0; - margin-right: 10px; - } - #topnav .navigation-menu > li:hover a { - color: #ffffff; - } - #topnav .navigation-menu > li:hover a i { - color: #ffffff; - } - #topnav .navigation-menu > li > ul > li.has-submenu:active > a, - #topnav .navigation-menu > li > ul > li.has-submenu:hover > a { - color: #02c0ce; - } - #topnav .navigation-menu > li .submenu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - border: 1px solid #e7e7e7; - padding: 15px 0; - list-style: none; - min-width: 200px; - text-align: left; - visibility: hidden; - opacity: 0; - margin-top: 10px; - -webkit-transition: all .2s ease; - transition: all .2s ease; - background-color: #ffffff; - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); - } - #topnav .navigation-menu > li .submenu.megamenu { - white-space: nowrap; - width: auto; - } - #topnav .navigation-menu > li .submenu.megamenu > li { - overflow: hidden; - width: 200px; - display: inline-block; - vertical-align: top; - } - #topnav .navigation-menu > li .submenu > li.has-submenu > a:after { - content: "\F142"; - font-family: "Material Design Icons"; - position: absolute; - right: 20px; - top: 5px; - font-size: 18px; - } - #topnav .navigation-menu > li .submenu > li .submenu { - left: 100%; - top: 0; - margin-left: 10px; - margin-top: -1px; - } - #topnav .navigation-menu > li .submenu li { - position: relative; - } - #topnav .navigation-menu > li .submenu li ul { - list-style: none; - padding-left: 0; - margin: 0; - } - #topnav .navigation-menu > li .submenu li a { - display: block; - padding: 8px 25px; - clear: both; - white-space: nowrap; - font-size: 15px; - color: #313a46; - -webkit-transition: all .35s ease; - transition: all .35s ease; - } - #topnav .navigation-menu > li .submenu li a:hover { - color: #02c0ce; - } - #topnav .navigation-menu > li .submenu li span { - display: block; - padding: 8px 25px; - clear: both; - line-height: 1.42857143; - white-space: nowrap; - font-size: 10px; - text-transform: uppercase; - letter-spacing: 2px; - font-weight: 500; - color: #313a46; - } - #topnav .navbar-toggle { - display: none; - } - #topnav #navigation { - display: block !important; - } -} - -@media (max-width: 991px) { - .wrapper { - padding-top: 60px; - } - .container { - width: auto !important; - } - #topnav .navigation-menu { - float: none; - max-height: 400px; - text-align: left; - } - #topnav .navigation-menu > li { - display: block; - } - #topnav .navigation-menu > li > a { - color: #313a46; - padding: 15px; - } - #topnav .navigation-menu > li > a i { - display: inline-block; - margin-right: 10px; - margin-bottom: 0; - vertical-align: inherit; - } - #topnav .navigation-menu > li > a:after { - position: absolute; - right: 15px; - } - #topnav .navigation-menu > li .submenu { - display: none; - list-style: none; - padding-left: 20px; - margin: 0; - } - #topnav .navigation-menu > li .submenu li a { - display: block; - position: relative; - padding: 7px 20px; - color: #313a46; - } - #topnav .navigation-menu > li .submenu li a:hover { - color: #02c0ce; - } - #topnav .navigation-menu > li .submenu li.has-submenu > a:after { - content: "\F140"; - font-family: "Material Design Icons"; - position: absolute; - right: 30px; - } - #topnav .navigation-menu > li .submenu.open { - display: block; - } - #topnav .navigation-menu > li .submenu .submenu { - display: none; - list-style: none; - } - #topnav .navigation-menu > li .submenu .submenu.open { - display: block; - } - #topnav .navigation-menu > li .submenu.megamenu > li > ul { - list-style: none; - padding-left: 0; - } - #topnav .navigation-menu > li .submenu.megamenu > li > ul > li > span { - display: block; - position: relative; - padding: 15px; - text-transform: uppercase; - font-size: 11px; - letter-spacing: 2px; - color: #313a46; - } - #topnav .navigation-menu > li.has-submenu.open > a { - color: #02c0ce; - } - #topnav .navbar-header { - float: left; - } - #navigation { - position: absolute; - top: 62px; - left: 0; - width: 100%; - display: none; - height: auto; - padding-bottom: 0; - overflow: auto; - border-top: 1px solid #e7e7e7; - border-bottom: 1px solid #e7e7e7; - background-color: #ffffff; - } - #navigation.open { - display: block; - overflow-y: auto; - } - #topnav .has-submenu.active a { - color: #02c0ce; - } - #topnav .has-submenu.active a:active, #topnav .has-submenu.active a:focus, #topnav .has-submenu.active a i { - color: #02c0ce; - } -} - -@media (min-width: 768px) { - #topnav .navigation-menu > li.has-submenu:hover > .submenu { - visibility: visible; - opacity: 1; - margin-top: 0; - } - #topnav .navigation-menu > li.has-submenu:hover > .submenu > li.has-submenu:hover > .submenu { - visibility: visible; - opacity: 1; - margin-left: 0; - margin-right: 0; - } - .navbar-toggle { - display: block; - } -} - -.topbar-custom { - border-radius: 0; - margin-bottom: 0; -} - -.topbar-custom .nav-link { - padding: 0; - line-height: 60px; - color: #313a46; -} - -.topbar-custom .dropdown-toggle:after { - content: initial; -} - -.topbar-custom .menu-left { - overflow: hidden; -} - -/* Footer */ -.footer { - border-top: 1px solid rgba(0, 0, 0, 0.1); - bottom: 0; - text-align: left !important; - padding: 20px 0; - position: absolute; - right: 0; - background-color: #ffffff; - left: 0; -} - -/* Search */ -.app-search { - position: relative; - padding-top: 18px; -} - -.app-search a { - position: absolute; - top: 18px; - left: 220px; - display: block; - height: 34px; - line-height: 34px; - width: 34px; - text-align: center; - color: rgba(255, 255, 255, 0.5); -} - -.app-search a:hover { - color: #ffffff; -} - -.app-search .form-control, -.app-search .form-control:focus { - border: 1px solid rgba(255, 255, 255, 0.3); - font-size: 13px; - height: 34px; - color: #ffffff; - padding-left: 20px; - padding-right: 40px; - background: transparent; - box-shadow: none; - border-radius: 30px; - width: 200px; -} - -.app-search input::-webkit-input-placeholder { - color: white; -} - -.app-search input:-moz-placeholder { - color: white; -} - -.app-search input::-moz-placeholder { - color: white; -} - -.app-search input:-ms-input-placeholder { - color: white; -} - -/* Page titles */ -.header-title { - margin-bottom: 8px; - text-transform: uppercase; - letter-spacing: 0.02em; - font-size: 14px; - font-weight: 700; -} - -.page-title-box .breadcrumb { - margin-bottom: 0; - padding: 0; - background-color: transparent !important; -} - -/* Notification */ -.notification-wrapper { - max-height: 190px; -} - -.notification-list { - margin-left: 0 !important; -} - -.notification-list .noti-title { - background-color: #ffffff !important; - padding: 7px 20px; -} - -.notification-list .noti-icon { - font-size: 20px; - padding: 0 15px; - vertical-align: middle; -} - -.notification-list .noti-icon-badge { - display: inline-block; - position: absolute; - top: 14px; - right: 8px; -} - -.notification-list .notify-item { - padding: 10px 20px; -} - -.notification-list .notify-item .notify-icon { - float: left; - height: 36px; - width: 36px; - line-height: 36px; - text-align: center; - margin-right: 10px; - border-radius: 50%; - color: #ffffff; -} - -.notification-list .notify-item .notify-details { - margin-bottom: 0; - overflow: hidden; - margin-left: 45px; - text-overflow: ellipsis; - white-space: nowrap; -} - -.notification-list .notify-item .notify-details b { - font-weight: 500; -} - -.notification-list .notify-item .notify-details small { - display: block; -} - -.notification-list .notify-item .notify-details span { - display: block; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - font-size: 13px; -} - -.notification-list .notify-item .user-msg { - margin-left: 45px; - white-space: normal; - line-height: 16px; -} - -.notification-list .profile-dropdown .notify-item { - padding: 7px 20px; -} - -.profile-dropdown { - width: 170px; -} - -.profile-dropdown i { - vertical-align: middle; - margin-right: 5px; -} - -.profile-dropdown span { - vertical-align: middle; -} - -.nav-user { - padding: 0 12px !important; -} - -.nav-user img { - height: 32px; - width: 32px; -} - -/* ============= - Common -============= */ -body { - margin: 0; - padding-bottom: 60px; - overflow-x: hidden; - font-size: 14px; - background-color: #f3f6f8; - font-family: "Roboto", sans-serif; -} - -html { - position: relative; - min-height: 100%; -} - -.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { - font-family: "Rubik", sans-serif; - margin: 10px 0; -} - -h1 { - line-height: 43px; - font-size: 36px; -} - -h2 { - line-height: 35px; - font-size: 30px; -} - -h3 { - line-height: 30px; - font-size: 24px; -} - -h4 { - line-height: 22px; - font-size: 18px; -} - -h5 { - font-size: 15px; -} - -h6 { - font-size: 12px; -} - -p { - line-height: 1.6; -} - -* { - outline: none !important; -} - -a:hover { - outline: 0; - text-decoration: none; -} - -a:active { - outline: 0; - text-decoration: none; -} - -a:focus { - outline: 0; - text-decoration: none; -} - -.container { - width: auto; -} - -.container-alt { - margin-left: auto; - margin-right: auto; - padding-left: 15px; - padding-right: 15px; -} - -#wrapper { - height: 100%; - overflow: hidden; - width: 100%; -} - -/* Page titles */ -.page-title { - font-size: 18px; - margin: 0; -} - -.header-title { - margin-bottom: 8px; - text-transform: uppercase; - letter-spacing: 0.02em; - font-size: 14px; - font-weight: 500; - margin-top: 0; -} - -.page-title-box { - font-size: 13px; -} - -.page-title-box .breadcrumb { - margin-bottom: 0; - padding: 0; - background-color: transparent; -} - -/* ============= - Helper classes -============= */ -.m-b-30 { - margin-bottom: 30px; -} - -.m-t-50 { - margin-top: 50px; -} - -@media (max-width: 767px) { - .mt-md-30 { - margin-top: 30px; - } -} - -.p-l-r-10 { - padding-left: 10px; - padding-right: 10px; -} - -.w-xs { - min-width: 80px; -} - -.w-sm { - min-width: 95px; -} - -.w-md { - min-width: 110px; -} - -.w-lg { - min-width: 140px; -} - -.center-page { - float: none !important; - margin: 0 auto !important; -} - -.text-overflow { - text-overflow: ellipsis; - white-space: nowrap; - display: block; - width: 100%; - overflow: hidden; -} - -.pull-in { - margin-left: -20px; - margin-right: -20px; -} - -.font-600 { - font-weight: 600; -} - -.font-normal { - font-weight: normal; -} - -.font-light { - font-weight: 300; -} - -.font-13 { - font-size: 13px !important; -} - -.font-14 { - font-size: 14px !important; -} - -.font-15 { - font-size: 15px !important; -} - -.font-16 { - font-size: 16px !important; -} - -.font-18 { - font-size: 18px !important; -} - -.bx-shadow { - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); -} - -.bx-shadow-lg { - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.15), 0 1px 0 0 rgba(0, 0, 0, 0.1); -} - -.bx-shadow-none { - box-shadow: none !important; -} - -.thumb-sm { - height: 36px; - width: 36px; -} - -.thumb-md { - height: 48px; - width: 48px; -} - -.thumb-lg { - height: 88px; - width: 88px; -} - -.thumb-xl { - height: 120px; - width: 120px; -} - -.slimScrollDiv { - height: auto !important; -} - -/* Table type box */ -.table-box { - display: table; - height: 100%; - width: 100%; -} - -.table-box .table-detail { - display: table-cell; - vertical-align: middle; -} - -/* Button demo */ -.button-list { - margin-left: -8px; - margin-bottom: -12px; -} - -.button-list .btn { - margin-bottom: 12px; - margin-left: 8px; -} - -/* Demo only */ -.icon-list-demo div { - cursor: pointer; - line-height: 45px; - white-space: nowrap; - text-overflow: ellipsis; - display: block; - overflow: hidden; -} - -.icon-list-demo div p { - margin-bottom: 0; - line-height: inherit; -} - -.icon-list-demo i { - text-align: center; - vertical-align: middle; - font-size: 22px; - width: 50px; - height: 50px; - line-height: 50px; - margin-right: 12px; - color: rgba(49, 58, 70, 0.7); - border-radius: 3px; - display: inline-block; - transition: all 0.2s; -} - -.icon-list-demo [class^="pe-7s-"], .icon-list-demo [class*=" pe-7s-"] { - font-weight: 600; -} - -.icon-list-demo .col-md-4 { - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-border-radius: 3px; - background-clip: padding-box; - margin-bottom: 10px; -} - -.icon-list-demo .col-md-4:hover, .icon-list-demo .col-md-4:hover i { - color: #02c0ce; -} - -.social-links li a { - border-radius: 50%; - color: rgba(121, 121, 121, 0.8); - display: inline-block; - height: 30px; - line-height: 27px; - border: 2px solid rgba(121, 121, 121, 0.5); - text-align: center; - width: 30px; -} - -.social-links li a:hover { - color: #797979; - border: 2px solid #797979; -} - -/* ============= - Bootstrap-custom -============= */ -.breadcrumb { - background-color: transparent; - margin-bottom: 15px; - padding-top: 10px; - padding-left: 0; -} - -.breadcrumb a { - color: #98a6ad; -} - -.breadcrumb > li + li:before { - padding: 0 5px; - color: #98a6ad; - content: "\f105" !important; - font-family: FontAwesome; -} - -code { - color: #02c0ce; -} - -/* Blockquote */ -.blockquote { - font-size: 1.1rem; -} - -.media { - margin-top: 25px; -} - -/* Dropdown */ -.dropdown-menu { - padding: 4px 0; - font-size: 14px; - box-shadow: 0 3px 12px rgba(0, 0, 0, 0.05); - border-color: #e3eaef; -} - -.dropdown-menu-animated { - display: block; - visibility: hidden; - opacity: 0; - transition: all 300ms ease; - -moz-transition: all 300ms ease; - -webkit-transition: all 300ms ease; - -o-transition: all 300ms ease; - -ms-transition: all 300ms ease; - margin-top: 20px !important; -} - -.show > .dropdown-menu { - visibility: visible; - opacity: 1; - margin-top: 0 !important; -} - -.dropdown-item.active, .dropdown-item:active { - color: #313a46; - text-decoration: none; - background-color: #f7f7f7; -} - -.dropdown-item { - padding: 6px 1.5rem; -} - -.dropdown-lg { - width: 320px; -} - -.arrow-none:after { - border: none; - margin: 0; - display: none; -} - -/* Background colors */ -.bg-custom { - background-color: #02c0ce !important; -} - -.bg-primary { - background-color: #2d7bf4 !important; -} - -.bg-success { - background-color: #0acf97 !important; -} - -.bg-info { - background-color: #4eb7eb !important; -} - -.bg-warning { - background-color: #f9bc0b !important; -} - -.bg-danger { - background-color: #f1556c !important; -} - -.bg-muted { - background-color: #797979 !important; -} - -.bg-purple { - background-color: #777edd !important; -} - -.bg-pink { - background-color: #ff679b !important; -} - -.bg-white { - background-color: #ffffff !important; -} - -.bg-dark { - background-color: #313a46 !important; -} - -.bg-light { - background-color: #e3eaef !important; -} - -/* Text colors */ -.text-custom { - color: #02c0ce !important; -} - -.text-white { - color: #ffffff !important; -} - -.text-danger { - color: #f1556c !important; -} - -.text-muted { - color: #98a6ad !important; -} - -.text-primary { - color: #2d7bf4 !important; -} - -.text-warning { - color: #f9bc0b !important; -} - -.text-success { - color: #0acf97 !important; -} - -.text-info { - color: #4eb7eb !important; -} - -.text-pink { - color: #ff679b !important; -} - -.text-purple { - color: #777edd !important; -} - -.text-dark { - color: #313a46 !important; -} - -/* Border colors */ -.border-primary { - border-color: #2d7bf4 !important; -} - -.border-success { - border-color: #0acf97 !important; -} - -.border-info { - border-color: #4eb7eb !important; -} - -.border-warning { - border-color: #f9bc0b !important; -} - -.border-danger { - border-color: #f1556c !important; -} - -.border-dark { - border-color: #313a46 !important; -} - -.border-pink { - border-color: #ff679b !important; -} - -.border-purple { - border-color: #777edd !important; -} - -.border-custom { - border-color: #02c0ce !important; -} - -/* Badge */ -.badge { - font-family: "Rubik", sans-serif; - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); - padding: .35em .5em; - font-weight: 500; -} - -.badge-custom { - background: #02c0ce; - color: #ffffff; -} - -.badge-primary { - background-color: #2d7bf4; -} - -.badge-secondary { - background-color: #9a9a9a; -} - -.badge-success { - background-color: #0acf97; -} - -.badge-info { - background-color: #4eb7eb; -} - -.badge-warning { - background-color: #f9bc0b; - color: #ffffff; -} - -.badge-danger { - background-color: #f1556c; -} - -.badge-purple { - background-color: #777edd; - color: #ffffff; -} - -.badge-pink { - background-color: #ff679b; - color: #ffffff; -} - -.badge-dark { - background-color: #313a46; -} - -/* Pagination/ Pager */ -.pagination > li:first-child > a, -.pagination > li:first-child > span { - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; -} - -.pagination > li:last-child > a, -.pagination > li:last-child > span { - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; -} - -.pagination > li > a, -.pagination > li > span { - color: #313a46; -} - -.pagination > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - background-color: #e3eaef; -} - -.pagination-split li { - margin-left: 5px; - display: inline-block; - float: left; -} - -.pagination-split li:first-child { - margin-left: 0; -} - -.pagination-split li a { - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; -} - -.pagination > .active > a, -.pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, -.pagination > .active > a:focus, -.pagination > .active > span:focus, -.page-item.active .page-link { - background: #02c0ce; - border-color: #02c0ce; -} - -.pager li > a, .pager li > span { - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - color: #313a46; -} - -.list-group-item.active, .list-group-item.active:focus, -.list-group-item.active:hover { - background-color: #02c0ce; - border-color: #02c0ce; -} - -.list-group-item.active .list-group-item-text, -.list-group-item.active:focus .list-group-item-text, -.list-group-item.active:hover .list-group-item-text { - color: fade(#ffffff, 70%); -} - -/* ============= - Waves Effect -============= */ -/*! - * Waves v0.6.0 - * http://fian.my.id/Waves - * - * Copyright 2014 Alfiana E. Sibuea and other contributors - * Released under the MIT license - * https://github.com/fians/Waves/blob/master/LICENSE - */ -.waves-effect { - position: relative; - cursor: pointer; - display: inline-block; - overflow: hidden; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-tap-highlight-color: transparent; - vertical-align: middle; - z-index: 1; - will-change: opacity, transform; - -webkit-transition: all 0.3s ease-out; - -moz-transition: all 0.3s ease-out; - -o-transition: all 0.3s ease-out; - -ms-transition: all 0.3s ease-out; - transition: all 0.3s ease-out; -} - -.waves-effect .waves-ripple { - position: absolute; - border-radius: 50%; - width: 20px; - height: 20px; - margin-top: -10px; - margin-left: -10px; - opacity: 0; - background: rgba(0, 0, 0, 0.2); - -webkit-transition: all 0.7s ease-out; - -moz-transition: all 0.7s ease-out; - -o-transition: all 0.7s ease-out; - -ms-transition: all 0.7s ease-out; - transition: all 0.7s ease-out; - -webkit-transition-property: -webkit-transform, opacity; - -moz-transition-property: -moz-transform, opacity; - -o-transition-property: -o-transform, opacity; - transition-property: transform, opacity; - -webkit-transform: scale(0); - -moz-transform: scale(0); - -ms-transform: scale(0); - -o-transform: scale(0); - transform: scale(0); - pointer-events: none; -} - -.waves-notransition { - -webkit-transition: none !important; - -moz-transition: none !important; - -o-transition: none !important; - -ms-transition: none !important; - transition: none !important; -} - -.waves-circle { - -webkit-transform: translateZ(0); - -moz-transform: translateZ(0); - -ms-transform: translateZ(0); - -o-transform: translateZ(0); - transform: translateZ(0); - text-align: center; - width: 2.5em; - height: 2.5em; - line-height: 2.5em; - border-radius: 50%; - -webkit-mask-image: none; -} - -.waves-input-wrapper { - border-radius: 0.2em; - vertical-align: bottom; -} - -.waves-input-wrapper .waves-button-input { - position: relative; - top: 0; - left: 0; - z-index: 1; -} - -.waves-block { - display: block; -} - -.waves-effect.waves-light .waves-ripple { - background-color: rgba(255, 255, 255, 0.4); -} - -.waves-effect.waves-custom .waves-ripple { - background-color: rgba(2, 192, 206, 0.4); -} - -.waves-effect.waves-primary .waves-ripple { - background-color: rgba(45, 123, 244, 0.4); -} - -.waves-effect.waves-success .waves-ripple { - background-color: rgba(10, 207, 151, 0.4); -} - -.waves-effect.waves-info .waves-ripple { - background-color: rgba(78, 183, 235, 0.4); -} - -.waves-effect.waves-warning .waves-ripple { - background-color: rgba(249, 188, 11, 0.4); -} - -.waves-effect.waves-danger .waves-ripple { - background-color: rgba(241, 85, 108, 0.4); -} - -.waves-effect.waves-pink .waves-ripple { - background-color: rgba(255, 103, 155, 0.4); -} - -.waves-effect.waves-purple .waves-ripple { - background-color: rgba(119, 126, 221, 0.4); -} - -/* ============= - Card -============= */ -/* Card Box */ -.card-box { - padding: 20px; - border-radius: 3px; - margin-bottom: 30px; - background-color: #ffffff; -} - -/* Card */ -.card { - border: none; -} - -.card-title, .card-header { - margin-top: 0 !important; -} - -.card-header, .card-footer { - background-color: #e3eaef; - border-bottom-color: #d3dee6; -} - -.card-footer { - border-top-color: #d3dee6; -} - -/* ============= - Buttons -============= */ -.btn { - border-radius: 2px; - font-size: 14px; - outline: none !important; - padding: .375rem 1.1rem; -} - -.btn-group-sm > .btn, .btn-sm { - padding: .2rem .8rem; -} - -.btn-group-lg > .btn, .btn-lg { - padding: .7rem 1.6rem; -} - -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: 0 0 0 100px rgba(0, 0, 0, 0.1) inset; - box-shadow: 0 0 0 100px rgba(0, 0, 0, 0.1) inset; -} - -.dropdown-toggle-split { - padding-right: .5625rem; - padding-left: .5625rem; -} - -.dropleft .dropdown-toggle-split { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.btn-custom, .btn-primary, .btn-success, .btn-info, .btn-warning, -.btn-danger, .btn-inverse, .btn-purple, .btn-pink { - color: #ffffff !important; -} - -.btn-custom { - background-color: #02c0ce; - border-color: #02c0ce; -} - -.btn-custom:hover, .btn-custom:focus, .btn-custom:active, .btn-custom.active, -.btn-custom.focus, .btn-custom:active, .btn-custom:focus, .btn-custom:hover, -.open > .dropdown-toggle.btn-custom { - background-color: #02a8b5; - border: 1px solid #02a8b5; -} - -.btn-custom.focus, .btn-custom:focus, .btn-outline-custom.focus, .btn-outline-custom:focus, -.btn-custom:not([disabled]):not(.disabled).active, .btn-custom:not([disabled]):not(.disabled):active, .show > .btn-custom.dropdown-toggle { - box-shadow: 0 0 0 2px rgba(2, 192, 206, 0.5); -} - -.btn-primary { - background-color: #2d7bf4; - border: 1px solid #2d7bf4; -} - -.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, -.btn-primary.focus, .btn-primary:active, .btn-primary:focus, .btn-primary:hover, -.open > .dropdown-toggle.btn-primary, .btn-primary:not([disabled]):not(.disabled).active, .btn-primary:not([disabled]):not(.disabled):active, -.show > .btn-primary.dropdown-toggle { - background-color: #156cf3; - border-color: #156cf3; -} - -.btn-primary.focus, .btn-primary:focus, .btn-outline-primary.focus, .btn-outline-primary:focus, -.btn-primary:not([disabled]):not(.disabled).active, .btn-primary:not([disabled]):not(.disabled):active, .show > .btn-primary.dropdown-toggle, -.btn-primary:not([disabled]):not(.disabled).active:focus, .btn-primary:not([disabled]):not(.disabled):active:focus, .show > .btn-primary.dropdown-toggle:focus { - box-shadow: 0 0 0 2px rgba(45, 123, 244, 0.5); -} - -.btn-secondary { - background-color: #9a9a9a; - border-color: #9a9a9a; -} - -.btn-secondary:hover, .btn-secondary:focus, .btn-secondary:active, .btn-secondary.active, -.btn-secondary.focus, .btn-secondary:active, .btn-secondary:focus, .btn-secondary:hover, -.open > .dropdown-toggle.btn-secondary { - background-color: #8d8d8d; - border-color: #8d8d8d; -} - -.btn-secondary.focus, .btn-secondary:focus, .btn-outline-secondary.focus, .btn-outline-secondary:focus { - box-shadow: 0 0 0 2px rgba(121, 121, 121, 0.5); -} - -.btn-light { - border-color: #e3eaef; -} - -.btn-light:hover, .btn-light:focus, .btn-light:active, .btn-light.active, -.btn-light.focus, .btn-light:active, .btn-light:focus, .btn-light:hover, -.open > .dropdown-toggle.btn-light { - border-color: #bfbfbf; -} - -.btn-light.focus, .btn-light:focus, .btn-outline-light.focus, .btn-outline-light:focus { - box-shadow: 0 0 0 2px #d9d9d9; -} - -.btn-success { - background-color: #0acf97; - border: 1px solid #0acf97; -} - -.btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .btn-success.focus, .btn-success:active, .btn-success:focus, .btn-success:hover, .open > .dropdown-toggle.btn-success, -.btn-success:not([disabled]):not(.disabled).active, .btn-success:not([disabled]):not(.disabled):active, .show > .btn-success.dropdown-toggle { - background-color: #09b785; - border-color: #09b785; -} - -.btn-success.focus, .btn-success:focus, .btn-outline-success.focus, .btn-outline-success:focus, -.btn-success:not([disabled]):not(.disabled).active, .btn-success:not([disabled]):not(.disabled):active, .show > .btn-success.dropdown-toggle, -.btn-success:not([disabled]):not(.disabled).active:focus, .btn-success:not([disabled]):not(.disabled):active:focus, .show > .btn-success.dropdown-toggle:focus { - box-shadow: 0 0 0 2px rgba(10, 207, 151, 0.5); -} - -.btn-info { - background-color: #4eb7eb; - border: 1px solid #4eb7eb; -} - -.btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, .btn-info.focus, .btn-info:active, .btn-info:focus, .btn-info:hover, -.open > .dropdown-toggle.btn-info, .btn-info:not([disabled]):not(.disabled).active, .btn-info:not([disabled]):not(.disabled):active, -.show > .btn-info.dropdown-toggle { - background-color: #37aee8; - border-color: #37aee8; -} - -.btn-info.focus, .btn-info:focus, .btn-outline-info.focus, .btn-outline-info:focus, -.btn-info:not([disabled]):not(.disabled).active, .btn-info:not([disabled]):not(.disabled):active, .show > .btn-info.dropdown-toggle, -.btn-info:not([disabled]):not(.disabled).active:focus, .btn-info:not([disabled]):not(.disabled):active:focus, .show > .btn-info.dropdown-toggle:focus { - box-shadow: 0 0 0 2px rgba(78, 183, 235, 0.5); -} - -.btn-warning { - background-color: #f9bc0b; - border: 1px solid #f9bc0b; -} - -.btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active, .btn-warning.focus, .btn-warning:active, -.btn-warning:focus, .btn-warning:hover, .open > .dropdown-toggle.btn-warning, .btn-warning:not([disabled]):not(.disabled).active, -.btn-warning:not([disabled]):not(.disabled):active, .show > .btn-warning.dropdown-toggle { - background-color: #e5ac06; - border-color: #e5ac06; -} - -.btn-warning.focus, .btn-warning:focus, .btn-outline-warning.focus, .btn-outline-warning:focus, -.btn-warning:not([disabled]):not(.disabled).active, .btn-warning:not([disabled]):not(.disabled):active, .show > .btn-warning.dropdown-toggle, -.btn-warning:not([disabled]):not(.disabled).active:focus, .btn-warning:not([disabled]):not(.disabled):active:focus, .show > .btn-warning.dropdown-toggle:focus { - box-shadow: 0 0 0 2px rgba(249, 188, 11, 0.5); -} - -.btn-danger { - background-color: #f1556c; - border: 1px solid #f1556c; -} - -.btn-danger:active, .btn-danger:focus, .btn-danger:hover, .btn-danger.active, .btn-danger.focus, .btn-danger:active, .btn-danger:focus, -.btn-danger:hover, .open > .dropdown-toggle.btn-danger, .btn-danger:not([disabled]):not(.disabled).active, .btn-danger:not([disabled]):not(.disabled):active, -.show > .btn-danger.dropdown-toggle { - background-color: #ef3d58; - border-color: #ef3d58; -} - -.btn-danger.focus, .btn-danger:focus, .btn-outline-danger.focus, .btn-outline-danger:focus, -.btn-danger:not([disabled]):not(.disabled).active, .btn-danger:not([disabled]):not(.disabled):active, .show > .btn-danger.dropdown-toggle, -.btn-danger:not([disabled]):not(.disabled).active:focus, .btn-danger:not([disabled]):not(.disabled):active:focus, .show > .btn-danger.dropdown-toggle:focus { - box-shadow: 0 0 0 2px rgba(241, 85, 108, 0.5); -} - -.btn-dark { - background-color: #313a46; - border: 1px solid #313a46; -} - -.btn-dark:hover, .btn-dark:focus, .btn-dark:active, .btn-dark.active, .btn-dark.focus, .btn-dark:active, .btn-dark:focus, .btn-dark:hover, .open > .dropdown-toggle.btn-dark { - background-color: #272e37; - border-color: #272e37; -} - -.btn-dark.focus, .btn-dark:focus, .btn-outline-dark.focus, .btn-outline-dark:focus, -.btn-dark:not([disabled]):not(.disabled).active, .btn-dark:not([disabled]):not(.disabled):active, .show > .btn-dark.dropdown-toggle { - box-shadow: 0 0 0 2px rgba(49, 58, 70, 0.5); -} - -.btn-purple { - background-color: #777edd; - border: 1px solid #777edd; -} - -.btn-purple:hover, .btn-purple:focus, .btn-purple:active { - background-color: #636bd8; - border-color: #636bd8; -} - -.btn-purple.focus, .btn-purple:focus, .btn-outline-purple.focus, .btn-outline-purple:focus { - box-shadow: 0 0 0 2px rgba(119, 126, 221, 0.5); -} - -.btn-pink { - background-color: #ff679b; - border: 1px solid #ff679b; -} - -.btn-pink:hover, .btn-pink:focus, .btn-pink:active { - background-color: #ff4e8a; - border-color: #ff4e8a; -} - -.btn-pink.focus, .btn-pink:focus, .btn-outline-pink.focus, .btn-outline-pink:focus { - box-shadow: 0 0 0 2px rgba(255, 103, 155, 0.5); -} - -/* button Outline */ -.btn-outline-custom { - color: #02c0ce; - border-color: #02c0ce; - background-image: none; - background-color: transparent; -} - -.btn-outline-custom:hover { - background-color: #02c0ce; - border-color: #02c0ce; - color: #ffffff; -} - -.btn-outline-primary { - color: #2d7bf4; - border-color: #2d7bf4; -} - -.btn-outline-primary:hover { - background-color: #2d7bf4; - border-color: #2d7bf4; -} - -.btn-outline-success { - color: #0acf97; - border-color: #0acf97; -} - -.btn-outline-success:hover { - background-color: #0acf97; - border-color: #0acf97; -} - -.btn-outline-info { - color: #4eb7eb; - border-color: #4eb7eb; -} - -.btn-outline-info:hover { - background-color: #4eb7eb; - border-color: #4eb7eb; -} - -.btn-outline-warning { - color: #f9bc0b; - border-color: #f9bc0b; -} - -.btn-outline-warning:hover { - background-color: #f9bc0b; - border-color: #f9bc0b; -} - -.btn-outline-danger { - color: #f1556c; - border-color: #f1556c; -} - -.btn-outline-danger:hover { - background-color: #f1556c; - border-color: #f1556c; -} - -.btn-outline-dark { - color: #313a46; - border-color: #313a46; -} - -.btn-outline-dark:hover { - background-color: #313a46; - border-color: #313a46; -} - -.btn-outline-pink { - color: #ff679b; - background-image: none; - background-color: transparent; - border-color: #ff679b; -} - -.btn-outline-pink:hover { - background-color: #ff679b; - border-color: #ff679b; - color: #ffffff; -} - -.btn-outline-purple { - color: #777edd; - background-image: none; - background-color: transparent; - border-color: #777edd; -} - -.btn-outline-purple:hover { - background-color: #777edd; - border-color: #777edd; - color: #ffffff; -} - -.btn-rounded { - border-radius: 2em; -} - -/* Social Buttons */ -.btn-facebook { - color: #ffffff !important; - background-color: #3b5998; -} - -.btn-twitter { - color: #ffffff !important; - background-color: #00aced; -} - -.btn-linkedin { - color: #ffffff !important; - background-color: #007bb6; -} - -.btn-dribbble { - color: #ffffff !important; - background-color: #ea4c89; -} - -.btn-googleplus { - color: #ffffff !important; - background-color: #dd4b39; -} - -.btn-instagram { - color: #ffffff !important; - background-color: #517fa4; -} - -.btn-pinterest { - color: #ffffff !important; - background-color: #cb2027; -} - -.btn-dropbox { - color: #ffffff !important; - background-color: #007ee5; -} - -.btn-flickr { - color: #ffffff !important; - background-color: #ff0084; -} - -.btn-tumblr { - color: #ffffff !important; - background-color: #32506d; -} - -.btn-skype { - color: #ffffff !important; - background-color: #00aff0; -} - -.btn-youtube { - color: #ffffff !important; - background-color: #bb0000; -} - -.btn-github { - color: #ffffff !important; - background-color: #171515; -} - -/* ================= - Ribbons -==================== */ -.ribbon-box { - position: relative; - /* Ribbon two */ -} - -.ribbon-box .ribbon { - position: relative; - float: left; - clear: both; - padding: 5px 12px 5px 12px; - margin-left: -30px; - margin-bottom: 15px; - font-family: "Rubik", sans-serif; - -moz-box-shadow: 2px 5px 10px rgba(49, 58, 70, 0.15); - -webkit-box-shadow: 2px 5px 10px rgba(49, 58, 70, 0.15); - -o-box-shadow: 2px 5px 10px rgba(49, 58, 70, 0.15); - box-shadow: 2px 5px 10px rgba(49, 58, 70, 0.15); - color: #ffffff; - font-size: 13px; -} - -.ribbon-box .ribbon:before { - content: " "; - border-style: solid; - border-width: 10px; - display: block; - position: absolute; - bottom: -10px; - left: 0; - margin-bottom: -10px; - z-index: -1; -} - -.ribbon-box .ribbon + p { - clear: both; -} - -.ribbon-box .ribbon-custom { - background: #02c0ce; -} - -.ribbon-box .ribbon-custom:before { - border-color: #02919b transparent transparent; -} - -.ribbon-box .ribbon-primary { - background: #2d7bf4; -} - -.ribbon-box .ribbon-primary:before { - border-color: #0c60e2 transparent transparent; -} - -.ribbon-box .ribbon-success { - background: #0acf97; -} - -.ribbon-box .ribbon-success:before { - border-color: #089e74 transparent transparent; -} - -.ribbon-box .ribbon-info { - background: #4eb7eb; -} - -.ribbon-box .ribbon-info:before { - border-color: #20a4e6 transparent transparent; -} - -.ribbon-box .ribbon-warning { - background: #f9bc0b; -} - -.ribbon-box .ribbon-warning:before { - border-color: #cc9905 transparent transparent; -} - -.ribbon-box .ribbon-danger { - background: #f1556c; -} - -.ribbon-box .ribbon-danger:before { - border-color: #ed2643 transparent transparent; -} - -.ribbon-box .ribbon-pink { - background: #ff679b; -} - -.ribbon-box .ribbon-pink:before { - border-color: #ff3479 transparent transparent; -} - -.ribbon-box .ribbon-purple { - background: #777edd; -} - -.ribbon-box .ribbon-purple:before { - border-color: #4e57d3 transparent transparent; -} - -.ribbon-box .ribbon-dark { - background: #313a46; -} - -.ribbon-box .ribbon-dark:before { - border-color: #1c2128 transparent transparent; -} - -.ribbon-box .ribbon-two { - position: absolute; - left: -5px; - top: -5px; - z-index: 1; - overflow: hidden; - width: 75px; - height: 75px; - text-align: right; -} - -.ribbon-box .ribbon-two span { - font-size: 13px; - color: #ffffff; - font-family: "Rubik", sans-serif; - text-align: center; - line-height: 20px; - transform: rotate(-45deg); - -webkit-transform: rotate(-45deg); - width: 100px; - display: block; - box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); - position: absolute; - top: 19px; - left: -21px; -} - -.ribbon-box .ribbon-two span:before { - content: ""; - position: absolute; - left: 0; - top: 100%; - z-index: -1; - border-right: 3px solid transparent; - border-bottom: 3px solid transparent; -} - -.ribbon-box .ribbon-two span:after { - content: ""; - position: absolute; - right: 0; - top: 100%; - z-index: -1; - border-left: 3px solid transparent; - border-bottom: 3px solid transparent; -} - -.ribbon-box .ribbon-two-custom span { - background: #02c0ce; -} - -.ribbon-box .ribbon-two-custom span:before { - border-left: 3px solid #017982; - border-top: 3px solid #017982; -} - -.ribbon-box .ribbon-two-custom span:after { - border-right: 3px solid #017982; - border-top: 3px solid #017982; -} - -.ribbon-box .ribbon-two-primary span { - background: #2d7bf4; -} - -.ribbon-box .ribbon-two-primary span:before { - border-left: 3px solid #0b56ca; - border-top: 3px solid #0b56ca; -} - -.ribbon-box .ribbon-two-primary span:after { - border-right: 3px solid #0b56ca; - border-top: 3px solid #0b56ca; -} - -.ribbon-box .ribbon-two-success span { - background: #0acf97; -} - -.ribbon-box .ribbon-two-success span:before { - border-left: 3px solid #068662; - border-top: 3px solid #068662; -} - -.ribbon-box .ribbon-two-success span:after { - border-right: 3px solid #068662; - border-top: 3px solid #068662; -} - -.ribbon-box .ribbon-two-info span { - background: #4eb7eb; -} - -.ribbon-box .ribbon-two-info span:before { - border-left: 3px solid #1896d4; - border-top: 3px solid #1896d4; -} - -.ribbon-box .ribbon-two-info span:after { - border-right: 3px solid #1896d4; - border-top: 3px solid #1896d4; -} - -.ribbon-box .ribbon-two-warning span { - background: #f9bc0b; -} - -.ribbon-box .ribbon-two-warning span:before { - border-left: 3px solid #b38604; - border-top: 3px solid #b38604; -} - -.ribbon-box .ribbon-two-warning span:after { - border-right: 3px solid #b38604; - border-top: 3px solid #b38604; -} - -.ribbon-box .ribbon-two-danger span { - background: #f1556c; -} - -.ribbon-box .ribbon-two-danger span:before { - border-left: 3px solid #e71332; - border-top: 3px solid #e71332; -} - -.ribbon-box .ribbon-two-danger span:after { - border-right: 3px solid #e71332; - border-top: 3px solid #e71332; -} - -.ribbon-box .ribbon-two-pink span { - background: #ff679b; -} - -.ribbon-box .ribbon-two-pink span:before { - border-left: 3px solid #ff1b69; - border-top: 3px solid #ff1b69; -} - -.ribbon-box .ribbon-two-pink span:after { - border-right: 3px solid #ff1b69; - border-top: 3px solid #ff1b69; -} - -.ribbon-box .ribbon-two-purple span { - background: #777edd; -} - -.ribbon-box .ribbon-two-purple span:before { - border-left: 3px solid #3a44ce; - border-top: 3px solid #3a44ce; -} - -.ribbon-box .ribbon-two-purple span:after { - border-right: 3px solid #3a44ce; - border-top: 3px solid #3a44ce; -} - -.ribbon-box .ribbon-two-dark span { - background: #313a46; -} - -.ribbon-box .ribbon-two-dark span:before { - border-left: 3px solid #121519; - border-top: 3px solid #121519; -} - -.ribbon-box .ribbon-two-dark span:after { - border-right: 3px solid #121519; - border-top: 3px solid #121519; -} - -/* ================= - Popover / Tooltips -==================== */ -/* Popover */ -.popover { - font-family: inherit; - border-color: #e3eaef; - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); -} - -.popover .popover-header { - margin-top: 0; - font-size: 14px; - background-color: #e3eaef; - padding: 2px 15px; - border: none; -} - -/* Tooltips */ -.tooltip { - font-family: "Rubik", sans-serif; -} - -.tooltip .tooltip-inner { - padding: 4px 10px; - border-radius: 2px; - background-color: #313a46; -} - -.tooltip.left .tooltip-arrow { - border-left-color: #313a46; -} - -.tooltip.top .tooltip-arrow { - border-top-color: #313a46; -} - -.tooltip.bottom .tooltip-arrow { - border-bottom-color: #313a46; -} - -.tooltip.right .tooltip-arrow { - border-right-color: #313a46; -} - -/* Tooltpster */ -.tooltipster-sidetip .tooltipster-box { - background-color: #02c0ce; - border: 2px solid #02c0ce; -} - -.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border, -.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background { - border-top-color: #02c0ce; -} - -.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-border, -.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background { - border-bottom-color: #02c0ce; -} - -.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-border, -.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background { - border-left-color: #02c0ce; -} - -.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-border, -.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background { - border-right-color: #02c0ce; -} - -/* ============= - Checkbox and Radios -============= */ -.checkbox label { - display: inline-block; - padding-left: 8px; - position: relative; - font-weight: normal; -} - -.checkbox label::before { - -o-transition: 0.3s ease-in-out; - -webkit-transition: 0.3s ease-in-out; - background-color: #ffffff; - border-radius: 3px; - border: 2px solid #98a6ad; - content: ""; - display: inline-block; - height: 18px; - left: 0; - margin-left: -18px; - position: absolute; - transition: 0.3s ease-in-out; - width: 18px; - outline: none !important; -} - -.checkbox label::after { - color: #797979; - display: inline-block; - font-size: 11px; - height: 18px; - left: 0; - margin-left: -18px; - padding-left: 3px; - padding-top: 2px; - position: absolute; - top: 0; - width: 18px; -} - -.checkbox input[type="checkbox"] { - cursor: pointer; - opacity: 0; - z-index: 1; - outline: none !important; -} - -.checkbox input[type="checkbox"]:disabled + label { - opacity: 0.65; -} - -.checkbox input[type="checkbox"]:focus + label::before { - outline-offset: -2px; - outline: none; -} - -.checkbox input[type="checkbox"]:checked + label::after { - content: ""; - position: absolute; - top: 3px; - left: 7px; - display: table; - width: 5px; - height: 10px; - border: 1px solid #313a46; - border-top-width: 0; - border-left-width: 0; - -webkit-transform: rotate(45deg); - -ms-transform: rotate(45deg); - -o-transform: rotate(45deg); - transform: rotate(45deg); -} - -.checkbox input[type="checkbox"]:disabled + label::before { - background-color: #e3eaef; - cursor: not-allowed; -} - -.checkbox.checkbox-circle label::before { - border-radius: 50%; -} - -.checkbox.checkbox-inline { - margin-top: 0; -} - -.checkbox.checkbox-single input { - height: 18px; - width: 18px; - position: absolute; -} - -.checkbox.checkbox-single label { - height: 18px; - width: 18px; -} - -.checkbox.checkbox-single label:before { - margin-left: 0; -} - -.checkbox.checkbox-single label:after { - margin-left: 0; -} - -.checkbox-custom input[type="checkbox"]:checked + label::before { - background-color: #02c0ce; - border-color: #02c0ce; -} - -.checkbox-custom input[type="checkbox"]:checked + label::after { - border-color: #ffffff; -} - -.checkbox-primary input[type="checkbox"]:checked + label::before { - background-color: #2d7bf4; - border-color: #2d7bf4; -} - -.checkbox-primary input[type="checkbox"]:checked + label::after { - border-color: #ffffff; -} - -.checkbox-danger input[type="checkbox"]:checked + label::before { - background-color: #f1556c; - border-color: #f1556c; -} - -.checkbox-danger input[type="checkbox"]:checked + label::after { - border-color: #ffffff; -} - -.checkbox-info input[type="checkbox"]:checked + label::before { - background-color: #4eb7eb; - border-color: #4eb7eb; -} - -.checkbox-info input[type="checkbox"]:checked + label::after { - border-color: #ffffff; -} - -.checkbox-warning input[type="checkbox"]:checked + label::before { - background-color: #f9bc0b; - border-color: #f9bc0b; -} - -.checkbox-warning input[type="checkbox"]:checked + label::after { - border-color: #ffffff; -} - -.checkbox-success input[type="checkbox"]:checked + label::before { - background-color: #0acf97; - border-color: #0acf97; -} - -.checkbox-success input[type="checkbox"]:checked + label::after { - border-color: #ffffff; -} - -.checkbox-purple input[type="checkbox"]:checked + label::before { - background-color: #777edd; - border-color: #777edd; -} - -.checkbox-purple input[type="checkbox"]:checked + label::after { - border-color: #ffffff; -} - -.checkbox-pink input[type="checkbox"]:checked + label::before { - background-color: #ff679b; - border-color: #ff679b; -} - -.checkbox-pink input[type="checkbox"]:checked + label::after { - border-color: #ffffff; -} - -.checkbox-dark input[type="checkbox"]:checked + label::before { - background-color: #313a46; - border-color: #313a46; -} - -.checkbox-dark input[type="checkbox"]:checked + label::after { - border-color: #ffffff; -} - -/* Radios */ -.radio label { - display: inline-block; - padding-left: 8px; - position: relative; - font-weight: normal; -} - -.radio label::before { - -o-transition: border 0.5s ease-in-out; - -webkit-transition: border 0.5s ease-in-out; - background-color: #ffffff; - border-radius: 50%; - border: 2px solid #98a6ad; - content: ""; - display: inline-block; - height: 18px; - left: 0; - margin-left: -18px; - position: absolute; - transition: border 0.5s ease-in-out; - width: 18px; - outline: none !important; -} - -.radio label::after { - -moz-transition: -moz-transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33); - -ms-transform: scale(0, 0); - -o-transform: scale(0, 0); - -o-transition: -o-transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33); - -webkit-transform: scale(0, 0); - -webkit-transition: -webkit-transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33); - background-color: #797979; - border-radius: 50%; - content: " "; - display: inline-block; - height: 10px; - left: 6px; - margin-left: -20px; - position: absolute; - top: 4px; - transform: scale(0, 0); - transition: transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33); - width: 10px; -} - -.radio input[type="radio"] { - cursor: pointer; - opacity: 0; - z-index: 1; - outline: none !important; -} - -.radio input[type="radio"]:disabled + label { - opacity: 0.65; -} - -.radio input[type="radio"]:focus + label::before { - outline-offset: -2px; - outline: 5px auto -webkit-focus-ring-color; - outline: thin dotted; -} - -.radio input[type="radio"]:checked + label::after { - -ms-transform: scale(1, 1); - -o-transform: scale(1, 1); - -webkit-transform: scale(1, 1); - transform: scale(1, 1); -} - -.radio input[type="radio"]:disabled + label::before { - cursor: not-allowed; -} - -.radio.radio-inline { - margin-top: 0; -} - -.radio.radio-single label { - height: 17px; -} - -.radio-custom input[type="radio"] + label::after { - background-color: #02c0ce; -} - -.radio-custom input[type="radio"]:checked + label::before { - border-color: #02c0ce; -} - -.radio-custom input[type="radio"]:checked + label::after { - background-color: #02c0ce; -} - -.radio-primary input[type="radio"] + label::after { - background-color: #2d7bf4; -} - -.radio-primary input[type="radio"]:checked + label::before { - border-color: #2d7bf4; -} - -.radio-primary input[type="radio"]:checked + label::after { - background-color: #2d7bf4; -} - -.radio-danger input[type="radio"] + label::after { - background-color: #f1556c; -} - -.radio-danger input[type="radio"]:checked + label::before { - border-color: #f1556c; -} - -.radio-danger input[type="radio"]:checked + label::after { - background-color: #f1556c; -} - -.radio-info input[type="radio"] + label::after { - background-color: #4eb7eb; -} - -.radio-info input[type="radio"]:checked + label::before { - border-color: #4eb7eb; -} - -.radio-info input[type="radio"]:checked + label::after { - background-color: #4eb7eb; -} - -.radio-warning input[type="radio"] + label::after { - background-color: #f9bc0b; -} - -.radio-warning input[type="radio"]:checked + label::before { - border-color: #f9bc0b; -} - -.radio-warning input[type="radio"]:checked + label::after { - background-color: #f9bc0b; -} - -.radio-success input[type="radio"] + label::after { - background-color: #0acf97; -} - -.radio-success input[type="radio"]:checked + label::before { - border-color: #0acf97; -} - -.radio-success input[type="radio"]:checked + label::after { - background-color: #0acf97; -} - -.radio-purple input[type="radio"] + label::after { - background-color: #777edd; -} - -.radio-purple input[type="radio"]:checked + label::before { - border-color: #777edd; -} - -.radio-purple input[type="radio"]:checked + label::after { - background-color: #777edd; -} - -.radio-pink input[type="radio"] + label::after { - background-color: #ff679b; -} - -.radio-pink input[type="radio"]:checked + label::before { - border-color: #ff679b; -} - -.radio-pink input[type="radio"]:checked + label::after { - background-color: #ff679b; -} - -/* ============= - Alerts -============= */ -.alert-custom { - color: #02c0ce; - background-color: #eafdff; - border-color: #39f0fd; -} - -.alert-primary { - color: #2d7bf4; - background-color: #e5effe; - border-color: #8eb8f9; -} - -.alert-secondary { - color: #9a9a9a; - background-color: #f3f3f3; - border-color: #cdcdcd; -} - -.alert-success { - color: #0acf97; - background-color: #f3fefb; - border-color: #49f6c5; -} - -.alert-danger { - color: #f1556c; - background-color: #fef0f2; - border-color: #f9b3bd; -} - -.alert-warning { - color: #f9bc0b; - background-color: #fffaeb; - border-color: #fbd76f; -} - -.alert-info { - color: #4eb7eb; - background-color: #eef8fd; - border-color: #aadcf5; -} - -.alert-light { - background-color: #f3f6f8; - border-color: #e3eaef; -} - -.alert-dark { - color: #313a46; - background-color: #dce1e7; - border-color: #919fb2; -} - -.jq-toast-single { - padding: 15px; - font-family: "Roboto", sans-serif; - background-color: #02c0ce; - font-size: 13px; - line-height: 22px; -} - -.jq-toast-single h2 { - font-family: "Rubik", sans-serif; -} - -.jq-toast-single a { - font-size: 14px; -} - -.jq-toast-single a:hover { - color: #ffffff; -} - -.jq-has-icon { - padding: 10px 10px 10px 50px; -} - -.jq-icon-info { - background-color: #4eb7eb; - color: #ffffff; - border-color: #4eb7eb; -} - -.jq-icon-success { - background-color: #0acf97; - color: #ffffff; - border-color: #0acf97; -} - -.jq-icon-warning { - background-color: #f9bc0b; - color: #ffffff; - border-color: #f9bc0b; -} - -.jq-icon-error { - background-color: #f1556c; - color: #ffffff; - border-color: #f1556c; -} - -.close-jq-toast-single { - position: absolute; - top: -12px; - right: -12px; - font-size: 20px; - cursor: pointer; - height: 32px; - width: 32px; - background-color: #313a46; - border-radius: 50%; - text-align: center; - line-height: 32px; -} - -.jq-toast-loader { - height: 3px; - top: 0; - border-radius: 0; -} - -/* ============= - Modals -============= */ -.modal .modal-dialog .close { - top: 0; - position: absolute; - right: 0; - height: 36px; - width: 36px; - background-color: #313a46; - opacity: 1; - border: 2px solid #ffffff; - text-shadow: none; - color: #ffffff; - border-radius: 50%; - padding: 0; -} - -.modal .modal-dialog .modal-title { - margin: 0; -} - -.modal .modal-dialog .modal-content { - border: none; - box-shadow: none; -} - -.modal .modal-dialog .modal-content .modal-header { - border-bottom-width: 2px; - margin: 0; -} - -.modal .modal-dialog .modal-content .modal-body { - padding: 20px; -} - -.modal-backdrop { - background-color: #313a46; -} - -.modal-backdrop.show { - opacity: .6; -} - -.modal-full { - width: 98%; -} - -.modal-content .nav.nav-tabs + .tab-content { - margin-bottom: 0; -} - -.modal-content .panel-group { - margin-bottom: 0; -} - -.modal-content .panel { - border-top: none; -} - -/* Custom-modal */ -.custombox-open body { - padding-right: 0 !important; -} - -.modal-demo { - background-color: #ffffff; - width: 600px !important; - border-radius: 4px; - display: none; -} - -.modal-demo .close { - position: absolute; - top: 15px; - right: 25px; - color: #e3eaef; -} - -@media (max-width: 768px) { - .modal-demo { - width: 100% !important; - } -} - -.custom-modal-title { - padding: 15px 25px 15px 25px; - line-height: 22px; - font-size: 18px; - background-color: #313a46; - color: #ffffff; - text-align: left; - margin: 0; -} - -.custom-modal-text { - padding: 20px; -} - -.custombox-modal-wrapper { - text-align: left; -} - -.custombox-modal-flash .close, .custombox-modal-rotatedown .close { - top: 20px; - z-index: 9999; -} - -/* ================= - Spinners -==================== */ -.sk-rotating-plane, .sk-double-bounce .sk-child, .sk-wave .sk-rect, .sk-wandering-cubes .sk-cube, .sk-spinner-pulse, -.sk-chasing-dots .sk-child, .sk-three-bounce .sk-child, .sk-circle .sk-child:before, .sk-cube-grid .sk-cube, -.sk-fading-circle .sk-circle:before, .sk-folding-cube .sk-cube:before { - background-color: #02c0ce; -} - -.sk-fading-circle .sk-circle { - margin-top: 0; -} - -/* ============= - Widgets -============= */ -.widget-flat { - border: 2px solid #313a46; - position: relative; -} - -.widget-flat i { - position: absolute; - bottom: -20px; - font-size: 78px; - opacity: 0.25; - left: 0; - transition: bottom 0.5s ease 0s; -} - -.widget-flat:hover i { - bottom: 0; -} - -.widget-chart-one { - min-height: 120px; -} - -.widget-chart-one .widget-chart-one-content { - margin-left: 100px; -} - -.widget-chart-two { - min-height: 120px; -} - -.widget-chart-two .widget-chart-one-content { - margin-right: 100px; -} - -.tilebox-one i { - font-size: 30px; -} - -/* Inbox-widget */ -.inbox-widget .inbox-item { - border-bottom: 1px solid #f3f6f8; - overflow: hidden; - padding: 10px 0; - position: relative; -} - -.inbox-widget .inbox-item .inbox-item-img { - display: block; - float: left; - margin-right: 15px; - width: 40px; -} - -.inbox-widget .inbox-item img { - width: 40px; -} - -.inbox-widget .inbox-item .inbox-item-author { - color: #313a46; - display: block; - margin: 0; -} - -.inbox-widget .inbox-item .inbox-item-text { - color: #98a6ad; - display: block; - font-size: 14px; - margin: 0; -} - -.inbox-widget .inbox-item .inbox-item-date { - color: #98a6ad; - font-size: 11px; - position: absolute; - right: 7px; - top: 2px; -} - -/* Comment List */ -.comment-list .comment-box-item { - position: relative; -} - -.comment-list .comment-box-item .commnet-item-date { - color: #98a6ad; - font-size: 11px; - position: absolute; - right: 7px; - top: 2px; -} - -.comment-list .comment-box-item .commnet-item-msg { - color: #313a46; - display: block; - margin: 10px 0; - font-weight: normal; - font-size: 15px; - line-height: 24px; -} - -.comment-list .comment-box-item .commnet-item-user { - color: #98a6ad; - display: block; - font-size: 14px; - margin: 0; -} - -.comment-list a + a { - margin-top: 15px; - display: block; -} - -/* Transaction */ -.transaction-list li { - padding: 7px 0; - border-bottom: 1px solid #f3f6f8; - clear: both; - position: relative; -} - -.transaction-list i { - width: 20px; - position: absolute; - top: 10px; - font-size: 12px; -} - -.transaction-list .tran-text { - padding-left: 25px; - white-space: nowrap; - display: inline-block; - overflow: hidden; - text-overflow: ellipsis; - width: 150px; -} - -.transaction-list .tran-price { - margin-left: 30px; -} - -/* ============= - Tabs -============= */ -.tab-content { - padding: 20px 0 0 0; -} - -.navtab-bg { - background-color: #f3f6f8; -} - -.nav-tabs > li > a, .nav-pills > li > a { - color: #98a6ad; - font-family: "Rubik", sans-serif; -} - -.nav-pills .nav-item.show .nav-link, .nav-pills .nav-link.active { - background: #02c0ce; -} - -/* Vertial tab */ -.tabs-vertical-env .tab-content { - background: #ffffff; - display: table-cell; - padding: 0 0 0 20px; - vertical-align: top; -} - -.tabs-vertical-env .nav.tabs-vertical { - display: table-cell; - min-width: 120px; - vertical-align: top; - width: 150px; -} - -.tabs-vertical-env .nav.tabs-vertical li > a { - color: #98a6ad; - white-space: nowrap; - font-family: "Rubik", sans-serif; -} - -.tabs-vertical-env .nav.tabs-vertical li > a.active { - background: #02c0ce; - border: 0; - color: #ffffff; -} - -.tabs-vertical-env-right .tab-content { - padding: 0 20px 0 0; -} - -.tabs-bordered { - border-bottom: 2px solid rgba(152, 166, 173, 0.2) !important; -} - -.tabs-bordered .nav-item { - margin-bottom: -2px; -} - -.tabs-bordered li a, .tabs-bordered li a:hover, .tabs-bordered li a:focus { - border: 0 !important; - padding: 10px 20px !important; -} - -.tabs-bordered li a.active { - border-bottom: 2px solid #02c0ce !important; -} - -/* Navpills */ -.nav-pills > li > a { - color: #313a46; -} - -.nav-pills > li.active > a, .nav-pills > li.active > a:focus, .nav-pills > li.active > a:hover { - background: #02c0ce; -} - -/* ============= - Progressbars -============= */ -.progress { - -webkit-box-shadow: none; - background-color: #f3f3f3; - box-shadow: none; - margin-bottom: 18px; - overflow: hidden; - height: 0.7rem; -} - -.progress-bar { - box-shadow: none; - font-size: 8px; - font-weight: 600; - line-height: 12px; - background-color: #02c0ce; -} - -.progress-bar-primary { - background-color: #2d7bf4; -} - -.progress-bar-success { - background-color: #0acf97; -} - -.progress-bar-info { - background-color: #4eb7eb; -} - -.progress-bar-warning { - background-color: #f9bc0b; -} - -.progress-bar-danger { - background-color: #f1556c; -} - -.progress-bar-dark { - background-color: #313a46; -} - -.progress-bar-purple { - background-color: #777edd; -} - -.progress-bar-pink { - background-color: #ff679b; -} - -/* Progressbar Vertical */ -.progress-vertical { - min-height: 250px; - height: 250px; - width: 10px; - position: relative; - display: inline-block; - margin-bottom: 0; - margin-right: 20px; -} - -.progress-vertical .progress-bar { - width: 100%; -} - -.progress-vertical-bottom { - min-height: 250px; - height: 250px; - position: relative; - width: 10px; - display: inline-block; - margin-bottom: 0; - margin-right: 20px; -} - -.progress-vertical-bottom .progress-bar { - width: 100%; - position: absolute; - bottom: 0; -} - -.progress-vertical.progress-sm, .progress-vertical-bottom.progress-sm { - width: 5px; -} - -.progress-vertical.progress-sm .progress-bar, .progress-vertical-bottom.progress-sm .progress-bar { - font-size: 8px; - line-height: 5px; -} - -.progress-vertical.progress-md, .progress-vertical-bottom.progress-md { - width: 15px; -} - -.progress-vertical.progress-md .progress-bar, .progress-vertical-bottom.progress-md .progress-bar { - font-size: 10.8px; - line-height: 14.4px; -} - -.progress-vertical.progress-lg, .progress-vertical-bottom.progress-lg { - width: 20px; -} - -.progress-vertical.progress-lg .progress-bar, .progress-vertical-bottom.progress-lg .progress-bar { - font-size: 12px; - line-height: 20px; -} - -/* =========== */ -/* Sweet Alert */ -/* =========== */ -.swal2-modal { - font-family: "Roboto", sans-serif; - box-shadow: 0 10px 33px rgba(0, 0, 0, 0.1); -} - -.swal2-modal .swal2-title { - font-size: 28px; -} - -.swal2-modal .swal2-content { - font-size: 16px; -} - -.swal2-modal .swal2-spacer { - margin: 10px 0; -} - -.swal2-modal .swal2-file, .swal2-modal .swal2-input, .swal2-modal .swal2-textarea { - border: 2px solid #98a6ad; - font-size: 16px; - box-shadow: none; -} - -.swal2-modal .swal2-confirm.btn-confirm { - background-color: #02c0ce !important; -} - -.swal2-modal .swal2-cancel.btn-cancel { - background-color: #f1556c !important; -} - -.swal2-modal .swal2-styled:focus { - box-shadow: none !important; -} - -.swal2-icon.swal2-question { - color: #02c0ce; - border-color: #02c0ce; -} - -.swal2-icon.swal2-success { - border-color: #0acf97; -} - -.swal2-icon.swal2-success .line, .swal2-icon.swal2-success [class^=swal2-success-line][class$=long], -.swal2-icon.swal2-success [class^=swal2-success-line] { - background-color: #0acf97; -} - -.swal2-icon.swal2-success .placeholder, .swal2-icon.swal2-success .swal2-success-ring { - border-color: #0acf97; -} - -.swal2-icon.swal2-warning { - color: #f9bc0b; - border-color: #f9bc0b; -} - -.swal2-icon.swal2-error { - border-color: #f1556c; -} - -.swal2-icon.swal2-error .line { - background-color: #f1556c; -} - -.swal2-modal .swal2-file:focus, .swal2-modal .swal2-input:focus, .swal2-modal .swal2-textarea:focus { - outline: 0; - border: 2px solid #02c0ce; -} - -.swal2-container.swal2-shown { - background-color: rgba(49, 58, 70, 0.9); -} - -/* ============= - Charts -============= */ -/* Flot chart */ -#flotTip { - padding: 8px 12px; - background-color: #ffffff; - z-index: 100; - color: #313a46; - opacity: 1; - box-shadow: 0 5px 25px 5px rgba(0, 0, 0, 0.14); - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.legend tr { - height: 30px; - font-family: "Rubik", sans-serif; -} - -.legendLabel { - padding-left: 5px !important; - line-height: 10px; - padding-right: 20px; - font-size: 13px; - font-weight: 500; - color: rgba(49, 58, 70, 0.6); - text-transform: uppercase; -} - -.legendColorBox div div { - border-radius: 50%; -} - -/* Morris chart */ -.morris-hover.morris-default-style { - border-radius: 3px; - padding: 10px 12px; - background: #ffffff; - border: none; - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); - color: #313a46; -} - -/* Chartist chart */ -.ct-golden-section:before { - float: none; -} - -.ct-chart { - max-height: 350px; -} - -.ct-chart .ct-label { - fill: #98a6ad; - color: #98a6ad; - font-size: 13px; - line-height: 1; -} - -.ct-grid { - stroke: rgba(49, 58, 70, 0.1); -} - -.ct-chart.simple-pie-chart-chartist .ct-label { - color: #ffffff; - fill: #ffffff; - font-size: 16px; -} - -.ct-chart .ct-series.ct-series-a .ct-bar, .ct-chart .ct-series.ct-series-a .ct-line, .ct-chart .ct-series.ct-series-a .ct-point, .ct-chart .ct-series.ct-series-a .ct-slice-donut { - stroke: #02c0ce; -} - -.ct-chart .ct-series.ct-series-b .ct-bar, .ct-chart .ct-series.ct-series-b .ct-line, .ct-chart .ct-series.ct-series-b .ct-point, .ct-chart .ct-series.ct-series-b .ct-slice-donut { - stroke: #e3eaef; -} - -.ct-chart .ct-series.ct-series-c .ct-bar, .ct-chart .ct-series.ct-series-c .ct-line, .ct-chart .ct-series.ct-series-c .ct-point, .ct-chart .ct-series.ct-series-c .ct-slice-donut { - stroke: #2d7bf4; -} - -.ct-chart .ct-series.ct-series-d .ct-bar, .ct-chart .ct-series.ct-series-d .ct-line, .ct-chart .ct-series.ct-series-d .ct-point, .ct-chart .ct-series.ct-series-d .ct-slice-donut { - stroke: #f1556c; -} - -.ct-chart .ct-series.ct-series-e .ct-bar, .ct-chart .ct-series.ct-series-e .ct-line, .ct-chart .ct-series.ct-series-e .ct-point, .ct-chart .ct-series.ct-series-e .ct-slice-donut { - stroke: #4eb7eb; -} - -.ct-chart .ct-series.ct-series-f .ct-bar, .ct-chart .ct-series.ct-series-f .ct-line, .ct-chart .ct-series.ct-series-f .ct-point, .ct-chart .ct-series.ct-series-f .ct-slice-donut { - stroke: #ff679b; -} - -.ct-chart .ct-series.ct-series-g .ct-bar, .ct-chart .ct-series.ct-series-g .ct-line, .ct-chart .ct-series.ct-series-g .ct-point, .ct-chart .ct-series.ct-series-g .ct-slice-donut { - stroke: #f9bc0b; -} - -.ct-series-a .ct-area, .ct-series-a .ct-slice-pie { - fill: #02c0ce; -} - -.ct-series-b .ct-area, .ct-series-b .ct-slice-pie { - fill: #e3eaef; -} - -.ct-series-c .ct-area, .ct-series-c .ct-slice-pie { - fill: #2d7bf4; -} - -.ct-series-d .ct-area, .ct-series-d .ct-slice-pie { - fill: #f1556c; -} - -.chartist-tooltip { - position: absolute; - display: inline-block; - opacity: 0; - min-width: 10px; - padding: 2px 10px; - border-radius: 3px; - background: #313a46; - color: #ffffff; - text-align: center; - pointer-events: none; - z-index: 1; - -webkit-transition: opacity .2s linear; - -moz-transition: opacity .2s linear; - -o-transition: opacity .2s linear; - transition: opacity .2s linear; -} - -.chartist-tooltip.tooltip-show { - opacity: 1; -} - -/* Sparkline chart */ -.jqstooltip { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - width: auto !important; - height: auto !important; - background-color: #ffffff !important; - box-shadow: 0 5px 25px 5px rgba(0, 0, 0, 0.14); - padding: 5px 10px !important; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-border-radius: 3px; - border-color: #ffffff !important; -} - -.jqsfield { - color: #313a46 !important; - font-size: 12px !important; - line-height: 18px !important; -} - -/* ============= - Email -============= */ -.inbox-leftbar { - width: 240px; - float: left; - padding: 0 20px 20px 10px; -} - -.inbox-rightbar { - margin-left: 250px; -} - -.message-list { - display: block; - padding-left: 0; -} - -.message-list li { - position: relative; - display: block; - height: 50px; - line-height: 50px; - cursor: default; - transition-duration: .3s; -} - -.message-list li a { - color: #797979; -} - -.message-list li:hover { - background: rgba(152, 166, 173, 0.15); - transition-duration: .05s; -} - -.message-list li .col-mail { - float: left; - position: relative; -} - -.message-list li .col-mail-1 { - width: 320px; -} - -.message-list li .col-mail-1 .star-toggle, -.message-list li .col-mail-1 .checkbox-wrapper-mail, -.message-list li .col-mail-1 .dot { - display: block; - float: left; -} - -.message-list li .col-mail-1 .dot { - border: 4px solid transparent; - border-radius: 100px; - margin: 22px 26px 0; - height: 0; - width: 0; - line-height: 0; - font-size: 0; -} - -.message-list li .col-mail-1 .checkbox-wrapper-mail { - margin: 15px 10px 0 20px; -} - -.message-list li .col-mail-1 .star-toggle { - margin-top: 18px; - font-size: 16px; - margin-left: 5px; -} - -.message-list li .col-mail-1 .title { - position: absolute; - top: 15px; - left: 110px; - right: 0; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; -} - -.message-list li .col-mail-2 { - position: absolute; - top: 0; - left: 320px; - right: 0; - bottom: 0; -} - -.message-list li .col-mail-2 .subject, -.message-list li .col-mail-2 .date { - position: absolute; - top: 0; -} - -.message-list li .col-mail-2 .subject { - left: 0; - right: 200px; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; -} - -.message-list li .col-mail-2 .date { - right: 0; - width: 170px; - padding-left: 80px; -} - -.message-list li.active, .message-list li.selected { - background: rgba(152, 166, 173, 0.15); - transition-duration: .05s; -} - -.message-list li.active, -.message-list li.active:hover { - box-shadow: inset 3px 0 0 #02c0ce; -} - -.message-list li.unread a { - font-weight: 600; - color: #272e37; -} - -.message-list li.blue-dot .col-mail-1 .dot { - border-color: #2d7bf4; -} - -.message-list li.orange-dot .col-mail-1 .dot { - border-color: #f9bc0b; -} - -.message-list li.green-dot .col-mail-1 .dot { - border-color: #0acf97; -} - -.message-list .checkbox-wrapper-mail { - cursor: pointer; - height: 20px; - width: 20px; - position: relative; - display: inline-block; - box-shadow: inset 0 0 0 1px #98a6ad; - border-radius: 1px; -} - -.message-list .checkbox-wrapper-mail input { - opacity: 0; - cursor: pointer; -} - -.message-list .checkbox-wrapper-mail input:checked ~ label { - opacity: 1; -} - -.message-list .checkbox-wrapper-mail label { - position: absolute; - top: 3px; - left: 3px; - right: 3px; - bottom: 3px; - cursor: pointer; - background: #98a6ad; - opacity: 0; - margin-bottom: 0 !important; - transition-duration: .05s; -} - -.message-list .checkbox-wrapper-mail label:active { - background: #87949b; -} - -.mail-list a { - font-family: "Rubik", sans-serif; - vertical-align: middle; - color: #797979; - padding: 10px 15px; - display: block; -} - -.reply-box { - border: 2px solid #e3eaef; -} - -@media (max-width: 648px) { - .inbox-leftbar { - width: 100%; - } - .inbox-rightbar { - margin-left: 0; - } -} - -@media (max-width: 520px) { - .message-list li .col-mail-1 { - width: 150px; - } - .message-list li .col-mail-1 .title { - left: 80px; - } - .message-list li .col-mail-2 { - left: 160px; - } - .message-list li .col-mail-2 .date { - text-align: right; - padding-right: 10px; - padding-left: 20px; - } -} - -/* ============= - Form -============= */ -label { - font-size: 14px; - color: #313a46; - font-family: "Rubik", sans-serif; - font-weight: 500; -} - -select[multiple] option + option, select[size] option + option { - margin-top: 1px; -} - -select[multiple] option, select[size] option { - padding: 6px 12px; - border-radius: 2px; -} - -select[multiple] { - height: auto; -} - -textarea.form-control { - min-height: 90px; -} - -.form-control { - border: 1px solid #d9e3e9; - border-radius: 4px; - max-width: 100%; - padding: .469rem .75rem; - font-size: 14px; - -webkit-box-shadow: none; - box-shadow: none; - -webkit-transition: all 300ms linear; - -moz-transition: all 300ms linear; - -o-transition: all 300ms linear; - transition: all 300ms linear; -} - -.form-control:focus { - border: 1px solid #a2b9ca; - -webkit-box-shadow: none; - box-shadow: none; - outline: 0; -} - -.form-control-lg { - padding: 12px 16px; - font-size: 16px; - border-radius: 4px; -} - -.form-control-sm { - padding: 5px 10px; - font-size: 12px; - border-radius: 3px; -} - -input[type="color"] { - min-height: 38px; -} - -.input-group-prepend .btn, .input-group-append .btn { - min-height: 38px; -} - -.form-control-sm, .input-group-sm > .form-control, .input-group-sm > .input-group-append > .btn, -.input-group-sm > .input-group-append > .input-group-text, .input-group-sm > .input-group-prepend > .btn, -.input-group-sm > .input-group-prepend > .input-group-text { - font-size: 12px; -} - -.custom-select:focus { - box-shadow: none; -} - -.custom-control-input { - display: none; -} - -.custom-control-input:checked ~ .custom-control-indicator { - background-color: #02c0ce; -} - -.form-check-input:only-child { - position: absolute; -} - -/* ============= - Form Advanced -============= */ -/* Select 2 */ -.select2-container { - width: 100% !important; -} - -.select2-container .select2-selection--single { - border: 1px solid #e0e8ed; - height: 38px; -} - -.select2-container .select2-selection--single .select2-selection__rendered { - line-height: 36px; - padding-left: 12px; -} - -.select2-container .select2-selection--single .select2-selection__arrow { - height: 34px; - width: 34px; - right: 3px; -} - -.select2-container .select2-selection--single .select2-selection__arrow b { - border-color: #b2c5d3 transparent transparent transparent; - border-width: 6px 6px 0 6px; -} - -.select2-container--open .select2-selection--single .select2-selection__arrow b { - border-color: transparent transparent #b2c5d3 transparent !important; - border-width: 0 6px 6px 6px !important; -} - -.select2-results__option { - padding: 6px 12px; -} - -.select2-dropdown { - border: 1px solid #d3dee6; - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); -} - -.select2-container--default .select2-search--dropdown { - padding: 10px; - background-color: #f3f6f8; -} - -.select2-container--default .select2-search--dropdown .select2-search__field { - border: 1px solid #d3dee6; -} - -.select2-container--default .select2-results__option--highlighted[aria-selected] { - background-color: #02c0ce; -} - -.select2-container--default .select2-results__option[aria-selected=true] { - background-color: #e3eaef; - color: #313a46; -} - -.select2-container--default .select2-results__option[aria-selected=true]:hover { - background-color: #02c0ce; - color: #ffffff; -} - -.select2-container .select2-selection--multiple { - min-height: 38px; - border: 1px solid #d3dee6 !important; -} - -.select2-container .select2-selection--multiple .select2-selection__rendered { - padding: 2px 10px; -} - -.select2-container .select2-selection--multiple .select2-search__field { - margin-top: 7px; - border: 0; -} - -.select2-container .select2-selection--multiple .select2-selection__choice { - background-color: #02c0ce; - border: 1px solid transparent; - color: #ffffff; - border-radius: 3px; - padding: 0 7px; -} - -.select2-container .select2-selection--multiple .select2-selection__choice__remove { - color: #ffffff; - margin-right: 5px; -} - -.select2-container .select2-selection--multiple .select2-selection__choice__remove:hover { - color: #ffffff; -} - -/* AUTOCOMPLETE */ -.autocomplete-suggestions { - border: 1px solid #e3eaef; - background: #ffffff; - cursor: default; - overflow: auto; - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); -} - -.autocomplete-suggestion { - padding: 5px 8px; - white-space: nowrap; - overflow: hidden; -} - -.autocomplete-no-suggestion { - padding: 5px 10px; - color: #f1556c; -} - -.autocomplete-selected { - background-color: #02c0ce; - color: #ffffff; - cursor: pointer; -} - -.autocomplete-selected strong { - color: #ffffff !important; -} - -.autocomplete-suggestions strong { - font-weight: bold; - color: #313a46; -} - -.autocomplete-group { - padding: 2px 5px; -} - -.autocomplete-group strong { - font-weight: bold; - font-size: 16px; - color: #313a46; - display: block; -} - -/* Bootstrap tagsinput */ -.bootstrap-tagsinput { - box-shadow: none; - padding: 3px 7px 5px; - width: 100%; - line-height: 1; - border: 1px solid #d3dee6; -} - -.bootstrap-tagsinput .label-info { - background-color: #02c0ce; - display: inline-block; - padding: 4px 8px; - font-size: 13px; - margin: 3px 1px; - border-radius: 3px; -} - -/* Bootstrap select */ -.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn) { - width: 100% !important; -} - -.bootstrap-select .dropdown-toggle:focus { - outline: none !important; -} - -.bootstrap-select .glyphicon { - padding-right: 6px; -} - -.bootstrap-select.show > .dropdown-menu > .dropdown-menu { - display: block; -} - -.bootstrap-select > .dropdown-menu > .dropdown-menu li.hidden { - display: none; -} - -.bootstrap-select > .dropdown-menu > .dropdown-menu li a { - display: block; - width: 100%; - padding: 3px 1.5rem; - clear: both; - font-weight: 400; - color: #313a46; - text-align: inherit; - white-space: nowrap; - background: 0 0; - border: 0; -} - -.bootstrap-select > .dropdown-menu > .dropdown-menu li a:hover { - background-color: #02c0ce; - color: #ffffff; -} - -.bootstrap-select .check-mark::after { - content: "\F12C"; - font-family: "Material Design Icons"; -} - -.bootstrap-select button { - overflow: hidden; - text-overflow: ellipsis; -} - -.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark { - margin-top: 0; -} - -.bootstrap-select.btn-group .no-results { - background-color: #ffffff; - color: #f1556c; -} - -/* X Editable */ -.editable-checklist label { - display: block; -} - -.editable-click, a.editable-click, a.editable-click:hover { - color: #02c0ce; -} - -/* Bootstrap Fileupload */ -.bootstrap-filestyle .group-span-filestyle .btn { - min-height: 38px; - line-height: 24px; -} - -/* ============= - Form Validation -============= */ -.parsley-errors-list { - margin: 0; - padding: 0; -} - -.parsley-errors-list > li { - list-style: none; - color: #f1556c; - margin-top: 5px; - padding-left: 20px; - position: relative; -} - -.parsley-errors-list > li:before { - content: "\F159"; - font-family: "Material Design Icons"; - position: absolute; - left: 2px; - top: -1px; -} - -/* ============= - Form Pickers -============= */ -/* Time Picker */ -.bootstrap-timepicker-widget table td input { - height: 32px; - width: 32px; - color: #ffffff; - background-color: #02c0ce; - border-radius: 50%; -} - -.bootstrap-timepicker-widget table td a:hover { - background-color: transparent; - border: 1px solid transparent; - color: #02c0ce; -} - -/* Color Picker */ -.colorpicker-selectors i { - margin-top: 5px; - margin-left: 5px; -} - -/* Datepicker */ -.datepicker-dropdown { - padding: 10px !important; -} - -.datepicker > div { - display: inherit; -} - -.datepicker td, .datepicker th { - width: 30px; - height: 30px; -} - -.datepicker table tr td.active:hover, .datepicker table tr td.active:hover:hover, -.datepicker table tr td.active.disabled:hover, -.datepicker table tr td.active.disabled:hover:hover, -.datepicker table tr td.active:active, .datepicker table tr td.active:hover:active, -.datepicker table tr td.active.disabled:active, -.datepicker table tr td.active.disabled:hover:active, -.datepicker table tr td.active.active, .datepicker table tr td.active:hover.active, -.datepicker table tr td.active.disabled.active, -.datepicker table tr td.active.disabled:hover.active, -.datepicker table tr td.active.disabled, -.datepicker table tr td.active:hover.disabled, -.datepicker table tr td.active.disabled.disabled, -.datepicker table tr td.active.disabled:hover.disabled, -.datepicker table tr td.active[disabled], .datepicker table tr td.active:hover[disabled], -.datepicker table tr td.active.disabled[disabled], -.datepicker table tr td.active.disabled:hover[disabled], -.datepicker table tr td.selected, .datepicker table tr td.selected:hover, -.datepicker table tr td.selected.disabled, .datepicker table tr td.selected.disabled:hover { - background-color: #02c0ce !important; - color: #ffffff !important; - background-image: none !important; - text-shadow: none !important; -} - -.datepicker table tr td.today, .datepicker table tr td.today:hover, .datepicker table tr td.today.disabled, .datepicker table tr td.today.disabled:hover { - background-color: #02c0ce !important; - color: #ffffff !important; - background-image: none !important; -} - -.datepicker-inline { - border: 2px solid #d3dee6; - width: 240px; -} - -.datepicker .datepicker-switch:hover, .datepicker .next:hover, .datepicker .prev:hover, .datepicker tfoot tr th:hover, -.datepicker table tr td.day.focused, .datepicker table tr td.day:hover { - background: #e3eaef; -} - -/* Daterange Picker */ -.daterangepicker td.active, .daterangepicker td.active:hover { - background: #02c0ce; -} - -.daterangepicker .input-mini.active { - border: 1px solid rgba(49, 58, 70, 0.3); -} - -.daterangepicker .ranges li { - border-radius: 2px; - color: #313a46; - font-size: 12px; - background-color: #e3eaef; - border-color: #e3eaef; -} - -.daterangepicker select.hourselect, .daterangepicker select.minuteselect, -.daterangepicker select.secondselect, .daterangepicker select.ampmselect { - border: 1px solid rgba(49, 58, 70, 0.3); - padding: 2px; - width: 60px; -} - -.daterangepicker .ranges li.active, .daterangepicker .ranges li:hover { - background: #02c0ce; - border: 1px solid #02c0ce; - color: #ffffff; -} - -.daterangepicker select.monthselect, .daterangepicker select.yearselect { - border: none; -} - -/* Clock picker */ -.clockpicker-canvas line { - stroke: #b7f9fe; -} - -.clockpicker-canvas-bearing, .clockpicker-canvas-fg, .clockpicker-canvas-bg { - fill: #b7f9fe; -} - -/* ============= - Form Wizard -============= */ -.wizard > .content { - background: #ffffff; - min-height: 240px; - padding: 20px; - margin-top: 0; -} - -.wizard > .content > .body { - padding: 0; - position: relative; -} - -.wizard > .content > .body ul > li { - display: block; - line-height: 30px; -} - -.wizard > .content > .body label.error { - color: #f1556c; - margin-left: 0; -} - -.wizard > .content > .body label { - display: inline-block; - margin-top: 10px; -} - -.wizard > .content > .body input { - border-color: #d9e3e9; -} - -.wizard > .steps { - background-color: #f3f6f8; -} - -.wizard > .steps .number { - border-radius: 50%; - background-color: rgba(255, 255, 255, 0.3); - display: inline-block; - line-height: 30px; - margin-right: 10px; - width: 30px; - text-align: center; -} - -.wizard > .steps .disabled a, .wizard > .steps .disabled a:hover, .wizard > .steps .disabled a:active { - background: transparent; - color: #313a46; - cursor: default; - border: none; -} - -.wizard > .steps .current a { - background: #02c0ce; -} - -.wizard > .steps .current a:hover, .wizard > .steps .current a:active { - background: #02c0ce; -} - -.wizard > .steps .current a:hover .number, .wizard > .steps .current a:active .number { - color: #ffffff; -} - -.wizard > .steps .current a .number { - color: #ffffff; -} - -.wizard > .steps .done a { - background: #e3eaef; - color: #313a46; -} - -.wizard > .steps .done a:hover, .wizard > .steps .done a:active { - background: #e3eaef; - color: #313a46; -} - -.wizard > .steps a, .wizard > .steps a:hover, .wizard > .steps a:active { - border-radius: 2px; - margin: 0; -} - -.wizard > .actions { - padding: 0 20px; - margin: 0 !important; -} - -.wizard > .actions a, .wizard > .actions a:hover, .wizard > .actions a:active { - background: #02c0ce; - border-radius: 2px; - color: #ffffff; -} - -.wizard > .actions .disabled a, .wizard > .actions .disabled a:hover, .wizard > .actions .disabled a:active { - background: #f2f2f2; - color: #313a46; - cursor: default; - border: none; -} - -/* ============= - Summernote -============= */ -.note-editor.note-frame { - border: 3px solid #edf1f5; -} - -.note-popover .popover-content, .card-header.note-toolbar { - background-color: #edf1f5; - padding: 2px 5px 10px 10px; - border: none; -} - -.note-editor.note-frame .note-statusbar { - background-color: #edf1f5; -} - -.note-editor.note-frame .note-editing-area .note-editable { - padding: 10px 20px; -} - -.note-btn-group .btn-light { - background-color: #02c0ce !important; - color: #ffffff !important; - border-radius: 4px !important; - border: none !important; - margin: 2px; - box-shadow: none !important; -} - -/* ============= - Wysiwig -============= */ -.mce-panel { - border: 1px solid #edf1f5 !important; - background-color: #edf1f5 !important; -} - -.mce-menu { - background-color: #ffffff !important; - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); -} - -.mce-menubar .mce-menubtn:hover, .mce-menubar .mce-menubtn.mce-active, .mce-menubar .mce-menubtn:focus { - border-color: #edf1f5 !important; -} - -.mce-menu-item:hover, .mce-menu-item.mce-selected, .mce-menu-item:focus, .mce-menu-item-normal.mce-active, -.mce-primary { - background-color: #02c0ce !important; -} - -.mce-window-head .mce-title { - font-family: "Rubik", sans-serif; -} - -.mce-window { - padding: 20px !important; -} - -.mce-window-head { - padding-bottom: 20px !important; - border-bottom: 0 !important; -} - -.mce-grid-border a:hover, .mce-grid-border a.mce-active { - border-color: #02c0ce !important; - background: #02c0ce !important; -} - -.mce-btn { - background-color: #02c0ce !important; - border: none !important; - border-radius: 3px; - color: #ffffff !important; -} - -.mce-menubtn button, .mce-btn button { - color: #ffffff !important; -} - -.mce-menubtn button span, .mce-menubtn button i, .mce-btn button span, .mce-btn button i { - color: #ffffff !important; -} - -.mce-menubar .mce-caret, .mce-btn .mce-caret { - border-top-color: #ffffff !important; -} - -.mce-flow-layout { - padding: 5px !important; -} - -/* ============= - Form Uploads -============= */ -/* Dropzone */ -.dropzone { - min-height: 230px; - border: 2px dashed rgba(0, 0, 0, 0.3); - background: white; - border-radius: 6px; -} - -.dropzone .dz-message { - font-size: 30px; -} - -/* ============= - Tables -============= */ -.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th { - padding: 12px 10px; -} - -.table-sm td, .table-sm th { - padding: .4rem !important; -} - -.table-condensed > tbody > tr > td, .table-condensed > tbody > tr > th, .table-condensed > tfoot > tr > td, .table-condensed > tfoot > tr > th, .table-condensed > thead > tr > td, .table-condensed > thead > tr > th { - padding: 7px; -} - -th { - font-family: "Rubik", sans-serif; - font-weight: 500; -} - -.table-centered td { - vertical-align: middle !important; -} - -.table-striped tbody tr:nth-of-type(odd), .table-hover tbody tr:hover, .table-active, .table-active > td, .table-active > th { - background-color: #f3f6f8; -} - -.table-success, .table-success > td, .table-success > th { - background-color: rgba(10, 207, 151, 0.15); - border-color: rgba(10, 207, 151, 0.2); -} - -.table-info, .table-info > td, .table-info > th { - background-color: rgba(78, 183, 235, 0.15); - border-color: rgba(78, 183, 235, 0.2); -} - -.table-warning, .table-warning > td, .table-warning > th { - background-color: rgba(249, 188, 11, 0.1); - border-color: rgba(249, 188, 11, 0.2); -} - -.table-danger, .table-danger > td, .table-danger > th { - background-color: rgba(241, 85, 108, 0.1); - border-color: rgba(241, 85, 108, 0.2); -} - -/* Data table */ -.container-fluid.dataTables_wrapper { - max-width: 100%; - padding: 0; -} - -div.dt-button-info { - background-color: #02c0ce; - border: none; - color: #ffffff; - box-shadow: none; - border-radius: 3px; - text-align: center; - z-index: 21; -} - -div.dt-button-info h2 { - border-bottom: none; - background-color: rgba(255, 255, 255, 0.2); - color: #ffffff; -} - -table.dataTable { - margin-top: 10px !important; - margin-bottom: 18px !important; -} - -.table-bordered.dataTable > thead > tr > td, .table-bordered.dataTable > thead > tr > th { - border-bottom-width: 1px !important; -} - -table.dataTable th.focus, table.dataTable td.focus { - outline: 2px solid #02c0ce !important; - outline-offset: -1px; - background-color: rgba(2, 192, 206, 0.15); -} - -table.dataTable tbody > tr.selected, table.dataTable tbody > tr > .selected { - background-color: #02c0ce; -} - -/* Responsive data table */ -table.dataTable.dtr-inline.collapsed > tbody > tr > td:first-child:before, -table.dataTable.dtr-inline.collapsed > tbody > tr > th:first-child:before { - box-shadow: 0 0 3px rgba(67, 89, 102, 0.2); - background-color: #0acf97; -} - -table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child:before, -table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child:before { - background-color: #f1556c; -} - -table.dataTable > tbody > tr.child span.dtr-title { - font-family: "Rubik", sans-serif; -} - -/* Responsive Table */ -.table-rep-plugin .dropdown-menu li.checkbox-row { - padding: 7px 15px; -} - -.table-rep-plugin .table-responsive { - border: none; -} - -.table-rep-plugin tbody th { - font-size: 14px; - font-weight: normal; -} - -.table-rep-plugin .checkbox-row { - padding-left: 40px; -} - -.table-rep-plugin .checkbox-row label { - display: inline-block; - padding-left: 5px; - position: relative; - margin-bottom: 0; -} - -.table-rep-plugin .checkbox-row label::before { - -o-transition: 0.3s ease-in-out; - -webkit-transition: 0.3s ease-in-out; - background-color: #ffffff; - border-radius: 3px; - border: 1px solid #98a6ad; - content: ""; - display: inline-block; - height: 17px; - left: 0; - margin-left: -20px; - position: absolute; - transition: 0.3s ease-in-out; - width: 17px; - outline: none; -} - -.table-rep-plugin .checkbox-row label::after { - color: #f3f3f3; - display: inline-block; - font-size: 11px; - height: 16px; - left: 0; - margin-left: -20px; - padding-left: 3px; - padding-top: 1px; - position: absolute; - top: -1px; - width: 16px; -} - -.table-rep-plugin .checkbox-row input[type="checkbox"] { - cursor: pointer; - opacity: 0; - z-index: 1; - outline: none; -} - -.table-rep-plugin .checkbox-row input[type="checkbox"]:disabled + label { - opacity: 0.65; -} - -.table-rep-plugin .checkbox-row input[type="checkbox"]:focus + label::before { - outline-offset: -2px; - outline: none; -} - -.table-rep-plugin .checkbox-row input[type="checkbox"]:checked + label::after { - content: "\f00c"; - font-family: 'FontAwesome'; -} - -.table-rep-plugin .checkbox-row input[type="checkbox"]:disabled + label::before { - background-color: #e3eaef; - cursor: not-allowed; -} - -.table-rep-plugin .checkbox-row input[type="checkbox"]:checked + label::before { - background-color: #ffffff; - border-color: #02c0ce; -} - -.table-rep-plugin .checkbox-row input[type="checkbox"]:checked + label::after { - color: #02c0ce; -} - -.table-rep-plugin table.focus-on tbody tr.focused th, .table-rep-plugin table.focus-on tbody tr.focused td, -.table-rep-plugin .sticky-table-header { - background: #02c0ce; - color: #ffffff; - border-color: #02c0ce; -} - -.table-rep-plugin .sticky-table-header.fixed-solution { - top: 120px !important; -} - -.table-rep-plugin .btn-default { - background-color: #ffffff; - border: 1px solid rgba(49, 58, 70, 0.3); -} - -.table-rep-plugin .btn-group.pull-right { - float: right; -} - -.table-rep-plugin .btn-group.pull-right .dropdown-menu { - left: auto; - right: 0; -} - -.table-rep-plugin .btn-default.btn-primary { - background-color: #02c0ce; - border-color: #02c0ce; - box-shadow: 0 0 0 2px rgba(2, 192, 206, 0.5); -} - -.table-rep-plugin .btn-toolbar { - display: block; -} - -/* Tablesaw Tables */ -.tablesaw thead { - background: #f3f6f8; - background-image: none; - border: none; -} - -.tablesaw thead th { - text-shadow: none; -} - -.tablesaw thead tr:first-child th { - border: none; - font-weight: 500; - font-family: "Rubik", sans-serif; -} - -.tablesaw td { - border-top: 1px solid #f3f6f8 !important; -} - -.tablesaw td, .tablesaw tbody th { - font-size: inherit; - line-height: inherit; - padding: 10px !important; -} - -.tablesaw-stack tbody tr, .tablesaw tbody tr { - border-bottom: none; -} - -.tablesaw-sortable .tablesaw-sortable-head.tablesaw-sortable-ascending button:after, .tablesaw-sortable .tablesaw-sortable-head.tablesaw-sortable-descending button:after { - font-family: FontAwesome; - font-size: 10px; -} - -.tablesaw-sortable .tablesaw-sortable-head.tablesaw-sortable-ascending button:after { - content: "\f176"; -} - -.tablesaw-sortable .tablesaw-sortable-head.tablesaw-sortable-descending button:after { - content: "\f175"; -} - -.tablesaw-bar .btn-select.btn-small:after, .tablesaw-bar .btn-select.btn-micro:after { - font-size: 8px; - padding-right: 10px; -} - -.tablesaw-swipe .tablesaw-cell-persist { - box-shadow: none; - border-color: #e3eaef; -} - -.tablesaw-enhanced .tablesaw-bar .btn { - text-shadow: none; - background-image: none; - text-transform: none; - border: 1px solid #d3dee6; -} - -.tablesaw-enhanced .tablesaw-bar .btn.btn-select:hover { - background: #ffffff; -} - -.tablesaw thead tr:first-child th, .tablesaw-sortable th.tablesaw-sortable-head button { - padding-top: 1.2em; - padding-bottom: 1em; -} - -.tablesaw-enhanced .tablesaw-bar .btn:hover, .tablesaw-enhanced .tablesaw-bar .btn:focus, .tablesaw-enhanced .tablesaw-bar .btn:active { - color: #02c0ce !important; - background-color: #e3eaef; - outline: none !important; - box-shadow: none !important; - background-image: none; -} - -.tablesaw-columntoggle-popup .btn-group { - display: block; -} - -/* Footable */ -.footable-odd { - background-color: #ffffff; -} - -.footable-detail-show { - background-color: #e3eaef; -} - -.footable-row-detail { - background-color: #F0F4F7; -} - -.footable-pagination li { - margin-left: 5px; - display: inline-block; - float: left; -} - -.footable-pagination li a { - position: relative; - display: block; - padding: .5rem .75rem; - margin-left: -1px; - line-height: 1.25; - color: #313a46; - background-color: #ffffff; - border: 1px solid #e3eaef; -} - -.footable-pagination li.active a { - color: #ffffff; -} - -.footable > thead > tr > th > span.footable-sort-indicator { - float: right; -} - -.footable a { - color: #02c0ce; -} - -/* ============= - Maps -============= */ -.gmaps, -.gmaps-panaroma { - height: 300px; - background: #e3eaef; - border-radius: 3px; -} - -.gmaps-overlay { - display: block; - text-align: center; - color: #ffffff; - font-size: 16px; - line-height: 40px; - background: #02c0ce; - border-radius: 4px; - padding: 10px 20px; -} - -.gmaps-overlay_arrow { - left: 50%; - margin-left: -16px; - width: 0; - height: 0; - position: absolute; -} - -.gmaps-overlay_arrow.above { - bottom: -15px; - border-left: 16px solid transparent; - border-right: 16px solid transparent; - border-top: 16px solid #02c0ce; -} - -.gmaps-overlay_arrow.below { - top: -15px; - border-left: 16px solid transparent; - border-right: 16px solid transparent; - border-bottom: 16px solid #02c0ce; -} - -.gmaps-full { - z-index: 99; - margin: 0 -20px -10px -20px; -} - -.gmaps-full .gmaps-full1 { - height: 80vh; - width: 100%; -} - -/* Vector Map */ -.jvectormap-zoomin, -.jvectormap-zoomout { - width: 10px; - height: 10px; - line-height: 10px; -} - -.jvectormap-zoomout { - top: 40px; -} - -.jvectormap-tip { - border: none; - background: #313a46; - color: white; - font-family: "Rubik", sans-serif; - font-size: 14px; - padding: 5px 8px; -} - -/* Mapael Map */ -.mapael .map { - position: relative; -} - -.mapael .mapTooltip { - position: absolute; - background-color: #02c0ce; - opacity: 0.95; - border-radius: 3px; - padding: 2px 10px; - z-index: 1000; - max-width: 200px; - display: none; - color: #ffffff; - font-family: "Rubik", sans-serif; -} - -.mapael .zoomIn, .mapael .zoomOut, .mapael .zoomReset { - display: inline-block; - text-align: center; - vertical-align: middle; - border-radius: 2px; - font-weight: 500; - cursor: pointer; - background-color: #02c0ce; - text-decoration: none; - color: #ffffff; - font-size: 14px; - position: absolute; - top: 0; - left: 10px; - width: 24px; - height: 24px; - line-height: 24px; -} - -.map .zoomIn { - top: 25px; -} - -.map .zoomOut { - top: 50px; -} - -/* ============= - Calendar -============= */ -.calendar { - float: left; - margin-bottom: 0; -} - -.fc-view { - margin-top: 30px; -} - -.none-border .modal-footer { - border-top: none; -} - -.fc-toolbar { - margin-bottom: 5px; - margin-top: 15px; -} - -.fc-toolbar h2 { - font-size: 20px; - font-family: "Rubik", sans-serif; - line-height: 30px; - text-transform: uppercase; -} - -.fc-day-grid-event .fc-time { - font-family: "Rubik", sans-serif; -} - -.fc-day { - background: #ffffff; -} - -.fc-toolbar .fc-state-active, .fc-toolbar .ui-state-active, -.fc-toolbar button:focus, .fc-toolbar button:hover, -.fc-toolbar .ui-state-hover { - z-index: 0; -} - -.fc th.fc-widget-header { - background: #e3eaef; - font-size: 13px; - line-height: 20px; - padding: 10px 0; - text-transform: uppercase; -} - -.fc-unthemed th, .fc-unthemed td, .fc-unthemed thead, .fc-unthemed tbody, .fc-unthemed .fc-divider, .fc-unthemed .fc-row, .fc-unthemed .fc-popover { - border-color: #e3eaef; -} - -.fc-button { - background: #e3eaef; - border: none; - color: #797979; - text-transform: capitalize; - box-shadow: none; - border-radius: 3px; - margin: 0 3px; - padding: 6px 12px; - height: auto; -} - -.fc-text-arrow { - font-family: inherit; - font-size: 16px; -} - -.fc-state-hover { - background: #f3f3f3; -} - -.fc-state-highlight { - background: #f0f0f0; -} - -.fc-state-down, .fc-state-active, .fc-state-disabled { - background-color: #02c0ce; - color: #ffffff; - text-shadow: none; -} - -.fc-cell-overlay { - background: #f0f0f0; -} - -.fc-unthemed .fc-today { - background: #ffffff; -} - -.fc-event { - border-radius: 2px; - border: none; - cursor: move; - font-size: 13px; - margin: 5px 7px; - padding: 5px 5px; - text-align: center; -} - -.external-event { - cursor: move; - margin: 10px 0; - padding: 8px 10px; - color: #ffffff; -} - -.fc-basic-view td.fc-week-number span { - padding-right: 8px; - font-family: "Rubik", sans-serif; -} - -.fc-basic-view td.fc-day-number { - padding-right: 8px; - font-family: "Rubik", sans-serif; -} - -.fc-basic-view .fc-content { - color: #ffffff; -} - -.fc-time-grid-event .fc-content { - color: #ffffff; -} - -/* =========== -Tickets -============== */ -.tickets-list a { - color: #98a6ad; - white-space: nowrap; -} - -.tickets-list img { - height: 32px; - width: 32px; -} - -.tickets-list td { - vertical-align: middle; -} - -/* ============= - Task board -============= */ -.taskList { - min-height: 40px; - margin-bottom: 0; -} - -.taskList li { - background-color: #ffffff; - border: 1px solid rgba(121, 121, 121, 0.2); - padding: 10px; - margin-bottom: 15px; - border-radius: 3px; -} - -.taskList li:last-of-type { - margin-bottom: 0; -} - -.taskList a { - font-size: 13px; -} - -.taskList .checkbox { - margin-left: 20px; - margin-top: 5px; -} - -.task-placeholder { - border: 1px dashed rgba(227, 234, 239, 0.9) !important; - background-color: rgba(227, 234, 239, 0.2) !important; - padding: 20px; -} - -/* Task Detail */ -.task-detail .task-dates li { - width: 50%; - float: left; -} - -.task-detail .task-tags .bootstrap-tagsinput { - padding: 0px; - border: none; -} - -.task-detail .assign-team a { - display: inline-block; - margin: 5px 5px 5px 0px; -} - -.task-detail .files-list .file-box { - display: inline-block; - vertical-align: middle; - width: 80px; - padding: 2px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-border-radius: 3px; - background-clip: padding-box; -} - -.task-detail .files-list .file-box img { - line-height: 70px; -} - -.task-detail .files-list .file-box p { - width: 100%; - display: block; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.add-new-plus { - height: 32px; - text-align: center; - width: 32px; - display: block; - line-height: 32px; - color: #98a6ad; - font-weight: 700; - background-color: #e3eaef; - border-radius: 50%; -} - -/* ============= - Projects -============= */ -.project-sort-item .form-group { - margin-right: 30px; -} - -.project-sort-item .form-group:last-of-type { - margin-right: 0; -} - -.project-box { - position: relative; -} - -.project-box .badge { - position: absolute; - right: 20px; -} - -.project-box h4 { - text-overflow: ellipsis; - white-space: nowrap; - display: block; - width: 100%; - overflow: hidden; -} - -.project-box ul li { - padding-right: 30px; -} - -.project-box .project-members a { - margin: 0 0 10px -12px; - display: inline-block; - border: 3px solid #ffffff; - border-radius: 50%; - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); -} - -.project-box .project-members a:first-of-type { - margin-left: 0; -} - -/* =========== -Companies -============== */ -.company-card .company-logo { - float: left; - height: 60px; - width: 60px; - border-radius: 3px; -} - -.company-card .company-detail { - margin: 0 0 50px 75px; -} - -/* =========== -File Manager -============== */ -.file-man-box { - padding: 20px; - border: 1px solid #e3eaef; - border-radius: 5px; - position: relative; - margin-bottom: 20px; -} - -.file-man-box .file-close { - color: #f1556c; - position: absolute; - line-height: 24px; - font-size: 24px; - right: 10px; - top: 10px; - visibility: hidden; -} - -.file-man-box .file-img-box { - line-height: 120px; - text-align: center; -} - -.file-man-box .file-img-box img { - height: 64px; -} - -.file-man-box .file-download { - font-size: 32px; - color: #98a6ad; - position: absolute; - right: 10px; -} - -.file-man-box .file-download:hover { - color: #313a46; -} - -.file-man-box .file-man-title { - padding-right: 25px; -} - -.file-man-box:hover { - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); -} - -.file-man-box:hover .file-close { - visibility: visible; -} - -/* ============= - Timeline -============= */ -.timeline { - border-collapse: collapse; - border-spacing: 0; - display: table; - margin-bottom: 50px; - position: relative; - table-layout: fixed; - width: 100%; -} - -.timeline .time-show { - margin-bottom: 30px; - margin-right: -75px; - margin-top: 30px; - position: relative; -} - -.timeline:before { - background-color: #e3eaef; - bottom: 0; - content: ""; - left: 50%; - position: absolute; - top: 30px; - width: 2px; - z-index: 0; -} - -.timeline .timeline-icon { - -webkit-border-radius: 50%; - background: #e3eaef; - border-radius: 50%; - display: block; - height: 20px; - left: -54px; - margin-top: -10px; - position: absolute; - text-align: center; - top: 50%; - width: 20px; -} - -.timeline .timeline-icon i { - color: #ffffff; - font-size: 13px; - margin-top: 1px; - position: absolute; - left: 4px; -} - -.timeline .time-icon:before { - font-size: 16px; - margin-top: 5px; -} - -h3.timeline-title { - color: #797979; - font-size: 20px; - font-weight: 400; - margin: 0 0 5px; - text-transform: uppercase; -} - -.timeline-item { - display: table-row; -} - -.timeline-item:before { - content: ""; - display: block; - width: 50%; -} - -.timeline-item .timeline-desk .arrow { - border-bottom: 12px solid transparent; - border-right: 12px solid #e9eff3 !important; - border-top: 12px solid transparent; - display: block; - height: 0; - left: -12px; - margin-top: -12px; - position: absolute; - top: 50%; - width: 0; -} - -.timeline-item .timeline-desk .timeline-box { - padding: 20px; -} - -.timeline-item .timeline-date { - margin-bottom: 10px; -} - -.timeline-item.alt:after { - content: ""; - display: block; - width: 50%; -} - -.timeline-item.alt .timeline-desk .arrow-alt { - border-bottom: 12px solid transparent; - border-left: 12px solid #edf1f5 !important; - border-top: 12px solid transparent; - display: block; - height: 0; - left: auto; - margin-top: -12px; - position: absolute; - right: -12px; - top: 50%; - width: 0; -} - -.timeline-item.alt .timeline-desk .album { - float: right; - margin-top: 20px; -} - -.timeline-item.alt .timeline-desk .album a { - float: right; - margin-left: 5px; -} - -.timeline-item.alt .timeline-icon { - left: auto; - right: -56px; -} - -.timeline-item.alt:before { - display: none; -} - -.timeline-item.alt .panel { - margin-left: 0; - margin-right: 45px; -} - -.timeline-item.alt h4, .timeline-item.alt p, .timeline-item.alt .timeline-date { - text-align: right; -} - -.timeline-desk { - display: table-cell; - vertical-align: top; - width: 50%; -} - -.timeline-desk h4 { - font-size: 16px; - font-weight: normal; - margin: 0; -} - -.timeline-desk .panel { - background: #edf1f5; - display: block; - margin-bottom: 5px; - margin-left: 45px; - position: relative; - text-align: left; - border: 0; -} - -.timeline-desk h5 span { - color: #797979; - display: block; - font-size: 12px; - margin-bottom: 4px; -} - -.timeline-desk p { - font-size: 14px; - margin-bottom: 0; -} - -.timeline-desk .album { - margin-top: 12px; -} - -.timeline-desk .album a { - float: left; - margin-right: 5px; -} - -.timeline-desk .album img { - height: 36px; - width: auto; - border-radius: 3px; -} - -.timeline-desk .notification { - background: none repeat scroll 0 0 #ffffff; - margin-top: 20px; - padding: 8px; -} - -/* ============= - Profile -============= */ -.profile-user-box { - position: relative; - border-radius: 5px; -} - -/* ============= - Print css -============= */ -@media print { - .page-title-box, .topbar-left, .hidden-print, .breadcrumb, .page-title, .footer, #topnav { - display: none; - margin: 0; - padding: 0; - } - .left, .right-bar { - display: none; - } - .content { - margin-top: 0; - padding-top: 0; - } - .content-page { - margin-left: 0; - margin-top: 0; - } - .card-box, body { - border: none; - padding: 0; - margin-bottom: 0; - } -} - -/* ============= - FAQ -============= */ -.question-q-box { - height: 30px; - width: 30px; - color: #ffffff; - background-color: #02c0ce; - text-align: center; - border-radius: 50%; - float: left; - line-height: 30px; -} - -.question { - margin-top: 0; - margin-left: 50px; - font-weight: 400; - font-size: 16px; -} - -.answer { - margin-left: 50px; - color: #98a6ad; - margin-bottom: 40px; -} - -/* ============= - Pricing -============= */ -.pricing-plan { - padding-bottom: 50px; -} - -.price_card { - background: #ffffff; - border-radius: 5px; - margin-top: 30px; - margin-bottom: 30px; - padding-bottom: 20px; - position: relative; -} - -.price_card .name { - display: block; - font-size: 16px; - padding: 0 0 30px; - text-align: center; - width: 100%; -} - -.price_card button { - margin-top: 20px; -} - -.pricing-header { - -moz-border-radius-topleft: 5px; - -moz-border-radius-topright: 5px; - -webkit-border-top-left-radius: 5px; - -webkit-border-top-right-radius: 5px; - border-top-left-radius: 5px; - border-top-right-radius: 5px; - color: #ffffff; -} - -.price { - display: block; - font-size: 48px; - font-weight: 300; - padding: 30px 0 10px; - text-align: center; - width: 100%; -} - -.price-features { - color: #98a6ad; - list-style: none; - margin: 0; - padding-left: 0; - padding-top: 20px; - text-align: center; -} - -.price-features li { - padding: 15px; -} - -.pricing-item { - margin: 0 0 30px; - position: relative; - text-align: center; -} - -.pricing-wrap { - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - overflow: hidden; - padding: 30px 20px; - position: relative; - text-align: center; -} - -.pricing-icon { - font-size: 32px; - padding-bottom: 5px; - padding-top: 10px; - position: relative; - z-index: 1; -} - -.pricing-title { - font-size: 16px; - font-weight: 700; - margin-bottom: 40px; - position: relative; - text-transform: uppercase; - z-index: 1; -} - -.pr-list { - color: #98a6ad; - font-size: 12px; - font-weight: 400; - margin: 0 -20px 30px; - padding: 0; - text-transform: uppercase; -} - -.pr-list li { - list-style: none; - padding: 12px 20px; -} - -.pricing-num { - font-size: 40px; - font-weight: 700; - line-height: 1; -} - -.pricing-num sup { - font-size: 18px; - font-weight: 400; - left: -3px; - margin-left: -7px; - position: relative; - top: -20px; -} - -.pr-per { - color: #98a6ad; - font-size: 12px; -} - -.pr-button { - margin-top: 30px; -} - -/* ============== - Account Pages -===================*/ -.accountbg { - position: absolute; - background-size: cover; - height: 100%; - width: 100%; - top: 0; -} - -.account-page-full { - right: 0; - position: absolute; - height: 100%; - margin: 0; - width: 540px; - background-color: #ffffff; -} - -.account-page-full .card { - border: none; -} - -.account-copyright { - position: absolute; - bottom: 0; - width: 100%; -} - -.checkmark { - width: 100px; - margin: 0 auto; - padding: 20px 0; -} - -.path { - stroke-dasharray: 1000; - stroke-dashoffset: 0; - animation: dash 2s ease-in-out; - -webkit-animation: dash 2s ease-in-out; -} - -.spin { - animation: spin 2s; - -webkit-animation: spin 2s; - transform-origin: 50% 50%; - -webkit-transform-origin: 50% 50%; -} - -@-webkit-keyframes dash { - 0% { - stroke-dashoffset: 1000; - } - 100% { - stroke-dashoffset: 0; - } -} - -@keyframes dash { - 0% { - stroke-dashoffset: 1000; - } - 100% { - stroke-dashoffset: 0; - } -} - -@-webkit-keyframes spin { - 0% { - -webkit-transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(360deg); - } -} - -@keyframes spin { - 0% { - -webkit-transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(360deg); - } -} - -@-webkit-keyframes text { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } -} - -@keyframes text { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } -} - -.text-error { - color: #02c0ce; - text-shadow: rgba(2, 192, 206, 0.3) 5px 1px, rgba(2, 192, 206, 0.2) 10px 3px; - font-size: 84px; - line-height: 90px; -} - -@media (max-width: 768px) { - .account-pages.enlarged { - min-height: 100%; - } - .account-pages .account-page-full { - width: 100%; - } -} - -.svg-computer { - stroke-dasharray: 1134; - stroke-dashoffset: -1134; - animation: draw-me 5s infinite; - animation-direction: normal; - height: 200px; -} - -@keyframes draw-me { - from { - stroke-dashoffset: -1134; - } - to { - stroke-dashoffset: 0; - } -} - -/* ============= - Search result -============= */ -.search-result-box .tab-content { - padding: 30px 30px 10px 30px; - -webkit-box-shadow: none; - box-shadow: none; - -moz-box-shadow: none; -} - -.search-result-box .search-item { - padding-bottom: 20px; - border-bottom: 1px solid #e3eaef; - margin-bottom: 20px; -} - -/* ============= - Gallery -============= */ -.port { - margin-bottom: 30px; -} - -.portfolioFilter a { - transition: all 0.3s ease-out; - color: #313a46; - border-radius: 3px; - padding: 5px 10px; - display: inline-block; - margin-bottom: 5px; - font-family: "Rubik", sans-serif; -} - -.portfolioFilter a:hover { - background-color: #02c0ce; - color: #ffffff; -} - -.portfolioFilter a.current { - background-color: #02c0ce; - color: #ffffff; - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); -} - -.portfolio-masonry-box { - overflow: hidden; - position: relative; - padding: 0; - margin-top: 30px; -} - -.portfolio-masonry-box .portfolio-masonry-img { - position: relative; - overflow: hidden; - border-radius: 5px; -} - -.portfolio-masonry-box .portfolio-masonry-img:after { - content: " "; - display: block; - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; - background: rgba(49, 58, 70, 0); - -webkit-transition: all 0.27s cubic-bezier(0.3, 0.1, 0.58, 1); - -moz-transition: all 0.27s cubic-bezier(0.3, 0.1, 0.58, 1); - -o-transition: all 0.27s cubic-bezier(0.3, 0.1, 0.58, 1); - transition: all 0.27s cubic-bezier(0.3, 0.1, 0.58, 1); -} - -.portfolio-masonry-box .portfolio-masonry-img > img { - -webkit-transition: all 0.3s cubic-bezier(0.3, 0.1, 0.58, 1); - -moz-transition: all 0.3s cubic-bezier(0.3, 0.1, 0.58, 1); - -o-transition: all 0.3s cubic-bezier(0.3, 0.1, 0.58, 1); - transition: all 0.3s cubic-bezier(0.3, 0.1, 0.58, 1); - border-radius: 0; -} - -.portfolio-masonry-box .portfolio-masonry-detail { - opacity: 0; - width: 100%; - padding: 20px 20px 0 20px; - box-sizing: border-box; - position: absolute; - left: 0; - text-align: center; - overflow: hidden; - -webkit-transition: all 0.27s cubic-bezier(0.3, 0.1, 0.58, 1); - -moz-transition: all 0.27s cubic-bezier(0.3, 0.1, 0.58, 1); - -o-transition: all 0.27s cubic-bezier(0.3, 0.1, 0.58, 1); - transition: all 0.27s cubic-bezier(0.3, 0.1, 0.58, 1); -} - -.portfolio-masonry-box .portfolio-masonry-detail h4 { - margin-bottom: 3px; - color: #ffffff !important; -} - -.portfolio-masonry-box .portfolio-masonry-detail p { - color: #ffffff !important; - text-transform: uppercase; - font-size: 12px; -} - -.portfolio-masonry-box:hover .portfolio-masonry-detail { - -webkit-transform: translateY(-100%); - -moz-transform: translateY(-100%); - transform: translateY(-100%); - z-index: 3; - opacity: 1; -} - -.portfolio-masonry-box:hover .portfolio-masonry-img:after { - background: rgba(49, 58, 70, 0.8); -} - -.portfolio-masonry-box:hover .portfolio-masonry-img > img { - -webkit-transform: scale(1.05); - -moz-transform: scale(1.05); - -o-transform: scale(1.05); - -ms-transform: scale(1.05); - transform: scale(1.05); -} - -/* ============= - Count Down - Coming Soon -============= */ -.svg-rocket { - height: 80px; -} - -.rocket-clouds__bubble, -.rocket-clouds__cloud, -.rocket-rocket, -.rocket-inner__rocket-and-lines { - fill: #02c0ce; -} - -#count-down { - margin-top: 30px; -} - -#count-down .clock-presenter { - height: 100px; - line-height: 30px; - text-align: center; -} - -#count-down .clock-presenter .digit { - margin-top: 20px; - font-size: 26px; - line-height: 42px; - font-family: "Rubik", sans-serif; - font-weight: 500; - height: 42px; - display: inline-block; - overflow: hidden; - text-align: center; - position: relative; - cursor: default; - color: #313a46; -} - -#count-down .clock-presenter .note { - position: relative; - bottom: 0; - padding-top: 5px; - cursor: default; - font-size: 13px; - color: #313a46; - text-transform: uppercase; -} - -@media (max-width: 767px) { - #count-down .clock-presenter { - width: 50%; - float: left; - } - #count-down .hours_dash { - border-right: none; - } -} - -/* -Template Name: Abstack - Bootstrap 4 Web App kit -Author: CoderThemes -Email: coderthemes@gmail.com -File: Responsive -*/ -@media (min-width: 768px) and (max-width: 991px) { - body { - overflow-x: hidden; - } - .fixedHeader-floating { - top: 60px !important; - } -} - -@media (max-width: 768px) { - body { - overflow-x: hidden; - } - .container-fluid { - max-width: 100%; - } - .topbar-left { - width: 70px !important; - } - .topbar-left span { - display: none !important; - } - .topbar-left i { - display: block !important; - line-height: 70px !important; - } - .topbar .topbar-left { - height: 70px; - } - .navbar-nav.navbar-right { - float: right; - } - .content-page { - margin-left: 0 !important; - } - .enlarged .left.side-menu { - margin-left: -70px; - } - .footer { - left: 0 !important; - } - .mobile-sidebar { - left: 0; - } - .mobile-content { - left: 250px; - right: -250px; - } - .dataTables_wrapper .col-xs-6 { - width: 100%; - text-align: left; - } - div#datatable-buttons_info { - float: none; - } - .ms-container { - width: 100%; - } - .m-t-sm-50 { - margin-top: 50px !important; - } - .fixedHeader-floating { - top: 60px !important; - } -} - -@media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - background-color: #ffffff; - box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26); - left: auto; - position: absolute; - right: 0; - } - .navbar-nav .open .dropdown-menu li { - display: block; - } - .navbar-nav { - margin: 0; - display: inline-block; - } - .navbar-nav li { - display: inline-block; - line-height: 1px; - } - .dropdown-lg { - width: 200px !important; - } - .user-box { - float: right; - } - .dataTables_length { - float: none; - margin-bottom: 10px; - } - .table-auto-res { - display: block; - width: 100%; - overflow-x: auto; - } -} - -@media (max-width: 480px) { - .side-menu { - z-index: 10 !important; - } - .button-menu-mobile { - display: block; - } - .search-bar { - display: none !important; - } - .logo-large { - display: none; - } - .logo-small { - display: inline-block !important; - } - .dropdown-menu-lg { - max-width: 230px; - } -} - -@media (max-width: 420px) { - .hide-phone { - display: none !important; - } -} - -/* Container-alt */ -@media (min-width: 768px) { - .container-alt { - width: 750px; - } -} - -@media (min-width: 992px) { - .container-alt { - width: 970px; - } -} - -@media (min-width: 1200px) { - .container-alt { - width: 1170px; - } -} - -@media (max-width: 419px) { - .hidden-xxs { - display: none; - } - .pro-user-name { - display: none; - } - .topbar-left { - width: 70px !important; - } - .page-title { - font-size: 15px; - max-width: 250px; - white-space: nowrap; - } - .editable-responsive { - overflow-x: auto; - } - .page-title-box .breadcrumb { - display: none; - } - .navbar-nav .open .dropdown-menu { - margin-right: -20px; - } - .user-box .dropdown-menu { - margin-right: 0 !important; - } - .dropdown-lg { - width: 200px !important; - } - .user-list .user-list-item .icon, .user-list .user-list-item .avatar { - display: none; - } - .user-list .user-list-item .user-desc { - margin-left: 0; - } -} -/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/htdocs/public/high/assets/css/style.css.map b/htdocs/public/high/assets/css/style.css.map deleted file mode 100644 index 13b80b14..00000000 --- a/htdocs/public/high/assets/css/style.css.map +++ /dev/null @@ -1,55 +0,0 @@ -{ - "version": 3, - "mappings": "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", - "sources": [ - "../scss/style.scss", - "../scss/_variables.scss", - "../scss/_menu.scss", - "../scss/_common.scss", - "../scss/_helper.scss", - "../scss/_bootstrap-reset.scss", - "../scss/_waves.scss", - "../scss/_card.scss", - "../scss/_buttons.scss", - "../scss/_ribbons.scss", - "../scss/_popover-tooltips.scss", - "../scss/_checkbox-radio.scss", - "../scss/_alerts.scss", - "../scss/_modal.scss", - "../scss/_spinners.scss", - "../scss/_widgets.scss", - "../scss/_tabs.scss", - "../scss/_progress.scss", - "../scss/_sweet-alert.scss", - "../scss/_charts.scss", - "../scss/_email.scss", - "../scss/_form-elements.scss", - "../scss/_form-advanced.scss", - "../scss/_form-validation.scss", - "../scss/_form-pickers.scss", - "../scss/_form-wizard.scss", - "../scss/_summernote.scss", - "../scss/_wysiwig.scss", - "../scss/_form-uploads.scss", - "../scss/_tables.scss", - "../scss/_maps.scss", - "../scss/_calendar.scss", - "../scss/_tickets.scss", - "../scss/_taskboard.scss", - "../scss/_projects.scss", - "../scss/_companies.scss", - "../scss/_file-manager.scss", - "../scss/_timeline.scss", - "../scss/_profile.scss", - "../scss/_print.scss", - "../scss/_faq.scss", - "../scss/_pricing.scss", - "../scss/_account-pages.scss", - "../scss/_search-results.scss", - "../scss/_gallery.scss", - "../scss/_coming-soon.scss", - "../scss/_responsive.scss" - ], - "names": [], - "file": "style.css" -} \ No newline at end of file diff --git a/htdocs/public/high/assets/fonts/FontAwesome.otf b/htdocs/public/high/assets/fonts/FontAwesome.otf deleted file mode 100644 index 401ec0f3..00000000 Binary files a/htdocs/public/high/assets/fonts/FontAwesome.otf and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/Simple-Line-Icons.eot b/htdocs/public/high/assets/fonts/Simple-Line-Icons.eot deleted file mode 100644 index 533fd7f4..00000000 Binary files a/htdocs/public/high/assets/fonts/Simple-Line-Icons.eot and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/Simple-Line-Icons.svg b/htdocs/public/high/assets/fonts/Simple-Line-Icons.svg deleted file mode 100644 index bed0f148..00000000 --- a/htdocs/public/high/assets/fonts/Simple-Line-Icons.svg +++ /dev/null @@ -1,211 +0,0 @@ - - - - - - -{ - "fontFamily": "simple-line-icons", - "majorVersion": 2, - "minorVersion": 0, - "license": "MIT", - "designer": "Jamal Jama, Ahmad Firoz", - "version": "Version 2.0", - "fontId": "simple-line-icons", - "psName": "simple-line-icons", - "subFamily": "Regular", - "fullName": "simple-line-icons", - "description": "Font generated by IcoMoon." -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/htdocs/public/high/assets/fonts/Simple-Line-Icons.ttf b/htdocs/public/high/assets/fonts/Simple-Line-Icons.ttf deleted file mode 100644 index ecf85a42..00000000 Binary files a/htdocs/public/high/assets/fonts/Simple-Line-Icons.ttf and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/Simple-Line-Icons.woff b/htdocs/public/high/assets/fonts/Simple-Line-Icons.woff deleted file mode 100644 index b38250d4..00000000 Binary files a/htdocs/public/high/assets/fonts/Simple-Line-Icons.woff and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/Simple-Line-Icons.woff2 b/htdocs/public/high/assets/fonts/Simple-Line-Icons.woff2 deleted file mode 100644 index ec9373a5..00000000 Binary files a/htdocs/public/high/assets/fonts/Simple-Line-Icons.woff2 and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/dripicons-v2.eot b/htdocs/public/high/assets/fonts/dripicons-v2.eot deleted file mode 100644 index 8afeaaad..00000000 Binary files a/htdocs/public/high/assets/fonts/dripicons-v2.eot and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/dripicons-v2.svg b/htdocs/public/high/assets/fonts/dripicons-v2.svg deleted file mode 100644 index 0b501721..00000000 --- a/htdocs/public/high/assets/fonts/dripicons-v2.svg +++ /dev/null @@ -1,210 +0,0 @@ - - - -Generated by Fontastic.me - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/fonts/dripicons-v2.ttf b/htdocs/public/high/assets/fonts/dripicons-v2.ttf deleted file mode 100644 index 041e3336..00000000 Binary files a/htdocs/public/high/assets/fonts/dripicons-v2.ttf and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/dripicons-v2.woff b/htdocs/public/high/assets/fonts/dripicons-v2.woff deleted file mode 100644 index 5322e3d8..00000000 Binary files a/htdocs/public/high/assets/fonts/dripicons-v2.woff and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/feather-webfont.eot b/htdocs/public/high/assets/fonts/feather-webfont.eot deleted file mode 100644 index 0f23fbbc..00000000 Binary files a/htdocs/public/high/assets/fonts/feather-webfont.eot and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/feather-webfont.svg b/htdocs/public/high/assets/fonts/feather-webfont.svg deleted file mode 100644 index 72f7483f..00000000 --- a/htdocs/public/high/assets/fonts/feather-webfont.svg +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/htdocs/public/high/assets/fonts/feather-webfont.ttf b/htdocs/public/high/assets/fonts/feather-webfont.ttf deleted file mode 100644 index 39c978b8..00000000 Binary files a/htdocs/public/high/assets/fonts/feather-webfont.ttf and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/feather-webfont.woff b/htdocs/public/high/assets/fonts/feather-webfont.woff deleted file mode 100644 index 9fbf6b90..00000000 Binary files a/htdocs/public/high/assets/fonts/feather-webfont.woff and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/fontawesome-webfont.eot b/htdocs/public/high/assets/fonts/fontawesome-webfont.eot deleted file mode 100644 index e9f60ca9..00000000 Binary files a/htdocs/public/high/assets/fonts/fontawesome-webfont.eot and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/fontawesome-webfont.svg b/htdocs/public/high/assets/fonts/fontawesome-webfont.svg deleted file mode 100644 index 855c845e..00000000 --- a/htdocs/public/high/assets/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,2671 +0,0 @@ - - - - -Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 - By ,,, -Copyright Dave Gandy 2016. All rights reserved. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/fonts/fontawesome-webfont.ttf b/htdocs/public/high/assets/fonts/fontawesome-webfont.ttf deleted file mode 100644 index 35acda2f..00000000 Binary files a/htdocs/public/high/assets/fonts/fontawesome-webfont.ttf and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/fontawesome-webfont.woff b/htdocs/public/high/assets/fonts/fontawesome-webfont.woff deleted file mode 100644 index 400014a4..00000000 Binary files a/htdocs/public/high/assets/fonts/fontawesome-webfont.woff and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/fontawesome-webfont.woff2 b/htdocs/public/high/assets/fonts/fontawesome-webfont.woff2 deleted file mode 100644 index 4d13fc60..00000000 Binary files a/htdocs/public/high/assets/fonts/fontawesome-webfont.woff2 and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/materialdesignicons-webfont.eot b/htdocs/public/high/assets/fonts/materialdesignicons-webfont.eot deleted file mode 100644 index df4d4521..00000000 Binary files a/htdocs/public/high/assets/fonts/materialdesignicons-webfont.eot and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/materialdesignicons-webfont.svg b/htdocs/public/high/assets/fonts/materialdesignicons-webfont.svg deleted file mode 100644 index 41d0359f..00000000 --- a/htdocs/public/high/assets/fonts/materialdesignicons-webfont.svg +++ /dev/null @@ -1,6150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/fonts/materialdesignicons-webfont.ttf b/htdocs/public/high/assets/fonts/materialdesignicons-webfont.ttf deleted file mode 100644 index 69404e3d..00000000 Binary files a/htdocs/public/high/assets/fonts/materialdesignicons-webfont.ttf and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/materialdesignicons-webfont.woff b/htdocs/public/high/assets/fonts/materialdesignicons-webfont.woff deleted file mode 100644 index 56b9a358..00000000 Binary files a/htdocs/public/high/assets/fonts/materialdesignicons-webfont.woff and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/materialdesignicons-webfont.woff2 b/htdocs/public/high/assets/fonts/materialdesignicons-webfont.woff2 deleted file mode 100644 index 9f0cc36f..00000000 Binary files a/htdocs/public/high/assets/fonts/materialdesignicons-webfont.woff2 and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/slick.eot b/htdocs/public/high/assets/fonts/slick.eot deleted file mode 100644 index 2cbab9ca..00000000 Binary files a/htdocs/public/high/assets/fonts/slick.eot and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/slick.svg b/htdocs/public/high/assets/fonts/slick.svg deleted file mode 100644 index b36a66a6..00000000 --- a/htdocs/public/high/assets/fonts/slick.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - -Generated by Fontastic.me - - - - - - - - - - diff --git a/htdocs/public/high/assets/fonts/slick.ttf b/htdocs/public/high/assets/fonts/slick.ttf deleted file mode 100644 index 9d03461b..00000000 Binary files a/htdocs/public/high/assets/fonts/slick.ttf and /dev/null differ diff --git a/htdocs/public/high/assets/fonts/slick.woff b/htdocs/public/high/assets/fonts/slick.woff deleted file mode 100644 index 8ee99721..00000000 Binary files a/htdocs/public/high/assets/fonts/slick.woff and /dev/null differ diff --git a/htdocs/public/high/assets/images/attached-files/img-1.jpg b/htdocs/public/high/assets/images/attached-files/img-1.jpg deleted file mode 100644 index 97e8f680..00000000 Binary files a/htdocs/public/high/assets/images/attached-files/img-1.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/attached-files/img-2.jpg b/htdocs/public/high/assets/images/attached-files/img-2.jpg deleted file mode 100644 index 5ca4a9c4..00000000 Binary files a/htdocs/public/high/assets/images/attached-files/img-2.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/attached-files/img-3.jpg b/htdocs/public/high/assets/images/attached-files/img-3.jpg deleted file mode 100644 index de3094a9..00000000 Binary files a/htdocs/public/high/assets/images/attached-files/img-3.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/bg-1.jpg b/htdocs/public/high/assets/images/bg-1.jpg deleted file mode 100644 index e3164e82..00000000 Binary files a/htdocs/public/high/assets/images/bg-1.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/bg-2.jpg b/htdocs/public/high/assets/images/bg-2.jpg deleted file mode 100644 index 37f4ba92..00000000 Binary files a/htdocs/public/high/assets/images/bg-2.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/companies/airbnb.png b/htdocs/public/high/assets/images/companies/airbnb.png deleted file mode 100644 index 702a9a28..00000000 Binary files a/htdocs/public/high/assets/images/companies/airbnb.png and /dev/null differ diff --git a/htdocs/public/high/assets/images/companies/amazon.png b/htdocs/public/high/assets/images/companies/amazon.png deleted file mode 100644 index fe449860..00000000 Binary files a/htdocs/public/high/assets/images/companies/amazon.png and /dev/null differ diff --git a/htdocs/public/high/assets/images/companies/apple.png b/htdocs/public/high/assets/images/companies/apple.png deleted file mode 100644 index fa26a213..00000000 Binary files a/htdocs/public/high/assets/images/companies/apple.png and /dev/null differ diff --git a/htdocs/public/high/assets/images/companies/cisco.jpg b/htdocs/public/high/assets/images/companies/cisco.jpg deleted file mode 100644 index 42a2566f..00000000 Binary files a/htdocs/public/high/assets/images/companies/cisco.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/companies/facebook.png b/htdocs/public/high/assets/images/companies/facebook.png deleted file mode 100644 index 6d7dea09..00000000 Binary files a/htdocs/public/high/assets/images/companies/facebook.png and /dev/null differ diff --git a/htdocs/public/high/assets/images/companies/google.png b/htdocs/public/high/assets/images/companies/google.png deleted file mode 100644 index 1674f137..00000000 Binary files a/htdocs/public/high/assets/images/companies/google.png and /dev/null differ diff --git a/htdocs/public/high/assets/images/companies/intel.png b/htdocs/public/high/assets/images/companies/intel.png deleted file mode 100644 index 91115e0f..00000000 Binary files a/htdocs/public/high/assets/images/companies/intel.png and /dev/null differ diff --git a/htdocs/public/high/assets/images/companies/yahoo.png b/htdocs/public/high/assets/images/companies/yahoo.png deleted file mode 100644 index 819fd65e..00000000 Binary files a/htdocs/public/high/assets/images/companies/yahoo.png and /dev/null differ diff --git a/htdocs/public/high/assets/images/email/1.png b/htdocs/public/high/assets/images/email/1.png deleted file mode 100644 index 789f01b1..00000000 Binary files a/htdocs/public/high/assets/images/email/1.png and /dev/null differ diff --git a/htdocs/public/high/assets/images/email/2.png b/htdocs/public/high/assets/images/email/2.png deleted file mode 100644 index f22a3976..00000000 Binary files a/htdocs/public/high/assets/images/email/2.png and /dev/null differ diff --git a/htdocs/public/high/assets/images/email/3.png b/htdocs/public/high/assets/images/email/3.png deleted file mode 100644 index 5393ed32..00000000 Binary files a/htdocs/public/high/assets/images/email/3.png and /dev/null differ diff --git a/htdocs/public/high/assets/images/favicon.ico b/htdocs/public/high/assets/images/favicon.ico deleted file mode 100644 index 7d36444b..00000000 Binary files a/htdocs/public/high/assets/images/favicon.ico and /dev/null differ diff --git a/htdocs/public/high/assets/images/file_icons/3ds.svg b/htdocs/public/high/assets/images/file_icons/3ds.svg deleted file mode 100644 index 9e01fb73..00000000 --- a/htdocs/public/high/assets/images/file_icons/3ds.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/aac.svg b/htdocs/public/high/assets/images/file_icons/aac.svg deleted file mode 100644 index 61d50bb5..00000000 --- a/htdocs/public/high/assets/images/file_icons/aac.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/ai.svg b/htdocs/public/high/assets/images/file_icons/ai.svg deleted file mode 100644 index 69fd1a31..00000000 --- a/htdocs/public/high/assets/images/file_icons/ai.svg +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/avi.svg b/htdocs/public/high/assets/images/file_icons/avi.svg deleted file mode 100644 index a4170689..00000000 --- a/htdocs/public/high/assets/images/file_icons/avi.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/bmp.svg b/htdocs/public/high/assets/images/file_icons/bmp.svg deleted file mode 100644 index 1938e993..00000000 --- a/htdocs/public/high/assets/images/file_icons/bmp.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/cad.svg b/htdocs/public/high/assets/images/file_icons/cad.svg deleted file mode 100644 index b6dfe718..00000000 --- a/htdocs/public/high/assets/images/file_icons/cad.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/cdr.svg b/htdocs/public/high/assets/images/file_icons/cdr.svg deleted file mode 100644 index 0acfc924..00000000 --- a/htdocs/public/high/assets/images/file_icons/cdr.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/css.svg b/htdocs/public/high/assets/images/file_icons/css.svg deleted file mode 100644 index 71ed21da..00000000 --- a/htdocs/public/high/assets/images/file_icons/css.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/dat.svg b/htdocs/public/high/assets/images/file_icons/dat.svg deleted file mode 100644 index cbddf289..00000000 --- a/htdocs/public/high/assets/images/file_icons/dat.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/dll.svg b/htdocs/public/high/assets/images/file_icons/dll.svg deleted file mode 100644 index 682cd4c6..00000000 --- a/htdocs/public/high/assets/images/file_icons/dll.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/dmg.svg b/htdocs/public/high/assets/images/file_icons/dmg.svg deleted file mode 100644 index c11b9511..00000000 --- a/htdocs/public/high/assets/images/file_icons/dmg.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/doc.svg b/htdocs/public/high/assets/images/file_icons/doc.svg deleted file mode 100644 index 1f678dfd..00000000 --- a/htdocs/public/high/assets/images/file_icons/doc.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/eps.svg b/htdocs/public/high/assets/images/file_icons/eps.svg deleted file mode 100644 index a21ca63c..00000000 --- a/htdocs/public/high/assets/images/file_icons/eps.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/fla.svg b/htdocs/public/high/assets/images/file_icons/fla.svg deleted file mode 100644 index 3fd6a481..00000000 --- a/htdocs/public/high/assets/images/file_icons/fla.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/flv.svg b/htdocs/public/high/assets/images/file_icons/flv.svg deleted file mode 100644 index fa08af2e..00000000 --- a/htdocs/public/high/assets/images/file_icons/flv.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/gif.svg b/htdocs/public/high/assets/images/file_icons/gif.svg deleted file mode 100644 index 7c47d75b..00000000 --- a/htdocs/public/high/assets/images/file_icons/gif.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/html.svg b/htdocs/public/high/assets/images/file_icons/html.svg deleted file mode 100644 index bfd126d7..00000000 --- a/htdocs/public/high/assets/images/file_icons/html.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/indd.svg b/htdocs/public/high/assets/images/file_icons/indd.svg deleted file mode 100644 index c01b77e0..00000000 --- a/htdocs/public/high/assets/images/file_icons/indd.svg +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/iso.svg b/htdocs/public/high/assets/images/file_icons/iso.svg deleted file mode 100644 index edbf06a0..00000000 --- a/htdocs/public/high/assets/images/file_icons/iso.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/jpg.svg b/htdocs/public/high/assets/images/file_icons/jpg.svg deleted file mode 100644 index b0047d78..00000000 --- a/htdocs/public/high/assets/images/file_icons/jpg.svg +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/js.svg b/htdocs/public/high/assets/images/file_icons/js.svg deleted file mode 100644 index 64323f57..00000000 --- a/htdocs/public/high/assets/images/file_icons/js.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/midi.svg b/htdocs/public/high/assets/images/file_icons/midi.svg deleted file mode 100644 index e14b9fa0..00000000 --- a/htdocs/public/high/assets/images/file_icons/midi.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/mov.svg b/htdocs/public/high/assets/images/file_icons/mov.svg deleted file mode 100644 index dbba47ef..00000000 --- a/htdocs/public/high/assets/images/file_icons/mov.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/mp3.svg b/htdocs/public/high/assets/images/file_icons/mp3.svg deleted file mode 100644 index ed8e31e6..00000000 --- a/htdocs/public/high/assets/images/file_icons/mp3.svg +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/mpg.svg b/htdocs/public/high/assets/images/file_icons/mpg.svg deleted file mode 100644 index 5da4e20a..00000000 --- a/htdocs/public/high/assets/images/file_icons/mpg.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/pdf.svg b/htdocs/public/high/assets/images/file_icons/pdf.svg deleted file mode 100644 index 8c9430a4..00000000 --- a/htdocs/public/high/assets/images/file_icons/pdf.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/php.svg b/htdocs/public/high/assets/images/file_icons/php.svg deleted file mode 100644 index f9dc468b..00000000 --- a/htdocs/public/high/assets/images/file_icons/php.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/png.svg b/htdocs/public/high/assets/images/file_icons/png.svg deleted file mode 100644 index 5bc975d1..00000000 --- a/htdocs/public/high/assets/images/file_icons/png.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/ppt.svg b/htdocs/public/high/assets/images/file_icons/ppt.svg deleted file mode 100644 index 51340109..00000000 --- a/htdocs/public/high/assets/images/file_icons/ppt.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/ps.svg b/htdocs/public/high/assets/images/file_icons/ps.svg deleted file mode 100644 index ff7c1c2b..00000000 --- a/htdocs/public/high/assets/images/file_icons/ps.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/psd.svg b/htdocs/public/high/assets/images/file_icons/psd.svg deleted file mode 100644 index a0716411..00000000 --- a/htdocs/public/high/assets/images/file_icons/psd.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/raw.svg b/htdocs/public/high/assets/images/file_icons/raw.svg deleted file mode 100644 index 6a5e37a0..00000000 --- a/htdocs/public/high/assets/images/file_icons/raw.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/sql.svg b/htdocs/public/high/assets/images/file_icons/sql.svg deleted file mode 100644 index 37bd1cf9..00000000 --- a/htdocs/public/high/assets/images/file_icons/sql.svg +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/svg.svg b/htdocs/public/high/assets/images/file_icons/svg.svg deleted file mode 100644 index 5a05dcfd..00000000 --- a/htdocs/public/high/assets/images/file_icons/svg.svg +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/tif.svg b/htdocs/public/high/assets/images/file_icons/tif.svg deleted file mode 100644 index 174e2763..00000000 --- a/htdocs/public/high/assets/images/file_icons/tif.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/txt.svg b/htdocs/public/high/assets/images/file_icons/txt.svg deleted file mode 100644 index bbaf6939..00000000 --- a/htdocs/public/high/assets/images/file_icons/txt.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/wmv.svg b/htdocs/public/high/assets/images/file_icons/wmv.svg deleted file mode 100644 index 5a03f483..00000000 --- a/htdocs/public/high/assets/images/file_icons/wmv.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/xls.svg b/htdocs/public/high/assets/images/file_icons/xls.svg deleted file mode 100644 index 325f9742..00000000 --- a/htdocs/public/high/assets/images/file_icons/xls.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/xml.svg b/htdocs/public/high/assets/images/file_icons/xml.svg deleted file mode 100644 index 12d4f2ef..00000000 --- a/htdocs/public/high/assets/images/file_icons/xml.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/zip.svg b/htdocs/public/high/assets/images/file_icons/zip.svg deleted file mode 100644 index 9aaaf6ba..00000000 --- a/htdocs/public/high/assets/images/file_icons/zip.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/logo.png b/htdocs/public/high/assets/images/logo.png deleted file mode 100644 index a33eedff..00000000 Binary files a/htdocs/public/high/assets/images/logo.png and /dev/null differ diff --git a/htdocs/public/high/assets/images/logo_light.png b/htdocs/public/high/assets/images/logo_light.png deleted file mode 100644 index 2d4e9624..00000000 Binary files a/htdocs/public/high/assets/images/logo_light.png and /dev/null differ diff --git a/htdocs/public/high/assets/images/logo_sm.png b/htdocs/public/high/assets/images/logo_sm.png deleted file mode 100644 index a974069d..00000000 Binary files a/htdocs/public/high/assets/images/logo_sm.png and /dev/null differ diff --git a/htdocs/public/high/assets/images/small/img-1.jpg b/htdocs/public/high/assets/images/small/img-1.jpg deleted file mode 100644 index 9539bcfb..00000000 Binary files a/htdocs/public/high/assets/images/small/img-1.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/small/img-2.jpg b/htdocs/public/high/assets/images/small/img-2.jpg deleted file mode 100644 index 86249f49..00000000 Binary files a/htdocs/public/high/assets/images/small/img-2.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/small/img-3.jpg b/htdocs/public/high/assets/images/small/img-3.jpg deleted file mode 100644 index 8bb9fa84..00000000 Binary files a/htdocs/public/high/assets/images/small/img-3.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/small/img-4.jpg b/htdocs/public/high/assets/images/small/img-4.jpg deleted file mode 100644 index 07503ef7..00000000 Binary files a/htdocs/public/high/assets/images/small/img-4.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/small/img-5.jpg b/htdocs/public/high/assets/images/small/img-5.jpg deleted file mode 100644 index a54ed63a..00000000 Binary files a/htdocs/public/high/assets/images/small/img-5.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/small/img-6.jpg b/htdocs/public/high/assets/images/small/img-6.jpg deleted file mode 100644 index 80361477..00000000 Binary files a/htdocs/public/high/assets/images/small/img-6.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/small/img-7.jpg b/htdocs/public/high/assets/images/small/img-7.jpg deleted file mode 100644 index 55969b55..00000000 Binary files a/htdocs/public/high/assets/images/small/img-7.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/users/avatar-1.jpg b/htdocs/public/high/assets/images/users/avatar-1.jpg deleted file mode 100644 index 77d3e124..00000000 Binary files a/htdocs/public/high/assets/images/users/avatar-1.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/users/avatar-10.jpg b/htdocs/public/high/assets/images/users/avatar-10.jpg deleted file mode 100644 index 39557e9b..00000000 Binary files a/htdocs/public/high/assets/images/users/avatar-10.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/users/avatar-2.jpg b/htdocs/public/high/assets/images/users/avatar-2.jpg deleted file mode 100644 index b5b21b7f..00000000 Binary files a/htdocs/public/high/assets/images/users/avatar-2.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/users/avatar-3.jpg b/htdocs/public/high/assets/images/users/avatar-3.jpg deleted file mode 100644 index b3bc852e..00000000 Binary files a/htdocs/public/high/assets/images/users/avatar-3.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/users/avatar-4.jpg b/htdocs/public/high/assets/images/users/avatar-4.jpg deleted file mode 100644 index c0adf425..00000000 Binary files a/htdocs/public/high/assets/images/users/avatar-4.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/users/avatar-5.jpg b/htdocs/public/high/assets/images/users/avatar-5.jpg deleted file mode 100644 index 0897c4e4..00000000 Binary files a/htdocs/public/high/assets/images/users/avatar-5.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/users/avatar-6.jpg b/htdocs/public/high/assets/images/users/avatar-6.jpg deleted file mode 100644 index f2217bfb..00000000 Binary files a/htdocs/public/high/assets/images/users/avatar-6.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/users/avatar-7.jpg b/htdocs/public/high/assets/images/users/avatar-7.jpg deleted file mode 100644 index bfb75fda..00000000 Binary files a/htdocs/public/high/assets/images/users/avatar-7.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/users/avatar-8.jpg b/htdocs/public/high/assets/images/users/avatar-8.jpg deleted file mode 100644 index fcaff7cd..00000000 Binary files a/htdocs/public/high/assets/images/users/avatar-8.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/images/users/avatar-9.jpg b/htdocs/public/high/assets/images/users/avatar-9.jpg deleted file mode 100644 index 6adab937..00000000 Binary files a/htdocs/public/high/assets/images/users/avatar-9.jpg and /dev/null differ diff --git a/htdocs/public/high/assets/js/bootstrap.min.js b/htdocs/public/high/assets/js/bootstrap.min.js deleted file mode 100644 index 534d5334..00000000 --- a/htdocs/public/high/assets/js/bootstrap.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v4.0.0 (https://getbootstrap.com) - * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e(t.bootstrap={},t.jQuery,t.Popper)}(this,function(t,e,n){"use strict";function i(t,e){for(var n=0;n0?i:null}catch(t){return null}},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(n){t(n).trigger(e.end)},supportsTransitionEnd:function(){return Boolean(e)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var s in n)if(Object.prototype.hasOwnProperty.call(n,s)){var r=n[s],o=e[s],a=o&&i.isElement(o)?"element":(l=o,{}.toString.call(l).match(/\s([a-zA-Z]+)/)[1].toLowerCase());if(!new RegExp(r).test(a))throw new Error(t.toUpperCase()+': Option "'+s+'" provided type "'+a+'" but expected type "'+r+'".')}var l}};return e=("undefined"==typeof window||!window.QUnit)&&{end:"transitionend"},t.fn.emulateTransitionEnd=n,i.supportsTransitionEnd()&&(t.event.special[i.TRANSITION_END]={bindType:e.end,delegateType:e.end,handle:function(e){if(t(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}}),i}(e),L=(a="alert",h="."+(l="bs.alert"),c=(o=e).fn[a],u={CLOSE:"close"+h,CLOSED:"closed"+h,CLICK_DATA_API:"click"+h+".data-api"},f="alert",d="fade",_="show",g=function(){function t(t){this._element=t}var e=t.prototype;return e.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},e.dispose=function(){o.removeData(this._element,l),this._element=null},e._getRootElement=function(t){var e=P.getSelectorFromElement(t),n=!1;return e&&(n=o(e)[0]),n||(n=o(t).closest("."+f)[0]),n},e._triggerCloseEvent=function(t){var e=o.Event(u.CLOSE);return o(t).trigger(e),e},e._removeElement=function(t){var e=this;o(t).removeClass(_),P.supportsTransitionEnd()&&o(t).hasClass(d)?o(t).one(P.TRANSITION_END,function(n){return e._destroyElement(t,n)}).emulateTransitionEnd(150):this._destroyElement(t)},e._destroyElement=function(t){o(t).detach().trigger(u.CLOSED).remove()},t._jQueryInterface=function(e){return this.each(function(){var n=o(this),i=n.data(l);i||(i=new t(this),n.data(l,i)),"close"===e&&i[e](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},s(t,null,[{key:"VERSION",get:function(){return"4.0.0"}}]),t}(),o(document).on(u.CLICK_DATA_API,'[data-dismiss="alert"]',g._handleDismiss(new g)),o.fn[a]=g._jQueryInterface,o.fn[a].Constructor=g,o.fn[a].noConflict=function(){return o.fn[a]=c,g._jQueryInterface},g),R=(m="button",E="."+(v="bs.button"),T=".data-api",y=(p=e).fn[m],C="active",I="btn",A="focus",b='[data-toggle^="button"]',D='[data-toggle="buttons"]',S="input",w=".active",N=".btn",O={CLICK_DATA_API:"click"+E+T,FOCUS_BLUR_DATA_API:"focus"+E+T+" blur"+E+T},k=function(){function t(t){this._element=t}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=p(this._element).closest(D)[0];if(n){var i=p(this._element).find(S)[0];if(i){if("radio"===i.type)if(i.checked&&p(this._element).hasClass(C))t=!1;else{var s=p(n).find(w)[0];s&&p(s).removeClass(C)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!p(this._element).hasClass(C),p(i).trigger("change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!p(this._element).hasClass(C)),t&&p(this._element).toggleClass(C)},e.dispose=function(){p.removeData(this._element,v),this._element=null},t._jQueryInterface=function(e){return this.each(function(){var n=p(this).data(v);n||(n=new t(this),p(this).data(v,n)),"toggle"===e&&n[e]()})},s(t,null,[{key:"VERSION",get:function(){return"4.0.0"}}]),t}(),p(document).on(O.CLICK_DATA_API,b,function(t){t.preventDefault();var e=t.target;p(e).hasClass(I)||(e=p(e).closest(N)),k._jQueryInterface.call(p(e),"toggle")}).on(O.FOCUS_BLUR_DATA_API,b,function(t){var e=p(t.target).closest(N)[0];p(e).toggleClass(A,/^focus(in)?$/.test(t.type))}),p.fn[m]=k._jQueryInterface,p.fn[m].Constructor=k,p.fn[m].noConflict=function(){return p.fn[m]=y,k._jQueryInterface},k),j=function(t){var e="carousel",n="bs.carousel",i="."+n,o=t.fn[e],a={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},l={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},h="next",c="prev",u="left",f="right",d={SLIDE:"slide"+i,SLID:"slid"+i,KEYDOWN:"keydown"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i,TOUCHEND:"touchend"+i,LOAD_DATA_API:"load"+i+".data-api",CLICK_DATA_API:"click"+i+".data-api"},_="carousel",g="active",p="slide",m="carousel-item-right",v="carousel-item-left",E="carousel-item-next",T="carousel-item-prev",y={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},C=function(){function o(e,n){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(n),this._element=t(e)[0],this._indicatorsElement=t(this._element).find(y.INDICATORS)[0],this._addEventListeners()}var C=o.prototype;return C.next=function(){this._isSliding||this._slide(h)},C.nextWhenVisible=function(){!document.hidden&&t(this._element).is(":visible")&&"hidden"!==t(this._element).css("visibility")&&this.next()},C.prev=function(){this._isSliding||this._slide(c)},C.pause=function(e){e||(this._isPaused=!0),t(this._element).find(y.NEXT_PREV)[0]&&P.supportsTransitionEnd()&&(P.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},C.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},C.to=function(e){var n=this;this._activeElement=t(this._element).find(y.ACTIVE_ITEM)[0];var i=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0))if(this._isSliding)t(this._element).one(d.SLID,function(){return n.to(e)});else{if(i===e)return this.pause(),void this.cycle();var s=e>i?h:c;this._slide(s,this._items[e])}},C.dispose=function(){t(this._element).off(i),t.removeData(this._element,n),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},C._getConfig=function(t){return t=r({},a,t),P.typeCheckConfig(e,t,l),t},C._addEventListeners=function(){var e=this;this._config.keyboard&&t(this._element).on(d.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&(t(this._element).on(d.MOUSEENTER,function(t){return e.pause(t)}).on(d.MOUSELEAVE,function(t){return e.cycle(t)}),"ontouchstart"in document.documentElement&&t(this._element).on(d.TOUCHEND,function(){e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout(function(t){return e.cycle(t)},500+e._config.interval)}))},C._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},C._getItemIndex=function(e){return this._items=t.makeArray(t(e).parent().find(y.ITEM)),this._items.indexOf(e)},C._getItemByDirection=function(t,e){var n=t===h,i=t===c,s=this._getItemIndex(e),r=this._items.length-1;if((i&&0===s||n&&s===r)&&!this._config.wrap)return e;var o=(s+(t===c?-1:1))%this._items.length;return-1===o?this._items[this._items.length-1]:this._items[o]},C._triggerSlideEvent=function(e,n){var i=this._getItemIndex(e),s=this._getItemIndex(t(this._element).find(y.ACTIVE_ITEM)[0]),r=t.Event(d.SLIDE,{relatedTarget:e,direction:n,from:s,to:i});return t(this._element).trigger(r),r},C._setActiveIndicatorElement=function(e){if(this._indicatorsElement){t(this._indicatorsElement).find(y.ACTIVE).removeClass(g);var n=this._indicatorsElement.children[this._getItemIndex(e)];n&&t(n).addClass(g)}},C._slide=function(e,n){var i,s,r,o=this,a=t(this._element).find(y.ACTIVE_ITEM)[0],l=this._getItemIndex(a),c=n||a&&this._getItemByDirection(e,a),_=this._getItemIndex(c),C=Boolean(this._interval);if(e===h?(i=v,s=E,r=u):(i=m,s=T,r=f),c&&t(c).hasClass(g))this._isSliding=!1;else if(!this._triggerSlideEvent(c,r).isDefaultPrevented()&&a&&c){this._isSliding=!0,C&&this.pause(),this._setActiveIndicatorElement(c);var I=t.Event(d.SLID,{relatedTarget:c,direction:r,from:l,to:_});P.supportsTransitionEnd()&&t(this._element).hasClass(p)?(t(c).addClass(s),P.reflow(c),t(a).addClass(i),t(c).addClass(i),t(a).one(P.TRANSITION_END,function(){t(c).removeClass(i+" "+s).addClass(g),t(a).removeClass(g+" "+s+" "+i),o._isSliding=!1,setTimeout(function(){return t(o._element).trigger(I)},0)}).emulateTransitionEnd(600)):(t(a).removeClass(g),t(c).addClass(g),this._isSliding=!1,t(this._element).trigger(I)),C&&this.cycle()}},o._jQueryInterface=function(e){return this.each(function(){var i=t(this).data(n),s=r({},a,t(this).data());"object"==typeof e&&(s=r({},s,e));var l="string"==typeof e?e:s.slide;if(i||(i=new o(this,s),t(this).data(n,i)),"number"==typeof e)i.to(e);else if("string"==typeof l){if("undefined"==typeof i[l])throw new TypeError('No method named "'+l+'"');i[l]()}else s.interval&&(i.pause(),i.cycle())})},o._dataApiClickHandler=function(e){var i=P.getSelectorFromElement(this);if(i){var s=t(i)[0];if(s&&t(s).hasClass(_)){var a=r({},t(s).data(),t(this).data()),l=this.getAttribute("data-slide-to");l&&(a.interval=!1),o._jQueryInterface.call(t(s),a),l&&t(s).data(n).to(l),e.preventDefault()}}},s(o,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return a}}]),o}();return t(document).on(d.CLICK_DATA_API,y.DATA_SLIDE,C._dataApiClickHandler),t(window).on(d.LOAD_DATA_API,function(){t(y.DATA_RIDE).each(function(){var e=t(this);C._jQueryInterface.call(e,e.data())})}),t.fn[e]=C._jQueryInterface,t.fn[e].Constructor=C,t.fn[e].noConflict=function(){return t.fn[e]=o,C._jQueryInterface},C}(e),H=function(t){var e="collapse",n="bs.collapse",i="."+n,o=t.fn[e],a={toggle:!0,parent:""},l={toggle:"boolean",parent:"(string|element)"},h={SHOW:"show"+i,SHOWN:"shown"+i,HIDE:"hide"+i,HIDDEN:"hidden"+i,CLICK_DATA_API:"click"+i+".data-api"},c="show",u="collapse",f="collapsing",d="collapsed",_="width",g="height",p={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},m=function(){function i(e,n){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(n),this._triggerArray=t.makeArray(t('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'));for(var i=t(p.DATA_TOGGLE),s=0;s0&&(this._selector=o,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var o=i.prototype;return o.toggle=function(){t(this._element).hasClass(c)?this.hide():this.show()},o.show=function(){var e,s,r=this;if(!this._isTransitioning&&!t(this._element).hasClass(c)&&(this._parent&&0===(e=t.makeArray(t(this._parent).find(p.ACTIVES).filter('[data-parent="'+this._config.parent+'"]'))).length&&(e=null),!(e&&(s=t(e).not(this._selector).data(n))&&s._isTransitioning))){var o=t.Event(h.SHOW);if(t(this._element).trigger(o),!o.isDefaultPrevented()){e&&(i._jQueryInterface.call(t(e).not(this._selector),"hide"),s||t(e).data(n,null));var a=this._getDimension();t(this._element).removeClass(u).addClass(f),this._element.style[a]=0,this._triggerArray.length>0&&t(this._triggerArray).removeClass(d).attr("aria-expanded",!0),this.setTransitioning(!0);var l=function(){t(r._element).removeClass(f).addClass(u).addClass(c),r._element.style[a]="",r.setTransitioning(!1),t(r._element).trigger(h.SHOWN)};if(P.supportsTransitionEnd()){var _="scroll"+(a[0].toUpperCase()+a.slice(1));t(this._element).one(P.TRANSITION_END,l).emulateTransitionEnd(600),this._element.style[a]=this._element[_]+"px"}else l()}}},o.hide=function(){var e=this;if(!this._isTransitioning&&t(this._element).hasClass(c)){var n=t.Event(h.HIDE);if(t(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension();if(this._element.style[i]=this._element.getBoundingClientRect()[i]+"px",P.reflow(this._element),t(this._element).addClass(f).removeClass(u).removeClass(c),this._triggerArray.length>0)for(var s=0;s0&&t(n).toggleClass(d,!i).attr("aria-expanded",i)}},i._getTargetFromElement=function(e){var n=P.getSelectorFromElement(e);return n?t(n)[0]:null},i._jQueryInterface=function(e){return this.each(function(){var s=t(this),o=s.data(n),l=r({},a,s.data(),"object"==typeof e&&e);if(!o&&l.toggle&&/show|hide/.test(e)&&(l.toggle=!1),o||(o=new i(this,l),s.data(n,o)),"string"==typeof e){if("undefined"==typeof o[e])throw new TypeError('No method named "'+e+'"');o[e]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return a}}]),i}();return t(document).on(h.CLICK_DATA_API,p.DATA_TOGGLE,function(e){"A"===e.currentTarget.tagName&&e.preventDefault();var i=t(this),s=P.getSelectorFromElement(this);t(s).each(function(){var e=t(this),s=e.data(n)?"toggle":i.data();m._jQueryInterface.call(e,s)})}),t.fn[e]=m._jQueryInterface,t.fn[e].Constructor=m,t.fn[e].noConflict=function(){return t.fn[e]=o,m._jQueryInterface},m}(e),W=function(t){var e="dropdown",i="bs.dropdown",o="."+i,a=".data-api",l=t.fn[e],h=new RegExp("38|40|27"),c={HIDE:"hide"+o,HIDDEN:"hidden"+o,SHOW:"show"+o,SHOWN:"shown"+o,CLICK:"click"+o,CLICK_DATA_API:"click"+o+a,KEYDOWN_DATA_API:"keydown"+o+a,KEYUP_DATA_API:"keyup"+o+a},u="disabled",f="show",d="dropup",_="dropright",g="dropleft",p="dropdown-menu-right",m="dropdown-menu-left",v="position-static",E='[data-toggle="dropdown"]',T=".dropdown form",y=".dropdown-menu",C=".navbar-nav",I=".dropdown-menu .dropdown-item:not(.disabled)",A="top-start",b="top-end",D="bottom-start",S="bottom-end",w="right-start",N="left-start",O={offset:0,flip:!0,boundary:"scrollParent"},k={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)"},L=function(){function a(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var l=a.prototype;return l.toggle=function(){if(!this._element.disabled&&!t(this._element).hasClass(u)){var e=a._getParentFromElement(this._element),i=t(this._menu).hasClass(f);if(a._clearMenus(),!i){var s={relatedTarget:this._element},r=t.Event(c.SHOW,s);if(t(e).trigger(r),!r.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof n)throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)");var o=this._element;t(e).hasClass(d)&&(t(this._menu).hasClass(m)||t(this._menu).hasClass(p))&&(o=e),"scrollParent"!==this._config.boundary&&t(e).addClass(v),this._popper=new n(o,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===t(e).closest(C).length&&t("body").children().on("mouseover",null,t.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),t(this._menu).toggleClass(f),t(e).toggleClass(f).trigger(t.Event(c.SHOWN,s))}}}},l.dispose=function(){t.removeData(this._element,i),t(this._element).off(o),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},l.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},l._addEventListeners=function(){var e=this;t(this._element).on(c.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},l._getConfig=function(n){return n=r({},this.constructor.Default,t(this._element).data(),n),P.typeCheckConfig(e,n,this.constructor.DefaultType),n},l._getMenuElement=function(){if(!this._menu){var e=a._getParentFromElement(this._element);this._menu=t(e).find(y)[0]}return this._menu},l._getPlacement=function(){var e=t(this._element).parent(),n=D;return e.hasClass(d)?(n=A,t(this._menu).hasClass(p)&&(n=b)):e.hasClass(_)?n=w:e.hasClass(g)?n=N:t(this._menu).hasClass(p)&&(n=S),n},l._detectNavbar=function(){return t(this._element).closest(".navbar").length>0},l._getPopperConfig=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t._config.offset(e.offsets)||{}),e}:e.offset=this._config.offset,{placement:this._getPlacement(),modifiers:{offset:e,flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}}},a._jQueryInterface=function(e){return this.each(function(){var n=t(this).data(i);if(n||(n=new a(this,"object"==typeof e?e:null),t(this).data(i,n)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},a._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var n=t.makeArray(t(E)),s=0;s0&&r--,40===e.which&&rdocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},p._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},p._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},f="show",d="out",_={HIDE:"hide"+o,HIDDEN:"hidden"+o,SHOW:"show"+o,SHOWN:"shown"+o,INSERTED:"inserted"+o,CLICK:"click"+o,FOCUSIN:"focusin"+o,FOCUSOUT:"focusout"+o,MOUSEENTER:"mouseenter"+o,MOUSELEAVE:"mouseleave"+o},g="fade",p="show",m=".tooltip-inner",v=".arrow",E="hover",T="focus",y="click",C="manual",I=function(){function a(t,e){if("undefined"==typeof n)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var I=a.prototype;return I.enable=function(){this._isEnabled=!0},I.disable=function(){this._isEnabled=!1},I.toggleEnabled=function(){this._isEnabled=!this._isEnabled},I.toggle=function(e){if(this._isEnabled)if(e){var n=this.constructor.DATA_KEY,i=t(e.currentTarget).data(n);i||(i=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(t(this.getTipElement()).hasClass(p))return void this._leave(null,this);this._enter(null,this)}},I.dispose=function(){clearTimeout(this._timeout),t.removeData(this.element,this.constructor.DATA_KEY),t(this.element).off(this.constructor.EVENT_KEY),t(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&t(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},I.show=function(){var e=this;if("none"===t(this.element).css("display"))throw new Error("Please use show on visible elements");var i=t.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){t(this.element).trigger(i);var s=t.contains(this.element.ownerDocument.documentElement,this.element);if(i.isDefaultPrevented()||!s)return;var r=this.getTipElement(),o=P.getUID(this.constructor.NAME);r.setAttribute("id",o),this.element.setAttribute("aria-describedby",o),this.setContent(),this.config.animation&&t(r).addClass(g);var l="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,h=this._getAttachment(l);this.addAttachmentClass(h);var c=!1===this.config.container?document.body:t(this.config.container);t(r).data(this.constructor.DATA_KEY,this),t.contains(this.element.ownerDocument.documentElement,this.tip)||t(r).appendTo(c),t(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new n(this.element,r,{placement:h,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:v},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),t(r).addClass(p),"ontouchstart"in document.documentElement&&t("body").children().on("mouseover",null,t.noop);var u=function(){e.config.animation&&e._fixTransition();var n=e._hoverState;e._hoverState=null,t(e.element).trigger(e.constructor.Event.SHOWN),n===d&&e._leave(null,e)};P.supportsTransitionEnd()&&t(this.tip).hasClass(g)?t(this.tip).one(P.TRANSITION_END,u).emulateTransitionEnd(a._TRANSITION_DURATION):u()}},I.hide=function(e){var n=this,i=this.getTipElement(),s=t.Event(this.constructor.Event.HIDE),r=function(){n._hoverState!==f&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),t(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),e&&e()};t(this.element).trigger(s),s.isDefaultPrevented()||(t(i).removeClass(p),"ontouchstart"in document.documentElement&&t("body").children().off("mouseover",null,t.noop),this._activeTrigger[y]=!1,this._activeTrigger[T]=!1,this._activeTrigger[E]=!1,P.supportsTransitionEnd()&&t(this.tip).hasClass(g)?t(i).one(P.TRANSITION_END,r).emulateTransitionEnd(150):r(),this._hoverState="")},I.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},I.isWithContent=function(){return Boolean(this.getTitle())},I.addAttachmentClass=function(e){t(this.getTipElement()).addClass("bs-tooltip-"+e)},I.getTipElement=function(){return this.tip=this.tip||t(this.config.template)[0],this.tip},I.setContent=function(){var e=t(this.getTipElement());this.setElementContent(e.find(m),this.getTitle()),e.removeClass(g+" "+p)},I.setElementContent=function(e,n){var i=this.config.html;"object"==typeof n&&(n.nodeType||n.jquery)?i?t(n).parent().is(e)||e.empty().append(n):e.text(t(n).text()):e[i?"html":"text"](n)},I.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},I._getAttachment=function(t){return c[t.toUpperCase()]},I._setListeners=function(){var e=this;this.config.trigger.split(" ").forEach(function(n){if("click"===n)t(e.element).on(e.constructor.Event.CLICK,e.config.selector,function(t){return e.toggle(t)});else if(n!==C){var i=n===E?e.constructor.Event.MOUSEENTER:e.constructor.Event.FOCUSIN,s=n===E?e.constructor.Event.MOUSELEAVE:e.constructor.Event.FOCUSOUT;t(e.element).on(i,e.config.selector,function(t){return e._enter(t)}).on(s,e.config.selector,function(t){return e._leave(t)})}t(e.element).closest(".modal").on("hide.bs.modal",function(){return e.hide()})}),this.config.selector?this.config=r({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},I._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},I._enter=function(e,n){var i=this.constructor.DATA_KEY;(n=n||t(e.currentTarget).data(i))||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(i,n)),e&&(n._activeTrigger["focusin"===e.type?T:E]=!0),t(n.getTipElement()).hasClass(p)||n._hoverState===f?n._hoverState=f:(clearTimeout(n._timeout),n._hoverState=f,n.config.delay&&n.config.delay.show?n._timeout=setTimeout(function(){n._hoverState===f&&n.show()},n.config.delay.show):n.show())},I._leave=function(e,n){var i=this.constructor.DATA_KEY;(n=n||t(e.currentTarget).data(i))||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(i,n)),e&&(n._activeTrigger["focusout"===e.type?T:E]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState=d,n.config.delay&&n.config.delay.hide?n._timeout=setTimeout(function(){n._hoverState===d&&n.hide()},n.config.delay.hide):n.hide())},I._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},I._getConfig=function(n){return"number"==typeof(n=r({},this.constructor.Default,t(this.element).data(),n)).delay&&(n.delay={show:n.delay,hide:n.delay}),"number"==typeof n.title&&(n.title=n.title.toString()),"number"==typeof n.content&&(n.content=n.content.toString()),P.typeCheckConfig(e,n,this.constructor.DefaultType),n},I._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},I._cleanTipClass=function(){var e=t(this.getTipElement()),n=e.attr("class").match(l);null!==n&&n.length>0&&e.removeClass(n.join(""))},I._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},I._fixTransition=function(){var e=this.getTipElement(),n=this.config.animation;null===e.getAttribute("x-placement")&&(t(e).removeClass(g),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},a._jQueryInterface=function(e){return this.each(function(){var n=t(this).data(i),s="object"==typeof e&&e;if((n||!/dispose|hide/.test(e))&&(n||(n=new a(this,s),t(this).data(i,n)),"string"==typeof e)){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},s(a,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return u}},{key:"NAME",get:function(){return e}},{key:"DATA_KEY",get:function(){return i}},{key:"Event",get:function(){return _}},{key:"EVENT_KEY",get:function(){return o}},{key:"DefaultType",get:function(){return h}}]),a}();return t.fn[e]=I._jQueryInterface,t.fn[e].Constructor=I,t.fn[e].noConflict=function(){return t.fn[e]=a,I._jQueryInterface},I}(e),x=function(t){var e="popover",n="bs.popover",i="."+n,o=t.fn[e],a=new RegExp("(^|\\s)bs-popover\\S+","g"),l=r({},U.Default,{placement:"right",trigger:"click",content:"",template:''}),h=r({},U.DefaultType,{content:"(string|element|function)"}),c="fade",u="show",f=".popover-header",d=".popover-body",_={HIDE:"hide"+i,HIDDEN:"hidden"+i,SHOW:"show"+i,SHOWN:"shown"+i,INSERTED:"inserted"+i,CLICK:"click"+i,FOCUSIN:"focusin"+i,FOCUSOUT:"focusout"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i},g=function(r){var o,g;function p(){return r.apply(this,arguments)||this}g=r,(o=p).prototype=Object.create(g.prototype),o.prototype.constructor=o,o.__proto__=g;var m=p.prototype;return m.isWithContent=function(){return this.getTitle()||this._getContent()},m.addAttachmentClass=function(e){t(this.getTipElement()).addClass("bs-popover-"+e)},m.getTipElement=function(){return this.tip=this.tip||t(this.config.template)[0],this.tip},m.setContent=function(){var e=t(this.getTipElement());this.setElementContent(e.find(f),this.getTitle());var n=this._getContent();"function"==typeof n&&(n=n.call(this.element)),this.setElementContent(e.find(d),n),e.removeClass(c+" "+u)},m._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},m._cleanTipClass=function(){var e=t(this.getTipElement()),n=e.attr("class").match(a);null!==n&&n.length>0&&e.removeClass(n.join(""))},p._jQueryInterface=function(e){return this.each(function(){var i=t(this).data(n),s="object"==typeof e?e:null;if((i||!/destroy|hide/.test(e))&&(i||(i=new p(this,s),t(this).data(n,i)),"string"==typeof e)){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}})},s(p,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return l}},{key:"NAME",get:function(){return e}},{key:"DATA_KEY",get:function(){return n}},{key:"Event",get:function(){return _}},{key:"EVENT_KEY",get:function(){return i}},{key:"DefaultType",get:function(){return h}}]),p}(U);return t.fn[e]=g._jQueryInterface,t.fn[e].Constructor=g,t.fn[e].noConflict=function(){return t.fn[e]=o,g._jQueryInterface},g}(e),K=function(t){var e="scrollspy",n="bs.scrollspy",i="."+n,o=t.fn[e],a={offset:10,method:"auto",target:""},l={offset:"number",method:"string",target:"(string|element)"},h={ACTIVATE:"activate"+i,SCROLL:"scroll"+i,LOAD_DATA_API:"load"+i+".data-api"},c="dropdown-item",u="active",f={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},d="offset",_="position",g=function(){function o(e,n){var i=this;this._element=e,this._scrollElement="BODY"===e.tagName?window:e,this._config=this._getConfig(n),this._selector=this._config.target+" "+f.NAV_LINKS+","+this._config.target+" "+f.LIST_ITEMS+","+this._config.target+" "+f.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,t(this._scrollElement).on(h.SCROLL,function(t){return i._process(t)}),this.refresh(),this._process()}var g=o.prototype;return g.refresh=function(){var e=this,n=this._scrollElement===this._scrollElement.window?d:_,i="auto"===this._config.method?n:this._config.method,s=i===_?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),t.makeArray(t(this._selector)).map(function(e){var n,r=P.getSelectorFromElement(e);if(r&&(n=t(r)[0]),n){var o=n.getBoundingClientRect();if(o.width||o.height)return[t(n)[i]().top+s,r]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},g.dispose=function(){t.removeData(this._element,n),t(this._scrollElement).off(i),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},g._getConfig=function(n){if("string"!=typeof(n=r({},a,n)).target){var i=t(n.target).attr("id");i||(i=P.getUID(e),t(n.target).attr("id",i)),n.target="#"+i}return P.typeCheckConfig(e,n,l),n},g._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},g._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},g._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},g._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var s=this._offsets.length;s--;){this._activeTarget!==this._targets[s]&&t>=this._offsets[s]&&("undefined"==typeof this._offsets[s+1]||t=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(e),t.Util=P,t.Alert=L,t.Button=R,t.Carousel=j,t.Collapse=H,t.Dropdown=W,t.Modal=M,t.Popover=x,t.Scrollspy=K,t.Tab=V,t.Tooltip=U,Object.defineProperty(t,"__esModule",{value:!0})}); -//# sourceMappingURL=bootstrap.min.js.map \ No newline at end of file diff --git a/htdocs/public/high/assets/js/jquery.app.js b/htdocs/public/high/assets/js/jquery.app.js deleted file mode 100644 index c7b4bffe..00000000 --- a/htdocs/public/high/assets/js/jquery.app.js +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Theme: Highdmin - Bootstrap 4 Web App kit - * Author: Coderthemes - * Module/App: Main Js - */ - - -(function ($) { - - 'use strict'; - - function initNavbar() { - - $('.navbar-toggle').on('click', function (event) { - $(this).toggleClass('open'); - $('#navigation').slideToggle(400); - }); - - $('.navigation-menu>li').slice(-2).addClass('last-elements'); - - $('.navigation-menu li.has-submenu a[href="#"]').on('click', function (e) { - if ($(window).width() < 992) { - e.preventDefault(); - $(this).parent('li').toggleClass('open').find('.submenu:first').toggleClass('open'); - } - }); - } - function initScrollbar() { - $('.slimscroll').slimscroll({ - height: 'auto', - position: 'right', - size: "8px", - color: '#9ea5ab' - }); - } - // === following js will activate the menu in left side bar based on url ==== - function initMenuItem() { - $(".navigation-menu a").each(function () { - if (this.href == window.location.href) { - $(this).parent().addClass("active"); // add active to li of the current link - $(this).parent().parent().parent().addClass("active"); // add active class to an anchor - $(this).parent().parent().parent().parent().parent().addClass("active"); // add active class to an anchor - } - }); - } - function init() { - initNavbar(); - initScrollbar(); - initMenuItem(); - } - - init(); - -})(jQuery); - - - diff --git a/htdocs/public/high/assets/js/jquery.core.js b/htdocs/public/high/assets/js/jquery.core.js deleted file mode 100644 index 86157b86..00000000 --- a/htdocs/public/high/assets/js/jquery.core.js +++ /dev/null @@ -1,102 +0,0 @@ -/** -* Theme: Highdmin - Bootstrap 4 Web App kit -* Author: Coderthemes -* Module/App: Core js -*/ - - -/** - * Components - */ -!function($) { - "use strict"; - - var Components = function() {}; - - //initializing tooltip - Components.prototype.initTooltipPlugin = function() { - $.fn.tooltip && $('[data-toggle="tooltip"]').tooltip() - }, - - //initializing popover - Components.prototype.initPopoverPlugin = function() { - $.fn.popover && $('[data-toggle="popover"]').popover() - }, - - //initializing custom modal - Components.prototype.initCustomModalPlugin = function() { - $('[data-plugin="custommodal"]').on('click', function(e) { - Custombox.open({ - target: $(this).attr("href"), - effect: $(this).attr("data-animation"), - overlaySpeed: $(this).attr("data-overlaySpeed"), - overlayColor: $(this).attr("data-overlayColor") - }); - e.preventDefault(); - }); - }, - - //initializing Slimscroll - Components.prototype.initSlimScrollPlugin = function() { - //You can change the color of scroll bar here - $.fn.slimScroll && $(".slimscroll-alt").slimScroll({ position: 'right',size: "5px", color: '#98a6ad',wheelStep: 10}); - }, - - //range slider - Components.prototype.initRangeSlider = function() { - $.fn.slider && $('[data-plugin="range-slider"]').slider({}); - }, - - /* ------------- - * Form related controls - */ - //switch - Components.prototype.initSwitchery = function() { - $('[data-plugin="switchery"]').each(function (idx, obj) { - new Switchery($(this)[0], $(this).data()); - }); - }, - - Components.prototype.initKnob = function() { - $('[data-plugin="knob"]').each(function(idx, obj) { - $(this).knob(); - }); - }, - - Components.prototype.initCounterUp = function() { - var delay = $(this).attr('data-delay')?$(this).attr('data-delay'):100; //default is 100 - var time = $(this).attr('data-time')?$(this).attr('data-time'):1200; //default is 1200 - $('[data-plugin="counterup"]').each(function(idx, obj) { - $(this).counterUp({ - delay: 100, - time: 1200 - }); - }); - }, - - - //initilizing - Components.prototype.init = function() { - var $this = this; - this.initTooltipPlugin(), - this.initPopoverPlugin(), - this.initSlimScrollPlugin(), - this.initCustomModalPlugin(), - this.initRangeSlider(), - this.initSwitchery(), - this.initKnob(), - this.initCounterUp() - }, - - $.Components = new Components, $.Components.Constructor = Components - -}(window.jQuery), - //initializing main application module -function($) { - "use strict"; - $.Components.init(); -}(window.jQuery); - - - - diff --git a/htdocs/public/high/assets/js/jquery.min.js b/htdocs/public/high/assets/js/jquery.min.js deleted file mode 100644 index 4c5be4c0..00000000 --- a/htdocs/public/high/assets/js/jquery.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */ -!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):C.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/[^\x20\t\r\n\f]+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R), -a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,ka=/^$|\/(?:java|ecma)script/i,la={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};la.optgroup=la.option,la.tbody=la.tfoot=la.colgroup=la.caption=la.thead,la.th=la.td;function ma(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function na(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ma(l.appendChild(f),"script"),j&&na(g),c){k=0;while(f=g[k++])ka.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var qa=d.documentElement,ra=/^key/,sa=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ta=/^([^.]*)(?:\.(.+)|)/;function ua(){return!0}function va(){return!1}function wa(){try{return d.activeElement}catch(a){}}function xa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)xa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=va;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(qa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,za=/\s*$/g;function Da(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Ea(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Fa(a){var b=Ba.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ga(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Aa.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ia(f,b,c,d)});if(m&&(e=pa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(ma(e,"script"),Ea),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=ma(h),f=ma(a),d=0,e=f.length;d0&&na(g,!i&&ma(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ja(this,a,!0)},remove:function(a){return Ja(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.appendChild(a)}})},prepend:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(ma(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!za.test(a)&&!la[(ja.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function Ya(a,b,c,d,e){return new Ya.prototype.init(a,b,c,d,e)}r.Tween=Ya,Ya.prototype={constructor:Ya,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Ya.propHooks[this.prop];return a&&a.get?a.get(this):Ya.propHooks._default.get(this)},run:function(a){var b,c=Ya.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ya.propHooks._default.set(this),this}},Ya.prototype.init.prototype=Ya.prototype,Ya.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Ya.propHooks.scrollTop=Ya.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Ya.prototype.init,r.fx.step={};var Za,$a,_a=/^(?:toggle|show|hide)$/,ab=/queueHooks$/;function bb(){$a&&(a.requestAnimationFrame(bb),r.fx.tick())}function cb(){return a.setTimeout(function(){Za=void 0}),Za=r.now()}function db(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ba[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function eb(a,b,c){for(var d,e=(hb.tweeners[b]||[]).concat(hb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?ib:void 0)), -void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),ib={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=jb[b]||r.find.attr;jb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=jb[g],jb[g]=e,e=null!=c(a,b,d)?g:null,jb[g]=f),e}});var kb=/^(?:input|select|textarea|button)$/i,lb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):kb.test(a.nodeName)||lb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function mb(a){var b=a.match(K)||[];return b.join(" ")}function nb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,nb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,nb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,nb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=nb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(nb(c))+" ").indexOf(b)>-1)return!0;return!1}});var ob=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ob,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:mb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ia.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,"$1"),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" - - - - - - - - - -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/daygrid-views.html b/htdocs/public/high/plugins/fullcalendar/examples/daygrid-views.html deleted file mode 100644 index 75f2cb11..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/daygrid-views.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/external-dragging-2cals.html b/htdocs/public/high/plugins/fullcalendar/examples/external-dragging-2cals.html deleted file mode 100644 index 624c8ca1..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/external-dragging-2cals.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - -
-
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/external-dragging-builtin.html b/htdocs/public/high/plugins/fullcalendar/examples/external-dragging-builtin.html deleted file mode 100644 index f9471b0e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/external-dragging-builtin.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - -
- -
-

Draggable Events

- -
-
My Event 1
-
My Event 2
-
My Event 3
-
My Event 4
-
My Event 5
-
- -

- - -

-
- -
- -
- -
- - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/full-height.html b/htdocs/public/high/plugins/fullcalendar/examples/full-height.html deleted file mode 100644 index b05a2121..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/full-height.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - -
-
-
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/google-calendar.html b/htdocs/public/high/plugins/fullcalendar/examples/google-calendar.html deleted file mode 100644 index 96194ac6..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/google-calendar.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - -
loading...
- -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/js/theme-chooser.js b/htdocs/public/high/plugins/fullcalendar/examples/js/theme-chooser.js deleted file mode 100644 index 92a7c475..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/js/theme-chooser.js +++ /dev/null @@ -1,141 +0,0 @@ - -function initThemeChooser(settings) { - var isInitialized = false; - var currentThemeSystem; // don't set this directly. use setThemeSystem - var currentStylesheetEl; - var loadingEl = document.getElementById('loading'); - var systemSelectEl = document.querySelector('#theme-system-selector select'); - var themeSelectWrapEls = Array.prototype.slice.call( // convert to real array - document.querySelectorAll('.selector[data-theme-system]') - ); - - systemSelectEl.addEventListener('change', function() { - setThemeSystem(this.value); - }); - - setThemeSystem(systemSelectEl.value); - - themeSelectWrapEls.forEach(function(themeSelectWrapEl) { - var themeSelectEl = themeSelectWrapEl.querySelector('select'); - - themeSelectWrapEl.addEventListener('change', function() { - setTheme( - currentThemeSystem, - themeSelectEl.options[themeSelectEl.selectedIndex].value - ); - }); - }); - - - function setThemeSystem(themeSystem) { - var selectedTheme; - - currentThemeSystem = themeSystem; - - themeSelectWrapEls.forEach(function(themeSelectWrapEl) { - var themeSelectEl = themeSelectWrapEl.querySelector('select'); - - if (themeSelectWrapEl.getAttribute('data-theme-system') === themeSystem) { - selectedTheme = themeSelectEl.options[themeSelectEl.selectedIndex].value; - themeSelectWrapEl.style.display = 'inline-block'; - } else { - themeSelectWrapEl.style.display = 'none'; - } - }); - - setTheme(themeSystem, selectedTheme); - } - - - function setTheme(themeSystem, themeName) { - var stylesheetUrl = generateStylesheetUrl(themeSystem, themeName); - var stylesheetEl; - - function done() { - if (!isInitialized) { - isInitialized = true; - settings.init(themeSystem); - } - else { - settings.change(themeSystem); - } - - showCredits(themeSystem, themeName); - } - - if (stylesheetUrl) { - stylesheetEl = document.createElement('link'); - stylesheetEl.setAttribute('rel', 'stylesheet'); - stylesheetEl.setAttribute('href', stylesheetUrl); - document.querySelector('head').appendChild(stylesheetEl); - - loadingEl.style.display = 'inline'; - - whenStylesheetLoaded(stylesheetEl, function() { - if (currentStylesheetEl) { - currentStylesheetEl.parentNode.removeChild(currentStylesheetEl); - } - currentStylesheetEl = stylesheetEl; - loadingEl.style.display = 'none'; - done(); - }); - } else { - if (currentStylesheetEl) { - currentStylesheetEl.parentNode.removeChild(currentStylesheetEl); - currentStylesheetEl = null - } - done(); - } - } - - - function generateStylesheetUrl(themeSystem, themeName) { - if (themeSystem === 'bootstrap') { - if (themeName) { - return 'https://bootswatch.com/4/' + themeName + '/bootstrap.min.css'; - } - else { // the default bootstrap theme - return 'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css'; - } - } - } - - - function showCredits(themeSystem, themeName) { - var creditId; - - if (themeSystem.match('bootstrap')) { - if (themeName) { - creditId = 'bootstrap-custom'; - } - else { - creditId = 'bootstrap-standard'; - } - } - - Array.prototype.slice.call( // convert to real array - document.querySelectorAll('.credits') - ).forEach(function(creditEl) { - if (creditEl.getAttribute('data-credit-id') === creditId) { - creditEl.style.display = 'block'; - } else { - creditEl.style.display = 'none'; - } - }) - } - - - function whenStylesheetLoaded(linkNode, callback) { - var isReady = false; - - function ready() { - if (!isReady) { // avoid double-call - isReady = true; - callback(); - } - } - - linkNode.onload = ready; // does not work cross-browser - setTimeout(ready, 2000); // max wait. also handles browsers that don't support onload - } -} diff --git a/htdocs/public/high/plugins/fullcalendar/examples/json.html b/htdocs/public/high/plugins/fullcalendar/examples/json.html deleted file mode 100644 index cf2038fd..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/json.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - -
- php/get-events.php must be running. -
- -
loading...
- -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/json/events.json b/htdocs/public/high/plugins/fullcalendar/examples/json/events.json deleted file mode 100644 index 3d4c458c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/json/events.json +++ /dev/null @@ -1,56 +0,0 @@ -[ - { - "title": "All Day Event", - "start": "2019-08-01" - }, - { - "title": "Long Event", - "start": "2019-08-07", - "end": "2019-08-10" - }, - { - "id": "999", - "title": "Repeating Event", - "start": "2019-08-09T16:00:00-05:00" - }, - { - "id": "999", - "title": "Repeating Event", - "start": "2019-08-16T16:00:00-05:00" - }, - { - "title": "Conference", - "start": "2019-08-11", - "end": "2019-08-13" - }, - { - "title": "Meeting", - "start": "2019-08-12T10:30:00-05:00", - "end": "2019-08-12T12:30:00-05:00" - }, - { - "title": "Lunch", - "start": "2019-08-12T12:00:00-05:00" - }, - { - "title": "Meeting", - "start": "2019-08-12T14:30:00-05:00" - }, - { - "title": "Happy Hour", - "start": "2019-08-12T17:30:00-05:00" - }, - { - "title": "Dinner", - "start": "2019-08-12T20:00:00" - }, - { - "title": "Birthday Party", - "start": "2019-08-13T07:00:00-05:00" - }, - { - "title": "Click for Google", - "url": "http://google.com/", - "start": "2019-08-28" - } -] diff --git a/htdocs/public/high/plugins/fullcalendar/examples/list-views.html b/htdocs/public/high/plugins/fullcalendar/examples/list-views.html deleted file mode 100644 index 79c48274..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/list-views.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - - - - - - -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/locales.html b/htdocs/public/high/plugins/fullcalendar/examples/locales.html deleted file mode 100644 index bac02839..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/locales.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - - - - - - - - - - - - - -
- - Locales: - - -
- -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/month-view.html b/htdocs/public/high/plugins/fullcalendar/examples/month-view.html deleted file mode 100644 index 477bc0a2..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/month-view.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - - -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/php/get-events.php b/htdocs/public/high/plugins/fullcalendar/examples/php/get-events.php deleted file mode 100644 index e4d76543..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/php/get-events.php +++ /dev/null @@ -1,50 +0,0 @@ -isWithinDayRange($range_start, $range_end)) { - $output_arrays[] = $event->toArray(); - } -} - -// Send JSON to the client. -echo json_encode($output_arrays); diff --git a/htdocs/public/high/plugins/fullcalendar/examples/php/get-time-zones.php b/htdocs/public/high/plugins/fullcalendar/examples/php/get-time-zones.php deleted file mode 100644 index 241e1bd1..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/php/get-time-zones.php +++ /dev/null @@ -1,9 +0,0 @@ -values. - // You can optionally force the timeZone of the parsed dates. - public function __construct($array, $timeZone=null) { - - $this->title = $array['title']; - - if (isset($array['allDay'])) { - // allDay has been explicitly specified - $this->allDay = (bool)$array['allDay']; - } - else { - // Guess allDay based off of ISO8601 date strings - $this->allDay = preg_match(self::ALL_DAY_REGEX, $array['start']) && - (!isset($array['end']) || preg_match(self::ALL_DAY_REGEX, $array['end'])); - } - - if ($this->allDay) { - // If dates are allDay, we want to parse them in UTC to avoid DST issues. - $timeZone = null; - } - - // Parse dates - $this->start = parseDateTime($array['start'], $timeZone); - $this->end = isset($array['end']) ? parseDateTime($array['end'], $timeZone) : null; - - // Record misc properties - foreach ($array as $name => $value) { - if (!in_array($name, array('title', 'allDay', 'start', 'end'))) { - $this->properties[$name] = $value; - } - } - } - - - // Returns whether the date range of our event intersects with the given all-day range. - // $rangeStart and $rangeEnd are assumed to be dates in UTC with 00:00:00 time. - public function isWithinDayRange($rangeStart, $rangeEnd) { - - // Normalize our event's dates for comparison with the all-day range. - $eventStart = stripTime($this->start); - - if (isset($this->end)) { - $eventEnd = stripTime($this->end); // normalize - } - else { - $eventEnd = $eventStart; // consider this a zero-duration event - } - - // Check if the two whole-day ranges intersect. - return $eventStart < $rangeEnd && $eventEnd >= $rangeStart; - } - - - // Converts this Event object back to a plain data array, to be used for generating JSON - public function toArray() { - - // Start with the misc properties (don't worry, PHP won't affect the original array) - $array = $this->properties; - - $array['title'] = $this->title; - - // Figure out the date format. This essentially encodes allDay into the date string. - if ($this->allDay) { - $format = 'Y-m-d'; // output like "2013-12-29" - } - else { - $format = 'c'; // full ISO8601 output, like "2013-12-29T09:00:00+08:00" - } - - // Serialize dates into strings - $array['start'] = $this->start->format($format); - if (isset($this->end)) { - $array['end'] = $this->end->format($format); - } - - return $array; - } - -} - - -// Date Utilities -//---------------------------------------------------------------------------------------------- - - -// Parses a string into a DateTime object, optionally forced into the given timeZone. -function parseDateTime($string, $timeZone=null) { - $date = new DateTime( - $string, - $timeZone ? $timeZone : new DateTimeZone('UTC') - // Used only when the string is ambiguous. - // Ignored if string has a timeZone offset in it. - ); - if ($timeZone) { - // If our timeZone was ignored above, force it. - $date->setTimezone($timeZone); - } - return $date; -} - - -// Takes the year/month/date values of the given DateTime and converts them to a new DateTime, -// but in UTC. -function stripTime($datetime) { - return new DateTime($datetime->format('Y-m-d')); -} diff --git a/htdocs/public/high/plugins/fullcalendar/examples/rrule.html b/htdocs/public/high/plugins/fullcalendar/examples/rrule.html deleted file mode 100644 index 2ab3cc2b..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/rrule.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/selectable.html b/htdocs/public/high/plugins/fullcalendar/examples/selectable.html deleted file mode 100644 index b9f0f761..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/selectable.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - - - - -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/theming.html b/htdocs/public/high/plugins/fullcalendar/examples/theming.html deleted file mode 100644 index c444a1a9..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/theming.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
- Theme System: - - -
- - - - - -
- - - -
-
- -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/time-zones.html b/htdocs/public/high/plugins/fullcalendar/examples/time-zones.html deleted file mode 100644 index 2a61eace..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/time-zones.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - -
- -
- Timezone: - -
- -
- loading... - php/get-events.php must be running. -
- -
- -
- -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/timegrid-views.html b/htdocs/public/high/plugins/fullcalendar/examples/timegrid-views.html deleted file mode 100644 index a4408e9f..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/timegrid-views.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - - - - - - - - - - - - -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/week-numbers.html b/htdocs/public/high/plugins/fullcalendar/examples/week-numbers.html deleted file mode 100644 index 5e1d4091..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/week-numbers.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - - - - - - - - - - - -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/locales-all.js b/htdocs/public/high/plugins/fullcalendar/locales-all.js deleted file mode 100644 index 5c7c9fa9..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales-all.js +++ /dev/null @@ -1,1348 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, global.FullCalendarLocalesAll = factory()); -}(this, function () { 'use strict'; - - var _m0 = { - code: "af", - week: { - dow: 1, - doy: 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar. - }, - buttonText: { - prev: "Vorige", - next: "Volgende", - today: "Vandag", - year: "Jaar", - month: "Maand", - week: "Week", - day: "Dag", - list: "Agenda" - }, - allDayHtml: "Heeldag", - eventLimitText: "Addisionele", - noEventsMessage: "Daar is geen gebeurtenisse nie" - }; - - var _m1 = { - code: "ar-dz", - week: { - dow: 0, - doy: 4 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - var _m2 = { - code: "ar-kw", - week: { - dow: 0, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - var _m3 = { - code: "ar-ly", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - var _m4 = { - code: "ar-ma", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - var _m5 = { - code: "ar-sa", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - var _m6 = { - code: "ar-tn", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - var _m7 = { - code: "ar", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - var _m8 = { - code: "bg", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "назад", - next: "напред", - today: "днес", - month: "Месец", - week: "Седмица", - day: "Ден", - list: "График" - }, - allDayText: "Цял ден", - eventLimitText: function (n) { - return "+още " + n; - }, - noEventsMessage: "Няма събития за показване" - }; - - var _m9 = { - code: "bs", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prošli", - next: "Sljedeći", - today: "Danas", - month: "Mjesec", - week: "Sedmica", - day: "Dan", - list: "Raspored" - }, - weekLabel: "Sed", - allDayText: "Cijeli dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nema događaja za prikazivanje" - }; - - var _m10 = { - code: "ca", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Anterior", - next: "Següent", - today: "Avui", - month: "Mes", - week: "Setmana", - day: "Dia", - list: "Agenda" - }, - weekLabel: "Set", - allDayText: "Tot el dia", - eventLimitText: "més", - noEventsMessage: "No hi ha esdeveniments per mostrar" - }; - - var _m11 = { - code: "cs", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Dříve", - next: "Později", - today: "Nyní", - month: "Měsíc", - week: "Týden", - day: "Den", - list: "Agenda" - }, - weekLabel: "Týd", - allDayText: "Celý den", - eventLimitText: function (n) { - return "+další: " + n; - }, - noEventsMessage: "Žádné akce k zobrazení" - }; - - var _m12 = { - code: "da", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Forrige", - next: "Næste", - today: "I dag", - month: "Måned", - week: "Uge", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Uge", - allDayText: "Hele dagen", - eventLimitText: "flere", - noEventsMessage: "Ingen arrangementer at vise" - }; - - var _m13 = { - code: "de", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Zurück", - next: "Vor", - today: "Heute", - year: "Jahr", - month: "Monat", - week: "Woche", - day: "Tag", - list: "Terminübersicht" - }, - weekLabel: "KW", - allDayText: "Ganztägig", - eventLimitText: function (n) { - return "+ weitere " + n; - }, - noEventsMessage: "Keine Ereignisse anzuzeigen" - }; - - var _m14 = { - code: "el", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4st is the first week of the year. - }, - buttonText: { - prev: "Προηγούμενος", - next: "Επόμενος", - today: "Σήμερα", - month: "Μήνας", - week: "Εβδομάδα", - day: "Ημέρα", - list: "Ατζέντα" - }, - weekLabel: "Εβδ", - allDayText: "Ολοήμερο", - eventLimitText: "περισσότερα", - noEventsMessage: "Δεν υπάρχουν γεγονότα για να εμφανιστεί" - }; - - var _m15 = { - code: "en-au", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - } - }; - - var _m16 = { - code: "en-gb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - } - }; - - var _m17 = { - code: "en-nz", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - } - }; - - var _m18 = { - code: "es", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Sig", - today: "Hoy", - month: "Mes", - week: "Semana", - day: "Día", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
el día", - eventLimitText: "más", - noEventsMessage: "No hay eventos para mostrar" - }; - - var _m19 = { - code: "es", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Sig", - today: "Hoy", - month: "Mes", - week: "Semana", - day: "Día", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
el día", - eventLimitText: "más", - noEventsMessage: "No hay eventos para mostrar" - }; - - var _m20 = { - code: "et", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Eelnev", - next: "Järgnev", - today: "Täna", - month: "Kuu", - week: "Nädal", - day: "Päev", - list: "Päevakord" - }, - weekLabel: "näd", - allDayText: "Kogu päev", - eventLimitText: function (n) { - return "+ veel " + n; - }, - noEventsMessage: "Kuvamiseks puuduvad sündmused" - }; - - var _m21 = { - code: "eu", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Aur", - next: "Hur", - today: "Gaur", - month: "Hilabetea", - week: "Astea", - day: "Eguna", - list: "Agenda" - }, - weekLabel: "As", - allDayHtml: "Egun
osoa", - eventLimitText: "gehiago", - noEventsMessage: "Ez dago ekitaldirik erakusteko" - }; - - var _m22 = { - code: "fa", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "قبلی", - next: "بعدی", - today: "امروز", - month: "ماه", - week: "هفته", - day: "روز", - list: "برنامه" - }, - weekLabel: "هف", - allDayText: "تمام روز", - eventLimitText: function (n) { - return "بیش از " + n; - }, - noEventsMessage: "هیچ رویدادی به نمایش" - }; - - var _m23 = { - code: "fi", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Edellinen", - next: "Seuraava", - today: "Tänään", - month: "Kuukausi", - week: "Viikko", - day: "Päivä", - list: "Tapahtumat" - }, - weekLabel: "Vk", - allDayText: "Koko päivä", - eventLimitText: "lisää", - noEventsMessage: "Ei näytettäviä tapahtumia" - }; - - var _m24 = { - code: "fr", - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Aujourd'hui", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sem.", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - var _m25 = { - code: "fr-ch", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Courant", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sm", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - var _m26 = { - code: "fr", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Aujourd'hui", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sem.", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - var _m27 = { - code: "gl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Seg", - today: "Hoxe", - month: "Mes", - week: "Semana", - day: "Día", - list: "Axenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
o día", - eventLimitText: "máis", - noEventsMessage: "Non hai eventos para amosar" - }; - - var _m28 = { - code: "he", - dir: 'rtl', - buttonText: { - prev: "הקודם", - next: "הבא", - today: "היום", - month: "חודש", - week: "שבוע", - day: "יום", - list: "סדר יום" - }, - allDayText: "כל היום", - eventLimitText: "אחר", - noEventsMessage: "אין אירועים להצגה", - weekLabel: "שבוע" - }; - - var _m29 = { - code: "hi", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "पिछला", - next: "अगला", - today: "आज", - month: "महीना", - week: "सप्ताह", - day: "दिन", - list: "कार्यसूची" - }, - weekLabel: "हफ्ता", - allDayText: "सभी दिन", - eventLimitText: function (n) { - return "+अधिक " + n; - }, - noEventsMessage: "कोई घटनाओं को प्रदर्शित करने के लिए" - }; - - var _m30 = { - code: "hr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prijašnji", - next: "Sljedeći", - today: "Danas", - month: "Mjesec", - week: "Tjedan", - day: "Dan", - list: "Raspored" - }, - weekLabel: "Tje", - allDayText: "Cijeli dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nema događaja za prikaz" - }; - - var _m31 = { - code: "hu", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "vissza", - next: "előre", - today: "ma", - month: "Hónap", - week: "Hét", - day: "Nap", - list: "Napló" - }, - weekLabel: "Hét", - allDayText: "Egész nap", - eventLimitText: "további", - noEventsMessage: "Nincs megjeleníthető esemény" - }; - - var _m32 = { - code: "id", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "mundur", - next: "maju", - today: "hari ini", - month: "Bulan", - week: "Minggu", - day: "Hari", - list: "Agenda" - }, - weekLabel: "Mg", - allDayHtml: "Sehari
penuh", - eventLimitText: "lebih", - noEventsMessage: "Tidak ada acara untuk ditampilkan" - }; - - var _m33 = { - code: "is", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Fyrri", - next: "Næsti", - today: "Í dag", - month: "Mánuður", - week: "Vika", - day: "Dagur", - list: "Dagskrá" - }, - weekLabel: "Vika", - allDayHtml: "Allan
daginn", - eventLimitText: "meira", - noEventsMessage: "Engir viðburðir til að sýna" - }; - - var _m34 = { - code: "it", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Prec", - next: "Succ", - today: "Oggi", - month: "Mese", - week: "Settimana", - day: "Giorno", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Tutto il
giorno", - eventLimitText: function (n) { - return "+altri " + n; - }, - noEventsMessage: "Non ci sono eventi da visualizzare" - }; - - var _m35 = { - code: "ja", - buttonText: { - prev: "前", - next: "次", - today: "今日", - month: "月", - week: "週", - day: "日", - list: "予定リスト" - }, - weekLabel: "週", - allDayText: "終日", - eventLimitText: function (n) { - return "他 " + n + " 件"; - }, - noEventsMessage: "表示する予定はありません" - }; - - var _m36 = { - code: "ka", - week: { - dow: 1, - doy: 7 - }, - buttonText: { - prev: "წინა", - next: "შემდეგი", - today: "დღეს", - month: "თვე", - week: "კვირა", - day: "დღე", - list: "დღის წესრიგი" - }, - weekLabel: "კვ", - allDayText: "მთელი დღე", - eventLimitText: function (n) { - return "+ კიდევ " + n; - }, - noEventsMessage: "ღონისძიებები არ არის" - }; - - var _m37 = { - code: "kk", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Алдыңғы", - next: "Келесі", - today: "Бүгін", - month: "Ай", - week: "Апта", - day: "Күн", - list: "Күн тәртібі" - }, - weekLabel: "Не", - allDayText: "Күні бойы", - eventLimitText: function (n) { - return "+ тағы " + n; - }, - noEventsMessage: "Көрсету үшін оқиғалар жоқ" - }; - - var _m38 = { - code: "ko", - buttonText: { - prev: "이전달", - next: "다음달", - today: "오늘", - month: "월", - week: "주", - day: "일", - list: "일정목록" - }, - weekLabel: "주", - allDayText: "종일", - eventLimitText: "개", - noEventsMessage: "일정이 없습니다" - }; - - var _m39 = { - code: "lb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Zréck", - next: "Weider", - today: "Haut", - month: "Mount", - week: "Woch", - day: "Dag", - list: "Terminiwwersiicht" - }, - weekLabel: "W", - allDayText: "Ganzen Dag", - eventLimitText: "méi", - noEventsMessage: "Nee Evenementer ze affichéieren" - }; - - var _m40 = { - code: "lt", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Atgal", - next: "Pirmyn", - today: "Šiandien", - month: "Mėnuo", - week: "Savaitė", - day: "Diena", - list: "Darbotvarkė" - }, - weekLabel: "SAV", - allDayText: "Visą dieną", - eventLimitText: "daugiau", - noEventsMessage: "Nėra įvykių rodyti" - }; - - var _m41 = { - code: "lv", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Iepr.", - next: "Nāk.", - today: "Šodien", - month: "Mēnesis", - week: "Nedēļa", - day: "Diena", - list: "Dienas kārtība" - }, - weekLabel: "Ned.", - allDayText: "Visu dienu", - eventLimitText: function (n) { - return "+vēl " + n; - }, - noEventsMessage: "Nav notikumu" - }; - - var _m42 = { - code: "mk", - buttonText: { - prev: "претходно", - next: "следно", - today: "Денес", - month: "Месец", - week: "Недела", - day: "Ден", - list: "График" - }, - weekLabel: "Сед", - allDayText: "Цел ден", - eventLimitText: function (n) { - return "+повеќе " + n; - }, - noEventsMessage: "Нема настани за прикажување" - }; - - var _m43 = { - code: "ms", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Sebelum", - next: "Selepas", - today: "hari ini", - month: "Bulan", - week: "Minggu", - day: "Hari", - list: "Agenda" - }, - weekLabel: "Mg", - allDayText: "Sepanjang hari", - eventLimitText: function (n) { - return "masih ada " + n + " acara"; - }, - noEventsMessage: "Tiada peristiwa untuk dipaparkan" - }; - - var _m44 = { - code: "nb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Forrige", - next: "Neste", - today: "I dag", - month: "Måned", - week: "Uke", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Uke", - allDayText: "Hele dagen", - eventLimitText: "til", - noEventsMessage: "Ingen hendelser å vise" - }; - - var _m45 = { - code: "nl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Voorgaand", - next: "Volgende", - today: "Vandaag", - year: "Jaar", - month: "Maand", - week: "Week", - day: "Dag", - list: "Agenda" - }, - allDayText: "Hele dag", - eventLimitText: "extra", - noEventsMessage: "Geen evenementen om te laten zien" - }; - - var _m46 = { - code: "nn", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Førre", - next: "Neste", - today: "I dag", - month: "Månad", - week: "Veke", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Veke", - allDayText: "Heile dagen", - eventLimitText: "til", - noEventsMessage: "Ingen hendelser å vise" - }; - - var _m47 = { - code: "pl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Poprzedni", - next: "Następny", - today: "Dziś", - month: "Miesiąc", - week: "Tydzień", - day: "Dzień", - list: "Plan dnia" - }, - weekLabel: "Tydz", - allDayText: "Cały dzień", - eventLimitText: "więcej", - noEventsMessage: "Brak wydarzeń do wyświetlenia" - }; - - var _m48 = { - code: "pt-br", - buttonText: { - prev: "Anterior", - next: "Próximo", - today: "Hoje", - month: "Mês", - week: "Semana", - day: "Dia", - list: "Compromissos" - }, - weekLabel: "Sm", - allDayText: "dia inteiro", - eventLimitText: function (n) { - return "mais +" + n; - }, - noEventsMessage: "Não há eventos para mostrar" - }; - - var _m49 = { - code: "pt", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Anterior", - next: "Seguinte", - today: "Hoje", - month: "Mês", - week: "Semana", - day: "Dia", - list: "Agenda" - }, - weekLabel: "Sem", - allDayText: "Todo o dia", - eventLimitText: "mais", - noEventsMessage: "Não há eventos para mostrar" - }; - - var _m50 = { - code: "ro", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "precedentă", - next: "următoare", - today: "Azi", - month: "Lună", - week: "Săptămână", - day: "Zi", - list: "Agendă" - }, - weekLabel: "Săpt", - allDayText: "Toată ziua", - eventLimitText: function (n) { - return "+alte " + n; - }, - noEventsMessage: "Nu există evenimente de afișat" - }; - - var _m51 = { - code: "ru", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Пред", - next: "След", - today: "Сегодня", - month: "Месяц", - week: "Неделя", - day: "День", - list: "Повестка дня" - }, - weekLabel: "Нед", - allDayText: "Весь день", - eventLimitText: function (n) { - return "+ ещё " + n; - }, - noEventsMessage: "Нет событий для отображения" - }; - - var _m52 = { - code: "sk", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Predchádzajúci", - next: "Nasledujúci", - today: "Dnes", - month: "Mesiac", - week: "Týždeň", - day: "Deň", - list: "Rozvrh" - }, - weekLabel: "Ty", - allDayText: "Celý deň", - eventLimitText: function (n) { - return "+ďalšie: " + n; - }, - noEventsMessage: "Žiadne akcie na zobrazenie" - }; - - var _m53 = { - code: "sl", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prejšnji", - next: "Naslednji", - today: "Trenutni", - month: "Mesec", - week: "Teden", - day: "Dan", - list: "Dnevni red" - }, - weekLabel: "Teden", - allDayText: "Ves dan", - eventLimitText: "več", - noEventsMessage: "Ni dogodkov za prikaz" - }; - - var _m54 = { - code: "sq", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "mbrapa", - next: "Përpara", - today: "sot", - month: "Muaj", - week: "Javë", - day: "Ditë", - list: "Listë" - }, - weekLabel: "Ja", - allDayHtml: "Gjithë
ditën", - eventLimitText: function (n) { - return "+më tepër " + n; - }, - noEventsMessage: "Nuk ka evente për të shfaqur" - }; - - var _m55 = { - code: "sr-cyrl", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Претходна", - next: "следећи", - today: "Данас", - month: "Месец", - week: "Недеља", - day: "Дан", - list: "Планер" - }, - weekLabel: "Сед", - allDayText: "Цео дан", - eventLimitText: function (n) { - return "+ још " + n; - }, - noEventsMessage: "Нема догађаја за приказ" - }; - - var _m56 = { - code: "sr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prethodna", - next: "Sledeći", - today: "Danas", - month: "Mеsеc", - week: "Nеdеlja", - day: "Dan", - list: "Planеr" - }, - weekLabel: "Sed", - allDayText: "Cеo dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nеma događaja za prikaz" - }; - - var _m57 = { - code: "sv", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Förra", - next: "Nästa", - today: "Idag", - month: "Månad", - week: "Vecka", - day: "Dag", - list: "Program" - }, - weekLabel: "v.", - allDayText: "Heldag", - eventLimitText: "till", - noEventsMessage: "Inga händelser att visa" - }; - - var _m58 = { - code: "th", - buttonText: { - prev: "ย้อน", - next: "ถัดไป", - today: "วันนี้", - month: "เดือน", - week: "สัปดาห์", - day: "วัน", - list: "แผนงาน" - }, - allDayText: "ตลอดวัน", - eventLimitText: "เพิ่มเติม", - noEventsMessage: "ไม่มีกิจกรรมที่จะแสดง" - }; - - var _m59 = { - code: "tr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "geri", - next: "ileri", - today: "bugün", - month: "Ay", - week: "Hafta", - day: "Gün", - list: "Ajanda" - }, - weekLabel: "Hf", - allDayText: "Tüm gün", - eventLimitText: "daha fazla", - noEventsMessage: "Gösterilecek etkinlik yok" - }; - - var _m60 = { - code: "uk", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Попередній", - next: "далі", - today: "Сьогодні", - month: "Місяць", - week: "Тиждень", - day: "День", - list: "Порядок денний" - }, - weekLabel: "Тиж", - allDayText: "Увесь день", - eventLimitText: function (n) { - return "+ще " + n + "..."; - }, - noEventsMessage: "Немає подій для відображення" - }; - - var _m61 = { - code: "vi", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Trước", - next: "Tiếp", - today: "Hôm nay", - month: "Tháng", - week: "Tuần", - day: "Ngày", - list: "Lịch biểu" - }, - weekLabel: "Tu", - allDayText: "Cả ngày", - eventLimitText: function (n) { - return "+ thêm " + n; - }, - noEventsMessage: "Không có sự kiện để hiển thị" - }; - - var _m62 = { - code: "zh-cn", - week: { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "上月", - next: "下月", - today: "今天", - month: "月", - week: "周", - day: "日", - list: "日程" - }, - weekLabel: "周", - allDayText: "全天", - eventLimitText: function (n) { - return "另外 " + n + " 个"; - }, - noEventsMessage: "没有事件显示" - }; - - var _m63 = { - code: "zh-tw", - buttonText: { - prev: "上月", - next: "下月", - today: "今天", - month: "月", - week: "週", - day: "天", - list: "活動列表" - }, - weekLabel: "周", - allDayText: "整天", - eventLimitText: '顯示更多', - noEventsMessage: "没有任何活動" - }; - - var _rollupPluginMultiEntry_entryPoint = [ - _m0, _m1, _m2, _m3, _m4, _m5, _m6, _m7, _m8, _m9, _m10, _m11, _m12, _m13, _m14, _m15, _m16, _m17, _m18, _m19, _m20, _m21, _m22, _m23, _m24, _m25, _m26, _m27, _m28, _m29, _m30, _m31, _m32, _m33, _m34, _m35, _m36, _m37, _m38, _m39, _m40, _m41, _m42, _m43, _m44, _m45, _m46, _m47, _m48, _m49, _m50, _m51, _m52, _m53, _m54, _m55, _m56, _m57, _m58, _m59, _m60, _m61, _m62, _m63 - ]; - - return _rollupPluginMultiEntry_entryPoint; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales-all.min.js b/htdocs/public/high/plugins/fullcalendar/locales-all.min.js deleted file mode 100644 index 810d6dea..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales-all.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).FullCalendarLocalesAll=t()}(this,function(){"use strict";return[{code:"af",week:{dow:1,doy:4},buttonText:{prev:"Vorige",next:"Volgende",today:"Vandag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayHtml:"Heeldag",eventLimitText:"Addisionele",noEventsMessage:"Daar is geen gebeurtenisse nie"},{code:"ar-dz",week:{dow:0,doy:4},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-kw",week:{dow:0,doy:12},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-ly",week:{dow:6,doy:12},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-ma",week:{dow:6,doy:12},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-sa",week:{dow:0,doy:6},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-tn",week:{dow:1,doy:4},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar",week:{dow:6,doy:12},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"bg",week:{dow:1,doy:7},buttonText:{prev:"назад",next:"напред",today:"днес",month:"Месец",week:"Седмица",day:"Ден",list:"График"},allDayText:"Цял ден",eventLimitText:function(e){return"+още "+e},noEventsMessage:"Няма събития за показване"},{code:"bs",week:{dow:1,doy:7},buttonText:{prev:"Prošli",next:"Sljedeći",today:"Danas",month:"Mjesec",week:"Sedmica",day:"Dan",list:"Raspored"},weekLabel:"Sed",allDayText:"Cijeli dan",eventLimitText:function(e){return"+ još "+e},noEventsMessage:"Nema događaja za prikazivanje"},{code:"ca",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Següent",today:"Avui",month:"Mes",week:"Setmana",day:"Dia",list:"Agenda"},weekLabel:"Set",allDayText:"Tot el dia",eventLimitText:"més",noEventsMessage:"No hi ha esdeveniments per mostrar"},{code:"cs",week:{dow:1,doy:4},buttonText:{prev:"Dříve",next:"Později",today:"Nyní",month:"Měsíc",week:"Týden",day:"Den",list:"Agenda"},weekLabel:"Týd",allDayText:"Celý den",eventLimitText:function(e){return"+další: "+e},noEventsMessage:"Žádné akce k zobrazení"},{code:"da",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Næste",today:"I dag",month:"Måned",week:"Uge",day:"Dag",list:"Agenda"},weekLabel:"Uge",allDayText:"Hele dagen",eventLimitText:"flere",noEventsMessage:"Ingen arrangementer at vise"},{code:"de",week:{dow:1,doy:4},buttonText:{prev:"Zurück",next:"Vor",today:"Heute",year:"Jahr",month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},weekLabel:"KW",allDayText:"Ganztägig",eventLimitText:function(e){return"+ weitere "+e},noEventsMessage:"Keine Ereignisse anzuzeigen"},{code:"el",week:{dow:1,doy:4},buttonText:{prev:"Προηγούμενος",next:"Επόμενος",today:"Σήμερα",month:"Μήνας",week:"Εβδομάδα",day:"Ημέρα",list:"Ατζέντα"},weekLabel:"Εβδ",allDayText:"Ολοήμερο",eventLimitText:"περισσότερα",noEventsMessage:"Δεν υπάρχουν γεγονότα για να εμφανιστεί"},{code:"en-au",week:{dow:1,doy:4}},{code:"en-gb",week:{dow:1,doy:4}},{code:"en-nz",week:{dow:1,doy:4}},{code:"es",week:{dow:0,doy:6},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},weekLabel:"Sm",allDayHtml:"Todo
el día",eventLimitText:"más",noEventsMessage:"No hay eventos para mostrar"},{code:"es",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},weekLabel:"Sm",allDayHtml:"Todo
el día",eventLimitText:"más",noEventsMessage:"No hay eventos para mostrar"},{code:"et",week:{dow:1,doy:4},buttonText:{prev:"Eelnev",next:"Järgnev",today:"Täna",month:"Kuu",week:"Nädal",day:"Päev",list:"Päevakord"},weekLabel:"näd",allDayText:"Kogu päev",eventLimitText:function(e){return"+ veel "+e},noEventsMessage:"Kuvamiseks puuduvad sündmused"},{code:"eu",week:{dow:1,doy:7},buttonText:{prev:"Aur",next:"Hur",today:"Gaur",month:"Hilabetea",week:"Astea",day:"Eguna",list:"Agenda"},weekLabel:"As",allDayHtml:"Egun
osoa",eventLimitText:"gehiago",noEventsMessage:"Ez dago ekitaldirik erakusteko"},{code:"fa",week:{dow:6,doy:12},dir:"rtl",buttonText:{prev:"قبلی",next:"بعدی",today:"امروز",month:"ماه",week:"هفته",day:"روز",list:"برنامه"},weekLabel:"هف",allDayText:"تمام روز",eventLimitText:function(e){return"بیش از "+e},noEventsMessage:"هیچ رویدادی به نمایش"},{code:"fi",week:{dow:1,doy:4},buttonText:{prev:"Edellinen",next:"Seuraava",today:"Tänään",month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},weekLabel:"Vk",allDayText:"Koko päivä",eventLimitText:"lisää",noEventsMessage:"Ei näytettäviä tapahtumia"},{code:"fr",buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekLabel:"Sem.",allDayHtml:"Toute la
journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"},{code:"fr-ch",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Courant",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekLabel:"Sm",allDayHtml:"Toute la
journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"},{code:"fr",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekLabel:"Sem.",allDayHtml:"Toute la
journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"},{code:"gl",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Seg",today:"Hoxe",month:"Mes",week:"Semana",day:"Día",list:"Axenda"},weekLabel:"Sm",allDayHtml:"Todo
o día",eventLimitText:"máis",noEventsMessage:"Non hai eventos para amosar"},{code:"he",dir:"rtl",buttonText:{prev:"הקודם",next:"הבא",today:"היום",month:"חודש",week:"שבוע",day:"יום",list:"סדר יום"},allDayText:"כל היום",eventLimitText:"אחר",noEventsMessage:"אין אירועים להצגה",weekLabel:"שבוע"},{code:"hi",week:{dow:0,doy:6},buttonText:{prev:"पिछला",next:"अगला",today:"आज",month:"महीना",week:"सप्ताह",day:"दिन",list:"कार्यसूची"},weekLabel:"हफ्ता",allDayText:"सभी दिन",eventLimitText:function(e){return"+अधिक "+e},noEventsMessage:"कोई घटनाओं को प्रदर्शित करने के लिए"},{code:"hr",week:{dow:1,doy:7},buttonText:{prev:"Prijašnji",next:"Sljedeći",today:"Danas",month:"Mjesec",week:"Tjedan",day:"Dan",list:"Raspored"},weekLabel:"Tje",allDayText:"Cijeli dan",eventLimitText:function(e){return"+ još "+e},noEventsMessage:"Nema događaja za prikaz"},{code:"hu",week:{dow:1,doy:4},buttonText:{prev:"vissza",next:"előre",today:"ma",month:"Hónap",week:"Hét",day:"Nap",list:"Napló"},weekLabel:"Hét",allDayText:"Egész nap",eventLimitText:"további",noEventsMessage:"Nincs megjeleníthető esemény"},{code:"id",week:{dow:1,doy:7},buttonText:{prev:"mundur",next:"maju",today:"hari ini",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekLabel:"Mg",allDayHtml:"Sehari
penuh",eventLimitText:"lebih",noEventsMessage:"Tidak ada acara untuk ditampilkan"},{code:"is",week:{dow:1,doy:4},buttonText:{prev:"Fyrri",next:"Næsti",today:"Í dag",month:"Mánuður",week:"Vika",day:"Dagur",list:"Dagskrá"},weekLabel:"Vika",allDayHtml:"Allan
daginn",eventLimitText:"meira",noEventsMessage:"Engir viðburðir til að sýna"},{code:"it",week:{dow:1,doy:4},buttonText:{prev:"Prec",next:"Succ",today:"Oggi",month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},weekLabel:"Sm",allDayHtml:"Tutto il
giorno",eventLimitText:function(e){return"+altri "+e},noEventsMessage:"Non ci sono eventi da visualizzare"},{code:"ja",buttonText:{prev:"前",next:"次",today:"今日",month:"月",week:"週",day:"日",list:"予定リスト"},weekLabel:"週",allDayText:"終日",eventLimitText:function(e){return"他 "+e+" 件"},noEventsMessage:"表示する予定はありません"},{code:"ka",week:{dow:1,doy:7},buttonText:{prev:"წინა",next:"შემდეგი",today:"დღეს",month:"თვე",week:"კვირა",day:"დღე",list:"დღის წესრიგი"},weekLabel:"კვ",allDayText:"მთელი დღე",eventLimitText:function(e){return"+ კიდევ "+e},noEventsMessage:"ღონისძიებები არ არის"},{code:"kk",week:{dow:1,doy:7},buttonText:{prev:"Алдыңғы",next:"Келесі",today:"Бүгін",month:"Ай",week:"Апта",day:"Күн",list:"Күн тәртібі"},weekLabel:"Не",allDayText:"Күні бойы",eventLimitText:function(e){return"+ тағы "+e},noEventsMessage:"Көрсету үшін оқиғалар жоқ"},{code:"ko",buttonText:{prev:"이전달",next:"다음달",today:"오늘",month:"월",week:"주",day:"일",list:"일정목록"},weekLabel:"주",allDayText:"종일",eventLimitText:"개",noEventsMessage:"일정이 없습니다"},{code:"lb",week:{dow:1,doy:4},buttonText:{prev:"Zréck",next:"Weider",today:"Haut",month:"Mount",week:"Woch",day:"Dag",list:"Terminiwwersiicht"},weekLabel:"W",allDayText:"Ganzen Dag",eventLimitText:"méi",noEventsMessage:"Nee Evenementer ze affichéieren"},{code:"lt",week:{dow:1,doy:4},buttonText:{prev:"Atgal",next:"Pirmyn",today:"Šiandien",month:"Mėnuo",week:"Savaitė",day:"Diena",list:"Darbotvarkė"},weekLabel:"SAV",allDayText:"Visą dieną",eventLimitText:"daugiau",noEventsMessage:"Nėra įvykių rodyti"},{code:"lv",week:{dow:1,doy:4},buttonText:{prev:"Iepr.",next:"Nāk.",today:"Šodien",month:"Mēnesis",week:"Nedēļa",day:"Diena",list:"Dienas kārtība"},weekLabel:"Ned.",allDayText:"Visu dienu",eventLimitText:function(e){return"+vēl "+e},noEventsMessage:"Nav notikumu"},{code:"mk",buttonText:{prev:"претходно",next:"следно",today:"Денес",month:"Месец",week:"Недела",day:"Ден",list:"График"},weekLabel:"Сед",allDayText:"Цел ден",eventLimitText:function(e){return"+повеќе "+e},noEventsMessage:"Нема настани за прикажување"},{code:"ms",week:{dow:1,doy:7},buttonText:{prev:"Sebelum",next:"Selepas",today:"hari ini",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekLabel:"Mg",allDayText:"Sepanjang hari",eventLimitText:function(e){return"masih ada "+e+" acara"},noEventsMessage:"Tiada peristiwa untuk dipaparkan"},{code:"nb",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Neste",today:"I dag",month:"Måned",week:"Uke",day:"Dag",list:"Agenda"},weekLabel:"Uke",allDayText:"Hele dagen",eventLimitText:"til",noEventsMessage:"Ingen hendelser å vise"},{code:"nl",week:{dow:1,doy:4},buttonText:{prev:"Voorgaand",next:"Volgende",today:"Vandaag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag",eventLimitText:"extra",noEventsMessage:"Geen evenementen om te laten zien"},{code:"nn",week:{dow:1,doy:4},buttonText:{prev:"Førre",next:"Neste",today:"I dag",month:"Månad",week:"Veke",day:"Dag",list:"Agenda"},weekLabel:"Veke",allDayText:"Heile dagen",eventLimitText:"til",noEventsMessage:"Ingen hendelser å vise"},{code:"pl",week:{dow:1,doy:4},buttonText:{prev:"Poprzedni",next:"Następny",today:"Dziś",month:"Miesiąc",week:"Tydzień",day:"Dzień",list:"Plan dnia"},weekLabel:"Tydz",allDayText:"Cały dzień",eventLimitText:"więcej",noEventsMessage:"Brak wydarzeń do wyświetlenia"},{code:"pt-br",buttonText:{prev:"Anterior",next:"Próximo",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Compromissos"},weekLabel:"Sm",allDayText:"dia inteiro",eventLimitText:function(e){return"mais +"+e},noEventsMessage:"Não há eventos para mostrar"},{code:"pt",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Seguinte",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},weekLabel:"Sem",allDayText:"Todo o dia",eventLimitText:"mais",noEventsMessage:"Não há eventos para mostrar"},{code:"ro",week:{dow:1,doy:7},buttonText:{prev:"precedentă",next:"următoare",today:"Azi",month:"Lună",week:"Săptămână",day:"Zi",list:"Agendă"},weekLabel:"Săpt",allDayText:"Toată ziua",eventLimitText:function(e){return"+alte "+e},noEventsMessage:"Nu există evenimente de afișat"},{code:"ru",week:{dow:1,doy:4},buttonText:{prev:"Пред",next:"След",today:"Сегодня",month:"Месяц",week:"Неделя",day:"День",list:"Повестка дня"},weekLabel:"Нед",allDayText:"Весь день",eventLimitText:function(e){return"+ ещё "+e},noEventsMessage:"Нет событий для отображения"},{code:"sk",week:{dow:1,doy:4},buttonText:{prev:"Predchádzajúci",next:"Nasledujúci",today:"Dnes",month:"Mesiac",week:"Týždeň",day:"Deň",list:"Rozvrh"},weekLabel:"Ty",allDayText:"Celý deň",eventLimitText:function(e){return"+ďalšie: "+e},noEventsMessage:"Žiadne akcie na zobrazenie"},{code:"sl",week:{dow:1,doy:7},buttonText:{prev:"Prejšnji",next:"Naslednji",today:"Trenutni",month:"Mesec",week:"Teden",day:"Dan",list:"Dnevni red"},weekLabel:"Teden",allDayText:"Ves dan",eventLimitText:"več",noEventsMessage:"Ni dogodkov za prikaz"},{code:"sq",week:{dow:1,doy:4},buttonText:{prev:"mbrapa",next:"Përpara",today:"sot",month:"Muaj",week:"Javë",day:"Ditë",list:"Listë"},weekLabel:"Ja",allDayHtml:"Gjithë
ditën",eventLimitText:function(e){return"+më tepër "+e},noEventsMessage:"Nuk ka evente për të shfaqur"},{code:"sr-cyrl",week:{dow:1,doy:7},buttonText:{prev:"Претходна",next:"следећи",today:"Данас",month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},weekLabel:"Сед",allDayText:"Цео дан",eventLimitText:function(e){return"+ још "+e},noEventsMessage:"Нема догађаја за приказ"},{code:"sr",week:{dow:1,doy:7},buttonText:{prev:"Prethodna",next:"Sledeći",today:"Danas",month:"Mеsеc",week:"Nеdеlja",day:"Dan",list:"Planеr"},weekLabel:"Sed",allDayText:"Cеo dan",eventLimitText:function(e){return"+ još "+e},noEventsMessage:"Nеma događaja za prikaz"},{code:"sv",week:{dow:1,doy:4},buttonText:{prev:"Förra",next:"Nästa",today:"Idag",month:"Månad",week:"Vecka",day:"Dag",list:"Program"},weekLabel:"v.",allDayText:"Heldag",eventLimitText:"till",noEventsMessage:"Inga händelser att visa"},{code:"th",buttonText:{prev:"ย้อน",next:"ถัดไป",today:"วันนี้",month:"เดือน",week:"สัปดาห์",day:"วัน",list:"แผนงาน"},allDayText:"ตลอดวัน",eventLimitText:"เพิ่มเติม",noEventsMessage:"ไม่มีกิจกรรมที่จะแสดง"},{code:"tr",week:{dow:1,doy:7},buttonText:{prev:"geri",next:"ileri",today:"bugün",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},weekLabel:"Hf",allDayText:"Tüm gün",eventLimitText:"daha fazla",noEventsMessage:"Gösterilecek etkinlik yok"},{code:"uk",week:{dow:1,doy:7},buttonText:{prev:"Попередній",next:"далі",today:"Сьогодні",month:"Місяць",week:"Тиждень",day:"День",list:"Порядок денний"},weekLabel:"Тиж",allDayText:"Увесь день",eventLimitText:function(e){return"+ще "+e+"..."},noEventsMessage:"Немає подій для відображення"},{code:"vi",week:{dow:1,doy:4},buttonText:{prev:"Trước",next:"Tiếp",today:"Hôm nay",month:"Tháng",week:"Tuần",day:"Ngày",list:"Lịch biểu"},weekLabel:"Tu",allDayText:"Cả ngày",eventLimitText:function(e){return"+ thêm "+e},noEventsMessage:"Không có sự kiện để hiển thị"},{code:"zh-cn",week:{dow:1,doy:4},buttonText:{prev:"上月",next:"下月",today:"今天",month:"月",week:"周",day:"日",list:"日程"},weekLabel:"周",allDayText:"全天",eventLimitText:function(e){return"另外 "+e+" 个"},noEventsMessage:"没有事件显示"},{code:"zh-tw",buttonText:{prev:"上月",next:"下月",today:"今天",month:"月",week:"週",day:"天",list:"活動列表"},weekLabel:"周",allDayText:"整天",eventLimitText:"顯示更多",noEventsMessage:"没有任何活動"}]}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/fullcalendar/locales/af.js b/htdocs/public/high/plugins/fullcalendar/locales/af.js deleted file mode 100644 index ee9f9f74..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/af.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.af = factory())); -}(this, function () { 'use strict'; - - var af = { - code: "af", - week: { - dow: 1, - doy: 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar. - }, - buttonText: { - prev: "Vorige", - next: "Volgende", - today: "Vandag", - year: "Jaar", - month: "Maand", - week: "Week", - day: "Dag", - list: "Agenda" - }, - allDayHtml: "Heeldag", - eventLimitText: "Addisionele", - noEventsMessage: "Daar is geen gebeurtenisse nie" - }; - - return af; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ar-dz.js b/htdocs/public/high/plugins/fullcalendar/locales/ar-dz.js deleted file mode 100644 index 201eb171..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ar-dz.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-dz'] = factory())); -}(this, function () { 'use strict'; - - var arDz = { - code: "ar-dz", - week: { - dow: 0, - doy: 4 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arDz; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ar-kw.js b/htdocs/public/high/plugins/fullcalendar/locales/ar-kw.js deleted file mode 100644 index 94c69001..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ar-kw.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-kw'] = factory())); -}(this, function () { 'use strict'; - - var arKw = { - code: "ar-kw", - week: { - dow: 0, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arKw; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ar-ly.js b/htdocs/public/high/plugins/fullcalendar/locales/ar-ly.js deleted file mode 100644 index e1c8aeb0..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ar-ly.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-ly'] = factory())); -}(this, function () { 'use strict'; - - var arLy = { - code: "ar-ly", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arLy; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ar-ma.js b/htdocs/public/high/plugins/fullcalendar/locales/ar-ma.js deleted file mode 100644 index 00cc7c67..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ar-ma.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-ma'] = factory())); -}(this, function () { 'use strict'; - - var arMa = { - code: "ar-ma", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arMa; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ar-sa.js b/htdocs/public/high/plugins/fullcalendar/locales/ar-sa.js deleted file mode 100644 index 0361f6d8..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ar-sa.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-sa'] = factory())); -}(this, function () { 'use strict'; - - var arSa = { - code: "ar-sa", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arSa; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ar-tn.js b/htdocs/public/high/plugins/fullcalendar/locales/ar-tn.js deleted file mode 100644 index 57a07f8f..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ar-tn.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-tn'] = factory())); -}(this, function () { 'use strict'; - - var arTn = { - code: "ar-tn", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arTn; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ar.js b/htdocs/public/high/plugins/fullcalendar/locales/ar.js deleted file mode 100644 index f789afd1..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ar.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ar = factory())); -}(this, function () { 'use strict'; - - var ar = { - code: "ar", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return ar; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/bg.js b/htdocs/public/high/plugins/fullcalendar/locales/bg.js deleted file mode 100644 index e7343a6c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/bg.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.bg = factory())); -}(this, function () { 'use strict'; - - var bg = { - code: "bg", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "назад", - next: "напред", - today: "днес", - month: "Месец", - week: "Седмица", - day: "Ден", - list: "График" - }, - allDayText: "Цял ден", - eventLimitText: function (n) { - return "+още " + n; - }, - noEventsMessage: "Няма събития за показване" - }; - - return bg; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/bs.js b/htdocs/public/high/plugins/fullcalendar/locales/bs.js deleted file mode 100644 index d96b8adb..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/bs.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.bs = factory())); -}(this, function () { 'use strict'; - - var bs = { - code: "bs", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prošli", - next: "Sljedeći", - today: "Danas", - month: "Mjesec", - week: "Sedmica", - day: "Dan", - list: "Raspored" - }, - weekLabel: "Sed", - allDayText: "Cijeli dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nema događaja za prikazivanje" - }; - - return bs; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ca.js b/htdocs/public/high/plugins/fullcalendar/locales/ca.js deleted file mode 100644 index d2d3e2aa..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ca.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ca = factory())); -}(this, function () { 'use strict'; - - var ca = { - code: "ca", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Anterior", - next: "Següent", - today: "Avui", - month: "Mes", - week: "Setmana", - day: "Dia", - list: "Agenda" - }, - weekLabel: "Set", - allDayText: "Tot el dia", - eventLimitText: "més", - noEventsMessage: "No hi ha esdeveniments per mostrar" - }; - - return ca; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/cs.js b/htdocs/public/high/plugins/fullcalendar/locales/cs.js deleted file mode 100644 index 2624e360..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/cs.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.cs = factory())); -}(this, function () { 'use strict'; - - var cs = { - code: "cs", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Dříve", - next: "Později", - today: "Nyní", - month: "Měsíc", - week: "Týden", - day: "Den", - list: "Agenda" - }, - weekLabel: "Týd", - allDayText: "Celý den", - eventLimitText: function (n) { - return "+další: " + n; - }, - noEventsMessage: "Žádné akce k zobrazení" - }; - - return cs; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/da.js b/htdocs/public/high/plugins/fullcalendar/locales/da.js deleted file mode 100644 index 73d15592..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/da.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.da = factory())); -}(this, function () { 'use strict'; - - var da = { - code: "da", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Forrige", - next: "Næste", - today: "I dag", - month: "Måned", - week: "Uge", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Uge", - allDayText: "Hele dagen", - eventLimitText: "flere", - noEventsMessage: "Ingen arrangementer at vise" - }; - - return da; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/de.js b/htdocs/public/high/plugins/fullcalendar/locales/de.js deleted file mode 100644 index ab5a815a..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/de.js +++ /dev/null @@ -1,33 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.de = factory())); -}(this, function () { 'use strict'; - - var de = { - code: "de", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Zurück", - next: "Vor", - today: "Heute", - year: "Jahr", - month: "Monat", - week: "Woche", - day: "Tag", - list: "Terminübersicht" - }, - weekLabel: "KW", - allDayText: "Ganztägig", - eventLimitText: function (n) { - return "+ weitere " + n; - }, - noEventsMessage: "Keine Ereignisse anzuzeigen" - }; - - return de; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/el.js b/htdocs/public/high/plugins/fullcalendar/locales/el.js deleted file mode 100644 index 9f59e365..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/el.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.el = factory())); -}(this, function () { 'use strict'; - - var el = { - code: "el", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4st is the first week of the year. - }, - buttonText: { - prev: "Προηγούμενος", - next: "Επόμενος", - today: "Σήμερα", - month: "Μήνας", - week: "Εβδομάδα", - day: "Ημέρα", - list: "Ατζέντα" - }, - weekLabel: "Εβδ", - allDayText: "Ολοήμερο", - eventLimitText: "περισσότερα", - noEventsMessage: "Δεν υπάρχουν γεγονότα για να εμφανιστεί" - }; - - return el; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/en-au.js b/htdocs/public/high/plugins/fullcalendar/locales/en-au.js deleted file mode 100644 index be10bfb6..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/en-au.js +++ /dev/null @@ -1,17 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-au'] = factory())); -}(this, function () { 'use strict'; - - var enAu = { - code: "en-au", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - } - }; - - return enAu; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/en-gb.js b/htdocs/public/high/plugins/fullcalendar/locales/en-gb.js deleted file mode 100644 index 8a4a84e6..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/en-gb.js +++ /dev/null @@ -1,17 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-gb'] = factory())); -}(this, function () { 'use strict'; - - var enGb = { - code: "en-gb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - } - }; - - return enGb; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/en-nz.js b/htdocs/public/high/plugins/fullcalendar/locales/en-nz.js deleted file mode 100644 index df56c145..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/en-nz.js +++ /dev/null @@ -1,17 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-nz'] = factory())); -}(this, function () { 'use strict'; - - var enNz = { - code: "en-nz", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - } - }; - - return enNz; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/es-us.js b/htdocs/public/high/plugins/fullcalendar/locales/es-us.js deleted file mode 100644 index 1efa89a4..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/es-us.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['es-us'] = factory())); -}(this, function () { 'use strict'; - - var esUs = { - code: "es", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Sig", - today: "Hoy", - month: "Mes", - week: "Semana", - day: "Día", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
el día", - eventLimitText: "más", - noEventsMessage: "No hay eventos para mostrar" - }; - - return esUs; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/es.js b/htdocs/public/high/plugins/fullcalendar/locales/es.js deleted file mode 100644 index bfd9af4c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/es.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.es = factory())); -}(this, function () { 'use strict'; - - var es = { - code: "es", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Sig", - today: "Hoy", - month: "Mes", - week: "Semana", - day: "Día", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
el día", - eventLimitText: "más", - noEventsMessage: "No hay eventos para mostrar" - }; - - return es; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/et.js b/htdocs/public/high/plugins/fullcalendar/locales/et.js deleted file mode 100644 index c44fcaec..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/et.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.et = factory())); -}(this, function () { 'use strict'; - - var et = { - code: "et", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Eelnev", - next: "Järgnev", - today: "Täna", - month: "Kuu", - week: "Nädal", - day: "Päev", - list: "Päevakord" - }, - weekLabel: "näd", - allDayText: "Kogu päev", - eventLimitText: function (n) { - return "+ veel " + n; - }, - noEventsMessage: "Kuvamiseks puuduvad sündmused" - }; - - return et; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/eu.js b/htdocs/public/high/plugins/fullcalendar/locales/eu.js deleted file mode 100644 index 91903aaa..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/eu.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.eu = factory())); -}(this, function () { 'use strict'; - - var eu = { - code: "eu", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Aur", - next: "Hur", - today: "Gaur", - month: "Hilabetea", - week: "Astea", - day: "Eguna", - list: "Agenda" - }, - weekLabel: "As", - allDayHtml: "Egun
osoa", - eventLimitText: "gehiago", - noEventsMessage: "Ez dago ekitaldirik erakusteko" - }; - - return eu; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/fa.js b/htdocs/public/high/plugins/fullcalendar/locales/fa.js deleted file mode 100644 index 031fc7b3..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/fa.js +++ /dev/null @@ -1,33 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.fa = factory())); -}(this, function () { 'use strict'; - - var fa = { - code: "fa", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "قبلی", - next: "بعدی", - today: "امروز", - month: "ماه", - week: "هفته", - day: "روز", - list: "برنامه" - }, - weekLabel: "هف", - allDayText: "تمام روز", - eventLimitText: function (n) { - return "بیش از " + n; - }, - noEventsMessage: "هیچ رویدادی به نمایش" - }; - - return fa; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/fi.js b/htdocs/public/high/plugins/fullcalendar/locales/fi.js deleted file mode 100644 index 3912845c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/fi.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.fi = factory())); -}(this, function () { 'use strict'; - - var fi = { - code: "fi", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Edellinen", - next: "Seuraava", - today: "Tänään", - month: "Kuukausi", - week: "Viikko", - day: "Päivä", - list: "Tapahtumat" - }, - weekLabel: "Vk", - allDayText: "Koko päivä", - eventLimitText: "lisää", - noEventsMessage: "Ei näytettäviä tapahtumia" - }; - - return fi; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/fr-ca.js b/htdocs/public/high/plugins/fullcalendar/locales/fr-ca.js deleted file mode 100644 index d554c140..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/fr-ca.js +++ /dev/null @@ -1,27 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['fr-ca'] = factory())); -}(this, function () { 'use strict'; - - var frCa = { - code: "fr", - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Aujourd'hui", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sem.", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - return frCa; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/fr-ch.js b/htdocs/public/high/plugins/fullcalendar/locales/fr-ch.js deleted file mode 100644 index 358b8bf3..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/fr-ch.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['fr-ch'] = factory())); -}(this, function () { 'use strict'; - - var frCh = { - code: "fr-ch", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Courant", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sm", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - return frCh; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/fr.js b/htdocs/public/high/plugins/fullcalendar/locales/fr.js deleted file mode 100644 index b679ceff..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/fr.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.fr = factory())); -}(this, function () { 'use strict'; - - var fr = { - code: "fr", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Aujourd'hui", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sem.", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - return fr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/gl.js b/htdocs/public/high/plugins/fullcalendar/locales/gl.js deleted file mode 100644 index 721a6a89..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/gl.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.gl = factory())); -}(this, function () { 'use strict'; - - var gl = { - code: "gl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Seg", - today: "Hoxe", - month: "Mes", - week: "Semana", - day: "Día", - list: "Axenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
o día", - eventLimitText: "máis", - noEventsMessage: "Non hai eventos para amosar" - }; - - return gl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/he.js b/htdocs/public/high/plugins/fullcalendar/locales/he.js deleted file mode 100644 index 3521d9e3..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/he.js +++ /dev/null @@ -1,27 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.he = factory())); -}(this, function () { 'use strict'; - - var he = { - code: "he", - dir: 'rtl', - buttonText: { - prev: "הקודם", - next: "הבא", - today: "היום", - month: "חודש", - week: "שבוע", - day: "יום", - list: "סדר יום" - }, - allDayText: "כל היום", - eventLimitText: "אחר", - noEventsMessage: "אין אירועים להצגה", - weekLabel: "שבוע" - }; - - return he; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/hi.js b/htdocs/public/high/plugins/fullcalendar/locales/hi.js deleted file mode 100644 index 15348e69..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/hi.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hi = factory())); -}(this, function () { 'use strict'; - - var hi = { - code: "hi", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "पिछला", - next: "अगला", - today: "आज", - month: "महीना", - week: "सप्ताह", - day: "दिन", - list: "कार्यसूची" - }, - weekLabel: "हफ्ता", - allDayText: "सभी दिन", - eventLimitText: function (n) { - return "+अधिक " + n; - }, - noEventsMessage: "कोई घटनाओं को प्रदर्शित करने के लिए" - }; - - return hi; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/hr.js b/htdocs/public/high/plugins/fullcalendar/locales/hr.js deleted file mode 100644 index 295b4856..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/hr.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hr = factory())); -}(this, function () { 'use strict'; - - var hr = { - code: "hr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prijašnji", - next: "Sljedeći", - today: "Danas", - month: "Mjesec", - week: "Tjedan", - day: "Dan", - list: "Raspored" - }, - weekLabel: "Tje", - allDayText: "Cijeli dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nema događaja za prikaz" - }; - - return hr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/hu.js b/htdocs/public/high/plugins/fullcalendar/locales/hu.js deleted file mode 100644 index 2f0fe8ac..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/hu.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hu = factory())); -}(this, function () { 'use strict'; - - var hu = { - code: "hu", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "vissza", - next: "előre", - today: "ma", - month: "Hónap", - week: "Hét", - day: "Nap", - list: "Napló" - }, - weekLabel: "Hét", - allDayText: "Egész nap", - eventLimitText: "további", - noEventsMessage: "Nincs megjeleníthető esemény" - }; - - return hu; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/id.js b/htdocs/public/high/plugins/fullcalendar/locales/id.js deleted file mode 100644 index b742e80d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/id.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.id = factory())); -}(this, function () { 'use strict'; - - var id = { - code: "id", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "mundur", - next: "maju", - today: "hari ini", - month: "Bulan", - week: "Minggu", - day: "Hari", - list: "Agenda" - }, - weekLabel: "Mg", - allDayHtml: "Sehari
penuh", - eventLimitText: "lebih", - noEventsMessage: "Tidak ada acara untuk ditampilkan" - }; - - return id; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/is.js b/htdocs/public/high/plugins/fullcalendar/locales/is.js deleted file mode 100644 index dd569bce..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/is.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.is = factory())); -}(this, function () { 'use strict'; - - var is = { - code: "is", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Fyrri", - next: "Næsti", - today: "Í dag", - month: "Mánuður", - week: "Vika", - day: "Dagur", - list: "Dagskrá" - }, - weekLabel: "Vika", - allDayHtml: "Allan
daginn", - eventLimitText: "meira", - noEventsMessage: "Engir viðburðir til að sýna" - }; - - return is; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/it.js b/htdocs/public/high/plugins/fullcalendar/locales/it.js deleted file mode 100644 index 39a2829e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/it.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.it = factory())); -}(this, function () { 'use strict'; - - var it = { - code: "it", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Prec", - next: "Succ", - today: "Oggi", - month: "Mese", - week: "Settimana", - day: "Giorno", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Tutto il
giorno", - eventLimitText: function (n) { - return "+altri " + n; - }, - noEventsMessage: "Non ci sono eventi da visualizzare" - }; - - return it; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ja.js b/htdocs/public/high/plugins/fullcalendar/locales/ja.js deleted file mode 100644 index eb4245b2..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ja.js +++ /dev/null @@ -1,28 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ja = factory())); -}(this, function () { 'use strict'; - - var ja = { - code: "ja", - buttonText: { - prev: "前", - next: "次", - today: "今日", - month: "月", - week: "週", - day: "日", - list: "予定リスト" - }, - weekLabel: "週", - allDayText: "終日", - eventLimitText: function (n) { - return "他 " + n + " 件"; - }, - noEventsMessage: "表示する予定はありません" - }; - - return ja; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ka.js b/htdocs/public/high/plugins/fullcalendar/locales/ka.js deleted file mode 100644 index b971c033..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ka.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ka = factory())); -}(this, function () { 'use strict'; - - var ka = { - code: "ka", - week: { - dow: 1, - doy: 7 - }, - buttonText: { - prev: "წინა", - next: "შემდეგი", - today: "დღეს", - month: "თვე", - week: "კვირა", - day: "დღე", - list: "დღის წესრიგი" - }, - weekLabel: "კვ", - allDayText: "მთელი დღე", - eventLimitText: function (n) { - return "+ კიდევ " + n; - }, - noEventsMessage: "ღონისძიებები არ არის" - }; - - return ka; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/kk.js b/htdocs/public/high/plugins/fullcalendar/locales/kk.js deleted file mode 100644 index 5b19b99d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/kk.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.kk = factory())); -}(this, function () { 'use strict'; - - var kk = { - code: "kk", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Алдыңғы", - next: "Келесі", - today: "Бүгін", - month: "Ай", - week: "Апта", - day: "Күн", - list: "Күн тәртібі" - }, - weekLabel: "Не", - allDayText: "Күні бойы", - eventLimitText: function (n) { - return "+ тағы " + n; - }, - noEventsMessage: "Көрсету үшін оқиғалар жоқ" - }; - - return kk; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ko.js b/htdocs/public/high/plugins/fullcalendar/locales/ko.js deleted file mode 100644 index ffe985d6..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ko.js +++ /dev/null @@ -1,26 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ko = factory())); -}(this, function () { 'use strict'; - - var ko = { - code: "ko", - buttonText: { - prev: "이전달", - next: "다음달", - today: "오늘", - month: "월", - week: "주", - day: "일", - list: "일정목록" - }, - weekLabel: "주", - allDayText: "종일", - eventLimitText: "개", - noEventsMessage: "일정이 없습니다" - }; - - return ko; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/lb.js b/htdocs/public/high/plugins/fullcalendar/locales/lb.js deleted file mode 100644 index b9b17e3e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/lb.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.lb = factory())); -}(this, function () { 'use strict'; - - var lb = { - code: "lb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Zréck", - next: "Weider", - today: "Haut", - month: "Mount", - week: "Woch", - day: "Dag", - list: "Terminiwwersiicht" - }, - weekLabel: "W", - allDayText: "Ganzen Dag", - eventLimitText: "méi", - noEventsMessage: "Nee Evenementer ze affichéieren" - }; - - return lb; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/lt.js b/htdocs/public/high/plugins/fullcalendar/locales/lt.js deleted file mode 100644 index ec641b75..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/lt.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.lt = factory())); -}(this, function () { 'use strict'; - - var lt = { - code: "lt", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Atgal", - next: "Pirmyn", - today: "Šiandien", - month: "Mėnuo", - week: "Savaitė", - day: "Diena", - list: "Darbotvarkė" - }, - weekLabel: "SAV", - allDayText: "Visą dieną", - eventLimitText: "daugiau", - noEventsMessage: "Nėra įvykių rodyti" - }; - - return lt; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/lv.js b/htdocs/public/high/plugins/fullcalendar/locales/lv.js deleted file mode 100644 index 5453630d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/lv.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.lv = factory())); -}(this, function () { 'use strict'; - - var lv = { - code: "lv", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Iepr.", - next: "Nāk.", - today: "Šodien", - month: "Mēnesis", - week: "Nedēļa", - day: "Diena", - list: "Dienas kārtība" - }, - weekLabel: "Ned.", - allDayText: "Visu dienu", - eventLimitText: function (n) { - return "+vēl " + n; - }, - noEventsMessage: "Nav notikumu" - }; - - return lv; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/mk.js b/htdocs/public/high/plugins/fullcalendar/locales/mk.js deleted file mode 100644 index 6729fa63..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/mk.js +++ /dev/null @@ -1,28 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.mk = factory())); -}(this, function () { 'use strict'; - - var mk = { - code: "mk", - buttonText: { - prev: "претходно", - next: "следно", - today: "Денес", - month: "Месец", - week: "Недела", - day: "Ден", - list: "График" - }, - weekLabel: "Сед", - allDayText: "Цел ден", - eventLimitText: function (n) { - return "+повеќе " + n; - }, - noEventsMessage: "Нема настани за прикажување" - }; - - return mk; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ms.js b/htdocs/public/high/plugins/fullcalendar/locales/ms.js deleted file mode 100644 index 7205ecc7..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ms.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ms = factory())); -}(this, function () { 'use strict'; - - var ms = { - code: "ms", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Sebelum", - next: "Selepas", - today: "hari ini", - month: "Bulan", - week: "Minggu", - day: "Hari", - list: "Agenda" - }, - weekLabel: "Mg", - allDayText: "Sepanjang hari", - eventLimitText: function (n) { - return "masih ada " + n + " acara"; - }, - noEventsMessage: "Tiada peristiwa untuk dipaparkan" - }; - - return ms; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/nb.js b/htdocs/public/high/plugins/fullcalendar/locales/nb.js deleted file mode 100644 index 6464461c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/nb.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.nb = factory())); -}(this, function () { 'use strict'; - - var nb = { - code: "nb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Forrige", - next: "Neste", - today: "I dag", - month: "Måned", - week: "Uke", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Uke", - allDayText: "Hele dagen", - eventLimitText: "til", - noEventsMessage: "Ingen hendelser å vise" - }; - - return nb; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/nl.js b/htdocs/public/high/plugins/fullcalendar/locales/nl.js deleted file mode 100644 index c91b5e55..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/nl.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.nl = factory())); -}(this, function () { 'use strict'; - - var nl = { - code: "nl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Voorgaand", - next: "Volgende", - today: "Vandaag", - year: "Jaar", - month: "Maand", - week: "Week", - day: "Dag", - list: "Agenda" - }, - allDayText: "Hele dag", - eventLimitText: "extra", - noEventsMessage: "Geen evenementen om te laten zien" - }; - - return nl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/nn.js b/htdocs/public/high/plugins/fullcalendar/locales/nn.js deleted file mode 100644 index a5cdd162..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/nn.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.nn = factory())); -}(this, function () { 'use strict'; - - var nn = { - code: "nn", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Førre", - next: "Neste", - today: "I dag", - month: "Månad", - week: "Veke", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Veke", - allDayText: "Heile dagen", - eventLimitText: "til", - noEventsMessage: "Ingen hendelser å vise" - }; - - return nn; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/pl.js b/htdocs/public/high/plugins/fullcalendar/locales/pl.js deleted file mode 100644 index 0a22e69c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/pl.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.pl = factory())); -}(this, function () { 'use strict'; - - var pl = { - code: "pl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Poprzedni", - next: "Następny", - today: "Dziś", - month: "Miesiąc", - week: "Tydzień", - day: "Dzień", - list: "Plan dnia" - }, - weekLabel: "Tydz", - allDayText: "Cały dzień", - eventLimitText: "więcej", - noEventsMessage: "Brak wydarzeń do wyświetlenia" - }; - - return pl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/pt-br.js b/htdocs/public/high/plugins/fullcalendar/locales/pt-br.js deleted file mode 100644 index 0133cd6b..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/pt-br.js +++ /dev/null @@ -1,28 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['pt-br'] = factory())); -}(this, function () { 'use strict'; - - var ptBr = { - code: "pt-br", - buttonText: { - prev: "Anterior", - next: "Próximo", - today: "Hoje", - month: "Mês", - week: "Semana", - day: "Dia", - list: "Compromissos" - }, - weekLabel: "Sm", - allDayText: "dia inteiro", - eventLimitText: function (n) { - return "mais +" + n; - }, - noEventsMessage: "Não há eventos para mostrar" - }; - - return ptBr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/pt.js b/htdocs/public/high/plugins/fullcalendar/locales/pt.js deleted file mode 100644 index 5c54d8d4..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/pt.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.pt = factory())); -}(this, function () { 'use strict'; - - var pt = { - code: "pt", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Anterior", - next: "Seguinte", - today: "Hoje", - month: "Mês", - week: "Semana", - day: "Dia", - list: "Agenda" - }, - weekLabel: "Sem", - allDayText: "Todo o dia", - eventLimitText: "mais", - noEventsMessage: "Não há eventos para mostrar" - }; - - return pt; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ro.js b/htdocs/public/high/plugins/fullcalendar/locales/ro.js deleted file mode 100644 index e8992f27..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ro.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ro = factory())); -}(this, function () { 'use strict'; - - var ro = { - code: "ro", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "precedentă", - next: "următoare", - today: "Azi", - month: "Lună", - week: "Săptămână", - day: "Zi", - list: "Agendă" - }, - weekLabel: "Săpt", - allDayText: "Toată ziua", - eventLimitText: function (n) { - return "+alte " + n; - }, - noEventsMessage: "Nu există evenimente de afișat" - }; - - return ro; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ru.js b/htdocs/public/high/plugins/fullcalendar/locales/ru.js deleted file mode 100644 index 77e0308e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ru.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ru = factory())); -}(this, function () { 'use strict'; - - var ru = { - code: "ru", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Пред", - next: "След", - today: "Сегодня", - month: "Месяц", - week: "Неделя", - day: "День", - list: "Повестка дня" - }, - weekLabel: "Нед", - allDayText: "Весь день", - eventLimitText: function (n) { - return "+ ещё " + n; - }, - noEventsMessage: "Нет событий для отображения" - }; - - return ru; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/sk.js b/htdocs/public/high/plugins/fullcalendar/locales/sk.js deleted file mode 100644 index 3513a64a..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/sk.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sk = factory())); -}(this, function () { 'use strict'; - - var sk = { - code: "sk", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Predchádzajúci", - next: "Nasledujúci", - today: "Dnes", - month: "Mesiac", - week: "Týždeň", - day: "Deň", - list: "Rozvrh" - }, - weekLabel: "Ty", - allDayText: "Celý deň", - eventLimitText: function (n) { - return "+ďalšie: " + n; - }, - noEventsMessage: "Žiadne akcie na zobrazenie" - }; - - return sk; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/sl.js b/htdocs/public/high/plugins/fullcalendar/locales/sl.js deleted file mode 100644 index 32335535..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/sl.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sl = factory())); -}(this, function () { 'use strict'; - - var sl = { - code: "sl", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prejšnji", - next: "Naslednji", - today: "Trenutni", - month: "Mesec", - week: "Teden", - day: "Dan", - list: "Dnevni red" - }, - weekLabel: "Teden", - allDayText: "Ves dan", - eventLimitText: "več", - noEventsMessage: "Ni dogodkov za prikaz" - }; - - return sl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/sq.js b/htdocs/public/high/plugins/fullcalendar/locales/sq.js deleted file mode 100644 index 0d43a522..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/sq.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sq = factory())); -}(this, function () { 'use strict'; - - var sq = { - code: "sq", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "mbrapa", - next: "Përpara", - today: "sot", - month: "Muaj", - week: "Javë", - day: "Ditë", - list: "Listë" - }, - weekLabel: "Ja", - allDayHtml: "Gjithë
ditën", - eventLimitText: function (n) { - return "+më tepër " + n; - }, - noEventsMessage: "Nuk ka evente për të shfaqur" - }; - - return sq; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/sr-cyrl.js b/htdocs/public/high/plugins/fullcalendar/locales/sr-cyrl.js deleted file mode 100644 index ba0d0dfa..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/sr-cyrl.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['sr-cyrl'] = factory())); -}(this, function () { 'use strict'; - - var srCyrl = { - code: "sr-cyrl", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Претходна", - next: "следећи", - today: "Данас", - month: "Месец", - week: "Недеља", - day: "Дан", - list: "Планер" - }, - weekLabel: "Сед", - allDayText: "Цео дан", - eventLimitText: function (n) { - return "+ још " + n; - }, - noEventsMessage: "Нема догађаја за приказ" - }; - - return srCyrl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/sr.js b/htdocs/public/high/plugins/fullcalendar/locales/sr.js deleted file mode 100644 index 23e5c9b2..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/sr.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sr = factory())); -}(this, function () { 'use strict'; - - var sr = { - code: "sr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prethodna", - next: "Sledeći", - today: "Danas", - month: "Mеsеc", - week: "Nеdеlja", - day: "Dan", - list: "Planеr" - }, - weekLabel: "Sed", - allDayText: "Cеo dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nеma događaja za prikaz" - }; - - return sr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/sv.js b/htdocs/public/high/plugins/fullcalendar/locales/sv.js deleted file mode 100644 index a887060b..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/sv.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sv = factory())); -}(this, function () { 'use strict'; - - var sv = { - code: "sv", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Förra", - next: "Nästa", - today: "Idag", - month: "Månad", - week: "Vecka", - day: "Dag", - list: "Program" - }, - weekLabel: "v.", - allDayText: "Heldag", - eventLimitText: "till", - noEventsMessage: "Inga händelser att visa" - }; - - return sv; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/th.js b/htdocs/public/high/plugins/fullcalendar/locales/th.js deleted file mode 100644 index caa3fe9a..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/th.js +++ /dev/null @@ -1,25 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.th = factory())); -}(this, function () { 'use strict'; - - var th = { - code: "th", - buttonText: { - prev: "ย้อน", - next: "ถัดไป", - today: "วันนี้", - month: "เดือน", - week: "สัปดาห์", - day: "วัน", - list: "แผนงาน" - }, - allDayText: "ตลอดวัน", - eventLimitText: "เพิ่มเติม", - noEventsMessage: "ไม่มีกิจกรรมที่จะแสดง" - }; - - return th; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/tr.js b/htdocs/public/high/plugins/fullcalendar/locales/tr.js deleted file mode 100644 index 48458982..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/tr.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.tr = factory())); -}(this, function () { 'use strict'; - - var tr = { - code: "tr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "geri", - next: "ileri", - today: "bugün", - month: "Ay", - week: "Hafta", - day: "Gün", - list: "Ajanda" - }, - weekLabel: "Hf", - allDayText: "Tüm gün", - eventLimitText: "daha fazla", - noEventsMessage: "Gösterilecek etkinlik yok" - }; - - return tr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/uk.js b/htdocs/public/high/plugins/fullcalendar/locales/uk.js deleted file mode 100644 index de33f250..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/uk.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.uk = factory())); -}(this, function () { 'use strict'; - - var uk = { - code: "uk", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Попередній", - next: "далі", - today: "Сьогодні", - month: "Місяць", - week: "Тиждень", - day: "День", - list: "Порядок денний" - }, - weekLabel: "Тиж", - allDayText: "Увесь день", - eventLimitText: function (n) { - return "+ще " + n + "..."; - }, - noEventsMessage: "Немає подій для відображення" - }; - - return uk; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/vi.js b/htdocs/public/high/plugins/fullcalendar/locales/vi.js deleted file mode 100644 index 167ce11d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/vi.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.vi = factory())); -}(this, function () { 'use strict'; - - var vi = { - code: "vi", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Trước", - next: "Tiếp", - today: "Hôm nay", - month: "Tháng", - week: "Tuần", - day: "Ngày", - list: "Lịch biểu" - }, - weekLabel: "Tu", - allDayText: "Cả ngày", - eventLimitText: function (n) { - return "+ thêm " + n; - }, - noEventsMessage: "Không có sự kiện để hiển thị" - }; - - return vi; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/zh-cn.js b/htdocs/public/high/plugins/fullcalendar/locales/zh-cn.js deleted file mode 100644 index 4debbb9e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/zh-cn.js +++ /dev/null @@ -1,33 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['zh-cn'] = factory())); -}(this, function () { 'use strict'; - - var zhCn = { - code: "zh-cn", - week: { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "上月", - next: "下月", - today: "今天", - month: "月", - week: "周", - day: "日", - list: "日程" - }, - weekLabel: "周", - allDayText: "全天", - eventLimitText: function (n) { - return "另外 " + n + " 个"; - }, - noEventsMessage: "没有事件显示" - }; - - return zhCn; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/zh-tw.js b/htdocs/public/high/plugins/fullcalendar/locales/zh-tw.js deleted file mode 100644 index bc14dcd4..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/zh-tw.js +++ /dev/null @@ -1,26 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['zh-tw'] = factory())); -}(this, function () { 'use strict'; - - var zhTw = { - code: "zh-tw", - buttonText: { - prev: "上月", - next: "下月", - today: "今天", - month: "月", - week: "週", - day: "天", - list: "活動列表" - }, - weekLabel: "周", - allDayText: "整天", - eventLimitText: '顯示更多', - noEventsMessage: "没有任何活動" - }; - - return zhTw; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/main.css b/htdocs/public/high/plugins/fullcalendar/main.css deleted file mode 100644 index 4412a185..00000000 --- a/htdocs/public/high/plugins/fullcalendar/main.css +++ /dev/null @@ -1,1052 +0,0 @@ -@charset "UTF-8"; -.fc { - direction: ltr; - text-align: left; -} - -.fc-rtl { - text-align: right; -} - -body .fc { - /* extra precedence to overcome jqui */ - font-size: 1em; -} - -/* Colors ---------------------------------------------------------------------------------------------------*/ -.fc-highlight { - /* when user is selecting cells */ - background: #bce8f1; - opacity: 0.3; -} - -.fc-bgevent { - /* default look for background events */ - background: #8fdf82; - opacity: 0.3; -} - -.fc-nonbusiness { - /* default look for non-business-hours areas */ - /* will inherit .fc-bgevent's styles */ - background: #d7d7d7; -} - -/* Popover ---------------------------------------------------------------------------------------------------*/ -.fc-popover { - position: absolute; - box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15); -} - -.fc-popover .fc-header { - /* TODO: be more consistent with fc-head/fc-body */ - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - padding: 2px 4px; -} - -.fc-rtl .fc-popover .fc-header { - flex-direction: row-reverse; -} - -.fc-popover .fc-header .fc-title { - margin: 0 2px; -} - -.fc-popover .fc-header .fc-close { - cursor: pointer; - opacity: 0.65; - font-size: 1.1em; -} - -/* Misc Reusable Components ---------------------------------------------------------------------------------------------------*/ -.fc-divider { - border-style: solid; - border-width: 1px; -} - -hr.fc-divider { - height: 0; - margin: 0; - padding: 0 0 2px; - /* height is unreliable across browsers, so use padding */ - border-width: 1px 0; -} - -.fc-bg, -.fc-bgevent-skeleton, -.fc-highlight-skeleton, -.fc-mirror-skeleton { - /* these element should always cling to top-left/right corners */ - position: absolute; - top: 0; - left: 0; - right: 0; -} - -.fc-bg { - bottom: 0; - /* strech bg to bottom edge */ -} - -.fc-bg table { - height: 100%; - /* strech bg to bottom edge */ -} - -/* Tables ---------------------------------------------------------------------------------------------------*/ -.fc table { - width: 100%; - box-sizing: border-box; - /* fix scrollbar issue in firefox */ - table-layout: fixed; - border-collapse: collapse; - border-spacing: 0; - font-size: 1em; - /* normalize cross-browser */ -} - -.fc th { - text-align: center; -} - -.fc th, -.fc td { - border-style: solid; - border-width: 1px; - padding: 0; - vertical-align: top; -} - -.fc td.fc-today { - border-style: double; - /* overcome neighboring borders */ -} - -/* Internal Nav Links ---------------------------------------------------------------------------------------------------*/ -a[data-goto] { - cursor: pointer; -} - -a[data-goto]:hover { - text-decoration: underline; -} - -/* Fake Table Rows ---------------------------------------------------------------------------------------------------*/ -.fc .fc-row { - /* extra precedence to overcome themes forcing a 1px border */ - /* no visible border by default. but make available if need be (scrollbar width compensation) */ - border-style: solid; - border-width: 0; -} - -.fc-row table { - /* don't put left/right border on anything within a fake row. - the outer tbody will worry about this */ - border-left: 0 hidden transparent; - border-right: 0 hidden transparent; - /* no bottom borders on rows */ - border-bottom: 0 hidden transparent; -} - -.fc-row:first-child table { - border-top: 0 hidden transparent; - /* no top border on first row */ -} - -/* Day Row (used within the header and the DayGrid) ---------------------------------------------------------------------------------------------------*/ -.fc-row { - position: relative; -} - -.fc-row .fc-bg { - z-index: 1; -} - -/* highlighting cells & background event skeleton */ -.fc-row .fc-bgevent-skeleton, -.fc-row .fc-highlight-skeleton { - bottom: 0; - /* stretch skeleton to bottom of row */ -} - -.fc-row .fc-bgevent-skeleton table, -.fc-row .fc-highlight-skeleton table { - height: 100%; - /* stretch skeleton to bottom of row */ -} - -.fc-row .fc-highlight-skeleton td, -.fc-row .fc-bgevent-skeleton td { - border-color: transparent; -} - -.fc-row .fc-bgevent-skeleton { - z-index: 2; -} - -.fc-row .fc-highlight-skeleton { - z-index: 3; -} - -/* -row content (which contains day/week numbers and events) as well as "mirror" (which contains -temporary rendered events). -*/ -.fc-row .fc-content-skeleton { - position: relative; - z-index: 4; - padding-bottom: 2px; - /* matches the space above the events */ -} - -.fc-row .fc-mirror-skeleton { - z-index: 5; -} - -.fc .fc-row .fc-content-skeleton table, -.fc .fc-row .fc-content-skeleton td, -.fc .fc-row .fc-mirror-skeleton td { - /* see-through to the background below */ - /* extra precedence to prevent theme-provided backgrounds */ - background: none; - /* in case s are globally styled */ - border-color: transparent; -} - -.fc-row .fc-content-skeleton td, -.fc-row .fc-mirror-skeleton td { - /* don't put a border between events and/or the day number */ - border-bottom: 0; -} - -.fc-row .fc-content-skeleton tbody td, -.fc-row .fc-mirror-skeleton tbody td { - /* don't put a border between event cells */ - border-top: 0; -} - -/* Scrolling Container ---------------------------------------------------------------------------------------------------*/ -.fc-scroller { - -webkit-overflow-scrolling: touch; -} - -/* TODO: move to timegrid/daygrid */ -.fc-scroller > .fc-day-grid, -.fc-scroller > .fc-time-grid { - position: relative; - /* re-scope all positions */ - width: 100%; - /* hack to force re-sizing this inner element when scrollbars appear/disappear */ -} - -/* Global Event Styles ---------------------------------------------------------------------------------------------------*/ -.fc-event { - position: relative; - /* for resize handle and other inner positioning */ - display: block; - /* make the tag block */ - font-size: 0.85em; - line-height: 1.4; - border-radius: 3px; - border: 1px solid #3788d8; -} - -.fc-event, -.fc-event-dot { - background-color: #3788d8; - /* default BACKGROUND color */ -} - -.fc-event, -.fc-event:hover { - color: #fff; - /* default TEXT color */ - text-decoration: none; - /* if has an href */ -} - -.fc-event[href], -.fc-event.fc-draggable { - cursor: pointer; - /* give events with links and draggable events a hand mouse pointer */ -} - -.fc-not-allowed, -.fc-not-allowed .fc-event { - /* to override an event's custom cursor */ - cursor: not-allowed; -} - -.fc-event .fc-content { - position: relative; - z-index: 2; -} - -/* resizer (cursor AND touch devices) */ -.fc-event .fc-resizer { - position: absolute; - z-index: 4; -} - -/* resizer (touch devices) */ -.fc-event .fc-resizer { - display: none; -} - -.fc-event.fc-allow-mouse-resize .fc-resizer, -.fc-event.fc-selected .fc-resizer { - /* only show when hovering or selected (with touch) */ - display: block; -} - -/* hit area */ -.fc-event.fc-selected .fc-resizer:before { - /* 40x40 touch area */ - content: ""; - position: absolute; - z-index: 9999; - /* user of this util can scope within a lower z-index */ - top: 50%; - left: 50%; - width: 40px; - height: 40px; - margin-left: -20px; - margin-top: -20px; -} - -/* Event Selection (only for touch devices) ---------------------------------------------------------------------------------------------------*/ -.fc-event.fc-selected { - z-index: 9999 !important; - /* overcomes inline z-index */ - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); -} - -.fc-event.fc-selected:after { - content: ""; - position: absolute; - z-index: 1; - /* same z-index as fc-bg, behind text */ - /* overcome the borders */ - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; - /* darkening effect */ - background: #000; - opacity: 0.25; -} - -/* Event Dragging ---------------------------------------------------------------------------------------------------*/ -.fc-event.fc-dragging.fc-selected { - box-shadow: 0 2px 7px rgba(0, 0, 0, 0.3); -} - -.fc-event.fc-dragging:not(.fc-selected) { - opacity: 0.75; -} - -/* Horizontal Events ---------------------------------------------------------------------------------------------------*/ -/* bigger touch area when selected */ -.fc-h-event.fc-selected:before { - content: ""; - position: absolute; - z-index: 3; - /* below resizers */ - top: -10px; - bottom: -10px; - left: 0; - right: 0; -} - -/* events that are continuing to/from another week. kill rounded corners and butt up against edge */ -.fc-ltr .fc-h-event.fc-not-start, -.fc-rtl .fc-h-event.fc-not-end { - margin-left: 0; - border-left-width: 0; - padding-left: 1px; - /* replace the border with padding */ - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.fc-ltr .fc-h-event.fc-not-end, -.fc-rtl .fc-h-event.fc-not-start { - margin-right: 0; - border-right-width: 0; - padding-right: 1px; - /* replace the border with padding */ - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -/* resizer (cursor AND touch devices) */ -/* left resizer */ -.fc-ltr .fc-h-event .fc-start-resizer, -.fc-rtl .fc-h-event .fc-end-resizer { - cursor: w-resize; - left: -1px; - /* overcome border */ -} - -/* right resizer */ -.fc-ltr .fc-h-event .fc-end-resizer, -.fc-rtl .fc-h-event .fc-start-resizer { - cursor: e-resize; - right: -1px; - /* overcome border */ -} - -/* resizer (mouse devices) */ -.fc-h-event.fc-allow-mouse-resize .fc-resizer { - width: 7px; - top: -1px; - /* overcome top border */ - bottom: -1px; - /* overcome bottom border */ -} - -/* resizer (touch devices) */ -.fc-h-event.fc-selected .fc-resizer { - /* 8x8 little dot */ - border-radius: 4px; - border-width: 1px; - width: 6px; - height: 6px; - border-style: solid; - border-color: inherit; - background: #fff; - /* vertically center */ - top: 50%; - margin-top: -4px; -} - -/* left resizer */ -.fc-ltr .fc-h-event.fc-selected .fc-start-resizer, -.fc-rtl .fc-h-event.fc-selected .fc-end-resizer { - margin-left: -4px; - /* centers the 8x8 dot on the left edge */ -} - -/* right resizer */ -.fc-ltr .fc-h-event.fc-selected .fc-end-resizer, -.fc-rtl .fc-h-event.fc-selected .fc-start-resizer { - margin-right: -4px; - /* centers the 8x8 dot on the right edge */ -} - -/* DayGrid events ----------------------------------------------------------------------------------------------------- -We use the full "fc-day-grid-event" class instead of using descendants because the event won't -be a descendant of the grid when it is being dragged. -*/ -.fc-day-grid-event { - margin: 1px 2px 0; - /* spacing between events and edges */ - padding: 0 1px; -} - -tr:first-child > td > .fc-day-grid-event { - margin-top: 2px; - /* a little bit more space before the first event */ -} - -.fc-mirror-skeleton tr:first-child > td > .fc-day-grid-event { - margin-top: 0; - /* except for mirror skeleton */ -} - -.fc-day-grid-event .fc-content { - /* force events to be one-line tall */ - white-space: nowrap; - overflow: hidden; -} - -.fc-day-grid-event .fc-time { - font-weight: bold; -} - -/* resizer (cursor devices) */ -/* left resizer */ -.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer, -.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer { - margin-left: -2px; - /* to the day cell's edge */ -} - -/* right resizer */ -.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer, -.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer { - margin-right: -2px; - /* to the day cell's edge */ -} - -/* Event Limiting ---------------------------------------------------------------------------------------------------*/ -/* "more" link that represents hidden events */ -a.fc-more { - margin: 1px 3px; - font-size: 0.85em; - cursor: pointer; - text-decoration: none; -} - -a.fc-more:hover { - text-decoration: underline; -} - -.fc-limited { - /* rows and cells that are hidden because of a "more" link */ - display: none; -} - -/* popover that appears when "more" link is clicked */ -.fc-day-grid .fc-row { - z-index: 1; - /* make the "more" popover one higher than this */ -} - -.fc-more-popover { - z-index: 2; - width: 220px; -} - -.fc-more-popover .fc-event-container { - padding: 10px; -} - -/* Now Indicator ---------------------------------------------------------------------------------------------------*/ -.fc-now-indicator { - position: absolute; - border: 0 solid red; -} - -/* Utilities ---------------------------------------------------------------------------------------------------*/ -.fc-unselectable { - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-touch-callout: none; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} - -/* -TODO: more distinction between this file and common.css -*/ -/* Colors ---------------------------------------------------------------------------------------------------*/ -.fc-unthemed th, -.fc-unthemed td, -.fc-unthemed thead, -.fc-unthemed tbody, -.fc-unthemed .fc-divider, -.fc-unthemed .fc-row, -.fc-unthemed .fc-content, -.fc-unthemed .fc-popover, -.fc-unthemed .fc-list-view, -.fc-unthemed .fc-list-heading td { - border-color: #ddd; -} - -.fc-unthemed .fc-popover { - background-color: #fff; -} - -.fc-unthemed .fc-divider, -.fc-unthemed .fc-popover .fc-header, -.fc-unthemed .fc-list-heading td { - background: #eee; -} - -.fc-unthemed td.fc-today { - background: #fcf8e3; -} - -.fc-unthemed .fc-disabled-day { - background: #d7d7d7; - opacity: 0.3; -} - -/* Icons --------------------------------------------------------------------------------------------------- -from https://feathericons.com/ and built with IcoMoon -*/ -@font-face { - font-family: "fcicons"; - src: url("data:application/x-font-ttf;charset=utf-8;base64,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") format("truetype"); - font-weight: normal; - font-style: normal; -} -.fc-icon { - /* use !important to prevent issues with browser extensions that change fonts */ - font-family: "fcicons" !important; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - /* Better Font Rendering =========== */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.fc-icon-chevron-left:before { - content: ""; -} - -.fc-icon-chevron-right:before { - content: ""; -} - -.fc-icon-chevrons-left:before { - content: ""; -} - -.fc-icon-chevrons-right:before { - content: ""; -} - -.fc-icon-minus-square:before { - content: ""; -} - -.fc-icon-plus-square:before { - content: ""; -} - -.fc-icon-x:before { - content: ""; -} - -.fc-icon { - display: inline-block; - width: 1em; - height: 1em; - text-align: center; -} - -/* Buttons --------------------------------------------------------------------------------------------------- -Lots taken from Flatly (MIT): https://bootswatch.com/4/flatly/bootstrap.css -*/ -/* reset */ -.fc-button { - border-radius: 0; - overflow: visible; - text-transform: none; - margin: 0; - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -.fc-button:focus { - outline: 1px dotted; - outline: 5px auto -webkit-focus-ring-color; -} - -.fc-button { - -webkit-appearance: button; -} - -.fc-button:not(:disabled) { - cursor: pointer; -} - -.fc-button::-moz-focus-inner { - padding: 0; - border-style: none; -} - -/* theme */ -.fc-button { - display: inline-block; - font-weight: 400; - color: #212529; - text-align: center; - vertical-align: middle; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-color: transparent; - border: 1px solid transparent; - padding: 0.4em 0.65em; - font-size: 1em; - line-height: 1.5; - border-radius: 0.25em; -} - -.fc-button:hover { - color: #212529; - text-decoration: none; -} - -.fc-button:focus { - outline: 0; - -webkit-box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.25); - box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.25); -} - -.fc-button:disabled { - opacity: 0.65; -} - -/* "primary" coloring */ -.fc-button-primary { - color: #fff; - background-color: #2C3E50; - border-color: #2C3E50; -} - -.fc-button-primary:hover { - color: #fff; - background-color: #1e2b37; - border-color: #1a252f; -} - -.fc-button-primary:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); - box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); -} - -.fc-button-primary:disabled { - color: #fff; - background-color: #2C3E50; - border-color: #2C3E50; -} - -.fc-button-primary:not(:disabled):active, -.fc-button-primary:not(:disabled).fc-button-active { - color: #fff; - background-color: #1a252f; - border-color: #151e27; -} - -.fc-button-primary:not(:disabled):active:focus, -.fc-button-primary:not(:disabled).fc-button-active:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); - box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); -} - -/* icons within buttons */ -.fc-button .fc-icon { - vertical-align: middle; - font-size: 1.5em; -} - -/* Buttons Groups ---------------------------------------------------------------------------------------------------*/ -.fc-button-group { - position: relative; - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - vertical-align: middle; -} - -.fc-button-group > .fc-button { - position: relative; - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; -} - -.fc-button-group > .fc-button:hover { - z-index: 1; -} - -.fc-button-group > .fc-button:focus, -.fc-button-group > .fc-button:active, -.fc-button-group > .fc-button.fc-button-active { - z-index: 1; -} - -.fc-button-group > .fc-button:not(:first-child) { - margin-left: -1px; -} - -.fc-button-group > .fc-button:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.fc-button-group > .fc-button:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -/* Popover ---------------------------------------------------------------------------------------------------*/ -.fc-unthemed .fc-popover { - border-width: 1px; - border-style: solid; -} - -/* List View ---------------------------------------------------------------------------------------------------*/ -.fc-unthemed .fc-list-item:hover td { - background-color: #f5f5f5; -} - -/* Toolbar ---------------------------------------------------------------------------------------------------*/ -.fc-toolbar { - display: flex; - justify-content: space-between; - align-items: center; -} - -.fc-toolbar.fc-header-toolbar { - margin-bottom: 1.5em; -} - -.fc-toolbar.fc-footer-toolbar { - margin-top: 1.5em; -} - -/* inner content */ -.fc-toolbar > * > :not(:first-child) { - margin-left: 0.75em; -} - -.fc-toolbar h2 { - font-size: 1.75em; - margin: 0; -} - -/* View Structure ---------------------------------------------------------------------------------------------------*/ -.fc-view-container { - position: relative; -} - -/* undo twitter bootstrap's box-sizing rules. normalizes positioning techniques */ -/* don't do this for the toolbar because we'll want bootstrap to style those buttons as some pt */ -.fc-view-container *, -.fc-view-container *:before, -.fc-view-container *:after { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -.fc-view, -.fc-view > table { - /* so dragged elements can be above the view's main element */ - position: relative; - z-index: 1; -} - -@media print { - .fc { - max-width: 100% !important; - } - - /* Global Event Restyling - --------------------------------------------------------------------------------------------------*/ - .fc-event { - background: #fff !important; - color: #000 !important; - page-break-inside: avoid; - } - - .fc-event .fc-resizer { - display: none; - } - - /* Table & Day-Row Restyling - --------------------------------------------------------------------------------------------------*/ - .fc th, -.fc td, -.fc hr, -.fc thead, -.fc tbody, -.fc-row { - border-color: #ccc !important; - background: #fff !important; - } - - /* kill the overlaid, absolutely-positioned components */ - /* common... */ - .fc-bg, -.fc-bgevent-skeleton, -.fc-highlight-skeleton, -.fc-mirror-skeleton, -.fc-bgevent-container, -.fc-business-container, -.fc-highlight-container, -.fc-mirror-container { - display: none; - } - - /* don't force a min-height on rows (for DayGrid) */ - .fc tbody .fc-row { - height: auto !important; - /* undo height that JS set in distributeHeight */ - min-height: 0 !important; - /* undo the min-height from each view's specific stylesheet */ - } - - .fc tbody .fc-row .fc-content-skeleton { - position: static; - /* undo .fc-rigid */ - padding-bottom: 0 !important; - /* use a more border-friendly method for this... */ - } - - .fc tbody .fc-row .fc-content-skeleton tbody tr:last-child td { - /* only works in newer browsers */ - padding-bottom: 1em; - /* ...gives space within the skeleton. also ensures min height in a way */ - } - - .fc tbody .fc-row .fc-content-skeleton table { - /* provides a min-height for the row, but only effective for IE, which exaggerates this value, - making it look more like 3em. for other browers, it will already be this tall */ - height: 1em; - } - - /* Undo month-view event limiting. Display all events and hide the "more" links - --------------------------------------------------------------------------------------------------*/ - .fc-more-cell, -.fc-more { - display: none !important; - } - - .fc tr.fc-limited { - display: table-row !important; - } - - .fc td.fc-limited { - display: table-cell !important; - } - - .fc-popover { - display: none; - /* never display the "more.." popover in print mode */ - } - - /* TimeGrid Restyling - --------------------------------------------------------------------------------------------------*/ - /* undo the min-height 100% trick used to fill the container's height */ - .fc-time-grid { - min-height: 0 !important; - } - - /* don't display the side axis at all ("all-day" and time cells) */ - .fc-timeGrid-view .fc-axis { - display: none; - } - - /* don't display the horizontal lines */ - .fc-slats, -.fc-time-grid hr { - /* this hr is used when height is underused and needs to be filled */ - display: none !important; - /* important overrides inline declaration */ - } - - /* let the container that holds the events be naturally positioned and create real height */ - .fc-time-grid .fc-content-skeleton { - position: static; - } - - /* in case there are no events, we still want some height */ - .fc-time-grid .fc-content-skeleton table { - height: 4em; - } - - /* kill the horizontal spacing made by the event container. event margins will be done below */ - .fc-time-grid .fc-event-container { - margin: 0 !important; - } - - /* TimeGrid *Event* Restyling - --------------------------------------------------------------------------------------------------*/ - /* naturally position events, vertically stacking them */ - .fc-time-grid .fc-event { - position: static !important; - margin: 3px 2px !important; - } - - /* for events that continue to a future day, give the bottom border back */ - .fc-time-grid .fc-event.fc-not-end { - border-bottom-width: 1px !important; - } - - /* indicate the event continues via "..." text */ - .fc-time-grid .fc-event.fc-not-end:after { - content: "..."; - } - - /* for events that are continuations from previous days, give the top border back */ - .fc-time-grid .fc-event.fc-not-start { - border-top-width: 1px !important; - } - - /* indicate the event is a continuation via "..." text */ - .fc-time-grid .fc-event.fc-not-start:before { - content: "..."; - } - - /* time */ - /* undo a previous declaration and let the time text span to a second line */ - .fc-time-grid .fc-event .fc-time { - white-space: normal !important; - } - - /* hide the the time that is normally displayed... */ - .fc-time-grid .fc-event .fc-time span { - display: none; - } - - /* ...replace it with a more verbose version (includes AM/PM) stored in an html attribute */ - .fc-time-grid .fc-event .fc-time:after { - content: attr(data-full); - } - - /* Vertical Scroller & Containers - --------------------------------------------------------------------------------------------------*/ - /* kill the scrollbars and allow natural height */ - .fc-scroller, -.fc-day-grid-container, -.fc-time-grid-container { - /* */ - overflow: visible !important; - height: auto !important; - } - - /* kill the horizontal border/padding used to compensate for scrollbars */ - .fc-row { - border: 0 !important; - margin: 0 !important; - } - - /* Button Controls - --------------------------------------------------------------------------------------------------*/ - .fc-button-group, -.fc button { - display: none; - /* don't display any button-related controls */ - } -} diff --git a/htdocs/public/high/plugins/fullcalendar/main.d.ts b/htdocs/public/high/plugins/fullcalendar/main.d.ts deleted file mode 100644 index cfd23435..00000000 --- a/htdocs/public/high/plugins/fullcalendar/main.d.ts +++ /dev/null @@ -1,2730 +0,0 @@ -// Generated by dts-bundle v0.7.3-fork.1 -// Dependencies for this module: -// ../../../../../@fullcalendar/core - -declare module '@fullcalendar/core' { - export const version = "<%= version %>"; - export { OptionsInput } from '@fullcalendar/core/types/input-types'; - export { EventInput, EventDef, EventDefHash, EventInstance, EventInstanceHash, parseEventDef, createEventInstance, EventTuple } from '@fullcalendar/core/structs/event'; - export { BusinessHoursInput, parseBusinessHours } from '@fullcalendar/core/structs/business-hours'; - export { applyAll, debounce, padStart, isInt, capitaliseFirstLetter, parseFieldSpecs, compareByFieldSpecs, compareByFieldSpec, flexibleCompare, computeVisibleDayRange, refineProps, matchCellWidths, uncompensateScroll, compensateScroll, subtractInnerElHeight, isMultiDayRange, distributeHeight, undistributeHeight, preventSelection, allowSelection, preventContextMenu, allowContextMenu, compareNumbers, enableCursor, disableCursor, diffDates } from '@fullcalendar/core/util/misc'; - export { htmlEscape, cssToStr } from '@fullcalendar/core/util/html'; - export { removeExact, isArraysEqual } from '@fullcalendar/core/util/array'; - export { memoize, memoizeOutput } from '@fullcalendar/core/util/memoize'; - export { memoizeRendering, MemoizedRendering } from '@fullcalendar/core/component/memoized-rendering'; - export { intersectRects, Rect, pointInsideRect, constrainPoint, getRectCenter, diffPoints, Point, translateRect } from '@fullcalendar/core/util/geom'; - export { mapHash, filterHash, isPropsEqual } from '@fullcalendar/core/util/object'; - export { findElements, findChildren, htmlToElement, createElement, insertAfterElement, prependToElement, removeElement, appendToElement, applyStyle, applyStyleProp, elementMatches, elementClosest, forceClassName } from '@fullcalendar/core/util/dom-manip'; - export { EventStore, filterEventStoreDefs, createEmptyEventStore, mergeEventStores, getRelevantEvents, eventTupleToStore } from '@fullcalendar/core/structs/event-store'; - export { EventUiHash, EventUi, processScopedUiProps, combineEventUis } from '@fullcalendar/core/component/event-ui'; - export { default as Splitter, SplittableProps } from '@fullcalendar/core/component/event-splitting'; - export { buildGotoAnchorHtml, getAllDayHtml, getDayClasses } from '@fullcalendar/core/component/date-rendering'; - export { preventDefault, listenBySelector, whenTransitionDone } from '@fullcalendar/core/util/dom-event'; - export { computeInnerRect, computeEdges, computeHeightAndMargins, getClippingParents, computeClippingRect, computeRect } from '@fullcalendar/core/util/dom-geom'; - export { unpromisify } from '@fullcalendar/core/util/promise'; - export { default as EmitterMixin, EmitterInterface } from '@fullcalendar/core/common/EmitterMixin'; - export { DateRange, rangeContainsMarker, intersectRanges, rangesEqual, rangesIntersect, rangeContainsRange } from '@fullcalendar/core/datelib/date-range'; - export { default as Mixin } from '@fullcalendar/core/common/Mixin'; - export { default as PositionCache } from '@fullcalendar/core/common/PositionCache'; - export { default as ScrollComponent, ScrollbarWidths } from '@fullcalendar/core/common/ScrollComponent'; - export { ScrollController, ElementScrollController, WindowScrollController } from '@fullcalendar/core/common/scroll-controller'; - export { default as Theme } from '@fullcalendar/core/theme/Theme'; - export { default as Component, ComponentContext } from '@fullcalendar/core/component/Component'; - export { default as DateComponent, Seg, EventSegUiInteractionState } from '@fullcalendar/core/component/DateComponent'; - export { default as Calendar, DatePointTransform, DateSpanTransform, DateSelectionApi } from '@fullcalendar/core/Calendar'; - export { default as View, ViewProps } from '@fullcalendar/core/View'; - export { default as FgEventRenderer, buildSegCompareObj } from '@fullcalendar/core/component/renderers/FgEventRenderer'; - export { default as FillRenderer } from '@fullcalendar/core/component/renderers/FillRenderer'; - export { default as DateProfileGenerator, DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - export { ViewDef } from '@fullcalendar/core/structs/view-def'; - export { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - export { DateSpan, DateSpanApi, DatePointApi, isDateSpansEqual } from '@fullcalendar/core/structs/date-span'; - export { DateMarker, addDays, startOfDay, addMs, addWeeks, diffWeeks, diffWholeWeeks, diffWholeDays, diffDayAndTime, diffDays, isValidDate } from '@fullcalendar/core/datelib/marker'; - export { Duration, createDuration, isSingleDay, multiplyDuration, addDurations, asRoughMinutes, asRoughSeconds, asRoughMs, wholeDivideDurations, greatestDurationDenominator } from '@fullcalendar/core/datelib/duration'; - export { DateEnv, DateMarkerMeta } from '@fullcalendar/core/datelib/env'; - export { DateFormatter, createFormatter, VerboseFormattingArg, formatIsoTimeString } from '@fullcalendar/core/datelib/formatting'; - export { NamedTimeZoneImpl } from '@fullcalendar/core/datelib/timezone'; - export { parse as parseMarker } from '@fullcalendar/core/datelib/parsing'; - export { EventSourceDef, EventSource, EventSourceHash } from '@fullcalendar/core/structs/event-source'; - export { Interaction, InteractionSettings, interactionSettingsToStore, interactionSettingsStore, InteractionSettingsStore } from '@fullcalendar/core/interactions/interaction'; - export { PointerDragEvent } from '@fullcalendar/core/interactions/pointer'; - export { Hit } from '@fullcalendar/core/interactions/hit'; - export { dateSelectionJoinTransformer } from '@fullcalendar/core/interactions/date-selecting'; - export { eventDragMutationMassager, EventDropTransformers } from '@fullcalendar/core/interactions/event-dragging'; - export { EventResizeJoinTransforms } from '@fullcalendar/core/interactions/event-resizing'; - export { default as ElementDragging } from '@fullcalendar/core/interactions/ElementDragging'; - export { formatDate, formatRange } from '@fullcalendar/core/formatting-api'; - export { globalDefaults, config } from '@fullcalendar/core/options'; - export { RecurringType, ParsedRecurring } from '@fullcalendar/core/structs/recurring-event'; - export { DragMetaInput, DragMeta, parseDragMeta } from '@fullcalendar/core/structs/drag-meta'; - export { createPlugin, PluginDef, PluginDefInput, ViewPropsTransformer, ViewContainerModifier } from '@fullcalendar/core/plugin-system'; - export { reducerFunc, Action, CalendarState } from '@fullcalendar/core/reducers/types'; - export { CalendarComponentProps } from '@fullcalendar/core/CalendarComponent'; - export { default as DayHeader } from '@fullcalendar/core/common/DayHeader'; - export { computeFallbackHeaderFormat, renderDateCell } from '@fullcalendar/core/common/table-utils'; - export { default as DaySeries } from '@fullcalendar/core/common/DaySeries'; - export { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - export { EventRenderRange, sliceEventStore, hasBgRendering, getElSeg } from '@fullcalendar/core/component/event-rendering'; - export { default as DayTable, DayTableSeg, DayTableCell } from '@fullcalendar/core/common/DayTable'; - export { default as Slicer, SlicedProps } from '@fullcalendar/core/common/slicing-utils'; - export { EventMutation, applyMutationToEventStore } from '@fullcalendar/core/structs/event-mutation'; - export { Constraint, ConstraintInput, AllowFunc, isPropsValid, isInteractionValid } from '@fullcalendar/core/validation'; - export { default as EventApi } from '@fullcalendar/core/api/EventApi'; - export { default as requestJson } from '@fullcalendar/core/util/requestJson'; -} - -declare module '@fullcalendar/core/types/input-types' { - import View from '@fullcalendar/core/View'; - import { EventSourceInput, EventInputTransformer } from '@fullcalendar/core/structs/event-source'; - import { Duration, DurationInput } from '@fullcalendar/core/datelib/duration'; - import { DateInput } from '@fullcalendar/core/datelib/env'; - import { FormatterInput } from '@fullcalendar/core/datelib/formatting'; - import { DateRangeInput } from '@fullcalendar/core/datelib/date-range'; - import { BusinessHoursInput } from '@fullcalendar/core/structs/business-hours'; - import EventApi from '@fullcalendar/core/api/EventApi'; - import { AllowFunc, ConstraintInput, OverlapFunc } from '@fullcalendar/core/validation'; - import { PluginDef } from '@fullcalendar/core/plugin-system'; - import { LocaleSingularArg, RawLocale } from '@fullcalendar/core/datelib/locale'; - export interface ToolbarInput { - left?: string; - center?: string; - right?: string; - } - export interface CustomButtonInput { - text: string; - icon?: string; - themeIcon?: string; - bootstrapFontAwesome?: string; - click(element: HTMLElement): void; - } - export interface ButtonIconsInput { - prev?: string; - next?: string; - prevYear?: string; - nextYear?: string; - } - export interface ButtonTextCompoundInput { - prev?: string; - next?: string; - prevYear?: string; - nextYear?: string; - today?: string; - month?: string; - week?: string; - day?: string; - [viewId: string]: string | undefined; - } - export interface EventSegment { - event: EventApi; - start: Date; - end: Date; - isStart: boolean; - isEnd: boolean; - } - export interface CellInfo { - date: Date; - dayEl: HTMLElement; - moreEl: HTMLElement; - segs: EventSegment[]; - hiddenSegs: EventSegment[]; - } - export interface DropInfo { - start: Date; - end: Date; - } - export type EventHandlerName = '_init' | 'selectAllow' | 'eventAllow' | 'eventDataTransform' | 'datesRender' | 'datesDestroy' | 'dayRender' | 'windowResize' | 'dateClick' | 'eventClick' | 'eventMouseEnter' | 'eventMouseLeave' | 'select' | 'unselect' | 'loading' | 'eventRender' | 'eventPositioned' | '_eventsPositioned' | 'eventDestroy' | 'eventDragStart' | 'eventDragStop' | 'eventDrop' | '_destroyed' | 'drop' | 'eventResizeStart' | 'eventResizeStop' | 'eventResize' | 'eventReceive' | 'eventLeave' | 'viewSkeletonRender' | 'viewSkeletonDestroy' | '_noEventDrop' | '_noEventResize' | 'eventLimitClick' | 'resourceRender'; - export type EventHandlerArgs = Parameters any>>; - export type EventHandlerArg = EventHandlerArgs[0]; - export interface OptionsInputBase { - header?: boolean | ToolbarInput; - footer?: boolean | ToolbarInput; - customButtons?: { - [name: string]: CustomButtonInput; - }; - buttonIcons?: boolean | ButtonIconsInput; - themeSystem?: 'standard' | string; - bootstrapFontAwesome?: boolean | ButtonIconsInput; - firstDay?: number; - dir?: 'ltr' | 'rtl' | 'auto'; - weekends?: boolean; - hiddenDays?: number[]; - fixedWeekCount?: boolean; - weekNumbers?: boolean; - weekNumbersWithinDays?: boolean; - weekNumberCalculation?: 'local' | 'ISO' | ((m: Date) => number); - businessHours?: BusinessHoursInput; - showNonCurrentDates?: boolean; - height?: number | 'auto' | 'parent' | (() => number); - contentHeight?: number | 'auto' | (() => number); - aspectRatio?: number; - handleWindowResize?: boolean; - windowResizeDelay?: number; - eventLimit?: boolean | number; - eventLimitClick?: 'popover' | 'week' | 'day' | 'timeGridWeek' | 'timeGridDay' | string | ((arg: { - date: Date; - allDay: boolean; - dayEl: HTMLElement; - moreEl: HTMLElement; - segs: any[]; - hiddenSegs: any[]; - jsEvent: MouseEvent; - view: View; - }) => void); - timeZone?: string | boolean; - now?: DateInput | (() => DateInput); - defaultView?: string; - allDaySlot?: boolean; - allDayText?: string; - slotDuration?: DurationInput; - slotLabelFormat?: FormatterInput; - slotLabelInterval?: DurationInput; - snapDuration?: DurationInput; - scrollTime?: DurationInput; - minTime?: DurationInput; - maxTime?: DurationInput; - slotEventOverlap?: boolean; - listDayFormat?: FormatterInput | boolean; - listDayAltFormat?: FormatterInput | boolean; - noEventsMessage?: string; - defaultDate?: DateInput; - nowIndicator?: boolean; - visibleRange?: ((currentDate: Date) => DateRangeInput) | DateRangeInput; - validRange?: DateRangeInput; - dateIncrement?: DurationInput; - dateAlignment?: string; - duration?: DurationInput; - dayCount?: number; - locales?: RawLocale[]; - locale?: LocaleSingularArg; - eventTimeFormat?: FormatterInput; - columnHeader?: boolean; - columnHeaderFormat?: FormatterInput; - columnHeaderText?: string | ((date: DateInput) => string); - columnHeaderHtml?: string | ((date: DateInput) => string); - titleFormat?: FormatterInput; - weekLabel?: string; - displayEventTime?: boolean; - displayEventEnd?: boolean; - eventLimitText?: string | ((eventCnt: number) => string); - dayPopoverFormat?: FormatterInput; - navLinks?: boolean; - navLinkDayClick?: string | ((date: Date, jsEvent: Event) => void); - navLinkWeekClick?: string | ((weekStart: any, jsEvent: Event) => void); - selectable?: boolean; - selectMirror?: boolean; - unselectAuto?: boolean; - unselectCancel?: string; - defaultAllDayEventDuration?: DurationInput; - defaultTimedEventDuration?: DurationInput; - cmdFormatter?: string; - defaultRangeSeparator?: string; - selectConstraint?: ConstraintInput; - selectOverlap?: boolean | OverlapFunc; - selectAllow?: AllowFunc; - editable?: boolean; - eventStartEditable?: boolean; - eventDurationEditable?: boolean; - eventConstraint?: ConstraintInput; - eventOverlap?: boolean | OverlapFunc; - eventAllow?: AllowFunc; - eventClassName?: string[] | string; - eventClassNames?: string[] | string; - eventBackgroundColor?: string; - eventBorderColor?: string; - eventTextColor?: string; - eventColor?: string; - events?: EventSourceInput; - eventSources?: EventSourceInput[]; - allDayDefault?: boolean; - startParam?: string; - endParam?: string; - lazyFetching?: boolean; - nextDayThreshold?: DurationInput; - eventOrder?: string | Array<((a: EventApi, b: EventApi) => number) | (string | ((a: EventApi, b: EventApi) => number))>; - rerenderDelay?: number | null; - dragRevertDuration?: number; - dragScroll?: boolean; - longPressDelay?: number; - eventLongPressDelay?: number; - droppable?: boolean; - dropAccept?: string | ((draggable: any) => boolean); - eventDataTransform?: EventInputTransformer; - allDayMaintainDuration?: boolean; - eventResizableFromStart?: boolean; - timeGridEventMinHeight?: number; - allDayHtml?: string; - eventDragMinDistance?: number; - eventSourceFailure?: any; - eventSourceSuccess?: any; - forceEventDuration?: boolean; - progressiveEventRendering?: boolean; - selectLongPressDelay?: number; - selectMinDistance?: number; - timeZoneParam?: string; - titleRangeSeparator?: string; - datesRender?(arg: { - view: View; - el: HTMLElement; - }): void; - datesDestroy?(arg: { - view: View; - el: HTMLElement; - }): void; - dayRender?(arg: { - view: View; - date: Date; - allDay?: boolean; - el: HTMLElement; - }): void; - windowResize?(view: View): void; - dateClick?(arg: { - date: Date; - dateStr: string; - allDay: boolean; - resource?: any; - dayEl: HTMLElement; - jsEvent: MouseEvent; - view: View; - }): void; - eventClick?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): boolean | void; - eventMouseEnter?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): void; - eventMouseLeave?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): void; - select?(arg: { - start: Date; - end: Date; - startStr: string; - endStr: string; - allDay: boolean; - resource?: any; - jsEvent: MouseEvent; - view: View; - }): void; - unselect?(arg: { - view: View; - jsEvent: Event; - }): void; - loading?(isLoading: boolean): void; - eventRender?(arg: { - isMirror: boolean; - isStart: boolean; - isEnd: boolean; - event: EventApi; - el: HTMLElement; - view: View; - }): void; - eventPositioned?(arg: { - isMirror: boolean; - isStart: boolean; - isEnd: boolean; - event: EventApi; - el: HTMLElement; - view: View; - }): void; - _eventsPositioned?(arg: { - view: View; - }): void; - eventDestroy?(arg: { - isMirror: boolean; - event: EventApi; - el: HTMLElement; - view: View; - }): void; - eventDragStart?(arg: { - event: EventApi; - el: HTMLElement; - jsEvent: MouseEvent; - view: View; - }): void; - eventDragStop?(arg: { - event: EventApi; - el: HTMLElement; - jsEvent: MouseEvent; - view: View; - }): void; - eventDrop?(arg: { - el: HTMLElement; - event: EventApi; - oldEvent: EventApi; - delta: Duration; - revert: () => void; - jsEvent: Event; - view: View; - }): void; - eventResizeStart?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): void; - eventResizeStop?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): void; - eventResize?(arg: { - el: HTMLElement; - startDelta: Duration; - endDelta: Duration; - prevEvent: EventApi; - event: EventApi; - revert: () => void; - jsEvent: Event; - view: View; - }): void; - drop?(arg: { - date: Date; - dateStr: string; - allDay: boolean; - draggedEl: HTMLElement; - jsEvent: MouseEvent; - view: View; - }): void; - eventReceive?(arg: { - event: EventApi; - draggedEl: HTMLElement; - view: View; - }): void; - eventLeave?(arg: { - draggedEl: HTMLElement; - event: EventApi; - view: View; - }): void; - viewSkeletonRender?(arg: { - el: HTMLElement; - view: View; - }): void; - viewSkeletonDestroy?(arg: { - el: HTMLElement; - view: View; - }): void; - _destroyed?(): void; - _init?(): void; - _noEventDrop?(): void; - _noEventResize?(): void; - resourceRender?(arg: { - resource: any; - el: HTMLElement; - view: View; - }): void; - } - export interface ViewOptionsInput extends OptionsInputBase { - type?: string; - buttonText?: string; - } - export interface OptionsInput extends OptionsInputBase { - buttonText?: ButtonTextCompoundInput; - views?: { - [viewId: string]: ViewOptionsInput; - }; - plugins?: (PluginDef | string)[]; - } -} - -declare module '@fullcalendar/core/structs/event' { - import { DateInput } from '@fullcalendar/core/datelib/env'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { UnscopedEventUiInput, EventUi } from '@fullcalendar/core/component/event-ui'; - export type EventRenderingChoice = '' | 'background' | 'inverse-background' | 'none'; - export interface EventNonDateInput extends UnscopedEventUiInput { - id?: string | number; - groupId?: string | number; - title?: string; - url?: string; - rendering?: EventRenderingChoice; - extendedProps?: object; - [extendedProp: string]: any; - } - export interface EventDateInput { - start?: DateInput; - end?: DateInput; - date?: DateInput; - allDay?: boolean; - } - export type EventInput = EventNonDateInput & EventDateInput; - export interface EventDef { - defId: string; - sourceId: string; - publicId: string; - groupId: string; - allDay: boolean; - hasEnd: boolean; - recurringDef: { - typeId: number; - typeData: any; - duration: Duration | null; - } | null; - title: string; - url: string; - rendering: EventRenderingChoice; - ui: EventUi; - extendedProps: any; - } - export interface EventInstance { - instanceId: string; - defId: string; - range: DateRange; - forcedStartTzo: number | null; - forcedEndTzo: number | null; - } - export interface EventTuple { - def: EventDef; - instance: EventInstance | null; - } - export type EventInstanceHash = { - [instanceId: string]: EventInstance; - }; - export type EventDefHash = { - [defId: string]: EventDef; - }; - export const NON_DATE_PROPS: { - id: StringConstructor; - groupId: StringConstructor; - title: StringConstructor; - url: StringConstructor; - rendering: StringConstructor; - extendedProps: any; - }; - export const DATE_PROPS: { - start: any; - date: any; - end: any; - allDay: any; - }; - export function parseEvent(raw: EventInput, sourceId: string, calendar: Calendar, allowOpenRange?: boolean): EventTuple | null; - export function parseEventDef(raw: EventNonDateInput, sourceId: string, allDay: boolean, hasEnd: boolean, calendar: Calendar): EventDef; - export type eventDefParserFunc = (def: EventDef, props: any, leftovers: any) => void; - export function createEventInstance(defId: string, range: DateRange, forcedStartTzo?: number, forcedEndTzo?: number): EventInstance; -} - -declare module '@fullcalendar/core/structs/business-hours' { - import Calendar from '@fullcalendar/core/Calendar'; - import { EventInput } from '@fullcalendar/core/structs/event'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - export type BusinessHoursInput = boolean | EventInput | EventInput[]; - export function parseBusinessHours(input: BusinessHoursInput, calendar: Calendar): EventStore; -} - -declare module '@fullcalendar/core/util/misc' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - import { DateRange, OpenDateRange } from '@fullcalendar/core/datelib/date-range'; - export function compensateScroll(rowEl: HTMLElement, scrollbarWidths: any): void; - export function uncompensateScroll(rowEl: HTMLElement): void; - export function disableCursor(): void; - export function enableCursor(): void; - export function distributeHeight(els: HTMLElement[], availableHeight: any, shouldRedistribute: any): void; - export function undistributeHeight(els: HTMLElement[]): void; - export function matchCellWidths(els: HTMLElement[]): number; - export function subtractInnerElHeight(outerEl: HTMLElement, innerEl: HTMLElement): number; - export function preventSelection(el: HTMLElement): void; - export function allowSelection(el: HTMLElement): void; - export function preventContextMenu(el: HTMLElement): void; - export function allowContextMenu(el: HTMLElement): void; - export function parseFieldSpecs(input: any): any[]; - export function compareByFieldSpecs(obj0: any, obj1: any, fieldSpecs: any): any; - export function compareByFieldSpec(obj0: any, obj1: any, fieldSpec: any): any; - export function flexibleCompare(a: any, b: any): number; - export function capitaliseFirstLetter(str: any): any; - export function padStart(val: any, len: any): string; - export function compareNumbers(a: any, b: any): number; - export function isInt(n: any): boolean; - export function applyAll(functions: any, thisObj: any, args: any): any; - export function firstDefined(...args: any[]): any; - export function debounce(func: any, wait: any): () => any; - export type GenericHash = { - [key: string]: any; - }; - export function refineProps(rawProps: GenericHash, processors: GenericHash, defaults?: GenericHash, leftoverProps?: GenericHash): GenericHash; - export function computeAlignedDayRange(timedRange: DateRange): DateRange; - export function computeVisibleDayRange(timedRange: OpenDateRange, nextDayThreshold?: Duration): OpenDateRange; - export function isMultiDayRange(range: DateRange): boolean; - export function diffDates(date0: DateMarker, date1: DateMarker, dateEnv: DateEnv, largeUnit?: string): Duration; -} - -declare module '@fullcalendar/core/util/html' { - export function htmlEscape(s: any): string; - export function cssToStr(cssProps: any): string; - export function attrsToStr(attrs: any): string; - export type ClassNameInput = string | string[]; - export function parseClassName(raw: ClassNameInput): string[]; -} - -declare module '@fullcalendar/core/util/array' { - export function removeMatching(array: any, testFunc: any): number; - export function removeExact(array: any, exactVal: any): number; - export function isArraysEqual(a0: any, a1: any): boolean; -} - -declare module '@fullcalendar/core/util/memoize' { - export function memoize(workerFunc: T): T; - export function memoizeOutput(workerFunc: T, equalityFunc: (output0: any, output1: any) => boolean): T; -} - -declare module '@fullcalendar/core/component/memoized-rendering' { - export interface MemoizedRendering { - (...args: ArgsType): void; - unrender: () => void; - dependents: MemoizedRendering[]; - } - export function memoizeRendering(renderFunc: (...args: ArgsType) => void, unrenderFunc?: (...args: ArgsType) => void, dependencies?: MemoizedRendering[]): MemoizedRendering; -} - -declare module '@fullcalendar/core/util/geom' { - export interface Point { - left: number; - top: number; - } - export interface Rect { - left: number; - right: number; - top: number; - bottom: number; - } - export function pointInsideRect(point: Point, rect: Rect): boolean; - export function intersectRects(rect1: Rect, rect2: Rect): Rect | false; - export function translateRect(rect: Rect, deltaX: number, deltaY: number): Rect; - export function constrainPoint(point: Point, rect: Rect): Point; - export function getRectCenter(rect: Rect): Point; - export function diffPoints(point1: Point, point2: Point): Point; -} - -declare module '@fullcalendar/core/util/object' { - export function mergeProps(propObjs: any, complexProps?: any): any; - export function filterHash(hash: any, func: any): {}; - export function mapHash(hash: { - [key: string]: InputItem; - }, func: (input: InputItem, key: string) => OutputItem): { - [key: string]: OutputItem; - }; - export function arrayToHash(a: any): { - [key: string]: true; - }; - export function hashValuesToArray(obj: any): any[]; - export function isPropsEqual(obj0: any, obj1: any): boolean; -} - -declare module '@fullcalendar/core/util/dom-manip' { - export function createElement(tagName: string, attrs: object | null, content?: ElementContent): HTMLElement; - export function htmlToElement(html: string): HTMLElement; - export function htmlToElements(html: string): HTMLElement[]; - export type ElementContent = string | Node | Node[] | NodeList; - export function appendToElement(el: HTMLElement, content: ElementContent): void; - export function prependToElement(parent: HTMLElement, content: ElementContent): void; - export function insertAfterElement(refEl: HTMLElement, content: ElementContent): void; - export function removeElement(el: HTMLElement): void; - export function elementClosest(el: HTMLElement, selector: string): HTMLElement; - export function elementMatches(el: HTMLElement, selector: string): HTMLElement; - export function findElements(container: HTMLElement[] | HTMLElement | NodeListOf, selector: string): HTMLElement[]; - export function findChildren(parent: HTMLElement[] | HTMLElement, selector?: string): HTMLElement[]; - export function forceClassName(el: HTMLElement, className: string, bool: any): void; - export function applyStyle(el: HTMLElement, props: object): void; - export function applyStyleProp(el: HTMLElement, name: string, val: any): void; -} - -declare module '@fullcalendar/core/structs/event-store' { - import { EventInput, EventDef, EventDefHash, EventInstanceHash, EventTuple } from '@fullcalendar/core/structs/event'; - import { EventSource } from '@fullcalendar/core/structs/event-source'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - export interface EventStore { - defs: EventDefHash; - instances: EventInstanceHash; - } - export function parseEvents(rawEvents: EventInput[], sourceId: string, calendar: Calendar, allowOpenRange?: boolean): EventStore; - export function eventTupleToStore(tuple: EventTuple, eventStore?: EventStore): EventStore; - export function expandRecurring(eventStore: EventStore, framingRange: DateRange, calendar: Calendar): EventStore; - export function getRelevantEvents(eventStore: EventStore, instanceId: string): EventStore; - export function transformRawEvents(rawEvents: any, eventSource: EventSource, calendar: Calendar): any; - export function createEmptyEventStore(): EventStore; - export function mergeEventStores(store0: EventStore, store1: EventStore): EventStore; - export function filterEventStoreDefs(eventStore: EventStore, filterFunc: (eventDef: EventDef) => boolean): EventStore; -} - -declare module '@fullcalendar/core/component/event-ui' { - import { Constraint, AllowFunc, ConstraintInput } from '@fullcalendar/core/validation'; - import { parseClassName } from '@fullcalendar/core/util/html'; - import Calendar from '@fullcalendar/core/Calendar'; - export interface UnscopedEventUiInput { - editable?: boolean; - startEditable?: boolean; - durationEditable?: boolean; - constraint?: ConstraintInput; - overlap?: boolean; - allow?: AllowFunc; - className?: string[] | string; - classNames?: string[] | string; - backgroundColor?: string; - borderColor?: string; - textColor?: string; - color?: string; - } - export interface EventUi { - startEditable: boolean | null; - durationEditable: boolean | null; - constraints: Constraint[]; - overlap: boolean | null; - allows: AllowFunc[]; - backgroundColor: string; - borderColor: string; - textColor: string; - classNames: string[]; - } - export type EventUiHash = { - [defId: string]: EventUi; - }; - export const UNSCOPED_EVENT_UI_PROPS: { - editable: BooleanConstructor; - startEditable: BooleanConstructor; - durationEditable: BooleanConstructor; - constraint: any; - overlap: any; - allow: any; - className: typeof parseClassName; - classNames: typeof parseClassName; - color: StringConstructor; - backgroundColor: StringConstructor; - borderColor: StringConstructor; - textColor: StringConstructor; - }; - export function processUnscopedUiProps(rawProps: UnscopedEventUiInput, calendar: Calendar, leftovers?: any): EventUi; - export function processScopedUiProps(prefix: string, rawScoped: any, calendar: Calendar, leftovers?: any): EventUi; - export function combineEventUis(uis: EventUi[]): EventUi; -} - -declare module '@fullcalendar/core/component/event-splitting' { - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventDef } from '@fullcalendar/core/structs/event'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { EventUiHash, EventUi } from '@fullcalendar/core/component/event-ui'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - export interface SplittableProps { - businessHours: EventStore | null; - dateSelection: DateSpan | null; - eventStore: EventStore; - eventUiBases: EventUiHash; - eventSelection: string; - eventDrag: EventInteractionState | null; - eventResize: EventInteractionState | null; - } - export { Splitter as default, Splitter }; - abstract class Splitter { - abstract getKeyInfo(props: PropsType): { - [key: string]: { - ui?: EventUi; - businessHours?: EventStore; - }; - }; - abstract getKeysForDateSpan(dateSpan: DateSpan): string[]; - abstract getKeysForEventDef(eventDef: EventDef): string[]; - splitProps(props: PropsType): { - [key: string]: SplittableProps; - }; - } -} - -declare module '@fullcalendar/core/component/date-rendering' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - export function buildGotoAnchorHtml(component: Component, gotoOptions: any, attrs: any, innerHtml?: any): string; - export function getAllDayHtml(component: Component): any; - export function getDayClasses(date: DateMarker, dateProfile: DateProfile, context: ComponentContext, noThemeHighlight?: any): any[]; -} - -declare module '@fullcalendar/core/util/dom-event' { - export function preventDefault(ev: any): void; - export function listenBySelector(container: HTMLElement, eventType: string, selector: string, handler: (ev: Event, matchedTarget: HTMLElement) => void): () => void; - export function listenToHoverBySelector(container: HTMLElement, selector: string, onMouseEnter: (ev: Event, matchedTarget: HTMLElement) => void, onMouseLeave: (ev: Event, matchedTarget: HTMLElement) => void): () => void; - export function whenTransitionDone(el: HTMLElement, callback: (ev: Event) => void): void; -} - -declare module '@fullcalendar/core/util/dom-geom' { - import { Rect } from '@fullcalendar/core/util/geom'; - export interface EdgeInfo { - borderLeft: number; - borderRight: number; - borderTop: number; - borderBottom: number; - scrollbarLeft: number; - scrollbarRight: number; - scrollbarBottom: number; - paddingLeft?: number; - paddingRight?: number; - paddingTop?: number; - paddingBottom?: number; - } - export function computeEdges(el: any, getPadding?: boolean): EdgeInfo; - export function computeInnerRect(el: any, goWithinPadding?: boolean): { - left: number; - right: number; - top: number; - bottom: number; - }; - export function computeRect(el: any): Rect; - export function computeHeightAndMargins(el: HTMLElement): number; - export function computeVMargins(el: HTMLElement): number; - export function getClippingParents(el: HTMLElement): HTMLElement[]; - export function computeClippingRect(el: HTMLElement): Rect; -} - -declare module '@fullcalendar/core/util/promise' { - export function unpromisify(func: any, success: any, failure?: any): void; -} - -declare module '@fullcalendar/core/common/EmitterMixin' { - import Mixin from '@fullcalendar/core/common/Mixin'; - export interface EmitterInterface { - on(types: any, handler: any): any; - one(types: any, handler: any): any; - off(types: any, handler: any): any; - trigger(type: any, ...args: any[]): any; - triggerWith(type: any, context: any, args: any): any; - hasHandlers(type: any): any; - } - export { EmitterMixin as default, EmitterMixin }; - class EmitterMixin extends Mixin implements EmitterInterface { - _handlers: any; - _oneHandlers: any; - on(type: any, handler: any): this; - one(type: any, handler: any): this; - off(type: any, handler?: any): this; - trigger(type: any, ...args: any[]): this; - triggerWith(type: any, context: any, args: any): this; - hasHandlers(type: any): any; - } -} - -declare module '@fullcalendar/core/datelib/date-range' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateEnv, DateInput } from '@fullcalendar/core/datelib/env'; - export interface DateRangeInput { - start?: DateInput; - end?: DateInput; - } - export interface OpenDateRange { - start: DateMarker | null; - end: DateMarker | null; - } - export interface DateRange { - start: DateMarker; - end: DateMarker; - } - export function parseRange(input: DateRangeInput, dateEnv: DateEnv): OpenDateRange; - export function invertRanges(ranges: DateRange[], constraintRange: DateRange): DateRange[]; - export function intersectRanges(range0: OpenDateRange, range1: OpenDateRange): OpenDateRange; - export function rangesEqual(range0: OpenDateRange, range1: OpenDateRange): boolean; - export function rangesIntersect(range0: OpenDateRange, range1: OpenDateRange): boolean; - export function rangeContainsRange(outerRange: OpenDateRange, innerRange: OpenDateRange): boolean; - export function rangeContainsMarker(range: OpenDateRange, date: DateMarker | number): boolean; - export function constrainMarkerToRange(date: DateMarker, range: DateRange): DateMarker; -} - -declare module '@fullcalendar/core/common/Mixin' { - export { Mixin as default, Mixin }; - class Mixin { - static mixInto(destClass: any): void; - static mixIntoObj(destObj: any): void; - static mixOver(destClass: any): void; - } -} - -declare module '@fullcalendar/core/common/PositionCache' { - export { PositionCache as default, PositionCache }; - class PositionCache { - originClientRect: ClientRect; - els: HTMLElement[]; - originEl: HTMLElement; - isHorizontal: boolean; - isVertical: boolean; - lefts: any; - rights: any; - tops: any; - bottoms: any; - constructor(originEl: HTMLElement, els: HTMLElement[], isHorizontal: boolean, isVertical: boolean); - build(): void; - buildElHorizontals(originClientLeft: number): void; - buildElVerticals(originClientTop: number): void; - leftToIndex(leftPosition: number): any; - topToIndex(topPosition: number): any; - getWidth(leftIndex: number): number; - getHeight(topIndex: number): number; - } -} - -declare module '@fullcalendar/core/common/ScrollComponent' { - import { ElementScrollController } from '@fullcalendar/core/common/scroll-controller'; - export interface ScrollbarWidths { - left: number; - right: number; - bottom: number; - } - export { ScrollComponent as default, ScrollComponent }; - class ScrollComponent extends ElementScrollController { - overflowX: string; - overflowY: string; - constructor(overflowX: string, overflowY: string); - clear(): void; - destroy(): void; - applyOverflow(): void; - lockOverflow(scrollbarWidths: ScrollbarWidths): void; - setHeight(height: number | string): void; - getScrollbarWidths(): ScrollbarWidths; - } -} - -declare module '@fullcalendar/core/common/scroll-controller' { - export abstract class ScrollController { - abstract getScrollTop(): number; - abstract getScrollLeft(): number; - abstract setScrollTop(top: number): void; - abstract setScrollLeft(left: number): void; - abstract getClientWidth(): number; - abstract getClientHeight(): number; - abstract getScrollWidth(): number; - abstract getScrollHeight(): number; - getMaxScrollTop(): number; - getMaxScrollLeft(): number; - canScrollVertically(): boolean; - canScrollHorizontally(): boolean; - canScrollUp(): boolean; - canScrollDown(): boolean; - canScrollLeft(): boolean; - canScrollRight(): boolean; - } - export class ElementScrollController extends ScrollController { - el: HTMLElement; - constructor(el: HTMLElement); - getScrollTop(): number; - getScrollLeft(): number; - setScrollTop(top: number): void; - setScrollLeft(left: number): void; - getScrollWidth(): number; - getScrollHeight(): number; - getClientHeight(): number; - getClientWidth(): number; - } - export class WindowScrollController extends ScrollController { - getScrollTop(): number; - getScrollLeft(): number; - setScrollTop(n: number): void; - setScrollLeft(n: number): void; - getScrollWidth(): number; - getScrollHeight(): number; - getClientHeight(): number; - getClientWidth(): number; - } -} - -declare module '@fullcalendar/core/theme/Theme' { - export { Theme as default, Theme }; - class Theme { - calendarOptions: any; - classes: any; - iconClasses: any; - baseIconClass: string; - iconOverrideOption: any; - iconOverrideCustomButtonOption: any; - iconOverridePrefix: string; - constructor(calendarOptions: any); - processIconOverride(): void; - setIconOverride(iconOverrideHash: any): void; - applyIconOverridePrefix(className: any): any; - getClass(key: any): any; - getIconClass(buttonName: any): string; - getCustomButtonIconClass(customButtonProps: any): string; - } - export type ThemeClass = { - new (calendarOptions: any): Theme; - }; -} - -declare module '@fullcalendar/core/component/Component' { - import Calendar from '@fullcalendar/core/Calendar'; - import View from '@fullcalendar/core/View'; - import Theme from '@fullcalendar/core/theme/Theme'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - export interface ComponentContext { - options: any; - dateEnv: DateEnv; - theme: Theme; - calendar: Calendar; - view: View; - } - export type EqualityFuncHash = { - [propName: string]: (obj0: any, obj1: any) => boolean; - }; - export { Component as default, Component }; - class Component { - equalityFuncs: EqualityFuncHash; - uid: string; - props: PropsType | null; - context: ComponentContext; - dateEnv: DateEnv; - theme: Theme; - view: View; - calendar: Calendar; - isRtl: boolean; - constructor(context: ComponentContext, isView?: boolean); - static addEqualityFuncs(newFuncs: EqualityFuncHash): void; - opt(name: any): any; - receiveProps(props: PropsType): void; - protected render(props: PropsType): void; - destroy(): void; - } -} - -declare module '@fullcalendar/core/component/DateComponent' { - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - import { EventRenderRange } from '@fullcalendar/core/component/event-rendering'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { EventInstanceHash } from '@fullcalendar/core/structs/event'; - import { Hit } from '@fullcalendar/core/interactions/hit'; - import FgEventRenderer from '@fullcalendar/core/component/renderers/FgEventRenderer'; - import FillRenderer from '@fullcalendar/core/component/renderers/FillRenderer'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { EventHandlerName, EventHandlerArgs } from '@fullcalendar/core/types/input-types'; - export type DateComponentHash = { - [uid: string]: DateComponent; - }; - export interface Seg { - component?: DateComponent; - isStart: boolean; - isEnd: boolean; - eventRange?: EventRenderRange; - el?: HTMLElement; - [otherProp: string]: any; - } - export interface EventSegUiInteractionState { - affectedInstances: EventInstanceHash; - segs: Seg[]; - isEvent: boolean; - sourceSeg: any; - } - export { DateComponent as default, DateComponent }; - class DateComponent extends Component { - fgSegSelector: string; - bgSegSelector: string; - largeUnit: any; - eventRenderer: FgEventRenderer; - mirrorRenderer: FgEventRenderer; - fillRenderer: FillRenderer; - el: HTMLElement; - constructor(context: ComponentContext, el: HTMLElement, isView?: boolean); - destroy(): void; - buildPositionCaches(): void; - queryHit(positionLeft: number, positionTop: number, elWidth: number, elHeight: number): Hit | null; - isInteractionValid(interaction: EventInteractionState): boolean; - isDateSelectionValid(selection: DateSpan): boolean; - publiclyTrigger(name: T, args?: EventHandlerArgs): any; - publiclyTriggerAfterSizing(name: T, args: EventHandlerArgs): void; - hasPublicHandlers(name: T): boolean; - triggerRenderedSegs(segs: Seg[], isMirrors: boolean): void; - triggerWillRemoveSegs(segs: Seg[], isMirrors: boolean): void; - isValidSegDownEl(el: HTMLElement): boolean; - isValidDateDownEl(el: HTMLElement): boolean; - isPopover(): boolean; - isInPopover(el: HTMLElement): boolean; - } -} - -declare module '@fullcalendar/core/Calendar' { - import { EmitterInterface } from '@fullcalendar/core/common/EmitterMixin'; - import OptionsManager from '@fullcalendar/core/OptionsManager'; - import View from '@fullcalendar/core/View'; - import Theme from '@fullcalendar/core/theme/Theme'; - import { OptionsInput, EventHandlerName, EventHandlerArgs } from '@fullcalendar/core/types/input-types'; - import { RawLocaleMap } from '@fullcalendar/core/datelib/locale'; - import { DateEnv, DateInput } from '@fullcalendar/core/datelib/env'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Duration, DurationInput } from '@fullcalendar/core/datelib/duration'; - import { DateSpan, DateSpanApi, DatePointApi } from '@fullcalendar/core/structs/date-span'; - import { DateRangeInput } from '@fullcalendar/core/datelib/date-range'; - import DateProfileGenerator from '@fullcalendar/core/DateProfileGenerator'; - import { EventSourceInput } from '@fullcalendar/core/structs/event-source'; - import { EventInput } from '@fullcalendar/core/structs/event'; - import { CalendarState, Action } from '@fullcalendar/core/reducers/types'; - import EventSourceApi from '@fullcalendar/core/api/EventSourceApi'; - import EventApi from '@fullcalendar/core/api/EventApi'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventUiHash, EventUi } from '@fullcalendar/core/component/event-ui'; - import { ViewSpecHash, ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import { PluginSystem } from '@fullcalendar/core/plugin-system'; - import CalendarComponent from '@fullcalendar/core/CalendarComponent'; - import DateComponent from '@fullcalendar/core/component/DateComponent'; - import { PointerDragEvent } from '@fullcalendar/core/interactions/pointer'; - import { InteractionSettingsInput, Interaction } from '@fullcalendar/core/interactions/interaction'; - export interface DateClickApi extends DatePointApi { - dayEl: HTMLElement; - jsEvent: UIEvent; - view: View; - } - export interface DateSelectionApi extends DateSpanApi { - jsEvent: UIEvent; - view: View; - } - export type DatePointTransform = (dateSpan: DateSpan, calendar: Calendar) => any; - export type DateSpanTransform = (dateSpan: DateSpan, calendar: Calendar) => any; - export type CalendarInteraction = { - destroy(): any; - }; - export type CalendarInteractionClass = { - new (calendar: Calendar): CalendarInteraction; - }; - export type OptionChangeHandler = (propValue: any, calendar: Calendar, deepEqual: any) => void; - export type OptionChangeHandlerMap = { - [propName: string]: OptionChangeHandler; - }; - export { Calendar as default, Calendar }; - class Calendar { - static on: EmitterInterface['on']; - static off: EmitterInterface['off']; - static trigger: EmitterInterface['trigger']; - on: EmitterInterface['on']; - one: EmitterInterface['one']; - off: EmitterInterface['off']; - trigger: EmitterInterface['trigger']; - triggerWith: EmitterInterface['triggerWith']; - hasHandlers: EmitterInterface['hasHandlers']; - eventUiBases: EventUiHash; - selectionConfig: EventUi; - optionsManager: OptionsManager; - viewSpecs: ViewSpecHash; - dateProfileGenerators: { - [viewName: string]: DateProfileGenerator; - }; - theme: Theme; - dateEnv: DateEnv; - availableRawLocales: RawLocaleMap; - pluginSystem: PluginSystem; - defaultAllDayEventDuration: Duration; - defaultTimedEventDuration: Duration; - calendarInteractions: CalendarInteraction[]; - interactionsStore: { - [componentUid: string]: Interaction[]; - }; - removeNavLinkListener: any; - windowResizeProxy: any; - isHandlingWindowResize: boolean; - state: CalendarState; - actionQueue: any[]; - isReducing: boolean; - needsRerender: boolean; - needsFullRerender: boolean; - isRendering: boolean; - renderingPauseDepth: number; - renderableEventStore: EventStore; - buildDelayedRerender: typeof buildDelayedRerender; - delayedRerender: any; - afterSizingTriggers: any; - isViewUpdated: boolean; - isDatesUpdated: boolean; - isEventsUpdated: boolean; - el: HTMLElement; - component: CalendarComponent; - constructor(el: HTMLElement, overrides?: OptionsInput); - addPluginInputs(pluginInputs: any): void; - readonly view: View; - render(): void; - destroy(): void; - bindHandlers(): void; - unbindHandlers(): void; - hydrate(): void; - buildInitialState(): CalendarState; - reduce(state: CalendarState, action: Action, calendar: Calendar): CalendarState; - requestRerender(needsFull?: boolean): void; - tryRerender(): void; - batchRendering(func: any): void; - executeRender(): void; - renderComponent(needsFull: any): void; - setOption(name: string, val: any): void; - getOption(name: string): any; - opt(name: string): any; - viewOpt(name: string): any; - viewOpts(): any; - mutateOptions(updates: any, removals: string[], isDynamic?: boolean, deepEqual?: any): void; - handleOptions(options: any): void; - getAvailableLocaleCodes(): string[]; - _buildSelectionConfig(rawOpts: any): EventUi; - _buildEventUiSingleBase(rawOpts: any): EventUi; - hasPublicHandlers(name: T): boolean; - publiclyTrigger(name: T, args?: EventHandlerArgs): any; - publiclyTriggerAfterSizing(name: T, args: EventHandlerArgs): void; - releaseAfterSizingTriggers(): void; - isValidViewType(viewType: string): boolean; - changeView(viewType: string, dateOrRange?: DateRangeInput | DateInput): void; - zoomTo(dateMarker: DateMarker, viewType?: string): void; - getUnitViewSpec(unit: string): ViewSpec | null; - getInitialDate(): Date; - prev(): void; - next(): void; - prevYear(): void; - nextYear(): void; - today(): void; - gotoDate(zonedDateInput: any): void; - incrementDate(deltaInput: any): void; - getDate(): Date; - formatDate(d: DateInput, formatter: any): string; - formatRange(d0: DateInput, d1: DateInput, settings: any): any; - formatIso(d: DateInput, omitTime?: boolean): string; - windowResize(ev: Event): void; - updateSize(): void; - registerInteractiveComponent(component: DateComponent, settingsInput: InteractionSettingsInput): void; - unregisterInteractiveComponent(component: DateComponent): void; - select(dateOrObj: DateInput | any, endDate?: DateInput): void; - unselect(pev?: PointerDragEvent): void; - triggerDateSelect(selection: DateSpan, pev?: PointerDragEvent): void; - triggerDateUnselect(pev?: PointerDragEvent): void; - triggerDateClick(dateSpan: DateSpan, dayEl: HTMLElement, view: View, ev: UIEvent): void; - buildDatePointApi(dateSpan: DateSpan): import("@fullcalendar/core/structs/date-span").DatePointApi; - buildDateSpanApi(dateSpan: DateSpan): import("@fullcalendar/core/structs/date-span").DateSpanApi; - getNow(): DateMarker; - getDefaultEventEnd(allDay: boolean, marker: DateMarker): DateMarker; - addEvent(eventInput: EventInput, sourceInput?: EventSourceApi | string | number): EventApi | null; - getEventById(id: string): EventApi | null; - getEvents(): EventApi[]; - removeAllEvents(): void; - rerenderEvents(): void; - getEventSources(): EventSourceApi[]; - getEventSourceById(id: string | number): EventSourceApi | null; - addEventSource(sourceInput: EventSourceInput): EventSourceApi; - removeAllEventSources(): void; - refetchEvents(): void; - scrollToTime(timeInput: DurationInput): void; - } - function buildDelayedRerender(this: Calendar, wait: any): any; - export {}; -} - -declare module '@fullcalendar/core/View' { - import DateProfileGenerator, { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { EmitterInterface } from '@fullcalendar/core/common/EmitterMixin'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - import DateComponent from '@fullcalendar/core/component/DateComponent'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventUiHash, EventUi } from '@fullcalendar/core/component/event-ui'; - import { EventRenderRange } from '@fullcalendar/core/component/event-rendering'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { EventDef } from '@fullcalendar/core/structs/event'; - export interface ViewProps { - dateProfile: DateProfile; - businessHours: EventStore; - eventStore: EventStore; - eventUiBases: EventUiHash; - dateSelection: DateSpan | null; - eventSelection: string; - eventDrag: EventInteractionState | null; - eventResize: EventInteractionState | null; - } - export { View as default, View }; - abstract class View extends DateComponent { - usesMinMaxTime: boolean; - dateProfileGeneratorClass: any; - on: EmitterInterface['on']; - one: EmitterInterface['one']; - off: EmitterInterface['off']; - trigger: EmitterInterface['trigger']; - triggerWith: EmitterInterface['triggerWith']; - hasHandlers: EmitterInterface['hasHandlers']; - viewSpec: ViewSpec; - dateProfileGenerator: DateProfileGenerator; - type: string; - title: string; - queuedScroll: any; - eventOrderSpecs: any; - nextDayThreshold: Duration; - isNowIndicatorRendered: boolean; - initialNowDate: DateMarker; - initialNowQueriedMs: number; - nowIndicatorTimeoutID: any; - nowIndicatorIntervalID: any; - constructor(context: ComponentContext, viewSpec: ViewSpec, dateProfileGenerator: DateProfileGenerator, parentEl: HTMLElement); - initialize(): void; - readonly activeStart: Date; - readonly activeEnd: Date; - readonly currentStart: Date; - readonly currentEnd: Date; - render(props: ViewProps): void; - destroy(): void; - updateSize(isResize: boolean, viewHeight: number, isAuto: boolean): void; - updateBaseSize(isResize: boolean, viewHeight: number, isAuto: boolean): void; - renderDatesWrap(dateProfile: DateProfile): void; - unrenderDatesWrap(): void; - renderDates(dateProfile: DateProfile): void; - unrenderDates(): void; - renderBusinessHours(businessHours: EventStore): void; - unrenderBusinessHours(): void; - renderDateSelectionWrap(selection: DateSpan): void; - unrenderDateSelectionWrap(selection: DateSpan): void; - renderDateSelection(selection: DateSpan): void; - unrenderDateSelection(selection: DateSpan): void; - renderEvents(eventStore: EventStore): void; - unrenderEvents(): void; - sliceEvents(eventStore: EventStore, allDay: boolean): EventRenderRange[]; - computeEventDraggable(eventDef: EventDef, eventUi: EventUi): boolean; - computeEventStartResizable(eventDef: EventDef, eventUi: EventUi): any; - computeEventEndResizable(eventDef: EventDef, eventUi: EventUi): boolean; - renderEventSelectionWrap(instanceId: string): void; - unrenderEventSelectionWrap(instanceId: string): void; - renderEventSelection(instanceId: string): void; - unrenderEventSelection(instanceId: string): void; - renderEventDragWrap(state: EventInteractionState): void; - unrenderEventDragWrap(state: EventInteractionState): void; - renderEventDrag(state: EventInteractionState): void; - unrenderEventDrag(state: EventInteractionState): void; - renderEventResizeWrap(state: EventInteractionState): void; - unrenderEventResizeWrap(state: EventInteractionState): void; - renderEventResize(state: EventInteractionState): void; - unrenderEventResize(state: EventInteractionState): void; - startNowIndicator(dateProfile: DateProfile): void; - updateNowIndicator(): void; - stopNowIndicator(): void; - getNowIndicatorUnit(dateProfile: DateProfile): void; - renderNowIndicator(date: any): void; - unrenderNowIndicator(): void; - addScroll(scroll: any): void; - popScroll(isResize: boolean): void; - applyQueuedScroll(isResize: boolean): void; - queryScroll(): any; - applyScroll(scroll: any, isResize: boolean): void; - computeDateScroll(duration: Duration): {}; - queryDateScroll(): {}; - applyDateScroll(scroll: any): void; - scrollToDuration(duration: Duration): void; - } -} - -declare module '@fullcalendar/core/component/renderers/FgEventRenderer' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateFormatter } from '@fullcalendar/core/datelib/formatting'; - import { EventUi } from '@fullcalendar/core/component/event-ui'; - import { EventRenderRange } from '@fullcalendar/core/component/event-rendering'; - import { Seg } from '@fullcalendar/core/component/DateComponent'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - export { FgEventRenderer as default, FgEventRenderer }; - abstract class FgEventRenderer { - context: ComponentContext; - eventTimeFormat: DateFormatter; - displayEventTime: boolean; - displayEventEnd: boolean; - segs: Seg[]; - isSizeDirty: boolean; - constructor(context: ComponentContext); - renderSegs(segs: Seg[], mirrorInfo?: any): void; - unrender(_segs: Seg[], mirrorInfo?: any): void; - abstract renderSegHtml(seg: Seg, mirrorInfo: any): string; - abstract attachSegs(segs: Seg[], mirrorInfo: any): any; - abstract detachSegs(segs: Seg[]): any; - rangeUpdated(): void; - renderSegEls(segs: Seg[], mirrorInfo: any): Seg[]; - getSegClasses(seg: Seg, isDraggable: any, isResizable: any, mirrorInfo: any): string[]; - getTimeText(eventRange: EventRenderRange, formatter?: any, displayEnd?: any): any; - _getTimeText(start: DateMarker, end: DateMarker, allDay: any, formatter?: any, displayEnd?: any, forcedStartTzo?: number, forcedEndTzo?: number): any; - computeEventTimeFormat(): any; - computeDisplayEventTime(): boolean; - computeDisplayEventEnd(): boolean; - getSkinCss(ui: EventUi): { - 'background-color': string; - 'border-color': string; - color: string; - }; - sortEventSegs(segs: any): Seg[]; - computeSizes(force: boolean): void; - assignSizes(force: boolean): void; - computeSegSizes(segs: Seg[]): void; - assignSegSizes(segs: Seg[]): void; - hideByHash(hash: any): void; - showByHash(hash: any): void; - selectByInstanceId(instanceId: string): void; - unselectByInstanceId(instanceId: string): void; - } - export function buildSegCompareObj(seg: Seg): any; -} - -declare module '@fullcalendar/core/component/renderers/FillRenderer' { - import { Seg } from '@fullcalendar/core/component/DateComponent'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - export { FillRenderer as default, FillRenderer }; - abstract class FillRenderer { - context: ComponentContext; - fillSegTag: string; - containerElsByType: any; - segsByType: any; - dirtySizeFlags: any; - constructor(context: ComponentContext); - getSegsByType(type: string): any; - renderSegs(type: any, segs: Seg[]): void; - unrender(type: any): void; - renderSegEls(type: any, segs: Seg[]): Seg[]; - renderSegHtml(type: any, seg: Seg): string; - abstract attachSegs(type: any, segs: Seg[]): HTMLElement[] | void; - detachSegs(type: any, segs: Seg[]): void; - computeSizes(force: boolean): void; - assignSizes(force: boolean): void; - computeSegSizes(segs: Seg[]): void; - assignSegSizes(segs: Seg[]): void; - } -} - -declare module '@fullcalendar/core/DateProfileGenerator' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateRange, OpenDateRange } from '@fullcalendar/core/datelib/date-range'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - import Calendar from '@fullcalendar/core/Calendar'; - export interface DateProfile { - currentRange: DateRange; - currentRangeUnit: string; - isRangeAllDay: boolean; - validRange: OpenDateRange; - activeRange: DateRange; - renderRange: DateRange; - minTime: Duration; - maxTime: Duration; - isValid: boolean; - dateIncrement: Duration; - } - export { DateProfileGenerator as default, DateProfileGenerator }; - class DateProfileGenerator { - viewSpec: ViewSpec; - options: any; - dateEnv: DateEnv; - calendar: Calendar; - isHiddenDayHash: boolean[]; - constructor(viewSpec: ViewSpec, calendar: Calendar); - buildPrev(currentDateProfile: DateProfile, currentDate: DateMarker): DateProfile; - buildNext(currentDateProfile: DateProfile, currentDate: DateMarker): DateProfile; - build(currentDate: DateMarker, direction?: any, forceToValid?: boolean): DateProfile; - buildValidRange(): OpenDateRange; - buildCurrentRangeInfo(date: DateMarker, direction: any): { - duration: any; - unit: any; - range: any; - }; - getFallbackDuration(): Duration; - adjustActiveRange(range: DateRange, minTime: Duration, maxTime: Duration): { - start: Date; - end: Date; - }; - buildRangeFromDuration(date: DateMarker, direction: any, duration: Duration, unit: any): any; - buildRangeFromDayCount(date: DateMarker, direction: any, dayCount: any): { - start: Date; - end: Date; - }; - buildCustomVisibleRange(date: DateMarker): OpenDateRange; - buildRenderRange(currentRange: DateRange, currentRangeUnit: any, isRangeAllDay: any): DateRange; - buildDateIncrement(fallback: any): Duration; - getRangeOption(name: any, ...otherArgs: any[]): OpenDateRange; - initHiddenDays(): void; - trimHiddenDays(range: DateRange): DateRange | null; - isHiddenDay(day: any): boolean; - skipHiddenDays(date: DateMarker, inc?: number, isExclusive?: boolean): Date; - } - export function isDateProfilesEqual(p0: DateProfile, p1: DateProfile): boolean; -} - -declare module '@fullcalendar/core/structs/view-def' { - import { ViewClass, ViewConfigHash } from '@fullcalendar/core/structs/view-config'; - export interface ViewDef { - type: string; - class: ViewClass; - overrides: any; - defaults: any; - } - export type ViewDefHash = { - [viewType: string]: ViewDef; - }; - export function compileViewDefs(defaultConfigs: ViewConfigHash, overrideConfigs: ViewConfigHash): ViewDefHash; -} - -declare module '@fullcalendar/core/structs/view-spec' { - import { Duration } from '@fullcalendar/core/datelib/duration'; - import OptionsManager from '@fullcalendar/core/OptionsManager'; - import { ViewConfigInputHash, ViewClass } from '@fullcalendar/core/structs/view-config'; - export interface ViewSpec { - type: string; - class: ViewClass; - duration: Duration; - durationUnit: string; - singleUnit: string; - options: any; - buttonTextOverride: string; - buttonTextDefault: string; - } - export type ViewSpecHash = { - [viewType: string]: ViewSpec; - }; - export function buildViewSpecs(defaultInputs: ViewConfigInputHash, optionsManager: OptionsManager): ViewSpecHash; -} - -declare module '@fullcalendar/core/structs/date-span' { - import { DateRange, OpenDateRange } from '@fullcalendar/core/datelib/date-range'; - import { DateInput, DateEnv } from '@fullcalendar/core/datelib/env'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { EventRenderRange } from '@fullcalendar/core/component/event-rendering'; - import { EventUiHash } from '@fullcalendar/core/component/event-ui'; - import Calendar from '@fullcalendar/core/Calendar'; - export interface OpenDateSpanInput { - start?: DateInput; - end?: DateInput; - allDay?: boolean; - [otherProp: string]: any; - } - export interface DateSpanInput extends OpenDateSpanInput { - start: DateInput; - end: DateInput; - } - export interface OpenDateSpan { - range: OpenDateRange; - allDay: boolean; - [otherProp: string]: any; - } - export interface DateSpan extends OpenDateSpan { - range: DateRange; - } - export interface DateSpanApi { - start: Date; - end: Date; - startStr: string; - endStr: string; - allDay: boolean; - } - export interface DatePointApi { - date: Date; - dateStr: string; - allDay: boolean; - } - export function parseDateSpan(raw: DateSpanInput, dateEnv: DateEnv, defaultDuration?: Duration): DateSpan | null; - export function parseOpenDateSpan(raw: OpenDateSpanInput, dateEnv: DateEnv): OpenDateSpan | null; - export function isDateSpansEqual(span0: DateSpan, span1: DateSpan): boolean; - export function buildDateSpanApi(span: DateSpan, dateEnv: DateEnv): DateSpanApi; - export function buildDatePointApi(span: DateSpan, dateEnv: DateEnv): DatePointApi; - export function fabricateEventRange(dateSpan: DateSpan, eventUiBases: EventUiHash, calendar: Calendar): EventRenderRange; -} - -declare module '@fullcalendar/core/datelib/marker' { - import { Duration } from '@fullcalendar/core/datelib/duration'; - export type DateMarker = Date; - export const DAY_IDS: string[]; - export function addWeeks(m: DateMarker, n: number): Date; - export function addDays(m: DateMarker, n: number): Date; - export function addMs(m: DateMarker, n: number): Date; - export function diffWeeks(m0: any, m1: any): number; - export function diffDays(m0: any, m1: any): number; - export function diffHours(m0: any, m1: any): number; - export function diffMinutes(m0: any, m1: any): number; - export function diffSeconds(m0: any, m1: any): number; - export function diffDayAndTime(m0: DateMarker, m1: DateMarker): Duration; - export function diffWholeWeeks(m0: DateMarker, m1: DateMarker): number; - export function diffWholeDays(m0: DateMarker, m1: DateMarker): number; - export function startOfDay(m: DateMarker): DateMarker; - export function startOfHour(m: DateMarker): Date; - export function startOfMinute(m: DateMarker): Date; - export function startOfSecond(m: DateMarker): Date; - export function weekOfYear(marker: any, dow: any, doy: any): number; - export function dateToLocalArray(date: any): any[]; - export function arrayToLocalDate(a: any): Date; - export function dateToUtcArray(date: any): any[]; - export function arrayToUtcDate(a: any): Date; - export function isValidDate(m: DateMarker): boolean; - export function timeAsMs(m: DateMarker): number; -} - -declare module '@fullcalendar/core/datelib/duration' { - export type DurationInput = DurationObjectInput | string | number; - export interface DurationObjectInput { - years?: number; - year?: number; - months?: number; - month?: number; - weeks?: number; - week?: number; - days?: number; - day?: number; - hours?: number; - hour?: number; - minutes?: number; - minute?: number; - seconds?: number; - second?: number; - milliseconds?: number; - millisecond?: number; - ms?: number; - } - export interface Duration { - years: number; - months: number; - days: number; - milliseconds: number; - } - export function createDuration(input: DurationInput, unit?: string): Duration | null; - export function getWeeksFromInput(obj: DurationObjectInput): number; - export function durationsEqual(d0: Duration, d1: Duration): boolean; - export function isSingleDay(dur: Duration): boolean; - export function addDurations(d0: Duration, d1: Duration): { - years: number; - months: number; - days: number; - milliseconds: number; - }; - export function subtractDurations(d1: Duration, d0: Duration): Duration; - export function multiplyDuration(d: Duration, n: number): { - years: number; - months: number; - days: number; - milliseconds: number; - }; - export function asRoughYears(dur: Duration): number; - export function asRoughMonths(dur: Duration): number; - export function asRoughDays(dur: Duration): number; - export function asRoughHours(dur: Duration): number; - export function asRoughMinutes(dur: Duration): number; - export function asRoughSeconds(dur: Duration): number; - export function asRoughMs(dur: Duration): number; - export function wholeDivideDurations(numerator: Duration, denominator: Duration): number; - export function greatestDurationDenominator(dur: Duration, dontReturnWeeks?: boolean): { - unit: string; - value: number; - }; -} - -declare module '@fullcalendar/core/datelib/env' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { CalendarSystem } from '@fullcalendar/core/datelib/calendar-system'; - import { Locale } from '@fullcalendar/core/datelib/locale'; - import { NamedTimeZoneImpl, NamedTimeZoneImplClass } from '@fullcalendar/core/datelib/timezone'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateFormatter } from '@fullcalendar/core/datelib/formatting'; - import { CmdFormatterFunc } from '@fullcalendar/core/datelib/formatting-cmd'; - export interface DateEnvSettings { - timeZone: string; - namedTimeZoneImpl?: NamedTimeZoneImplClass; - calendarSystem: string; - locale: Locale; - weekNumberCalculation?: any; - firstDay?: any; - weekLabel?: string; - cmdFormatter?: CmdFormatterFunc; - } - export type DateInput = Date | string | number | number[]; - export interface DateMarkerMeta { - marker: DateMarker; - isTimeUnspecified: boolean; - forcedTzo: number | null; - } - export class DateEnv { - timeZone: string; - namedTimeZoneImpl: NamedTimeZoneImpl; - canComputeOffset: boolean; - calendarSystem: CalendarSystem; - locale: Locale; - weekDow: number; - weekDoy: number; - weekNumberFunc: any; - weekLabel: string; - cmdFormatter?: CmdFormatterFunc; - constructor(settings: DateEnvSettings); - createMarker(input: DateInput): DateMarker; - createNowMarker(): DateMarker; - createMarkerMeta(input: DateInput): DateMarkerMeta; - parse(s: string): { - marker: Date; - isTimeUnspecified: boolean; - forcedTzo: any; - }; - getYear(marker: DateMarker): number; - getMonth(marker: DateMarker): number; - add(marker: DateMarker, dur: Duration): DateMarker; - subtract(marker: DateMarker, dur: Duration): DateMarker; - addYears(marker: DateMarker, n: number): Date; - addMonths(marker: DateMarker, n: number): Date; - diffWholeYears(m0: DateMarker, m1: DateMarker): number; - diffWholeMonths(m0: DateMarker, m1: DateMarker): number; - greatestWholeUnit(m0: DateMarker, m1: DateMarker): { - unit: string; - value: number; - }; - countDurationsBetween(m0: DateMarker, m1: DateMarker, d: Duration): number; - startOf(m: DateMarker, unit: string): Date; - startOfYear(m: DateMarker): DateMarker; - startOfMonth(m: DateMarker): DateMarker; - startOfWeek(m: DateMarker): DateMarker; - computeWeekNumber(marker: DateMarker): number; - format(marker: DateMarker, formatter: DateFormatter, dateOptions?: { - forcedTzo?: number; - }): any; - formatRange(start: DateMarker, end: DateMarker, formatter: DateFormatter, dateOptions?: { - forcedStartTzo?: number; - forcedEndTzo?: number; - isEndExclusive?: boolean; - }): any; - formatIso(marker: DateMarker, extraOptions?: any): string; - timestampToMarker(ms: number): Date; - offsetForMarker(m: DateMarker): number; - toDate(m: DateMarker, forcedTzo?: number): Date; - } -} - -declare module '@fullcalendar/core/datelib/formatting' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { CalendarSystem } from '@fullcalendar/core/datelib/calendar-system'; - import { Locale } from '@fullcalendar/core/datelib/locale'; - import { CmdFormatterFunc } from '@fullcalendar/core/datelib/formatting-cmd'; - import { FuncFormatterFunc } from '@fullcalendar/core/datelib/formatting-func'; - export interface ZonedMarker { - marker: DateMarker; - timeZoneOffset: number; - } - export interface ExpandedZonedMarker extends ZonedMarker { - array: number[]; - year: number; - month: number; - day: number; - hour: number; - minute: number; - second: number; - millisecond: number; - } - export interface VerboseFormattingArg { - date: ExpandedZonedMarker; - start: ExpandedZonedMarker; - end?: ExpandedZonedMarker; - timeZone: string; - localeCodes: string[]; - separator: string; - } - export interface DateFormattingContext { - timeZone: string; - locale: Locale; - calendarSystem: CalendarSystem; - computeWeekNumber: (d: DateMarker) => number; - weekLabel: string; - cmdFormatter?: CmdFormatterFunc; - } - export interface DateFormatter { - format(date: ZonedMarker, context: DateFormattingContext): any; - formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext): any; - } - export type FormatterInput = object | string | FuncFormatterFunc; - export function createFormatter(input: FormatterInput, defaultSeparator?: string): DateFormatter; - export function buildIsoString(marker: DateMarker, timeZoneOffset?: number, stripZeroTime?: boolean): string; - export function formatIsoTimeString(marker: DateMarker): string; - export function formatTimeZoneOffset(minutes: number, doIso?: boolean): string; - export function createVerboseFormattingArg(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext, separator?: string): VerboseFormattingArg; -} - -declare module '@fullcalendar/core/datelib/timezone' { - export abstract class NamedTimeZoneImpl { - timeZoneName: string; - constructor(timeZoneName: string); - abstract offsetForArray(a: number[]): number; - abstract timestampToArray(ms: number): number[]; - } - export type NamedTimeZoneImplClass = { - new (timeZoneName: string): NamedTimeZoneImpl; - }; -} - -declare module '@fullcalendar/core/datelib/parsing' { - export function parse(str: any): { - marker: Date; - isTimeUnspecified: boolean; - timeZoneOffset: any; - }; -} - -declare module '@fullcalendar/core/structs/event-source' { - import { EventInput } from '@fullcalendar/core/structs/event'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { EventSourceFunc } from '@fullcalendar/core/event-sources/func-event-source'; - import { EventUi } from '@fullcalendar/core/component/event-ui'; - import { ConstraintInput, AllowFunc } from '@fullcalendar/core/validation'; - export type EventSourceError = { - message: string; - response?: any; - [otherProp: string]: any; - }; - export type EventInputTransformer = (eventInput: EventInput) => EventInput | null; - export type EventSourceSuccessResponseHandler = (rawData: any, response: any) => EventInput[] | void; - export type EventSourceErrorResponseHandler = (error: EventSourceError) => void; - export interface ExtendedEventSourceInput { - id?: string | number; - allDayDefault?: boolean; - eventDataTransform?: EventInputTransformer; - events?: EventInput[] | EventSourceFunc; - url?: string; - method?: string; - extraParams?: object | (() => object); - startParam?: string; - endParam?: string; - timeZoneParam?: string; - success?: EventSourceSuccessResponseHandler; - failure?: EventSourceErrorResponseHandler; - editable?: boolean; - startEditable?: boolean; - durationEditable?: boolean; - constraint?: ConstraintInput; - overlap?: boolean; - allow?: AllowFunc; - className?: string[] | string; - classNames?: string[] | string; - backgroundColor?: string; - borderColor?: string; - textColor?: string; - color?: string; - [otherProp: string]: any; - } - export type EventSourceInput = ExtendedEventSourceInput | // object in extended form - EventSourceFunc | // just a function - string; - export interface EventSource { - _raw: any; - sourceId: string; - sourceDefId: number; - meta: any; - publicId: string; - isFetching: boolean; - latestFetchId: string; - fetchRange: DateRange | null; - allDayDefault: boolean | null; - eventDataTransform: EventInputTransformer; - ui: EventUi; - success: EventSourceSuccessResponseHandler | null; - failure: EventSourceErrorResponseHandler | null; - extendedProps: any; - } - export type EventSourceHash = { - [sourceId: string]: EventSource; - }; - export type EventSourceFetcher = (arg: { - eventSource: EventSource; - calendar: Calendar; - range: DateRange; - }, success: (res: { - rawEvents: EventInput[]; - xhr?: XMLHttpRequest; - }) => void, failure: (error: EventSourceError) => void) => (void | PromiseLike); - export interface EventSourceDef { - ignoreRange?: boolean; - parseMeta: (raw: EventSourceInput) => object | null; - fetch: EventSourceFetcher; - } - export function doesSourceNeedRange(eventSource: EventSource, calendar: Calendar): boolean; - export function parseEventSource(raw: EventSourceInput, calendar: Calendar): EventSource | null; -} - -declare module '@fullcalendar/core/interactions/interaction' { - import DateComponent from '@fullcalendar/core/component/DateComponent'; - export abstract class Interaction { - component: DateComponent; - constructor(settings: InteractionSettings); - destroy(): void; - } - export type InteractionClass = { - new (settings: InteractionSettings): Interaction; - }; - export interface InteractionSettingsInput { - el: HTMLElement; - useEventCenter?: boolean; - } - export interface InteractionSettings { - component: DateComponent; - el: HTMLElement; - useEventCenter: boolean; - } - export type InteractionSettingsStore = { - [componenUid: string]: InteractionSettings; - }; - export function parseInteractionSettings(component: DateComponent, input: InteractionSettingsInput): InteractionSettings; - export function interactionSettingsToStore(settings: InteractionSettings): { - [x: string]: InteractionSettings; - }; - export let interactionSettingsStore: InteractionSettingsStore; -} - -declare module '@fullcalendar/core/interactions/pointer' { - export interface PointerDragEvent { - origEvent: UIEvent; - isTouch: boolean; - subjectEl: EventTarget; - pageX: number; - pageY: number; - deltaX: number; - deltaY: number; - } -} - -declare module '@fullcalendar/core/interactions/hit' { - import DateComponent from '@fullcalendar/core/component/DateComponent'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { Rect } from '@fullcalendar/core/util/geom'; - export interface Hit { - component: DateComponent; - dateSpan: DateSpan; - dayEl: HTMLElement; - rect: Rect; - layer: number; - } -} - -declare module '@fullcalendar/core/interactions/date-selecting' { - import { Hit } from '@fullcalendar/core/interactions/hit'; - export type dateSelectionJoinTransformer = (hit0: Hit, hit1: Hit) => any; -} - -declare module '@fullcalendar/core/interactions/event-dragging' { - import Calendar from '@fullcalendar/core/Calendar'; - import { EventMutation } from '@fullcalendar/core/structs/event-mutation'; - import { Hit } from '@fullcalendar/core/interactions/hit'; - import { EventDef } from '@fullcalendar/core/structs/event'; - import { EventUi } from '@fullcalendar/core/component/event-ui'; - import { View } from '@fullcalendar/core'; - export type eventDragMutationMassager = (mutation: EventMutation, hit0: Hit, hit1: Hit) => void; - export type EventDropTransformers = (mutation: EventMutation, calendar: Calendar) => any; - export type eventIsDraggableTransformer = (val: boolean, eventDef: EventDef, eventUi: EventUi, view: View) => boolean; -} - -declare module '@fullcalendar/core/interactions/event-resizing' { - import { Hit } from '@fullcalendar/core/interactions/hit'; - export type EventResizeJoinTransforms = (hit0: Hit, hit1: Hit) => false | object; -} - -declare module '@fullcalendar/core/interactions/ElementDragging' { - import EmitterMixin from '@fullcalendar/core/common/EmitterMixin'; - export { ElementDragging as default, ElementDragging }; - abstract class ElementDragging { - emitter: EmitterMixin; - constructor(el: HTMLElement); - destroy(): void; - abstract setIgnoreMove(bool: boolean): void; - setMirrorIsVisible(bool: boolean): void; - setMirrorNeedsRevert(bool: boolean): void; - setAutoScrollEnabled(bool: boolean): void; - } - export type ElementDraggingClass = { - new (el: HTMLElement): ElementDragging; - }; -} - -declare module '@fullcalendar/core/formatting-api' { - import { DateInput } from '@fullcalendar/core/datelib/env'; - export function formatDate(dateInput: DateInput, settings?: {}): any; - export function formatRange(startInput: DateInput, endInput: DateInput, settings: any): any; -} - -declare module '@fullcalendar/core/options' { - import { PluginDef } from '@fullcalendar/core/plugin-system'; - export const config: any; - export const globalDefaults: { - defaultRangeSeparator: string; - titleRangeSeparator: string; - defaultTimedEventDuration: string; - defaultAllDayEventDuration: { - day: number; - }; - forceEventDuration: boolean; - nextDayThreshold: string; - columnHeader: boolean; - defaultView: string; - aspectRatio: number; - header: { - left: string; - center: string; - right: string; - }; - weekends: boolean; - weekNumbers: boolean; - weekNumberCalculation: string; - editable: boolean; - scrollTime: string; - minTime: string; - maxTime: string; - showNonCurrentDates: boolean; - lazyFetching: boolean; - startParam: string; - endParam: string; - timeZoneParam: string; - timeZone: string; - locales: any[]; - locale: string; - timeGridEventMinHeight: number; - themeSystem: string; - dragRevertDuration: number; - dragScroll: boolean; - allDayMaintainDuration: boolean; - unselectAuto: boolean; - dropAccept: string; - eventOrder: string; - eventLimit: boolean; - eventLimitClick: string; - dayPopoverFormat: { - month: string; - day: string; - year: string; - }; - handleWindowResize: boolean; - windowResizeDelay: number; - longPressDelay: number; - eventDragMinDistance: number; - }; - export const rtlDefaults: { - header: { - left: string; - center: string; - right: string; - }; - buttonIcons: { - prev: string; - next: string; - prevYear: string; - nextYear: string; - }; - }; - export function mergeOptions(optionObjs: any): any; - export function refinePluginDefs(pluginInputs: any[]): PluginDef[]; -} - -declare module '@fullcalendar/core/structs/recurring-event' { - import { EventInput, EventDef } from '@fullcalendar/core/structs/event'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - export interface ParsedRecurring { - typeData: any; - allDayGuess: boolean | null; - duration: Duration | null; - } - export interface RecurringType { - parse: (rawEvent: EventInput, leftoverProps: any, dateEnv: DateEnv) => ParsedRecurring | null; - expand: (typeData: any, framingRange: DateRange, dateEnv: DateEnv) => DateMarker[]; - } - export function parseRecurring(eventInput: EventInput, allDayDefault: boolean | null, dateEnv: DateEnv, recurringTypes: RecurringType[], leftovers: any): { - allDay: any; - duration: Duration; - typeData: any; - typeId: number; - }; - export function expandRecurringRanges(eventDef: EventDef, duration: Duration, framingRange: DateRange, dateEnv: DateEnv, recurringTypes: RecurringType[]): DateMarker[]; -} - -declare module '@fullcalendar/core/structs/drag-meta' { - import { Duration, DurationInput } from '@fullcalendar/core/datelib/duration'; - import { EventNonDateInput } from '@fullcalendar/core/structs/event'; - export interface DragMetaInput extends EventNonDateInput { - startTime?: DurationInput; - duration?: DurationInput; - create?: boolean; - sourceId?: string; - } - export interface DragMeta { - startTime: Duration | null; - duration: Duration | null; - create: boolean; - sourceId: string; - leftoverProps: object; - } - export function parseDragMeta(raw: DragMetaInput): DragMeta; -} - -declare module '@fullcalendar/core/plugin-system' { - import { reducerFunc } from '@fullcalendar/core/reducers/types'; - import { eventDefParserFunc } from '@fullcalendar/core/structs/event'; - import { eventDefMutationApplier } from '@fullcalendar/core/structs/event-mutation'; - import Calendar, { DatePointTransform, DateSpanTransform, CalendarInteractionClass, OptionChangeHandlerMap } from '@fullcalendar/core/Calendar'; - import { ViewConfigInputHash } from '@fullcalendar/core/structs/view-config'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import View, { ViewProps } from '@fullcalendar/core/View'; - import { CalendarComponentProps } from '@fullcalendar/core/CalendarComponent'; - import { isPropsValidTester } from '@fullcalendar/core/validation'; - import { eventDragMutationMassager, eventIsDraggableTransformer, EventDropTransformers } from '@fullcalendar/core/interactions/event-dragging'; - import { dateSelectionJoinTransformer } from '@fullcalendar/core/interactions/date-selecting'; - import { EventResizeJoinTransforms } from '@fullcalendar/core/interactions/event-resizing'; - import { ExternalDefTransform } from '@fullcalendar/core/interactions/external-element-dragging'; - import { InteractionClass } from '@fullcalendar/core/interactions/interaction'; - import { ThemeClass } from '@fullcalendar/core/theme/Theme'; - import { EventSourceDef } from '@fullcalendar/core/structs/event-source'; - import { CmdFormatterFunc } from '@fullcalendar/core/datelib/formatting-cmd'; - import { RecurringType } from '@fullcalendar/core/structs/recurring-event'; - import { NamedTimeZoneImplClass } from '@fullcalendar/core/datelib/timezone'; - import { ElementDraggingClass } from '@fullcalendar/core/interactions/ElementDragging'; - export interface PluginDefInput { - deps?: PluginDef[]; - reducers?: reducerFunc[]; - eventDefParsers?: eventDefParserFunc[]; - isDraggableTransformers?: eventIsDraggableTransformer[]; - eventDragMutationMassagers?: eventDragMutationMassager[]; - eventDefMutationAppliers?: eventDefMutationApplier[]; - dateSelectionTransformers?: dateSelectionJoinTransformer[]; - datePointTransforms?: DatePointTransform[]; - dateSpanTransforms?: DateSpanTransform[]; - views?: ViewConfigInputHash; - viewPropsTransformers?: ViewPropsTransformerClass[]; - isPropsValid?: isPropsValidTester; - externalDefTransforms?: ExternalDefTransform[]; - eventResizeJoinTransforms?: EventResizeJoinTransforms[]; - viewContainerModifiers?: ViewContainerModifier[]; - eventDropTransformers?: EventDropTransformers[]; - componentInteractions?: InteractionClass[]; - calendarInteractions?: CalendarInteractionClass[]; - themeClasses?: { - [themeSystemName: string]: ThemeClass; - }; - eventSourceDefs?: EventSourceDef[]; - cmdFormatter?: CmdFormatterFunc; - recurringTypes?: RecurringType[]; - namedTimeZonedImpl?: NamedTimeZoneImplClass; - defaultView?: string; - elementDraggingImpl?: ElementDraggingClass; - optionChangeHandlers?: OptionChangeHandlerMap; - } - export interface PluginHooks { - reducers: reducerFunc[]; - eventDefParsers: eventDefParserFunc[]; - isDraggableTransformers: eventIsDraggableTransformer[]; - eventDragMutationMassagers: eventDragMutationMassager[]; - eventDefMutationAppliers: eventDefMutationApplier[]; - dateSelectionTransformers: dateSelectionJoinTransformer[]; - datePointTransforms: DatePointTransform[]; - dateSpanTransforms: DateSpanTransform[]; - views: ViewConfigInputHash; - viewPropsTransformers: ViewPropsTransformerClass[]; - isPropsValid: isPropsValidTester | null; - externalDefTransforms: ExternalDefTransform[]; - eventResizeJoinTransforms: EventResizeJoinTransforms[]; - viewContainerModifiers: ViewContainerModifier[]; - eventDropTransformers: EventDropTransformers[]; - componentInteractions: InteractionClass[]; - calendarInteractions: CalendarInteractionClass[]; - themeClasses: { - [themeSystemName: string]: ThemeClass; - }; - eventSourceDefs: EventSourceDef[]; - cmdFormatter?: CmdFormatterFunc; - recurringTypes: RecurringType[]; - namedTimeZonedImpl?: NamedTimeZoneImplClass; - defaultView: string; - elementDraggingImpl?: ElementDraggingClass; - optionChangeHandlers: OptionChangeHandlerMap; - } - export interface PluginDef extends PluginHooks { - id: string; - deps: PluginDef[]; - } - export type ViewPropsTransformerClass = new () => ViewPropsTransformer; - export interface ViewPropsTransformer { - transform(viewProps: ViewProps, viewSpec: ViewSpec, calendarProps: CalendarComponentProps, view: View): any; - } - export type ViewContainerModifier = (contentEl: HTMLElement, calendar: Calendar) => void; - export function createPlugin(input: PluginDefInput): PluginDef; - export class PluginSystem { - hooks: PluginHooks; - addedHash: { - [pluginId: string]: true; - }; - constructor(); - add(plugin: PluginDef): void; - } -} - -declare module '@fullcalendar/core/reducers/types' { - import { EventInput, EventInstanceHash } from '@fullcalendar/core/structs/event'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventMutation } from '@fullcalendar/core/structs/event-mutation'; - import { EventSource, EventSourceHash, EventSourceError } from '@fullcalendar/core/structs/event-source'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - export interface CalendarState { - eventSources: EventSourceHash; - eventSourceLoadingLevel: number; - loadingLevel: number; - viewType: string; - currentDate: DateMarker; - dateProfile: DateProfile | null; - eventStore: EventStore; - dateSelection: DateSpan | null; - eventSelection: string; - eventDrag: EventInteractionState | null; - eventResize: EventInteractionState | null; - } - export type reducerFunc = (state: CalendarState, action: Action, calendar: Calendar) => CalendarState; - export type Action = { - type: 'INIT'; - } | // wont it create another rerender? - { - type: 'PREV'; - } | { - type: 'NEXT'; - } | { - type: 'SET_DATE'; - dateMarker: DateMarker; - } | { - type: 'SET_VIEW_TYPE'; - viewType: string; - dateMarker?: DateMarker; - } | { - type: 'SELECT_DATES'; - selection: DateSpan; - } | { - type: 'UNSELECT_DATES'; - } | { - type: 'SELECT_EVENT'; - eventInstanceId: string; - } | { - type: 'UNSELECT_EVENT'; - } | { - type: 'SET_EVENT_DRAG'; - state: EventInteractionState; - } | { - type: 'UNSET_EVENT_DRAG'; - } | { - type: 'SET_EVENT_RESIZE'; - state: EventInteractionState; - } | { - type: 'UNSET_EVENT_RESIZE'; - } | { - type: 'ADD_EVENT_SOURCES'; - sources: EventSource[]; - } | { - type: 'REMOVE_EVENT_SOURCE'; - sourceId: string; - } | { - type: 'REMOVE_ALL_EVENT_SOURCES'; - } | { - type: 'FETCH_EVENT_SOURCES'; - sourceIds?: string[]; - } | // if no sourceIds, fetch all - { - type: 'CHANGE_TIMEZONE'; - oldDateEnv: DateEnv; - } | { - type: 'RECEIVE_EVENTS'; - sourceId: string; - fetchId: string; - fetchRange: DateRange | null; - rawEvents: EventInput[]; - } | { - type: 'RECEIVE_EVENT_ERROR'; - sourceId: string; - fetchId: string; - fetchRange: DateRange | null; - error: EventSourceError; - } | // need all these? - { - type: 'ADD_EVENTS'; - eventStore: EventStore; - } | { - type: 'MERGE_EVENTS'; - eventStore: EventStore; - } | { - type: 'MUTATE_EVENTS'; - instanceId: string; - mutation: EventMutation; - fromApi?: boolean; - } | { - type: 'REMOVE_EVENT_DEF'; - defId: string; - } | { - type: 'REMOVE_EVENT_INSTANCES'; - instances: EventInstanceHash; - } | { - type: 'REMOVE_ALL_EVENTS'; - } | { - type: 'RESET_EVENTS'; - }; -} - -declare module '@fullcalendar/core/CalendarComponent' { - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import View from '@fullcalendar/core/View'; - import Toolbar from '@fullcalendar/core/Toolbar'; - import DateProfileGenerator, { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventUiHash } from '@fullcalendar/core/component/event-ui'; - import { BusinessHoursInput } from '@fullcalendar/core/structs/business-hours'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { CalendarState } from '@fullcalendar/core/reducers/types'; - export interface CalendarComponentProps extends CalendarState { - viewSpec: ViewSpec; - dateProfileGenerator: DateProfileGenerator; - eventUiBases: EventUiHash; - } - export { CalendarComponent as default, CalendarComponent }; - class CalendarComponent extends Component { - view: View; - header: Toolbar; - footer: Toolbar; - computeTitle: (dateProfile: any, viewOptions: any) => string; - parseBusinessHours: (input: BusinessHoursInput) => EventStore; - el: HTMLElement; - contentEl: HTMLElement; - isHeightAuto: boolean; - viewHeight: number; - constructor(context: ComponentContext, el: HTMLElement); - destroy(): void; - toggleElClassNames(bool: boolean): void; - render(props: CalendarComponentProps): void; - renderToolbars(viewSpec: ViewSpec, dateProfile: DateProfile, currentDate: DateMarker, dateProfileGenerator: DateProfileGenerator, title: string): void; - renderView(props: CalendarComponentProps, title: string): void; - updateSize(isResize?: boolean): void; - computeHeightVars(): void; - queryToolbarsHeight(): number; - freezeHeight(): void; - thawHeight(): void; - } -} - -declare module '@fullcalendar/core/common/DayHeader' { - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - export interface DayTableHeaderProps { - dates: DateMarker[]; - dateProfile: DateProfile; - datesRepDistinctDays: boolean; - renderIntroHtml?: () => string; - } - export { DayHeader as default, DayHeader }; - class DayHeader extends Component { - el: HTMLElement; - thead: HTMLElement; - constructor(context: ComponentContext, parentEl: HTMLElement); - destroy(): void; - render(props: DayTableHeaderProps): void; - } -} - -declare module '@fullcalendar/core/common/table-utils' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - export function computeFallbackHeaderFormat(datesRepDistinctDays: boolean, dayCnt: number): { - weekday: string; - month?: undefined; - day?: undefined; - omitCommas?: undefined; - } | { - weekday: string; - month: string; - day: string; - omitCommas: boolean; - }; - export function renderDateCell(dateMarker: DateMarker, dateProfile: DateProfile, datesRepDistinctDays: any, colCnt: any, colHeadFormat: any, context: ComponentContext, colspan?: any, otherAttrs?: any): string; -} - -declare module '@fullcalendar/core/common/DaySeries' { - import DateProfileGenerator from '@fullcalendar/core/DateProfileGenerator'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - export interface DaySeriesSeg { - firstIndex: number; - lastIndex: number; - isStart: boolean; - isEnd: boolean; - } - export { DaySeries as default, DaySeries }; - class DaySeries { - cnt: number; - dates: DateMarker[]; - indices: number[]; - constructor(range: DateRange, dateProfileGenerator: DateProfileGenerator); - sliceRange(range: DateRange): DaySeriesSeg | null; - } -} - -declare module '@fullcalendar/core/interactions/event-interaction-state' { - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { Seg } from '@fullcalendar/core/component/DateComponent'; - export interface EventInteractionState { - affectedEvents: EventStore; - mutatedEvents: EventStore; - isEvent: boolean; - origSeg: Seg | null; - } -} - -declare module '@fullcalendar/core/component/event-rendering' { - import { EventDef, EventTuple, EventDefHash } from '@fullcalendar/core/structs/event'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { Seg } from '@fullcalendar/core/component/DateComponent'; - import View from '@fullcalendar/core/View'; - import { EventUi, EventUiHash } from '@fullcalendar/core/component/event-ui'; - export interface EventRenderRange extends EventTuple { - ui: EventUi; - range: DateRange; - isStart: boolean; - isEnd: boolean; - } - export function sliceEventStore(eventStore: EventStore, eventUiBases: EventUiHash, framingRange: DateRange, nextDayThreshold?: Duration): { - bg: EventRenderRange[]; - fg: EventRenderRange[]; - }; - export function hasBgRendering(def: EventDef): boolean; - export function filterSegsViaEls(view: View, segs: Seg[], isMirror: boolean): Seg[]; - export function getElSeg(el: HTMLElement): Seg | null; - export function compileEventUis(eventDefs: EventDefHash, eventUiBases: EventUiHash): { - [key: string]: EventUi; - }; - export function compileEventUi(eventDef: EventDef, eventUiBases: EventUiHash): EventUi; -} - -declare module '@fullcalendar/core/common/DayTable' { - import DaySeries from '@fullcalendar/core/common/DaySeries'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Seg } from '@fullcalendar/core/component/DateComponent'; - export interface DayTableSeg extends Seg { - row: number; - firstCol: number; - lastCol: number; - } - export interface DayTableCell { - date: DateMarker; - htmlAttrs?: string; - } - export { DayTable as default, DayTable }; - class DayTable { - rowCnt: number; - colCnt: number; - cells: DayTableCell[][]; - headerDates: DateMarker[]; - constructor(daySeries: DaySeries, breakOnWeeks: boolean); - sliceRange(range: DateRange): DayTableSeg[]; - } -} - -declare module '@fullcalendar/core/common/slicing-utils' { - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventUiHash } from '@fullcalendar/core/component/event-ui'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import DateComponent, { Seg, EventSegUiInteractionState } from '@fullcalendar/core/component/DateComponent'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - export interface SliceableProps { - dateSelection: DateSpan; - businessHours: EventStore; - eventStore: EventStore; - eventDrag: EventInteractionState | null; - eventResize: EventInteractionState | null; - eventSelection: string; - eventUiBases: EventUiHash; - } - export interface SlicedProps { - dateSelectionSegs: SegType[]; - businessHourSegs: SegType[]; - fgEventSegs: SegType[]; - bgEventSegs: SegType[]; - eventDrag: EventSegUiInteractionState | null; - eventResize: EventSegUiInteractionState | null; - eventSelection: string; - } - export { Slicer as default, Slicer }; - abstract class Slicer { - abstract sliceRange(dateRange: DateRange, ...extraArgs: ExtraArgs): SegType[]; - sliceProps(props: SliceableProps, dateProfile: DateProfile, nextDayThreshold: Duration | null, component: DateComponent, // TODO: kill - ...extraArgs: ExtraArgs): SlicedProps; - sliceNowDate(// does not memoize - date: DateMarker, component: DateComponent, // TODO: kill - ...extraArgs: ExtraArgs): SegType[]; - } -} - -declare module '@fullcalendar/core/structs/event-mutation' { - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventDef } from '@fullcalendar/core/structs/event'; - import Calendar from '@fullcalendar/core/Calendar'; - import { EventUiHash } from '@fullcalendar/core/component/event-ui'; - export interface EventMutation { - datesDelta?: Duration; - startDelta?: Duration; - endDelta?: Duration; - standardProps?: any; - extendedProps?: any; - } - export function applyMutationToEventStore(eventStore: EventStore, eventConfigBase: EventUiHash, mutation: EventMutation, calendar: Calendar): EventStore; - export type eventDefMutationApplier = (eventDef: EventDef, mutation: EventMutation, calendar: Calendar) => void; -} - -declare module '@fullcalendar/core/validation' { - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateSpan, DateSpanApi } from '@fullcalendar/core/structs/date-span'; - import EventApi from '@fullcalendar/core/api/EventApi'; - import { EventInput } from '@fullcalendar/core/structs/event'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { SplittableProps } from '@fullcalendar/core/component/event-splitting'; - export type ConstraintInput = 'businessHours' | string | EventInput | EventInput[]; - export type Constraint = 'businessHours' | string | EventStore | false; - export type OverlapFunc = ((stillEvent: EventApi, movingEvent: EventApi | null) => boolean); - export type AllowFunc = (span: DateSpanApi, movingEvent: EventApi | null) => boolean; - export type isPropsValidTester = (props: SplittableProps, calendar: Calendar) => boolean; - export function isInteractionValid(interaction: EventInteractionState, calendar: Calendar): boolean; - export function isDateSelectionValid(dateSelection: DateSpan, calendar: Calendar): boolean; - export function isPropsValid(state: SplittableProps, calendar: Calendar, dateSpanMeta?: {}, filterConfig?: any): boolean; - export function normalizeConstraint(input: ConstraintInput, calendar: Calendar): Constraint | null; -} - -declare module '@fullcalendar/core/api/EventApi' { - import Calendar from '@fullcalendar/core/Calendar'; - import { EventDef, EventInstance } from '@fullcalendar/core/structs/event'; - import { EventMutation } from '@fullcalendar/core/structs/event-mutation'; - import { DateInput } from '@fullcalendar/core/datelib/env'; - import { DurationInput } from '@fullcalendar/core/datelib/duration'; - import { FormatterInput } from '@fullcalendar/core/datelib/formatting'; - import EventSourceApi from '@fullcalendar/core/api/EventSourceApi'; - export { EventApi as default, EventApi }; - class EventApi { - _calendar: Calendar; - _def: EventDef; - _instance: EventInstance | null; - constructor(calendar: Calendar, def: EventDef, instance?: EventInstance); - setProp(name: string, val: string): void; - setExtendedProp(name: string, val: any): void; - setStart(startInput: DateInput, options?: { - granularity?: string; - maintainDuration?: boolean; - }): void; - setEnd(endInput: DateInput | null, options?: { - granularity?: string; - }): void; - setDates(startInput: DateInput, endInput: DateInput | null, options?: { - allDay?: boolean; - granularity?: string; - }): void; - moveStart(deltaInput: DurationInput): void; - moveEnd(deltaInput: DurationInput): void; - moveDates(deltaInput: DurationInput): void; - setAllDay(allDay: boolean, options?: { - maintainDuration?: boolean; - }): void; - formatRange(formatInput: FormatterInput): any; - mutate(mutation: EventMutation): void; - remove(): void; - readonly source: EventSourceApi | null; - readonly start: Date | null; - readonly end: Date | null; - readonly id: string; - readonly groupId: string; - readonly allDay: boolean; - readonly title: string; - readonly url: string; - readonly rendering: string; - readonly startEditable: boolean; - readonly durationEditable: boolean; - readonly constraint: any; - readonly overlap: any; - readonly allow: any; - readonly backgroundColor: string; - readonly borderColor: string; - readonly textColor: string; - readonly classNames: string[]; - readonly extendedProps: any; - } -} - -declare module '@fullcalendar/core/util/requestJson' { - export default function requestJson(method: string, url: string, params: object, successCallback: any, failureCallback: any): void; -} - -declare module '@fullcalendar/core/datelib/locale' { - export type LocaleCodeArg = string | string[]; - export type LocaleSingularArg = LocaleCodeArg | RawLocale; - export interface Locale { - codeArg: LocaleCodeArg; - codes: string[]; - week: { - dow: number; - doy: number; - }; - simpleNumberFormat: Intl.NumberFormat; - options: any; - } - export interface RawLocale { - code: string; - [otherProp: string]: any; - } - export type RawLocaleMap = { - [code: string]: RawLocale; - }; - export interface RawLocaleInfo { - map: RawLocaleMap; - defaultCode: string; - } - export function parseRawLocales(explicitRawLocales: RawLocale[]): RawLocaleInfo; - export function buildLocale(inputSingular: LocaleSingularArg, available: RawLocaleMap): Locale; -} - -declare module '@fullcalendar/core/OptionsManager' { - export { OptionsManager as default, OptionsManager }; - class OptionsManager { - dirDefaults: any; - localeDefaults: any; - overrides: any; - dynamicOverrides: any; - computed: any; - constructor(overrides: any); - mutate(updates: any, removals: string[], isDynamic?: boolean): void; - compute(): void; - } -} - -declare module '@fullcalendar/core/api/EventSourceApi' { - import Calendar from '@fullcalendar/core/Calendar'; - import { EventSource } from '@fullcalendar/core/structs/event-source'; - export { EventSourceApi as default, EventSourceApi }; - class EventSourceApi { - calendar: Calendar; - internalEventSource: EventSource; - constructor(calendar: Calendar, internalEventSource: EventSource); - remove(): void; - refetch(): void; - readonly id: string; - readonly url: string; - } -} - -declare module '@fullcalendar/core/structs/view-config' { - import View from '@fullcalendar/core/View'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - import DateProfileGenerator from '@fullcalendar/core/DateProfileGenerator'; - export type ViewClass = new (context: ComponentContext, viewSpec: ViewSpec, dateProfileGenerator: DateProfileGenerator, parentEl: HTMLElement) => View; - export interface ViewConfigObjectInput { - type?: string; - class?: ViewClass; - [optionName: string]: any; - } - export type ViewConfigInput = ViewClass | ViewConfigObjectInput; - export type ViewConfigInputHash = { - [viewType: string]: ViewConfigInput; - }; - export interface ViewConfig { - superType: string; - class: ViewClass | null; - options: any; - } - export type ViewConfigHash = { - [viewType: string]: ViewConfig; - }; - export function parseViewConfigs(inputs: ViewConfigInputHash): ViewConfigHash; -} - -declare module '@fullcalendar/core/datelib/calendar-system' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - export interface CalendarSystem { - getMarkerYear(d: DateMarker): number; - getMarkerMonth(d: DateMarker): number; - getMarkerDay(d: DateMarker): number; - arrayToMarker(arr: number[]): DateMarker; - markerToArray(d: DateMarker): number[]; - } - export function registerCalendarSystem(name: any, theClass: any): void; - export function createCalendarSystem(name: any): any; -} - -declare module '@fullcalendar/core/datelib/formatting-cmd' { - import { DateFormatter, DateFormattingContext, ZonedMarker, VerboseFormattingArg } from '@fullcalendar/core/datelib/formatting'; - export type CmdFormatterFunc = (cmd: string, arg: VerboseFormattingArg) => string; - export class CmdFormatter implements DateFormatter { - cmdStr: string; - separator: string; - constructor(cmdStr: string, separator?: string); - format(date: ZonedMarker, context: DateFormattingContext): string; - formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext): string; - } -} - -declare module '@fullcalendar/core/datelib/formatting-func' { - import { DateFormatter, DateFormattingContext, ZonedMarker, VerboseFormattingArg } from '@fullcalendar/core/datelib/formatting'; - export type FuncFormatterFunc = (arg: VerboseFormattingArg) => string; - export class FuncFormatter implements DateFormatter { - func: FuncFormatterFunc; - constructor(func: FuncFormatterFunc); - format(date: ZonedMarker, context: DateFormattingContext): string; - formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext): string; - } -} - -declare module '@fullcalendar/core/event-sources/func-event-source' { - import { EventSourceError } from '@fullcalendar/core/structs/event-source'; - import { EventInput } from '@fullcalendar/core/structs/event'; - export type EventSourceFunc = (arg: { - start: Date; - end: Date; - timeZone: string; - }, successCallback: (events: EventInput[]) => void, failureCallback: (error: EventSourceError) => void) => (void | PromiseLike); - const _default: import("@fullcalendar/core/plugin-system").PluginDef; - export default _default; -} - -declare module '@fullcalendar/core/interactions/external-element-dragging' { - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { DragMeta } from '@fullcalendar/core/structs/drag-meta'; - export type ExternalDefTransform = (dateSpan: DateSpan, dragMeta: DragMeta) => any; -} - -declare module '@fullcalendar/core/Toolbar' { - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - export interface ToolbarRenderProps { - layout: any; - title: string; - activeButton: string; - isTodayEnabled: boolean; - isPrevEnabled: boolean; - isNextEnabled: boolean; - } - export { Toolbar as default, Toolbar }; - class Toolbar extends Component { - el: HTMLElement; - viewsWithButtons: any; - constructor(context: ComponentContext, extraClassName: any); - destroy(): void; - render(props: ToolbarRenderProps): void; - renderLayout(layout: any): void; - unrenderLayout(): void; - renderSection(position: any, buttonStr: any): HTMLElement; - updateToday(isTodayEnabled: any): void; - updatePrev(isPrevEnabled: any): void; - updateNext(isNextEnabled: any): void; - updateTitle(text: any): void; - updateActiveButton(buttonName?: any): void; - toggleButtonEnabled(buttonName: any, bool: any): void; - } -} - diff --git a/htdocs/public/high/plugins/fullcalendar/main.esm.js b/htdocs/public/high/plugins/fullcalendar/main.esm.js deleted file mode 100644 index b3d27d75..00000000 --- a/htdocs/public/high/plugins/fullcalendar/main.esm.js +++ /dev/null @@ -1,8558 +0,0 @@ -/*! -FullCalendar Core Package v4.3.1 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -// Creating -// ---------------------------------------------------------------------------------------------------------------- -var elementPropHash = { - className: true, - colSpan: true, - rowSpan: true -}; -var containerTagHash = { - '= rect.left && - point.left < rect.right && - point.top >= rect.top && - point.top < rect.bottom; -} -// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false -function intersectRects(rect1, rect2) { - var res = { - left: Math.max(rect1.left, rect2.left), - right: Math.min(rect1.right, rect2.right), - top: Math.max(rect1.top, rect2.top), - bottom: Math.min(rect1.bottom, rect2.bottom) - }; - if (res.left < res.right && res.top < res.bottom) { - return res; - } - return false; -} -function translateRect(rect, deltaX, deltaY) { - return { - left: rect.left + deltaX, - right: rect.right + deltaX, - top: rect.top + deltaY, - bottom: rect.bottom + deltaY - }; -} -// Returns a new point that will have been moved to reside within the given rectangle -function constrainPoint(point, rect) { - return { - left: Math.min(Math.max(point.left, rect.left), rect.right), - top: Math.min(Math.max(point.top, rect.top), rect.bottom) - }; -} -// Returns a point that is the center of the given rectangle -function getRectCenter(rect) { - return { - left: (rect.left + rect.right) / 2, - top: (rect.top + rect.bottom) / 2 - }; -} -// Subtracts point2's coordinates from point1's coordinates, returning a delta -function diffPoints(point1, point2) { - return { - left: point1.left - point2.left, - top: point1.top - point2.top - }; -} - -// Logic for determining if, when the element is right-to-left, the scrollbar appears on the left side -var isRtlScrollbarOnLeft = null; -function getIsRtlScrollbarOnLeft() { - if (isRtlScrollbarOnLeft === null) { - isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft(); - } - return isRtlScrollbarOnLeft; -} -function computeIsRtlScrollbarOnLeft() { - var outerEl = createElement('div', { - style: { - position: 'absolute', - top: -1000, - left: 0, - border: 0, - padding: 0, - overflow: 'scroll', - direction: 'rtl' - } - }, '
'); - document.body.appendChild(outerEl); - var innerEl = outerEl.firstChild; - var res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left; - removeElement(outerEl); - return res; -} -// The scrollbar width computations in computeEdges are sometimes flawed when it comes to -// retina displays, rounding, and IE11. Massage them into a usable value. -function sanitizeScrollbarWidth(width) { - width = Math.max(0, width); // no negatives - width = Math.round(width); - return width; -} - -function computeEdges(el, getPadding) { - if (getPadding === void 0) { getPadding = false; } - var computedStyle = window.getComputedStyle(el); - var borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0; - var borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0; - var borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0; - var borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0; - // must use offset(Width|Height) because compatible with client(Width|Height) - var scrollbarLeftRight = sanitizeScrollbarWidth(el.offsetWidth - el.clientWidth - borderLeft - borderRight); - var scrollbarBottom = sanitizeScrollbarWidth(el.offsetHeight - el.clientHeight - borderTop - borderBottom); - var res = { - borderLeft: borderLeft, - borderRight: borderRight, - borderTop: borderTop, - borderBottom: borderBottom, - scrollbarBottom: scrollbarBottom, - scrollbarLeft: 0, - scrollbarRight: 0 - }; - if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') { // is the scrollbar on the left side? - res.scrollbarLeft = scrollbarLeftRight; - } - else { - res.scrollbarRight = scrollbarLeftRight; - } - if (getPadding) { - res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0; - res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0; - res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0; - res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0; - } - return res; -} -function computeInnerRect(el, goWithinPadding) { - if (goWithinPadding === void 0) { goWithinPadding = false; } - var outerRect = computeRect(el); - var edges = computeEdges(el, goWithinPadding); - var res = { - left: outerRect.left + edges.borderLeft + edges.scrollbarLeft, - right: outerRect.right - edges.borderRight - edges.scrollbarRight, - top: outerRect.top + edges.borderTop, - bottom: outerRect.bottom - edges.borderBottom - edges.scrollbarBottom - }; - if (goWithinPadding) { - res.left += edges.paddingLeft; - res.right -= edges.paddingRight; - res.top += edges.paddingTop; - res.bottom -= edges.paddingBottom; - } - return res; -} -function computeRect(el) { - var rect = el.getBoundingClientRect(); - return { - left: rect.left + window.pageXOffset, - top: rect.top + window.pageYOffset, - right: rect.right + window.pageXOffset, - bottom: rect.bottom + window.pageYOffset - }; -} -function computeViewportRect() { - return { - left: window.pageXOffset, - right: window.pageXOffset + document.documentElement.clientWidth, - top: window.pageYOffset, - bottom: window.pageYOffset + document.documentElement.clientHeight - }; -} -function computeHeightAndMargins(el) { - return el.getBoundingClientRect().height + computeVMargins(el); -} -function computeVMargins(el) { - var computed = window.getComputedStyle(el); - return parseInt(computed.marginTop, 10) + - parseInt(computed.marginBottom, 10); -} -// does not return window -function getClippingParents(el) { - var parents = []; - while (el instanceof HTMLElement) { // will stop when gets to document or null - var computedStyle = window.getComputedStyle(el); - if (computedStyle.position === 'fixed') { - break; - } - if ((/(auto|scroll)/).test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) { - parents.push(el); - } - el = el.parentNode; - } - return parents; -} -function computeClippingRect(el) { - return getClippingParents(el) - .map(function (el) { - return computeInnerRect(el); - }) - .concat(computeViewportRect()) - .reduce(function (rect0, rect1) { - return intersectRects(rect0, rect1) || rect1; // should always intersect - }); -} - -// Stops a mouse/touch event from doing it's native browser action -function preventDefault(ev) { - ev.preventDefault(); -} -// Event Delegation -// ---------------------------------------------------------------------------------------------------------------- -function listenBySelector(container, eventType, selector, handler) { - function realHandler(ev) { - var matchedChild = elementClosest(ev.target, selector); - if (matchedChild) { - handler.call(matchedChild, ev, matchedChild); - } - } - container.addEventListener(eventType, realHandler); - return function () { - container.removeEventListener(eventType, realHandler); - }; -} -function listenToHoverBySelector(container, selector, onMouseEnter, onMouseLeave) { - var currentMatchedChild; - return listenBySelector(container, 'mouseover', selector, function (ev, matchedChild) { - if (matchedChild !== currentMatchedChild) { - currentMatchedChild = matchedChild; - onMouseEnter(ev, matchedChild); - var realOnMouseLeave_1 = function (ev) { - currentMatchedChild = null; - onMouseLeave(ev, matchedChild); - matchedChild.removeEventListener('mouseleave', realOnMouseLeave_1); - }; - // listen to the next mouseleave, and then unattach - matchedChild.addEventListener('mouseleave', realOnMouseLeave_1); - } - }); -} -// Animation -// ---------------------------------------------------------------------------------------------------------------- -var transitionEventNames = [ - 'webkitTransitionEnd', - 'otransitionend', - 'oTransitionEnd', - 'msTransitionEnd', - 'transitionend' -]; -// triggered only when the next single subsequent transition finishes -function whenTransitionDone(el, callback) { - var realCallback = function (ev) { - callback(ev); - transitionEventNames.forEach(function (eventName) { - el.removeEventListener(eventName, realCallback); - }); - }; - transitionEventNames.forEach(function (eventName) { - el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes - }); -} - -var DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']; -// Adding -function addWeeks(m, n) { - var a = dateToUtcArray(m); - a[2] += n * 7; - return arrayToUtcDate(a); -} -function addDays(m, n) { - var a = dateToUtcArray(m); - a[2] += n; - return arrayToUtcDate(a); -} -function addMs(m, n) { - var a = dateToUtcArray(m); - a[6] += n; - return arrayToUtcDate(a); -} -// Diffing (all return floats) -function diffWeeks(m0, m1) { - return diffDays(m0, m1) / 7; -} -function diffDays(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24); -} -function diffHours(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60); -} -function diffMinutes(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60); -} -function diffSeconds(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / 1000; -} -function diffDayAndTime(m0, m1) { - var m0day = startOfDay(m0); - var m1day = startOfDay(m1); - return { - years: 0, - months: 0, - days: Math.round(diffDays(m0day, m1day)), - milliseconds: (m1.valueOf() - m1day.valueOf()) - (m0.valueOf() - m0day.valueOf()) - }; -} -// Diffing Whole Units -function diffWholeWeeks(m0, m1) { - var d = diffWholeDays(m0, m1); - if (d !== null && d % 7 === 0) { - return d / 7; - } - return null; -} -function diffWholeDays(m0, m1) { - if (timeAsMs(m0) === timeAsMs(m1)) { - return Math.round(diffDays(m0, m1)); - } - return null; -} -// Start-Of -function startOfDay(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate() - ]); -} -function startOfHour(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours() - ]); -} -function startOfMinute(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours(), - m.getUTCMinutes() - ]); -} -function startOfSecond(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours(), - m.getUTCMinutes(), - m.getUTCSeconds() - ]); -} -// Week Computation -function weekOfYear(marker, dow, doy) { - var y = marker.getUTCFullYear(); - var w = weekOfGivenYear(marker, y, dow, doy); - if (w < 1) { - return weekOfGivenYear(marker, y - 1, dow, doy); - } - var nextW = weekOfGivenYear(marker, y + 1, dow, doy); - if (nextW >= 1) { - return Math.min(w, nextW); - } - return w; -} -function weekOfGivenYear(marker, year, dow, doy) { - var firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)]); - var dayStart = startOfDay(marker); - var days = Math.round(diffDays(firstWeekStart, dayStart)); - return Math.floor(days / 7) + 1; // zero-indexed -} -// start-of-first-week - start-of-year -function firstWeekOffset(year, dow, doy) { - // first-week day -- which january is always in the first week (4 for iso, 1 for other) - var fwd = 7 + dow - doy; - // first-week day local weekday -- which local weekday is fwd - var fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7; - return -fwdlw + fwd - 1; -} -// Array Conversion -function dateToLocalArray(date) { - return [ - date.getFullYear(), - date.getMonth(), - date.getDate(), - date.getHours(), - date.getMinutes(), - date.getSeconds(), - date.getMilliseconds() - ]; -} -function arrayToLocalDate(a) { - return new Date(a[0], a[1] || 0, a[2] == null ? 1 : a[2], // day of month - a[3] || 0, a[4] || 0, a[5] || 0); -} -function dateToUtcArray(date) { - return [ - date.getUTCFullYear(), - date.getUTCMonth(), - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds(), - date.getUTCMilliseconds() - ]; -} -function arrayToUtcDate(a) { - // according to web standards (and Safari), a month index is required. - // massage if only given a year. - if (a.length === 1) { - a = a.concat([0]); - } - return new Date(Date.UTC.apply(Date, a)); -} -// Other Utils -function isValidDate(m) { - return !isNaN(m.valueOf()); -} -function timeAsMs(m) { - return m.getUTCHours() * 1000 * 60 * 60 + - m.getUTCMinutes() * 1000 * 60 + - m.getUTCSeconds() * 1000 + - m.getUTCMilliseconds(); -} - -var INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds']; -var PARSE_RE = /^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/; -// Parsing and Creation -function createDuration(input, unit) { - var _a; - if (typeof input === 'string') { - return parseString(input); - } - else if (typeof input === 'object' && input) { // non-null object - return normalizeObject(input); - } - else if (typeof input === 'number') { - return normalizeObject((_a = {}, _a[unit || 'milliseconds'] = input, _a)); - } - else { - return null; - } -} -function parseString(s) { - var m = PARSE_RE.exec(s); - if (m) { - var sign = m[1] ? -1 : 1; - return { - years: 0, - months: 0, - days: sign * (m[2] ? parseInt(m[2], 10) : 0), - milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours - (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes - (m[5] ? parseInt(m[5], 10) : 0) * 1000 + // seconds - (m[6] ? parseInt(m[6], 10) : 0) // ms - ) - }; - } - return null; -} -function normalizeObject(obj) { - return { - years: obj.years || obj.year || 0, - months: obj.months || obj.month || 0, - days: (obj.days || obj.day || 0) + - getWeeksFromInput(obj) * 7, - milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours - (obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes - (obj.seconds || obj.second || 0) * 1000 + // seconds - (obj.milliseconds || obj.millisecond || obj.ms || 0) // ms - }; -} -function getWeeksFromInput(obj) { - return obj.weeks || obj.week || 0; -} -// Equality -function durationsEqual(d0, d1) { - return d0.years === d1.years && - d0.months === d1.months && - d0.days === d1.days && - d0.milliseconds === d1.milliseconds; -} -function isSingleDay(dur) { - return dur.years === 0 && dur.months === 0 && dur.days === 1 && dur.milliseconds === 0; -} -// Simple Math -function addDurations(d0, d1) { - return { - years: d0.years + d1.years, - months: d0.months + d1.months, - days: d0.days + d1.days, - milliseconds: d0.milliseconds + d1.milliseconds - }; -} -function subtractDurations(d1, d0) { - return { - years: d1.years - d0.years, - months: d1.months - d0.months, - days: d1.days - d0.days, - milliseconds: d1.milliseconds - d0.milliseconds - }; -} -function multiplyDuration(d, n) { - return { - years: d.years * n, - months: d.months * n, - days: d.days * n, - milliseconds: d.milliseconds * n - }; -} -// Conversions -// "Rough" because they are based on average-case Gregorian months/years -function asRoughYears(dur) { - return asRoughDays(dur) / 365; -} -function asRoughMonths(dur) { - return asRoughDays(dur) / 30; -} -function asRoughDays(dur) { - return asRoughMs(dur) / 864e5; -} -function asRoughMinutes(dur) { - return asRoughMs(dur) / (1000 * 60); -} -function asRoughSeconds(dur) { - return asRoughMs(dur) / 1000; -} -function asRoughMs(dur) { - return dur.years * (365 * 864e5) + - dur.months * (30 * 864e5) + - dur.days * 864e5 + - dur.milliseconds; -} -// Advanced Math -function wholeDivideDurations(numerator, denominator) { - var res = null; - for (var i = 0; i < INTERNAL_UNITS.length; i++) { - var unit = INTERNAL_UNITS[i]; - if (denominator[unit]) { - var localRes = numerator[unit] / denominator[unit]; - if (!isInt(localRes) || (res !== null && res !== localRes)) { - return null; - } - res = localRes; - } - else if (numerator[unit]) { - // needs to divide by something but can't! - return null; - } - } - return res; -} -function greatestDurationDenominator(dur, dontReturnWeeks) { - var ms = dur.milliseconds; - if (ms) { - if (ms % 1000 !== 0) { - return { unit: 'millisecond', value: ms }; - } - if (ms % (1000 * 60) !== 0) { - return { unit: 'second', value: ms / 1000 }; - } - if (ms % (1000 * 60 * 60) !== 0) { - return { unit: 'minute', value: ms / (1000 * 60) }; - } - if (ms) { - return { unit: 'hour', value: ms / (1000 * 60 * 60) }; - } - } - if (dur.days) { - if (!dontReturnWeeks && dur.days % 7 === 0) { - return { unit: 'week', value: dur.days / 7 }; - } - return { unit: 'day', value: dur.days }; - } - if (dur.months) { - return { unit: 'month', value: dur.months }; - } - if (dur.years) { - return { unit: 'year', value: dur.years }; - } - return { unit: 'millisecond', value: 0 }; -} - -/* FullCalendar-specific DOM Utilities -----------------------------------------------------------------------------------------------------------------------*/ -// Given the scrollbar widths of some other container, create borders/margins on rowEls in order to match the left -// and right space that was offset by the scrollbars. A 1-pixel border first, then margin beyond that. -function compensateScroll(rowEl, scrollbarWidths) { - if (scrollbarWidths.left) { - applyStyle(rowEl, { - borderLeftWidth: 1, - marginLeft: scrollbarWidths.left - 1 - }); - } - if (scrollbarWidths.right) { - applyStyle(rowEl, { - borderRightWidth: 1, - marginRight: scrollbarWidths.right - 1 - }); - } -} -// Undoes compensateScroll and restores all borders/margins -function uncompensateScroll(rowEl) { - applyStyle(rowEl, { - marginLeft: '', - marginRight: '', - borderLeftWidth: '', - borderRightWidth: '' - }); -} -// Make the mouse cursor express that an event is not allowed in the current area -function disableCursor() { - document.body.classList.add('fc-not-allowed'); -} -// Returns the mouse cursor to its original look -function enableCursor() { - document.body.classList.remove('fc-not-allowed'); -} -// Given a total available height to fill, have `els` (essentially child rows) expand to accomodate. -// By default, all elements that are shorter than the recommended height are expanded uniformly, not considering -// any other els that are already too tall. if `shouldRedistribute` is on, it considers these tall rows and -// reduces the available height. -function distributeHeight(els, availableHeight, shouldRedistribute) { - // *FLOORING NOTE*: we floor in certain places because zoom can give inaccurate floating-point dimensions, - // and it is better to be shorter than taller, to avoid creating unnecessary scrollbars. - var minOffset1 = Math.floor(availableHeight / els.length); // for non-last element - var minOffset2 = Math.floor(availableHeight - minOffset1 * (els.length - 1)); // for last element *FLOORING NOTE* - var flexEls = []; // elements that are allowed to expand. array of DOM nodes - var flexOffsets = []; // amount of vertical space it takes up - var flexHeights = []; // actual css height - var usedHeight = 0; - undistributeHeight(els); // give all elements their natural height - // find elements that are below the recommended height (expandable). - // important to query for heights in a single first pass (to avoid reflow oscillation). - els.forEach(function (el, i) { - var minOffset = i === els.length - 1 ? minOffset2 : minOffset1; - var naturalHeight = el.getBoundingClientRect().height; - var naturalOffset = naturalHeight + computeVMargins(el); - if (naturalOffset < minOffset) { - flexEls.push(el); - flexOffsets.push(naturalOffset); - flexHeights.push(naturalHeight); - } - else { - // this element stretches past recommended height (non-expandable). mark the space as occupied. - usedHeight += naturalOffset; - } - }); - // readjust the recommended height to only consider the height available to non-maxed-out rows. - if (shouldRedistribute) { - availableHeight -= usedHeight; - minOffset1 = Math.floor(availableHeight / flexEls.length); - minOffset2 = Math.floor(availableHeight - minOffset1 * (flexEls.length - 1)); // *FLOORING NOTE* - } - // assign heights to all expandable elements - flexEls.forEach(function (el, i) { - var minOffset = i === flexEls.length - 1 ? minOffset2 : minOffset1; - var naturalOffset = flexOffsets[i]; - var naturalHeight = flexHeights[i]; - var newHeight = minOffset - (naturalOffset - naturalHeight); // subtract the margin/padding - if (naturalOffset < minOffset) { // we check this again because redistribution might have changed things - el.style.height = newHeight + 'px'; - } - }); -} -// Undoes distrubuteHeight, restoring all els to their natural height -function undistributeHeight(els) { - els.forEach(function (el) { - el.style.height = ''; - }); -} -// Given `els`, a set of cells, find the cell with the largest natural width and set the widths of all the -// cells to be that width. -// PREREQUISITE: if you want a cell to take up width, it needs to have a single inner element w/ display:inline -function matchCellWidths(els) { - var maxInnerWidth = 0; - els.forEach(function (el) { - var innerEl = el.firstChild; // hopefully an element - if (innerEl instanceof HTMLElement) { - var innerWidth_1 = innerEl.getBoundingClientRect().width; - if (innerWidth_1 > maxInnerWidth) { - maxInnerWidth = innerWidth_1; - } - } - }); - maxInnerWidth++; // sometimes not accurate of width the text needs to stay on one line. insurance - els.forEach(function (el) { - el.style.width = maxInnerWidth + 'px'; - }); - return maxInnerWidth; -} -// Given one element that resides inside another, -// Subtracts the height of the inner element from the outer element. -function subtractInnerElHeight(outerEl, innerEl) { - // effin' IE8/9/10/11 sometimes returns 0 for dimensions. this weird hack was the only thing that worked - var reflowStyleProps = { - position: 'relative', - left: -1 // ensure reflow in case the el was already relative. negative is less likely to cause new scroll - }; - applyStyle(outerEl, reflowStyleProps); - applyStyle(innerEl, reflowStyleProps); - var diff = // grab the dimensions - outerEl.getBoundingClientRect().height - - innerEl.getBoundingClientRect().height; - // undo hack - var resetStyleProps = { position: '', left: '' }; - applyStyle(outerEl, resetStyleProps); - applyStyle(innerEl, resetStyleProps); - return diff; -} -/* Selection -----------------------------------------------------------------------------------------------------------------------*/ -function preventSelection(el) { - el.classList.add('fc-unselectable'); - el.addEventListener('selectstart', preventDefault); -} -function allowSelection(el) { - el.classList.remove('fc-unselectable'); - el.removeEventListener('selectstart', preventDefault); -} -/* Context Menu -----------------------------------------------------------------------------------------------------------------------*/ -function preventContextMenu(el) { - el.addEventListener('contextmenu', preventDefault); -} -function allowContextMenu(el) { - el.removeEventListener('contextmenu', preventDefault); -} -/* Object Ordering by Field -----------------------------------------------------------------------------------------------------------------------*/ -function parseFieldSpecs(input) { - var specs = []; - var tokens = []; - var i; - var token; - if (typeof input === 'string') { - tokens = input.split(/\s*,\s*/); - } - else if (typeof input === 'function') { - tokens = [input]; - } - else if (Array.isArray(input)) { - tokens = input; - } - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - if (typeof token === 'string') { - specs.push(token.charAt(0) === '-' ? - { field: token.substring(1), order: -1 } : - { field: token, order: 1 }); - } - else if (typeof token === 'function') { - specs.push({ func: token }); - } - } - return specs; -} -function compareByFieldSpecs(obj0, obj1, fieldSpecs) { - var i; - var cmp; - for (i = 0; i < fieldSpecs.length; i++) { - cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]); - if (cmp) { - return cmp; - } - } - return 0; -} -function compareByFieldSpec(obj0, obj1, fieldSpec) { - if (fieldSpec.func) { - return fieldSpec.func(obj0, obj1); - } - return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field]) - * (fieldSpec.order || 1); -} -function flexibleCompare(a, b) { - if (!a && !b) { - return 0; - } - if (b == null) { - return -1; - } - if (a == null) { - return 1; - } - if (typeof a === 'string' || typeof b === 'string') { - return String(a).localeCompare(String(b)); - } - return a - b; -} -/* String Utilities -----------------------------------------------------------------------------------------------------------------------*/ -function capitaliseFirstLetter(str) { - return str.charAt(0).toUpperCase() + str.slice(1); -} -function padStart(val, len) { - var s = String(val); - return '000'.substr(0, len - s.length) + s; -} -/* Number Utilities -----------------------------------------------------------------------------------------------------------------------*/ -function compareNumbers(a, b) { - return a - b; -} -function isInt(n) { - return n % 1 === 0; -} -/* Weird Utilities -----------------------------------------------------------------------------------------------------------------------*/ -function applyAll(functions, thisObj, args) { - if (typeof functions === 'function') { // supplied a single function - functions = [functions]; - } - if (functions) { - var i = void 0; - var ret = void 0; - for (i = 0; i < functions.length; i++) { - ret = functions[i].apply(thisObj, args) || ret; - } - return ret; - } -} -function firstDefined() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - for (var i = 0; i < args.length; i++) { - if (args[i] !== undefined) { - return args[i]; - } - } -} -// Returns a function, that, as long as it continues to be invoked, will not -// be triggered. The function will be called after it stops being called for -// N milliseconds. If `immediate` is passed, trigger the function on the -// leading edge, instead of the trailing. -// https://github.com/jashkenas/underscore/blob/1.6.0/underscore.js#L714 -function debounce(func, wait) { - var timeout; - var args; - var context; - var timestamp; - var result; - var later = function () { - var last = new Date().valueOf() - timestamp; - if (last < wait) { - timeout = setTimeout(later, wait - last); - } - else { - timeout = null; - result = func.apply(context, args); - context = args = null; - } - }; - return function () { - context = this; - args = arguments; - timestamp = new Date().valueOf(); - if (!timeout) { - timeout = setTimeout(later, wait); - } - return result; - }; -} -// Number and Boolean are only types that defaults or not computed for -// TODO: write more comments -function refineProps(rawProps, processors, defaults, leftoverProps) { - if (defaults === void 0) { defaults = {}; } - var refined = {}; - for (var key in processors) { - var processor = processors[key]; - if (rawProps[key] !== undefined) { - // found - if (processor === Function) { - refined[key] = typeof rawProps[key] === 'function' ? rawProps[key] : null; - } - else if (processor) { // a refining function? - refined[key] = processor(rawProps[key]); - } - else { - refined[key] = rawProps[key]; - } - } - else if (defaults[key] !== undefined) { - // there's an explicit default - refined[key] = defaults[key]; - } - else { - // must compute a default - if (processor === String) { - refined[key] = ''; // empty string is default for String - } - else if (!processor || processor === Number || processor === Boolean || processor === Function) { - refined[key] = null; // assign null for other non-custom processor funcs - } - else { - refined[key] = processor(null); // run the custom processor func - } - } - } - if (leftoverProps) { - for (var key in rawProps) { - if (processors[key] === undefined) { - leftoverProps[key] = rawProps[key]; - } - } - } - return refined; -} -/* Date stuff that doesn't belong in datelib core -----------------------------------------------------------------------------------------------------------------------*/ -// given a timed range, computes an all-day range that has the same exact duration, -// but whose start time is aligned with the start of the day. -function computeAlignedDayRange(timedRange) { - var dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1; - var start = startOfDay(timedRange.start); - var end = addDays(start, dayCnt); - return { start: start, end: end }; -} -// given a timed range, computes an all-day range based on how for the end date bleeds into the next day -// TODO: give nextDayThreshold a default arg -function computeVisibleDayRange(timedRange, nextDayThreshold) { - if (nextDayThreshold === void 0) { nextDayThreshold = createDuration(0); } - var startDay = null; - var endDay = null; - if (timedRange.end) { - endDay = startOfDay(timedRange.end); - var endTimeMS = timedRange.end.valueOf() - endDay.valueOf(); // # of milliseconds into `endDay` - // If the end time is actually inclusively part of the next day and is equal to or - // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`. - // Otherwise, leaving it as inclusive will cause it to exclude `endDay`. - if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) { - endDay = addDays(endDay, 1); - } - } - if (timedRange.start) { - startDay = startOfDay(timedRange.start); // the beginning of the day the range starts - // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day. - if (endDay && endDay <= startDay) { - endDay = addDays(startDay, 1); - } - } - return { start: startDay, end: endDay }; -} -// spans from one day into another? -function isMultiDayRange(range) { - var visibleRange = computeVisibleDayRange(range); - return diffDays(visibleRange.start, visibleRange.end) > 1; -} -function diffDates(date0, date1, dateEnv, largeUnit) { - if (largeUnit === 'year') { - return createDuration(dateEnv.diffWholeYears(date0, date1), 'year'); - } - else if (largeUnit === 'month') { - return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month'); - } - else { - return diffDayAndTime(date0, date1); // returns a duration - } -} - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; - -function parseRecurring(eventInput, allDayDefault, dateEnv, recurringTypes, leftovers) { - for (var i = 0; i < recurringTypes.length; i++) { - var localLeftovers = {}; - var parsed = recurringTypes[i].parse(eventInput, localLeftovers, dateEnv); - if (parsed) { - var allDay = localLeftovers.allDay; - delete localLeftovers.allDay; // remove from leftovers - if (allDay == null) { - allDay = allDayDefault; - if (allDay == null) { - allDay = parsed.allDayGuess; - if (allDay == null) { - allDay = false; - } - } - } - __assign(leftovers, localLeftovers); - return { - allDay: allDay, - duration: parsed.duration, - typeData: parsed.typeData, - typeId: i - }; - } - } - return null; -} -/* -Event MUST have a recurringDef -*/ -function expandRecurringRanges(eventDef, duration, framingRange, dateEnv, recurringTypes) { - var typeDef = recurringTypes[eventDef.recurringDef.typeId]; - var markers = typeDef.expand(eventDef.recurringDef.typeData, { - start: dateEnv.subtract(framingRange.start, duration), - end: framingRange.end - }, dateEnv); - // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to - if (eventDef.allDay) { - markers = markers.map(startOfDay); - } - return markers; -} - -var hasOwnProperty = Object.prototype.hasOwnProperty; -// Merges an array of objects into a single object. -// The second argument allows for an array of property names who's object values will be merged together. -function mergeProps(propObjs, complexProps) { - var dest = {}; - var i; - var name; - var complexObjs; - var j; - var val; - var props; - if (complexProps) { - for (i = 0; i < complexProps.length; i++) { - name = complexProps[i]; - complexObjs = []; - // collect the trailing object values, stopping when a non-object is discovered - for (j = propObjs.length - 1; j >= 0; j--) { - val = propObjs[j][name]; - if (typeof val === 'object' && val) { // non-null object - complexObjs.unshift(val); - } - else if (val !== undefined) { - dest[name] = val; // if there were no objects, this value will be used - break; - } - } - // if the trailing values were objects, use the merged value - if (complexObjs.length) { - dest[name] = mergeProps(complexObjs); - } - } - } - // copy values into the destination, going from last to first - for (i = propObjs.length - 1; i >= 0; i--) { - props = propObjs[i]; - for (name in props) { - if (!(name in dest)) { // if already assigned by previous props or complex props, don't reassign - dest[name] = props[name]; - } - } - } - return dest; -} -function filterHash(hash, func) { - var filtered = {}; - for (var key in hash) { - if (func(hash[key], key)) { - filtered[key] = hash[key]; - } - } - return filtered; -} -function mapHash(hash, func) { - var newHash = {}; - for (var key in hash) { - newHash[key] = func(hash[key], key); - } - return newHash; -} -function arrayToHash(a) { - var hash = {}; - for (var _i = 0, a_1 = a; _i < a_1.length; _i++) { - var item = a_1[_i]; - hash[item] = true; - } - return hash; -} -function hashValuesToArray(obj) { - var a = []; - for (var key in obj) { - a.push(obj[key]); - } - return a; -} -function isPropsEqual(obj0, obj1) { - for (var key in obj0) { - if (hasOwnProperty.call(obj0, key)) { - if (!(key in obj1)) { - return false; - } - } - } - for (var key in obj1) { - if (hasOwnProperty.call(obj1, key)) { - if (obj0[key] !== obj1[key]) { - return false; - } - } - } - return true; -} - -function parseEvents(rawEvents, sourceId, calendar, allowOpenRange) { - var eventStore = createEmptyEventStore(); - for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) { - var rawEvent = rawEvents_1[_i]; - var tuple = parseEvent(rawEvent, sourceId, calendar, allowOpenRange); - if (tuple) { - eventTupleToStore(tuple, eventStore); - } - } - return eventStore; -} -function eventTupleToStore(tuple, eventStore) { - if (eventStore === void 0) { eventStore = createEmptyEventStore(); } - eventStore.defs[tuple.def.defId] = tuple.def; - if (tuple.instance) { - eventStore.instances[tuple.instance.instanceId] = tuple.instance; - } - return eventStore; -} -function expandRecurring(eventStore, framingRange, calendar) { - var dateEnv = calendar.dateEnv; - var defs = eventStore.defs, instances = eventStore.instances; - // remove existing recurring instances - instances = filterHash(instances, function (instance) { - return !defs[instance.defId].recurringDef; - }); - for (var defId in defs) { - var def = defs[defId]; - if (def.recurringDef) { - var duration = def.recurringDef.duration; - if (!duration) { - duration = def.allDay ? - calendar.defaultAllDayEventDuration : - calendar.defaultTimedEventDuration; - } - var starts = expandRecurringRanges(def, duration, framingRange, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes); - for (var _i = 0, starts_1 = starts; _i < starts_1.length; _i++) { - var start = starts_1[_i]; - var instance = createEventInstance(defId, { - start: start, - end: dateEnv.add(start, duration) - }); - instances[instance.instanceId] = instance; - } - } - } - return { defs: defs, instances: instances }; -} -// retrieves events that have the same groupId as the instance specified by `instanceId` -// or they are the same as the instance. -// why might instanceId not be in the store? an event from another calendar? -function getRelevantEvents(eventStore, instanceId) { - var instance = eventStore.instances[instanceId]; - if (instance) { - var def_1 = eventStore.defs[instance.defId]; - // get events/instances with same group - var newStore = filterEventStoreDefs(eventStore, function (lookDef) { - return isEventDefsGrouped(def_1, lookDef); - }); - // add the original - // TODO: wish we could use eventTupleToStore or something like it - newStore.defs[def_1.defId] = def_1; - newStore.instances[instance.instanceId] = instance; - return newStore; - } - return createEmptyEventStore(); -} -function isEventDefsGrouped(def0, def1) { - return Boolean(def0.groupId && def0.groupId === def1.groupId); -} -function transformRawEvents(rawEvents, eventSource, calendar) { - var calEachTransform = calendar.opt('eventDataTransform'); - var sourceEachTransform = eventSource ? eventSource.eventDataTransform : null; - if (sourceEachTransform) { - rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform); - } - if (calEachTransform) { - rawEvents = transformEachRawEvent(rawEvents, calEachTransform); - } - return rawEvents; -} -function transformEachRawEvent(rawEvents, func) { - var refinedEvents; - if (!func) { - refinedEvents = rawEvents; - } - else { - refinedEvents = []; - for (var _i = 0, rawEvents_2 = rawEvents; _i < rawEvents_2.length; _i++) { - var rawEvent = rawEvents_2[_i]; - var refinedEvent = func(rawEvent); - if (refinedEvent) { - refinedEvents.push(refinedEvent); - } - else if (refinedEvent == null) { - refinedEvents.push(rawEvent); - } // if a different falsy value, do nothing - } - } - return refinedEvents; -} -function createEmptyEventStore() { - return { defs: {}, instances: {} }; -} -function mergeEventStores(store0, store1) { - return { - defs: __assign({}, store0.defs, store1.defs), - instances: __assign({}, store0.instances, store1.instances) - }; -} -function filterEventStoreDefs(eventStore, filterFunc) { - var defs = filterHash(eventStore.defs, filterFunc); - var instances = filterHash(eventStore.instances, function (instance) { - return defs[instance.defId]; // still exists? - }); - return { defs: defs, instances: instances }; -} - -function parseRange(input, dateEnv) { - var start = null; - var end = null; - if (input.start) { - start = dateEnv.createMarker(input.start); - } - if (input.end) { - end = dateEnv.createMarker(input.end); - } - if (!start && !end) { - return null; - } - if (start && end && end < start) { - return null; - } - return { start: start, end: end }; -} -// SIDE-EFFECT: will mutate ranges. -// Will return a new array result. -function invertRanges(ranges, constraintRange) { - var invertedRanges = []; - var start = constraintRange.start; // the end of the previous range. the start of the new range - var i; - var dateRange; - // ranges need to be in order. required for our date-walking algorithm - ranges.sort(compareRanges); - for (i = 0; i < ranges.length; i++) { - dateRange = ranges[i]; - // add the span of time before the event (if there is any) - if (dateRange.start > start) { // compare millisecond time (skip any ambig logic) - invertedRanges.push({ start: start, end: dateRange.start }); - } - if (dateRange.end > start) { - start = dateRange.end; - } - } - // add the span of time after the last event (if there is any) - if (start < constraintRange.end) { // compare millisecond time (skip any ambig logic) - invertedRanges.push({ start: start, end: constraintRange.end }); - } - return invertedRanges; -} -function compareRanges(range0, range1) { - return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first -} -function intersectRanges(range0, range1) { - var start = range0.start; - var end = range0.end; - var newRange = null; - if (range1.start !== null) { - if (start === null) { - start = range1.start; - } - else { - start = new Date(Math.max(start.valueOf(), range1.start.valueOf())); - } - } - if (range1.end != null) { - if (end === null) { - end = range1.end; - } - else { - end = new Date(Math.min(end.valueOf(), range1.end.valueOf())); - } - } - if (start === null || end === null || start < end) { - newRange = { start: start, end: end }; - } - return newRange; -} -function rangesEqual(range0, range1) { - return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) && - (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf()); -} -function rangesIntersect(range0, range1) { - return (range0.end === null || range1.start === null || range0.end > range1.start) && - (range0.start === null || range1.end === null || range0.start < range1.end); -} -function rangeContainsRange(outerRange, innerRange) { - return (outerRange.start === null || (innerRange.start !== null && innerRange.start >= outerRange.start)) && - (outerRange.end === null || (innerRange.end !== null && innerRange.end <= outerRange.end)); -} -function rangeContainsMarker(range, date) { - return (range.start === null || date >= range.start) && - (range.end === null || date < range.end); -} -// If the given date is not within the given range, move it inside. -// (If it's past the end, make it one millisecond before the end). -function constrainMarkerToRange(date, range) { - if (range.start != null && date < range.start) { - return range.start; - } - if (range.end != null && date >= range.end) { - return new Date(range.end.valueOf() - 1); - } - return date; -} - -function removeExact(array, exactVal) { - var removeCnt = 0; - var i = 0; - while (i < array.length) { - if (array[i] === exactVal) { - array.splice(i, 1); - removeCnt++; - } - else { - i++; - } - } - return removeCnt; -} -function isArraysEqual(a0, a1) { - var len = a0.length; - var i; - if (len !== a1.length) { // not array? or not same length? - return false; - } - for (i = 0; i < len; i++) { - if (a0[i] !== a1[i]) { - return false; - } - } - return true; -} - -function memoize(workerFunc) { - var args; - var res; - return function () { - if (!args || !isArraysEqual(args, arguments)) { - args = arguments; - res = workerFunc.apply(this, arguments); - } - return res; - }; -} -/* -always executes the workerFunc, but if the result is equal to the previous result, -return the previous result instead. -*/ -function memoizeOutput(workerFunc, equalityFunc) { - var cachedRes = null; - return function () { - var newRes = workerFunc.apply(this, arguments); - if (cachedRes === null || !(cachedRes === newRes || equalityFunc(cachedRes, newRes))) { - cachedRes = newRes; - } - return cachedRes; - }; -} - -var EXTENDED_SETTINGS_AND_SEVERITIES = { - week: 3, - separator: 0, - omitZeroMinute: 0, - meridiem: 0, - omitCommas: 0 -}; -var STANDARD_DATE_PROP_SEVERITIES = { - timeZoneName: 7, - era: 6, - year: 5, - month: 4, - day: 2, - weekday: 2, - hour: 1, - minute: 1, - second: 1 -}; -var MERIDIEM_RE = /\s*([ap])\.?m\.?/i; // eats up leading spaces too -var COMMA_RE = /,/g; // we need re for globalness -var MULTI_SPACE_RE = /\s+/g; -var LTR_RE = /\u200e/g; // control character -var UTC_RE = /UTC|GMT/; -var NativeFormatter = /** @class */ (function () { - function NativeFormatter(formatSettings) { - var standardDateProps = {}; - var extendedSettings = {}; - var severity = 0; - for (var name_1 in formatSettings) { - if (name_1 in EXTENDED_SETTINGS_AND_SEVERITIES) { - extendedSettings[name_1] = formatSettings[name_1]; - severity = Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name_1], severity); - } - else { - standardDateProps[name_1] = formatSettings[name_1]; - if (name_1 in STANDARD_DATE_PROP_SEVERITIES) { - severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name_1], severity); - } - } - } - this.standardDateProps = standardDateProps; - this.extendedSettings = extendedSettings; - this.severity = severity; - this.buildFormattingFunc = memoize(buildFormattingFunc); - } - NativeFormatter.prototype.format = function (date, context) { - return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date); - }; - NativeFormatter.prototype.formatRange = function (start, end, context) { - var _a = this, standardDateProps = _a.standardDateProps, extendedSettings = _a.extendedSettings; - var diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem); - if (!diffSeverity) { - return this.format(start, context); - } - var biggestUnitForPartial = diffSeverity; - if (biggestUnitForPartial > 1 && // the two dates are different in a way that's larger scale than time - (standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') && - (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') && - (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')) { - biggestUnitForPartial = 1; // make it look like the dates are only different in terms of time - } - var full0 = this.format(start, context); - var full1 = this.format(end, context); - if (full0 === full1) { - return full0; - } - var partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial); - var partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context); - var partial0 = partialFormattingFunc(start); - var partial1 = partialFormattingFunc(end); - var insertion = findCommonInsertion(full0, partial0, full1, partial1); - var separator = extendedSettings.separator || ''; - if (insertion) { - return insertion.before + partial0 + separator + partial1 + insertion.after; - } - return full0 + separator + full1; - }; - NativeFormatter.prototype.getLargestUnit = function () { - switch (this.severity) { - case 7: - case 6: - case 5: - return 'year'; - case 4: - return 'month'; - case 3: - return 'week'; - default: - return 'day'; - } - }; - return NativeFormatter; -}()); -function buildFormattingFunc(standardDateProps, extendedSettings, context) { - var standardDatePropCnt = Object.keys(standardDateProps).length; - if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') { - return function (date) { - return formatTimeZoneOffset(date.timeZoneOffset); - }; - } - if (standardDatePropCnt === 0 && extendedSettings.week) { - return function (date) { - return formatWeekNumber(context.computeWeekNumber(date.marker), context.weekLabel, context.locale, extendedSettings.week); - }; - } - return buildNativeFormattingFunc(standardDateProps, extendedSettings, context); -} -function buildNativeFormattingFunc(standardDateProps, extendedSettings, context) { - standardDateProps = __assign({}, standardDateProps); // copy - extendedSettings = __assign({}, extendedSettings); // copy - sanitizeSettings(standardDateProps, extendedSettings); - standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers - var normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps); - var zeroFormat; // needed? - if (extendedSettings.omitZeroMinute) { - var zeroProps = __assign({}, standardDateProps); - delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings - zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps); - } - return function (date) { - var marker = date.marker; - var format; - if (zeroFormat && !marker.getUTCMinutes()) { - format = zeroFormat; - } - else { - format = normalFormat; - } - var s = format.format(marker); - return postProcess(s, date, standardDateProps, extendedSettings, context); - }; -} -function sanitizeSettings(standardDateProps, extendedSettings) { - // deal with a browser inconsistency where formatting the timezone - // requires that the hour/minute be present. - if (standardDateProps.timeZoneName) { - if (!standardDateProps.hour) { - standardDateProps.hour = '2-digit'; - } - if (!standardDateProps.minute) { - standardDateProps.minute = '2-digit'; - } - } - // only support short timezone names - if (standardDateProps.timeZoneName === 'long') { - standardDateProps.timeZoneName = 'short'; - } - // if requesting to display seconds, MUST display minutes - if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) { - delete extendedSettings.omitZeroMinute; - } -} -function postProcess(s, date, standardDateProps, extendedSettings, context) { - s = s.replace(LTR_RE, ''); // remove left-to-right control chars. do first. good for other regexes - if (standardDateProps.timeZoneName === 'short') { - s = injectTzoStr(s, (context.timeZone === 'UTC' || date.timeZoneOffset == null) ? - 'UTC' : // important to normalize for IE, which does "GMT" - formatTimeZoneOffset(date.timeZoneOffset)); - } - if (extendedSettings.omitCommas) { - s = s.replace(COMMA_RE, '').trim(); - } - if (extendedSettings.omitZeroMinute) { - s = s.replace(':00', ''); // zeroFormat doesn't always achieve this - } - // ^ do anything that might create adjacent spaces before this point, - // because MERIDIEM_RE likes to eat up loading spaces - if (extendedSettings.meridiem === false) { - s = s.replace(MERIDIEM_RE, '').trim(); - } - else if (extendedSettings.meridiem === 'narrow') { // a/p - s = s.replace(MERIDIEM_RE, function (m0, m1) { - return m1.toLocaleLowerCase(); - }); - } - else if (extendedSettings.meridiem === 'short') { // am/pm - s = s.replace(MERIDIEM_RE, function (m0, m1) { - return m1.toLocaleLowerCase() + 'm'; - }); - } - else if (extendedSettings.meridiem === 'lowercase') { // other meridiem transformers already converted to lowercase - s = s.replace(MERIDIEM_RE, function (m0) { - return m0.toLocaleLowerCase(); - }); - } - s = s.replace(MULTI_SPACE_RE, ' '); - s = s.trim(); - return s; -} -function injectTzoStr(s, tzoStr) { - var replaced = false; - s = s.replace(UTC_RE, function () { - replaced = true; - return tzoStr; - }); - // IE11 doesn't include UTC/GMT in the original string, so append to end - if (!replaced) { - s += ' ' + tzoStr; - } - return s; -} -function formatWeekNumber(num, weekLabel, locale, display) { - var parts = []; - if (display === 'narrow') { - parts.push(weekLabel); - } - else if (display === 'short') { - parts.push(weekLabel, ' '); - } - // otherwise, considered 'numeric' - parts.push(locale.simpleNumberFormat.format(num)); - if (locale.options.isRtl) { // TODO: use control characters instead? - parts.reverse(); - } - return parts.join(''); -} -// Range Formatting Utils -// 0 = exactly the same -// 1 = different by time -// and bigger -function computeMarkerDiffSeverity(d0, d1, ca) { - if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) { - return 5; - } - if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) { - return 4; - } - if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) { - return 2; - } - if (timeAsMs(d0) !== timeAsMs(d1)) { - return 1; - } - return 0; -} -function computePartialFormattingOptions(options, biggestUnit) { - var partialOptions = {}; - for (var name_2 in options) { - if (!(name_2 in STANDARD_DATE_PROP_SEVERITIES) || // not a date part prop (like timeZone) - STANDARD_DATE_PROP_SEVERITIES[name_2] <= biggestUnit) { - partialOptions[name_2] = options[name_2]; - } - } - return partialOptions; -} -function findCommonInsertion(full0, partial0, full1, partial1) { - var i0 = 0; - while (i0 < full0.length) { - var found0 = full0.indexOf(partial0, i0); - if (found0 === -1) { - break; - } - var before0 = full0.substr(0, found0); - i0 = found0 + partial0.length; - var after0 = full0.substr(i0); - var i1 = 0; - while (i1 < full1.length) { - var found1 = full1.indexOf(partial1, i1); - if (found1 === -1) { - break; - } - var before1 = full1.substr(0, found1); - i1 = found1 + partial1.length; - var after1 = full1.substr(i1); - if (before0 === before1 && after0 === after1) { - return { - before: before0, - after: after0 - }; - } - } - } - return null; -} - -/* -TODO: fix the terminology of "formatter" vs "formatting func" -*/ -/* -At the time of instantiation, this object does not know which cmd-formatting system it will use. -It receives this at the time of formatting, as a setting. -*/ -var CmdFormatter = /** @class */ (function () { - function CmdFormatter(cmdStr, separator) { - this.cmdStr = cmdStr; - this.separator = separator; - } - CmdFormatter.prototype.format = function (date, context) { - return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, this.separator)); - }; - CmdFormatter.prototype.formatRange = function (start, end, context) { - return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, this.separator)); - }; - return CmdFormatter; -}()); - -var FuncFormatter = /** @class */ (function () { - function FuncFormatter(func) { - this.func = func; - } - FuncFormatter.prototype.format = function (date, context) { - return this.func(createVerboseFormattingArg(date, null, context)); - }; - FuncFormatter.prototype.formatRange = function (start, end, context) { - return this.func(createVerboseFormattingArg(start, end, context)); - }; - return FuncFormatter; -}()); - -// Formatter Object Creation -function createFormatter(input, defaultSeparator) { - if (typeof input === 'object' && input) { // non-null object - if (typeof defaultSeparator === 'string') { - input = __assign({ separator: defaultSeparator }, input); - } - return new NativeFormatter(input); - } - else if (typeof input === 'string') { - return new CmdFormatter(input, defaultSeparator); - } - else if (typeof input === 'function') { - return new FuncFormatter(input); - } -} -// String Utils -// timeZoneOffset is in minutes -function buildIsoString(marker, timeZoneOffset, stripZeroTime) { - if (stripZeroTime === void 0) { stripZeroTime = false; } - var s = marker.toISOString(); - s = s.replace('.000', ''); - if (stripZeroTime) { - s = s.replace('T00:00:00Z', ''); - } - if (s.length > 10) { // time part wasn't stripped, can add timezone info - if (timeZoneOffset == null) { - s = s.replace('Z', ''); - } - else if (timeZoneOffset !== 0) { - s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true)); - } - // otherwise, its UTC-0 and we want to keep the Z - } - return s; -} -function formatIsoTimeString(marker) { - return padStart(marker.getUTCHours(), 2) + ':' + - padStart(marker.getUTCMinutes(), 2) + ':' + - padStart(marker.getUTCSeconds(), 2); -} -function formatTimeZoneOffset(minutes, doIso) { - if (doIso === void 0) { doIso = false; } - var sign = minutes < 0 ? '-' : '+'; - var abs = Math.abs(minutes); - var hours = Math.floor(abs / 60); - var mins = Math.round(abs % 60); - if (doIso) { - return sign + padStart(hours, 2) + ':' + padStart(mins, 2); - } - else { - return 'GMT' + sign + hours + (mins ? ':' + padStart(mins, 2) : ''); - } -} -// Arg Utils -function createVerboseFormattingArg(start, end, context, separator) { - var startInfo = expandZonedMarker(start, context.calendarSystem); - var endInfo = end ? expandZonedMarker(end, context.calendarSystem) : null; - return { - date: startInfo, - start: startInfo, - end: endInfo, - timeZone: context.timeZone, - localeCodes: context.locale.codes, - separator: separator - }; -} -function expandZonedMarker(dateInfo, calendarSystem) { - var a = calendarSystem.markerToArray(dateInfo.marker); - return { - marker: dateInfo.marker, - timeZoneOffset: dateInfo.timeZoneOffset, - array: a, - year: a[0], - month: a[1], - day: a[2], - hour: a[3], - minute: a[4], - second: a[5], - millisecond: a[6] - }; -} - -var EventSourceApi = /** @class */ (function () { - function EventSourceApi(calendar, internalEventSource) { - this.calendar = calendar; - this.internalEventSource = internalEventSource; - } - EventSourceApi.prototype.remove = function () { - this.calendar.dispatch({ - type: 'REMOVE_EVENT_SOURCE', - sourceId: this.internalEventSource.sourceId - }); - }; - EventSourceApi.prototype.refetch = function () { - this.calendar.dispatch({ - type: 'FETCH_EVENT_SOURCES', - sourceIds: [this.internalEventSource.sourceId] - }); - }; - Object.defineProperty(EventSourceApi.prototype, "id", { - get: function () { - return this.internalEventSource.publicId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventSourceApi.prototype, "url", { - // only relevant to json-feed event sources - get: function () { - return this.internalEventSource.meta.url; - }, - enumerable: true, - configurable: true - }); - return EventSourceApi; -}()); - -var EventApi = /** @class */ (function () { - function EventApi(calendar, def, instance) { - this._calendar = calendar; - this._def = def; - this._instance = instance || null; - } - /* - TODO: make event struct more responsible for this - */ - EventApi.prototype.setProp = function (name, val) { - var _a, _b; - if (name in DATE_PROPS) ; - else if (name in NON_DATE_PROPS) { - if (typeof NON_DATE_PROPS[name] === 'function') { - val = NON_DATE_PROPS[name](val); - } - this.mutate({ - standardProps: (_a = {}, _a[name] = val, _a) - }); - } - else if (name in UNSCOPED_EVENT_UI_PROPS) { - var ui = void 0; - if (typeof UNSCOPED_EVENT_UI_PROPS[name] === 'function') { - val = UNSCOPED_EVENT_UI_PROPS[name](val); - } - if (name === 'color') { - ui = { backgroundColor: val, borderColor: val }; - } - else if (name === 'editable') { - ui = { startEditable: val, durationEditable: val }; - } - else { - ui = (_b = {}, _b[name] = val, _b); - } - this.mutate({ - standardProps: { ui: ui } - }); - } - }; - EventApi.prototype.setExtendedProp = function (name, val) { - var _a; - this.mutate({ - extendedProps: (_a = {}, _a[name] = val, _a) - }); - }; - EventApi.prototype.setStart = function (startInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var start = dateEnv.createMarker(startInput); - if (start && this._instance) { // TODO: warning if parsed bad - var instanceRange = this._instance.range; - var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); // what if parsed bad!? - if (options.maintainDuration) { - this.mutate({ datesDelta: startDelta }); - } - else { - this.mutate({ startDelta: startDelta }); - } - } - }; - EventApi.prototype.setEnd = function (endInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var end; - if (endInput != null) { - end = dateEnv.createMarker(endInput); - if (!end) { - return; // TODO: warning if parsed bad - } - } - if (this._instance) { - if (end) { - var endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity); - this.mutate({ endDelta: endDelta }); - } - else { - this.mutate({ standardProps: { hasEnd: false } }); - } - } - }; - EventApi.prototype.setDates = function (startInput, endInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var standardProps = { allDay: options.allDay }; - var start = dateEnv.createMarker(startInput); - var end; - if (!start) { - return; // TODO: warning if parsed bad - } - if (endInput != null) { - end = dateEnv.createMarker(endInput); - if (!end) { // TODO: warning if parsed bad - return; - } - } - if (this._instance) { - var instanceRange = this._instance.range; - // when computing the diff for an event being converted to all-day, - // compute diff off of the all-day values the way event-mutation does. - if (options.allDay === true) { - instanceRange = computeAlignedDayRange(instanceRange); - } - var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); - if (end) { - var endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity); - if (durationsEqual(startDelta, endDelta)) { - this.mutate({ datesDelta: startDelta, standardProps: standardProps }); - } - else { - this.mutate({ startDelta: startDelta, endDelta: endDelta, standardProps: standardProps }); - } - } - else { // means "clear the end" - standardProps.hasEnd = false; - this.mutate({ datesDelta: startDelta, standardProps: standardProps }); - } - } - }; - EventApi.prototype.moveStart = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ startDelta: delta }); - } - }; - EventApi.prototype.moveEnd = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ endDelta: delta }); - } - }; - EventApi.prototype.moveDates = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ datesDelta: delta }); - } - }; - EventApi.prototype.setAllDay = function (allDay, options) { - if (options === void 0) { options = {}; } - var standardProps = { allDay: allDay }; - var maintainDuration = options.maintainDuration; - if (maintainDuration == null) { - maintainDuration = this._calendar.opt('allDayMaintainDuration'); - } - if (this._def.allDay !== allDay) { - standardProps.hasEnd = maintainDuration; - } - this.mutate({ standardProps: standardProps }); - }; - EventApi.prototype.formatRange = function (formatInput) { - var dateEnv = this._calendar.dateEnv; - var instance = this._instance; - var formatter = createFormatter(formatInput, this._calendar.opt('defaultRangeSeparator')); - if (this._def.hasEnd) { - return dateEnv.formatRange(instance.range.start, instance.range.end, formatter, { - forcedStartTzo: instance.forcedStartTzo, - forcedEndTzo: instance.forcedEndTzo - }); - } - else { - return dateEnv.format(instance.range.start, formatter, { - forcedTzo: instance.forcedStartTzo - }); - } - }; - EventApi.prototype.mutate = function (mutation) { - var def = this._def; - var instance = this._instance; - if (instance) { - this._calendar.dispatch({ - type: 'MUTATE_EVENTS', - instanceId: instance.instanceId, - mutation: mutation, - fromApi: true - }); - var eventStore = this._calendar.state.eventStore; - this._def = eventStore.defs[def.defId]; - this._instance = eventStore.instances[instance.instanceId]; - } - }; - EventApi.prototype.remove = function () { - this._calendar.dispatch({ - type: 'REMOVE_EVENT_DEF', - defId: this._def.defId - }); - }; - Object.defineProperty(EventApi.prototype, "source", { - get: function () { - var sourceId = this._def.sourceId; - if (sourceId) { - return new EventSourceApi(this._calendar, this._calendar.state.eventSources[sourceId]); - } - return null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "start", { - get: function () { - return this._instance ? - this._calendar.dateEnv.toDate(this._instance.range.start) : - null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "end", { - get: function () { - return (this._instance && this._def.hasEnd) ? - this._calendar.dateEnv.toDate(this._instance.range.end) : - null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "id", { - // computable props that all access the def - // TODO: find a TypeScript-compatible way to do this at scale - get: function () { return this._def.publicId; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "groupId", { - get: function () { return this._def.groupId; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "allDay", { - get: function () { return this._def.allDay; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "title", { - get: function () { return this._def.title; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "url", { - get: function () { return this._def.url; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "rendering", { - get: function () { return this._def.rendering; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "startEditable", { - get: function () { return this._def.ui.startEditable; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "durationEditable", { - get: function () { return this._def.ui.durationEditable; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "constraint", { - get: function () { return this._def.ui.constraints[0] || null; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "overlap", { - get: function () { return this._def.ui.overlap; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "allow", { - get: function () { return this._def.ui.allows[0] || null; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "backgroundColor", { - get: function () { return this._def.ui.backgroundColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "borderColor", { - get: function () { return this._def.ui.borderColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "textColor", { - get: function () { return this._def.ui.textColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "classNames", { - // NOTE: user can't modify these because Object.freeze was called in event-def parsing - get: function () { return this._def.ui.classNames; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "extendedProps", { - get: function () { return this._def.extendedProps; }, - enumerable: true, - configurable: true - }); - return EventApi; -}()); - -/* -Specifying nextDayThreshold signals that all-day ranges should be sliced. -*/ -function sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshold) { - var inverseBgByGroupId = {}; - var inverseBgByDefId = {}; - var defByGroupId = {}; - var bgRanges = []; - var fgRanges = []; - var eventUis = compileEventUis(eventStore.defs, eventUiBases); - for (var defId in eventStore.defs) { - var def = eventStore.defs[defId]; - if (def.rendering === 'inverse-background') { - if (def.groupId) { - inverseBgByGroupId[def.groupId] = []; - if (!defByGroupId[def.groupId]) { - defByGroupId[def.groupId] = def; - } - } - else { - inverseBgByDefId[defId] = []; - } - } - } - for (var instanceId in eventStore.instances) { - var instance = eventStore.instances[instanceId]; - var def = eventStore.defs[instance.defId]; - var ui = eventUis[def.defId]; - var origRange = instance.range; - var normalRange = (!def.allDay && nextDayThreshold) ? - computeVisibleDayRange(origRange, nextDayThreshold) : - origRange; - var slicedRange = intersectRanges(normalRange, framingRange); - if (slicedRange) { - if (def.rendering === 'inverse-background') { - if (def.groupId) { - inverseBgByGroupId[def.groupId].push(slicedRange); - } - else { - inverseBgByDefId[instance.defId].push(slicedRange); - } - } - else { - (def.rendering === 'background' ? bgRanges : fgRanges).push({ - def: def, - ui: ui, - instance: instance, - range: slicedRange, - isStart: normalRange.start && normalRange.start.valueOf() === slicedRange.start.valueOf(), - isEnd: normalRange.end && normalRange.end.valueOf() === slicedRange.end.valueOf() - }); - } - } - } - for (var groupId in inverseBgByGroupId) { // BY GROUP - var ranges = inverseBgByGroupId[groupId]; - var invertedRanges = invertRanges(ranges, framingRange); - for (var _i = 0, invertedRanges_1 = invertedRanges; _i < invertedRanges_1.length; _i++) { - var invertedRange = invertedRanges_1[_i]; - var def = defByGroupId[groupId]; - var ui = eventUis[def.defId]; - bgRanges.push({ - def: def, - ui: ui, - instance: null, - range: invertedRange, - isStart: false, - isEnd: false - }); - } - } - for (var defId in inverseBgByDefId) { - var ranges = inverseBgByDefId[defId]; - var invertedRanges = invertRanges(ranges, framingRange); - for (var _a = 0, invertedRanges_2 = invertedRanges; _a < invertedRanges_2.length; _a++) { - var invertedRange = invertedRanges_2[_a]; - bgRanges.push({ - def: eventStore.defs[defId], - ui: eventUis[defId], - instance: null, - range: invertedRange, - isStart: false, - isEnd: false - }); - } - } - return { bg: bgRanges, fg: fgRanges }; -} -function hasBgRendering(def) { - return def.rendering === 'background' || def.rendering === 'inverse-background'; -} -function filterSegsViaEls(view, segs, isMirror) { - if (view.hasPublicHandlers('eventRender')) { - segs = segs.filter(function (seg) { - var custom = view.publiclyTrigger('eventRender', [ - { - event: new EventApi(view.calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirror, - isStart: seg.isStart, - isEnd: seg.isEnd, - // TODO: include seg.range once all components consistently generate it - el: seg.el, - view: view - } - ]); - if (custom === false) { // means don't render at all - return false; - } - else if (custom && custom !== true) { - seg.el = custom; - } - return true; - }); - } - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - setElSeg(seg.el, seg); - } - return segs; -} -function setElSeg(el, seg) { - el.fcSeg = seg; -} -function getElSeg(el) { - return el.fcSeg || null; -} -// event ui computation -function compileEventUis(eventDefs, eventUiBases) { - return mapHash(eventDefs, function (eventDef) { - return compileEventUi(eventDef, eventUiBases); - }); -} -function compileEventUi(eventDef, eventUiBases) { - var uis = []; - if (eventUiBases['']) { - uis.push(eventUiBases['']); - } - if (eventUiBases[eventDef.defId]) { - uis.push(eventUiBases[eventDef.defId]); - } - uis.push(eventDef.ui); - return combineEventUis(uis); -} - -// applies the mutation to ALL defs/instances within the event store -function applyMutationToEventStore(eventStore, eventConfigBase, mutation, calendar) { - var eventConfigs = compileEventUis(eventStore.defs, eventConfigBase); - var dest = createEmptyEventStore(); - for (var defId in eventStore.defs) { - var def = eventStore.defs[defId]; - dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, calendar.pluginSystem.hooks.eventDefMutationAppliers, calendar); - } - for (var instanceId in eventStore.instances) { - var instance = eventStore.instances[instanceId]; - var def = dest.defs[instance.defId]; // important to grab the newly modified def - dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, calendar); - } - return dest; -} -function applyMutationToEventDef(eventDef, eventConfig, mutation, appliers, calendar) { - var standardProps = mutation.standardProps || {}; - // if hasEnd has not been specified, guess a good value based on deltas. - // if duration will change, there's no way the default duration will persist, - // and thus, we need to mark the event as having a real end - if (standardProps.hasEnd == null && - eventConfig.durationEditable && - (mutation.startDelta || mutation.endDelta)) { - standardProps.hasEnd = true; // TODO: is this mutation okay? - } - var copy = __assign({}, eventDef, standardProps, { ui: __assign({}, eventDef.ui, standardProps.ui) }); - if (mutation.extendedProps) { - copy.extendedProps = __assign({}, copy.extendedProps, mutation.extendedProps); - } - for (var _i = 0, appliers_1 = appliers; _i < appliers_1.length; _i++) { - var applier = appliers_1[_i]; - applier(copy, mutation, calendar); - } - if (!copy.hasEnd && calendar.opt('forceEventDuration')) { - copy.hasEnd = true; - } - return copy; -} -function applyMutationToEventInstance(eventInstance, eventDef, // must first be modified by applyMutationToEventDef -eventConfig, mutation, calendar) { - var dateEnv = calendar.dateEnv; - var forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true; - var clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false; - var copy = __assign({}, eventInstance); - if (forceAllDay) { - copy.range = computeAlignedDayRange(copy.range); - } - if (mutation.datesDelta && eventConfig.startEditable) { - copy.range = { - start: dateEnv.add(copy.range.start, mutation.datesDelta), - end: dateEnv.add(copy.range.end, mutation.datesDelta) - }; - } - if (mutation.startDelta && eventConfig.durationEditable) { - copy.range = { - start: dateEnv.add(copy.range.start, mutation.startDelta), - end: copy.range.end - }; - } - if (mutation.endDelta && eventConfig.durationEditable) { - copy.range = { - start: copy.range.start, - end: dateEnv.add(copy.range.end, mutation.endDelta) - }; - } - if (clearEnd) { - copy.range = { - start: copy.range.start, - end: calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start) - }; - } - // in case event was all-day but the supplied deltas were not - // better util for this? - if (eventDef.allDay) { - copy.range = { - start: startOfDay(copy.range.start), - end: startOfDay(copy.range.end) - }; - } - // handle invalid durations - if (copy.range.end < copy.range.start) { - copy.range.end = calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start); - } - return copy; -} - -function reduceEventStore (eventStore, action, eventSources, dateProfile, calendar) { - switch (action.type) { - case 'RECEIVE_EVENTS': // raw - return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, calendar); - case 'ADD_EVENTS': // already parsed, but not expanded - return addEvent(eventStore, action.eventStore, // new ones - dateProfile ? dateProfile.activeRange : null, calendar); - case 'MERGE_EVENTS': // already parsed and expanded - return mergeEventStores(eventStore, action.eventStore); - case 'PREV': // TODO: how do we track all actions that affect dateProfile :( - case 'NEXT': - case 'SET_DATE': - case 'SET_VIEW_TYPE': - if (dateProfile) { - return expandRecurring(eventStore, dateProfile.activeRange, calendar); - } - else { - return eventStore; - } - case 'CHANGE_TIMEZONE': - return rezoneDates(eventStore, action.oldDateEnv, calendar.dateEnv); - case 'MUTATE_EVENTS': - return applyMutationToRelated(eventStore, action.instanceId, action.mutation, action.fromApi, calendar); - case 'REMOVE_EVENT_INSTANCES': - return excludeInstances(eventStore, action.instances); - case 'REMOVE_EVENT_DEF': - return filterEventStoreDefs(eventStore, function (eventDef) { - return eventDef.defId !== action.defId; - }); - case 'REMOVE_EVENT_SOURCE': - return excludeEventsBySourceId(eventStore, action.sourceId); - case 'REMOVE_ALL_EVENT_SOURCES': - return filterEventStoreDefs(eventStore, function (eventDef) { - return !eventDef.sourceId; // only keep events with no source id - }); - case 'REMOVE_ALL_EVENTS': - return createEmptyEventStore(); - case 'RESET_EVENTS': - return { - defs: eventStore.defs, - instances: eventStore.instances - }; - default: - return eventStore; - } -} -function receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, calendar) { - if (eventSource && // not already removed - fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources - ) { - var subset = parseEvents(transformRawEvents(rawEvents, eventSource, calendar), eventSource.sourceId, calendar); - if (fetchRange) { - subset = expandRecurring(subset, fetchRange, calendar); - } - return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset); - } - return eventStore; -} -function addEvent(eventStore, subset, expandRange, calendar) { - if (expandRange) { - subset = expandRecurring(subset, expandRange, calendar); - } - return mergeEventStores(eventStore, subset); -} -function rezoneDates(eventStore, oldDateEnv, newDateEnv) { - var defs = eventStore.defs; - var instances = mapHash(eventStore.instances, function (instance) { - var def = defs[instance.defId]; - if (def.allDay || def.recurringDef) { - return instance; // isn't dependent on timezone - } - else { - return __assign({}, instance, { range: { - start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)), - end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo)) - }, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo }); - } - }); - return { defs: defs, instances: instances }; -} -function applyMutationToRelated(eventStore, instanceId, mutation, fromApi, calendar) { - var relevant = getRelevantEvents(eventStore, instanceId); - var eventConfigBase = fromApi ? - { '': { - startEditable: true, - durationEditable: true, - constraints: [], - overlap: null, - allows: [], - backgroundColor: '', - borderColor: '', - textColor: '', - classNames: [] - } } : - calendar.eventUiBases; - relevant = applyMutationToEventStore(relevant, eventConfigBase, mutation, calendar); - return mergeEventStores(eventStore, relevant); -} -function excludeEventsBySourceId(eventStore, sourceId) { - return filterEventStoreDefs(eventStore, function (eventDef) { - return eventDef.sourceId !== sourceId; - }); -} -// QUESTION: why not just return instances? do a general object-property-exclusion util -function excludeInstances(eventStore, removals) { - return { - defs: eventStore.defs, - instances: filterHash(eventStore.instances, function (instance) { - return !removals[instance.instanceId]; - }) - }; -} - -// high-level segmenting-aware tester functions -// ------------------------------------------------------------------------------------------------------------------------ -function isInteractionValid(interaction, calendar) { - return isNewPropsValid({ eventDrag: interaction }, calendar); // HACK: the eventDrag props is used for ALL interactions -} -function isDateSelectionValid(dateSelection, calendar) { - return isNewPropsValid({ dateSelection: dateSelection }, calendar); -} -function isNewPropsValid(newProps, calendar) { - var view = calendar.view; - var props = __assign({ businessHours: view ? view.props.businessHours : createEmptyEventStore(), dateSelection: '', eventStore: calendar.state.eventStore, eventUiBases: calendar.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps); - return (calendar.pluginSystem.hooks.isPropsValid || isPropsValid)(props, calendar); -} -function isPropsValid(state, calendar, dateSpanMeta, filterConfig) { - if (dateSpanMeta === void 0) { dateSpanMeta = {}; } - if (state.eventDrag && !isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig)) { - return false; - } - if (state.dateSelection && !isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig)) { - return false; - } - return true; -} -// Moving Event Validation -// ------------------------------------------------------------------------------------------------------------------------ -function isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig) { - var interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions - var subjectEventStore = interaction.mutatedEvents; - var subjectDefs = subjectEventStore.defs; - var subjectInstances = subjectEventStore.instances; - var subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ? - state.eventUiBases : - { '': calendar.selectionConfig } // if not a real event, validate as a selection - ); - if (filterConfig) { - subjectConfigs = mapHash(subjectConfigs, filterConfig); - } - var otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances); // exclude the subject events. TODO: exclude defs too? - var otherDefs = otherEventStore.defs; - var otherInstances = otherEventStore.instances; - var otherConfigs = compileEventUis(otherDefs, state.eventUiBases); - for (var subjectInstanceId in subjectInstances) { - var subjectInstance = subjectInstances[subjectInstanceId]; - var subjectRange = subjectInstance.range; - var subjectConfig = subjectConfigs[subjectInstance.defId]; - var subjectDef = subjectDefs[subjectInstance.defId]; - // constraint - if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, calendar)) { - return false; - } - // overlap - var overlapFunc = calendar.opt('eventOverlap'); - if (typeof overlapFunc !== 'function') { - overlapFunc = null; - } - for (var otherInstanceId in otherInstances) { - var otherInstance = otherInstances[otherInstanceId]; - // intersect! evaluate - if (rangesIntersect(subjectRange, otherInstance.range)) { - var otherOverlap = otherConfigs[otherInstance.defId].overlap; - // consider the other event's overlap. only do this if the subject event is a "real" event - if (otherOverlap === false && interaction.isEvent) { - return false; - } - if (subjectConfig.overlap === false) { - return false; - } - if (overlapFunc && !overlapFunc(new EventApi(calendar, otherDefs[otherInstance.defId], otherInstance), // still event - new EventApi(calendar, subjectDef, subjectInstance) // moving event - )) { - return false; - } - } - } - // allow (a function) - var calendarEventStore = calendar.state.eventStore; // need global-to-calendar, not local to component (splittable)state - for (var _i = 0, _a = subjectConfig.allows; _i < _a.length; _i++) { - var subjectAllow = _a[_i]; - var subjectDateSpan = __assign({}, dateSpanMeta, { range: subjectInstance.range, allDay: subjectDef.allDay }); - var origDef = calendarEventStore.defs[subjectDef.defId]; - var origInstance = calendarEventStore.instances[subjectInstanceId]; - var eventApi = void 0; - if (origDef) { // was previously in the calendar - eventApi = new EventApi(calendar, origDef, origInstance); - } - else { // was an external event - eventApi = new EventApi(calendar, subjectDef); // no instance, because had no dates - } - if (!subjectAllow(calendar.buildDateSpanApi(subjectDateSpan), eventApi)) { - return false; - } - } - } - return true; -} -// Date Selection Validation -// ------------------------------------------------------------------------------------------------------------------------ -function isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig) { - var relevantEventStore = state.eventStore; - var relevantDefs = relevantEventStore.defs; - var relevantInstances = relevantEventStore.instances; - var selection = state.dateSelection; - var selectionRange = selection.range; - var selectionConfig = calendar.selectionConfig; - if (filterConfig) { - selectionConfig = filterConfig(selectionConfig); - } - // constraint - if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, calendar)) { - return false; - } - // overlap - var overlapFunc = calendar.opt('selectOverlap'); - if (typeof overlapFunc !== 'function') { - overlapFunc = null; - } - for (var relevantInstanceId in relevantInstances) { - var relevantInstance = relevantInstances[relevantInstanceId]; - // intersect! evaluate - if (rangesIntersect(selectionRange, relevantInstance.range)) { - if (selectionConfig.overlap === false) { - return false; - } - if (overlapFunc && !overlapFunc(new EventApi(calendar, relevantDefs[relevantInstance.defId], relevantInstance))) { - return false; - } - } - } - // allow (a function) - for (var _i = 0, _a = selectionConfig.allows; _i < _a.length; _i++) { - var selectionAllow = _a[_i]; - var fullDateSpan = __assign({}, dateSpanMeta, selection); - if (!selectionAllow(calendar.buildDateSpanApi(fullDateSpan), null)) { - return false; - } - } - return true; -} -// Constraint Utils -// ------------------------------------------------------------------------------------------------------------------------ -function allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, calendar) { - for (var _i = 0, constraints_1 = constraints; _i < constraints_1.length; _i++) { - var constraint = constraints_1[_i]; - if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, calendar), subjectRange)) { - return false; - } - } - return true; -} -function constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours -otherEventStore, // for if constraint is an even group ID -businessHoursUnexpanded, // for if constraint is 'businessHours' -calendar // for expanding businesshours -) { - if (constraint === 'businessHours') { - return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, calendar)); - } - else if (typeof constraint === 'string') { // an group ID - return eventStoreToRanges(filterEventStoreDefs(otherEventStore, function (eventDef) { - return eventDef.groupId === constraint; - })); - } - else if (typeof constraint === 'object' && constraint) { // non-null object - return eventStoreToRanges(expandRecurring(constraint, subjectRange, calendar)); - } - return []; // if it's false -} -// TODO: move to event-store file? -function eventStoreToRanges(eventStore) { - var instances = eventStore.instances; - var ranges = []; - for (var instanceId in instances) { - ranges.push(instances[instanceId].range); - } - return ranges; -} -// TODO: move to geom file? -function anyRangesContainRange(outerRanges, innerRange) { - for (var _i = 0, outerRanges_1 = outerRanges; _i < outerRanges_1.length; _i++) { - var outerRange = outerRanges_1[_i]; - if (rangeContainsRange(outerRange, innerRange)) { - return true; - } - } - return false; -} -// Parsing -// ------------------------------------------------------------------------------------------------------------------------ -function normalizeConstraint(input, calendar) { - if (Array.isArray(input)) { - return parseEvents(input, '', calendar, true); // allowOpenRange=true - } - else if (typeof input === 'object' && input) { // non-null object - return parseEvents([input], '', calendar, true); // allowOpenRange=true - } - else if (input != null) { - return String(input); - } - else { - return null; - } -} - -function htmlEscape(s) { - return (s + '').replace(/&/g, '&') - .replace(//g, '>') - .replace(/'/g, ''') - .replace(/"/g, '"') - .replace(/\n/g, '
'); -} -// Given a hash of CSS properties, returns a string of CSS. -// Uses property names as-is (no camel-case conversion). Will not make statements for null/undefined values. -function cssToStr(cssProps) { - var statements = []; - for (var name_1 in cssProps) { - var val = cssProps[name_1]; - if (val != null && val !== '') { - statements.push(name_1 + ':' + val); - } - } - return statements.join(';'); -} -// Given an object hash of HTML attribute names to values, -// generates a string that can be injected between < > in HTML -function attrsToStr(attrs) { - var parts = []; - for (var name_2 in attrs) { - var val = attrs[name_2]; - if (val != null) { - parts.push(name_2 + '="' + htmlEscape(val) + '"'); - } - } - return parts.join(' '); -} -function parseClassName(raw) { - if (Array.isArray(raw)) { - return raw; - } - else if (typeof raw === 'string') { - return raw.split(/\s+/); - } - else { - return []; - } -} - -var UNSCOPED_EVENT_UI_PROPS = { - editable: Boolean, - startEditable: Boolean, - durationEditable: Boolean, - constraint: null, - overlap: null, - allow: null, - className: parseClassName, - classNames: parseClassName, - color: String, - backgroundColor: String, - borderColor: String, - textColor: String -}; -function processUnscopedUiProps(rawProps, calendar, leftovers) { - var props = refineProps(rawProps, UNSCOPED_EVENT_UI_PROPS, {}, leftovers); - var constraint = normalizeConstraint(props.constraint, calendar); - return { - startEditable: props.startEditable != null ? props.startEditable : props.editable, - durationEditable: props.durationEditable != null ? props.durationEditable : props.editable, - constraints: constraint != null ? [constraint] : [], - overlap: props.overlap, - allows: props.allow != null ? [props.allow] : [], - backgroundColor: props.backgroundColor || props.color, - borderColor: props.borderColor || props.color, - textColor: props.textColor, - classNames: props.classNames.concat(props.className) - }; -} -function processScopedUiProps(prefix, rawScoped, calendar, leftovers) { - var rawUnscoped = {}; - var wasFound = {}; - for (var key in UNSCOPED_EVENT_UI_PROPS) { - var scopedKey = prefix + capitaliseFirstLetter(key); - rawUnscoped[key] = rawScoped[scopedKey]; - wasFound[scopedKey] = true; - } - if (prefix === 'event') { - rawUnscoped.editable = rawScoped.editable; // special case. there is no 'eventEditable', just 'editable' - } - if (leftovers) { - for (var key in rawScoped) { - if (!wasFound[key]) { - leftovers[key] = rawScoped[key]; - } - } - } - return processUnscopedUiProps(rawUnscoped, calendar); -} -var EMPTY_EVENT_UI = { - startEditable: null, - durationEditable: null, - constraints: [], - overlap: null, - allows: [], - backgroundColor: '', - borderColor: '', - textColor: '', - classNames: [] -}; -// prevent against problems with <2 args! -function combineEventUis(uis) { - return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI); -} -function combineTwoEventUis(item0, item1) { - return { - startEditable: item1.startEditable != null ? item1.startEditable : item0.startEditable, - durationEditable: item1.durationEditable != null ? item1.durationEditable : item0.durationEditable, - constraints: item0.constraints.concat(item1.constraints), - overlap: typeof item1.overlap === 'boolean' ? item1.overlap : item0.overlap, - allows: item0.allows.concat(item1.allows), - backgroundColor: item1.backgroundColor || item0.backgroundColor, - borderColor: item1.borderColor || item0.borderColor, - textColor: item1.textColor || item0.textColor, - classNames: item0.classNames.concat(item1.classNames) - }; -} - -var NON_DATE_PROPS = { - id: String, - groupId: String, - title: String, - url: String, - rendering: String, - extendedProps: null -}; -var DATE_PROPS = { - start: null, - date: null, - end: null, - allDay: null -}; -var uid = 0; -function parseEvent(raw, sourceId, calendar, allowOpenRange) { - var allDayDefault = computeIsAllDayDefault(sourceId, calendar); - var leftovers0 = {}; - var recurringRes = parseRecurring(raw, // raw, but with single-event stuff stripped out - allDayDefault, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes, leftovers0 // will populate with non-recurring props - ); - if (recurringRes) { - var def = parseEventDef(leftovers0, sourceId, recurringRes.allDay, Boolean(recurringRes.duration), calendar); - def.recurringDef = { - typeId: recurringRes.typeId, - typeData: recurringRes.typeData, - duration: recurringRes.duration - }; - return { def: def, instance: null }; - } - else { - var leftovers1 = {}; - var singleRes = parseSingle(raw, allDayDefault, calendar, leftovers1, allowOpenRange); - if (singleRes) { - var def = parseEventDef(leftovers1, sourceId, singleRes.allDay, singleRes.hasEnd, calendar); - var instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo); - return { def: def, instance: instance }; - } - } - return null; -} -/* -Will NOT populate extendedProps with the leftover properties. -Will NOT populate date-related props. -The EventNonDateInput has been normalized (id => publicId, etc). -*/ -function parseEventDef(raw, sourceId, allDay, hasEnd, calendar) { - var leftovers = {}; - var def = pluckNonDateProps(raw, calendar, leftovers); - def.defId = String(uid++); - def.sourceId = sourceId; - def.allDay = allDay; - def.hasEnd = hasEnd; - for (var _i = 0, _a = calendar.pluginSystem.hooks.eventDefParsers; _i < _a.length; _i++) { - var eventDefParser = _a[_i]; - var newLeftovers = {}; - eventDefParser(def, leftovers, newLeftovers); - leftovers = newLeftovers; - } - def.extendedProps = __assign(leftovers, def.extendedProps || {}); - // help out EventApi from having user modify props - Object.freeze(def.ui.classNames); - Object.freeze(def.extendedProps); - return def; -} -function createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) { - return { - instanceId: String(uid++), - defId: defId, - range: range, - forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo, - forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo - }; -} -function parseSingle(raw, allDayDefault, calendar, leftovers, allowOpenRange) { - var props = pluckDateProps(raw, leftovers); - var allDay = props.allDay; - var startMeta; - var startMarker = null; - var hasEnd = false; - var endMeta; - var endMarker = null; - startMeta = calendar.dateEnv.createMarkerMeta(props.start); - if (startMeta) { - startMarker = startMeta.marker; - } - else if (!allowOpenRange) { - return null; - } - if (props.end != null) { - endMeta = calendar.dateEnv.createMarkerMeta(props.end); - } - if (allDay == null) { - if (allDayDefault != null) { - allDay = allDayDefault; - } - else { - // fall back to the date props LAST - allDay = (!startMeta || startMeta.isTimeUnspecified) && - (!endMeta || endMeta.isTimeUnspecified); - } - } - if (allDay && startMarker) { - startMarker = startOfDay(startMarker); - } - if (endMeta) { - endMarker = endMeta.marker; - if (allDay) { - endMarker = startOfDay(endMarker); - } - if (startMarker && endMarker <= startMarker) { - endMarker = null; - } - } - if (endMarker) { - hasEnd = true; - } - else if (!allowOpenRange) { - hasEnd = calendar.opt('forceEventDuration') || false; - endMarker = calendar.dateEnv.add(startMarker, allDay ? - calendar.defaultAllDayEventDuration : - calendar.defaultTimedEventDuration); - } - return { - allDay: allDay, - hasEnd: hasEnd, - range: { start: startMarker, end: endMarker }, - forcedStartTzo: startMeta ? startMeta.forcedTzo : null, - forcedEndTzo: endMeta ? endMeta.forcedTzo : null - }; -} -function pluckDateProps(raw, leftovers) { - var props = refineProps(raw, DATE_PROPS, {}, leftovers); - props.start = (props.start !== null) ? props.start : props.date; - delete props.date; - return props; -} -function pluckNonDateProps(raw, calendar, leftovers) { - var preLeftovers = {}; - var props = refineProps(raw, NON_DATE_PROPS, {}, preLeftovers); - var ui = processUnscopedUiProps(preLeftovers, calendar, leftovers); - props.publicId = props.id; - delete props.id; - props.ui = ui; - return props; -} -function computeIsAllDayDefault(sourceId, calendar) { - var res = null; - if (sourceId) { - var source = calendar.state.eventSources[sourceId]; - res = source.allDayDefault; - } - if (res == null) { - res = calendar.opt('allDayDefault'); - } - return res; -} - -var DEF_DEFAULTS = { - startTime: '09:00', - endTime: '17:00', - daysOfWeek: [1, 2, 3, 4, 5], - rendering: 'inverse-background', - classNames: 'fc-nonbusiness', - groupId: '_businessHours' // so multiple defs get grouped -}; -/* -TODO: pass around as EventDefHash!!! -*/ -function parseBusinessHours(input, calendar) { - return parseEvents(refineInputs(input), '', calendar); -} -function refineInputs(input) { - var rawDefs; - if (input === true) { - rawDefs = [{}]; // will get DEF_DEFAULTS verbatim - } - else if (Array.isArray(input)) { - // if specifying an array, every sub-definition NEEDS a day-of-week - rawDefs = input.filter(function (rawDef) { - return rawDef.daysOfWeek; - }); - } - else if (typeof input === 'object' && input) { // non-null object - rawDefs = [input]; - } - else { // is probably false - rawDefs = []; - } - rawDefs = rawDefs.map(function (rawDef) { - return __assign({}, DEF_DEFAULTS, rawDef); - }); - return rawDefs; -} - -function memoizeRendering(renderFunc, unrenderFunc, dependencies) { - if (dependencies === void 0) { dependencies = []; } - var dependents = []; - var thisContext; - var prevArgs; - function unrender() { - if (prevArgs) { - for (var _i = 0, dependents_1 = dependents; _i < dependents_1.length; _i++) { - var dependent = dependents_1[_i]; - dependent.unrender(); - } - if (unrenderFunc) { - unrenderFunc.apply(thisContext, prevArgs); - } - prevArgs = null; - } - } - function res() { - if (!prevArgs || !isArraysEqual(prevArgs, arguments)) { - unrender(); - thisContext = this; - prevArgs = arguments; - renderFunc.apply(this, arguments); - } - } - res.dependents = dependents; - res.unrender = unrender; - for (var _i = 0, dependencies_1 = dependencies; _i < dependencies_1.length; _i++) { - var dependency = dependencies_1[_i]; - dependency.dependents.push(res); - } - return res; -} - -var EMPTY_EVENT_STORE = createEmptyEventStore(); // for purecomponents. TODO: keep elsewhere -var Splitter = /** @class */ (function () { - function Splitter() { - this.getKeysForEventDefs = memoize(this._getKeysForEventDefs); - this.splitDateSelection = memoize(this._splitDateSpan); - this.splitEventStore = memoize(this._splitEventStore); - this.splitIndividualUi = memoize(this._splitIndividualUi); - this.splitEventDrag = memoize(this._splitInteraction); - this.splitEventResize = memoize(this._splitInteraction); - this.eventUiBuilders = {}; // TODO: typescript protection - } - Splitter.prototype.splitProps = function (props) { - var _this = this; - var keyInfos = this.getKeyInfo(props); - var defKeys = this.getKeysForEventDefs(props.eventStore); - var dateSelections = this.splitDateSelection(props.dateSelection); - var individualUi = this.splitIndividualUi(props.eventUiBases, defKeys); // the individual *bases* - var eventStores = this.splitEventStore(props.eventStore, defKeys); - var eventDrags = this.splitEventDrag(props.eventDrag); - var eventResizes = this.splitEventResize(props.eventResize); - var splitProps = {}; - this.eventUiBuilders = mapHash(keyInfos, function (info, key) { - return _this.eventUiBuilders[key] || memoize(buildEventUiForKey); - }); - for (var key in keyInfos) { - var keyInfo = keyInfos[key]; - var eventStore = eventStores[key] || EMPTY_EVENT_STORE; - var buildEventUi = this.eventUiBuilders[key]; - splitProps[key] = { - businessHours: keyInfo.businessHours || props.businessHours, - dateSelection: dateSelections[key] || null, - eventStore: eventStore, - eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]), - eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '', - eventDrag: eventDrags[key] || null, - eventResize: eventResizes[key] || null - }; - } - return splitProps; - }; - Splitter.prototype._splitDateSpan = function (dateSpan) { - var dateSpans = {}; - if (dateSpan) { - var keys = this.getKeysForDateSpan(dateSpan); - for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { - var key = keys_1[_i]; - dateSpans[key] = dateSpan; - } - } - return dateSpans; - }; - Splitter.prototype._getKeysForEventDefs = function (eventStore) { - var _this = this; - return mapHash(eventStore.defs, function (eventDef) { - return _this.getKeysForEventDef(eventDef); - }); - }; - Splitter.prototype._splitEventStore = function (eventStore, defKeys) { - var defs = eventStore.defs, instances = eventStore.instances; - var splitStores = {}; - for (var defId in defs) { - for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) { - var key = _a[_i]; - if (!splitStores[key]) { - splitStores[key] = createEmptyEventStore(); - } - splitStores[key].defs[defId] = defs[defId]; - } - } - for (var instanceId in instances) { - var instance = instances[instanceId]; - for (var _b = 0, _c = defKeys[instance.defId]; _b < _c.length; _b++) { - var key = _c[_b]; - if (splitStores[key]) { // must have already been created - splitStores[key].instances[instanceId] = instance; - } - } - } - return splitStores; - }; - Splitter.prototype._splitIndividualUi = function (eventUiBases, defKeys) { - var splitHashes = {}; - for (var defId in eventUiBases) { - if (defId) { // not the '' key - for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) { - var key = _a[_i]; - if (!splitHashes[key]) { - splitHashes[key] = {}; - } - splitHashes[key][defId] = eventUiBases[defId]; - } - } - } - return splitHashes; - }; - Splitter.prototype._splitInteraction = function (interaction) { - var splitStates = {}; - if (interaction) { - var affectedStores_1 = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents) // can't use cached. might be events from other calendar - ); - // can't rely on defKeys because event data is mutated - var mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents); - var mutatedStores_1 = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId); - var populate = function (key) { - if (!splitStates[key]) { - splitStates[key] = { - affectedEvents: affectedStores_1[key] || EMPTY_EVENT_STORE, - mutatedEvents: mutatedStores_1[key] || EMPTY_EVENT_STORE, - isEvent: interaction.isEvent, - origSeg: interaction.origSeg - }; - } - }; - for (var key in affectedStores_1) { - populate(key); - } - for (var key in mutatedStores_1) { - populate(key); - } - } - return splitStates; - }; - return Splitter; -}()); -function buildEventUiForKey(allUi, eventUiForKey, individualUi) { - var baseParts = []; - if (allUi) { - baseParts.push(allUi); - } - if (eventUiForKey) { - baseParts.push(eventUiForKey); - } - var stuff = { - '': combineEventUis(baseParts) - }; - if (individualUi) { - __assign(stuff, individualUi); - } - return stuff; -} - -// Generates HTML for an anchor to another view into the calendar. -// Will either generate an
tag or a non-clickable tag, depending on enabled settings. -// `gotoOptions` can either be a DateMarker, or an object with the form: -// { date, type, forceOff } -// `type` is a view-type like "day" or "week". default value is "day". -// `attrs` and `innerHtml` are use to generate the rest of the HTML tag. -function buildGotoAnchorHtml(component, gotoOptions, attrs, innerHtml) { - var dateEnv = component.dateEnv; - var date; - var type; - var forceOff; - var finalOptions; - if (gotoOptions instanceof Date) { - date = gotoOptions; // a single date-like input - } - else { - date = gotoOptions.date; - type = gotoOptions.type; - forceOff = gotoOptions.forceOff; - } - finalOptions = { - date: dateEnv.formatIso(date, { omitTime: true }), - type: type || 'day' - }; - if (typeof attrs === 'string') { - innerHtml = attrs; - attrs = null; - } - attrs = attrs ? ' ' + attrsToStr(attrs) : ''; // will have a leading space - innerHtml = innerHtml || ''; - if (!forceOff && component.opt('navLinks')) { - return '' + - innerHtml + - ''; - } - else { - return '' + - innerHtml + - ''; - } -} -function getAllDayHtml(component) { - return component.opt('allDayHtml') || htmlEscape(component.opt('allDayText')); -} -// Computes HTML classNames for a single-day element -function getDayClasses(date, dateProfile, context, noThemeHighlight) { - var calendar = context.calendar, view = context.view, theme = context.theme, dateEnv = context.dateEnv; - var classes = []; - var todayStart; - var todayEnd; - if (!rangeContainsMarker(dateProfile.activeRange, date)) { - classes.push('fc-disabled-day'); - } - else { - classes.push('fc-' + DAY_IDS[date.getUTCDay()]); - if (view.opt('monthMode') && - dateEnv.getMonth(date) !== dateEnv.getMonth(dateProfile.currentRange.start)) { - classes.push('fc-other-month'); - } - todayStart = startOfDay(calendar.getNow()); - todayEnd = addDays(todayStart, 1); - if (date < todayStart) { - classes.push('fc-past'); - } - else if (date >= todayEnd) { - classes.push('fc-future'); - } - else { - classes.push('fc-today'); - if (noThemeHighlight !== true) { - classes.push(theme.getClass('today')); - } - } - } - return classes; -} - -// given a function that resolves a result asynchronously. -// the function can either call passed-in success and failure callbacks, -// or it can return a promise. -// if you need to pass additional params to func, bind them first. -function unpromisify(func, success, failure) { - // guard against success/failure callbacks being called more than once - // and guard against a promise AND callback being used together. - var isResolved = false; - var wrappedSuccess = function () { - if (!isResolved) { - isResolved = true; - success.apply(this, arguments); - } - }; - var wrappedFailure = function () { - if (!isResolved) { - isResolved = true; - if (failure) { - failure.apply(this, arguments); - } - } - }; - var res = func(wrappedSuccess, wrappedFailure); - if (res && typeof res.then === 'function') { - res.then(wrappedSuccess, wrappedFailure); - } -} - -var Mixin = /** @class */ (function () { - function Mixin() { - } - // mix into a CLASS - Mixin.mixInto = function (destClass) { - this.mixIntoObj(destClass.prototype); - }; - // mix into ANY object - Mixin.mixIntoObj = function (destObj) { - var _this = this; - Object.getOwnPropertyNames(this.prototype).forEach(function (name) { - if (!destObj[name]) { // if destination doesn't already define it - destObj[name] = _this.prototype[name]; - } - }); - }; - /* - will override existing methods - TODO: remove! not used anymore - */ - Mixin.mixOver = function (destClass) { - var _this = this; - Object.getOwnPropertyNames(this.prototype).forEach(function (name) { - destClass.prototype[name] = _this.prototype[name]; - }); - }; - return Mixin; -}()); - -/* -USAGE: - import { default as EmitterMixin, EmitterInterface } from './EmitterMixin' -in class: - on: EmitterInterface['on'] - one: EmitterInterface['one'] - off: EmitterInterface['off'] - trigger: EmitterInterface['trigger'] - triggerWith: EmitterInterface['triggerWith'] - hasHandlers: EmitterInterface['hasHandlers'] -after class: - EmitterMixin.mixInto(TheClass) -*/ -var EmitterMixin = /** @class */ (function (_super) { - __extends(EmitterMixin, _super); - function EmitterMixin() { - return _super !== null && _super.apply(this, arguments) || this; - } - EmitterMixin.prototype.on = function (type, handler) { - addToHash(this._handlers || (this._handlers = {}), type, handler); - return this; // for chaining - }; - // todo: add comments - EmitterMixin.prototype.one = function (type, handler) { - addToHash(this._oneHandlers || (this._oneHandlers = {}), type, handler); - return this; // for chaining - }; - EmitterMixin.prototype.off = function (type, handler) { - if (this._handlers) { - removeFromHash(this._handlers, type, handler); - } - if (this._oneHandlers) { - removeFromHash(this._oneHandlers, type, handler); - } - return this; // for chaining - }; - EmitterMixin.prototype.trigger = function (type) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - this.triggerWith(type, this, args); - return this; // for chaining - }; - EmitterMixin.prototype.triggerWith = function (type, context, args) { - if (this._handlers) { - applyAll(this._handlers[type], context, args); - } - if (this._oneHandlers) { - applyAll(this._oneHandlers[type], context, args); - delete this._oneHandlers[type]; // will never fire again - } - return this; // for chaining - }; - EmitterMixin.prototype.hasHandlers = function (type) { - return (this._handlers && this._handlers[type] && this._handlers[type].length) || - (this._oneHandlers && this._oneHandlers[type] && this._oneHandlers[type].length); - }; - return EmitterMixin; -}(Mixin)); -function addToHash(hash, type, handler) { - (hash[type] || (hash[type] = [])) - .push(handler); -} -function removeFromHash(hash, type, handler) { - if (handler) { - if (hash[type]) { - hash[type] = hash[type].filter(function (func) { - return func !== handler; - }); - } - } - else { - delete hash[type]; // remove all handler funcs for this type - } -} - -/* -Records offset information for a set of elements, relative to an origin element. -Can record the left/right OR the top/bottom OR both. -Provides methods for querying the cache by position. -*/ -var PositionCache = /** @class */ (function () { - function PositionCache(originEl, els, isHorizontal, isVertical) { - this.originEl = originEl; - this.els = els; - this.isHorizontal = isHorizontal; - this.isVertical = isVertical; - } - // Queries the els for coordinates and stores them. - // Call this method before using and of the get* methods below. - PositionCache.prototype.build = function () { - var originEl = this.originEl; - var originClientRect = this.originClientRect = - originEl.getBoundingClientRect(); // relative to viewport top-left - if (this.isHorizontal) { - this.buildElHorizontals(originClientRect.left); - } - if (this.isVertical) { - this.buildElVerticals(originClientRect.top); - } - }; - // Populates the left/right internal coordinate arrays - PositionCache.prototype.buildElHorizontals = function (originClientLeft) { - var lefts = []; - var rights = []; - for (var _i = 0, _a = this.els; _i < _a.length; _i++) { - var el = _a[_i]; - var rect = el.getBoundingClientRect(); - lefts.push(rect.left - originClientLeft); - rights.push(rect.right - originClientLeft); - } - this.lefts = lefts; - this.rights = rights; - }; - // Populates the top/bottom internal coordinate arrays - PositionCache.prototype.buildElVerticals = function (originClientTop) { - var tops = []; - var bottoms = []; - for (var _i = 0, _a = this.els; _i < _a.length; _i++) { - var el = _a[_i]; - var rect = el.getBoundingClientRect(); - tops.push(rect.top - originClientTop); - bottoms.push(rect.bottom - originClientTop); - } - this.tops = tops; - this.bottoms = bottoms; - }; - // Given a left offset (from document left), returns the index of the el that it horizontally intersects. - // If no intersection is made, returns undefined. - PositionCache.prototype.leftToIndex = function (leftPosition) { - var lefts = this.lefts; - var rights = this.rights; - var len = lefts.length; - var i; - for (i = 0; i < len; i++) { - if (leftPosition >= lefts[i] && leftPosition < rights[i]) { - return i; - } - } - }; - // Given a top offset (from document top), returns the index of the el that it vertically intersects. - // If no intersection is made, returns undefined. - PositionCache.prototype.topToIndex = function (topPosition) { - var tops = this.tops; - var bottoms = this.bottoms; - var len = tops.length; - var i; - for (i = 0; i < len; i++) { - if (topPosition >= tops[i] && topPosition < bottoms[i]) { - return i; - } - } - }; - // Gets the width of the element at the given index - PositionCache.prototype.getWidth = function (leftIndex) { - return this.rights[leftIndex] - this.lefts[leftIndex]; - }; - // Gets the height of the element at the given index - PositionCache.prototype.getHeight = function (topIndex) { - return this.bottoms[topIndex] - this.tops[topIndex]; - }; - return PositionCache; -}()); - -/* -An object for getting/setting scroll-related information for an element. -Internally, this is done very differently for window versus DOM element, -so this object serves as a common interface. -*/ -var ScrollController = /** @class */ (function () { - function ScrollController() { - } - ScrollController.prototype.getMaxScrollTop = function () { - return this.getScrollHeight() - this.getClientHeight(); - }; - ScrollController.prototype.getMaxScrollLeft = function () { - return this.getScrollWidth() - this.getClientWidth(); - }; - ScrollController.prototype.canScrollVertically = function () { - return this.getMaxScrollTop() > 0; - }; - ScrollController.prototype.canScrollHorizontally = function () { - return this.getMaxScrollLeft() > 0; - }; - ScrollController.prototype.canScrollUp = function () { - return this.getScrollTop() > 0; - }; - ScrollController.prototype.canScrollDown = function () { - return this.getScrollTop() < this.getMaxScrollTop(); - }; - ScrollController.prototype.canScrollLeft = function () { - return this.getScrollLeft() > 0; - }; - ScrollController.prototype.canScrollRight = function () { - return this.getScrollLeft() < this.getMaxScrollLeft(); - }; - return ScrollController; -}()); -var ElementScrollController = /** @class */ (function (_super) { - __extends(ElementScrollController, _super); - function ElementScrollController(el) { - var _this = _super.call(this) || this; - _this.el = el; - return _this; - } - ElementScrollController.prototype.getScrollTop = function () { - return this.el.scrollTop; - }; - ElementScrollController.prototype.getScrollLeft = function () { - return this.el.scrollLeft; - }; - ElementScrollController.prototype.setScrollTop = function (top) { - this.el.scrollTop = top; - }; - ElementScrollController.prototype.setScrollLeft = function (left) { - this.el.scrollLeft = left; - }; - ElementScrollController.prototype.getScrollWidth = function () { - return this.el.scrollWidth; - }; - ElementScrollController.prototype.getScrollHeight = function () { - return this.el.scrollHeight; - }; - ElementScrollController.prototype.getClientHeight = function () { - return this.el.clientHeight; - }; - ElementScrollController.prototype.getClientWidth = function () { - return this.el.clientWidth; - }; - return ElementScrollController; -}(ScrollController)); -var WindowScrollController = /** @class */ (function (_super) { - __extends(WindowScrollController, _super); - function WindowScrollController() { - return _super !== null && _super.apply(this, arguments) || this; - } - WindowScrollController.prototype.getScrollTop = function () { - return window.pageYOffset; - }; - WindowScrollController.prototype.getScrollLeft = function () { - return window.pageXOffset; - }; - WindowScrollController.prototype.setScrollTop = function (n) { - window.scroll(window.pageXOffset, n); - }; - WindowScrollController.prototype.setScrollLeft = function (n) { - window.scroll(n, window.pageYOffset); - }; - WindowScrollController.prototype.getScrollWidth = function () { - return document.documentElement.scrollWidth; - }; - WindowScrollController.prototype.getScrollHeight = function () { - return document.documentElement.scrollHeight; - }; - WindowScrollController.prototype.getClientHeight = function () { - return document.documentElement.clientHeight; - }; - WindowScrollController.prototype.getClientWidth = function () { - return document.documentElement.clientWidth; - }; - return WindowScrollController; -}(ScrollController)); - -/* -Embodies a div that has potential scrollbars -*/ -var ScrollComponent = /** @class */ (function (_super) { - __extends(ScrollComponent, _super); - function ScrollComponent(overflowX, overflowY) { - var _this = _super.call(this, createElement('div', { - className: 'fc-scroller' - })) || this; - _this.overflowX = overflowX; - _this.overflowY = overflowY; - _this.applyOverflow(); - return _this; - } - // sets to natural height, unlocks overflow - ScrollComponent.prototype.clear = function () { - this.setHeight('auto'); - this.applyOverflow(); - }; - ScrollComponent.prototype.destroy = function () { - removeElement(this.el); - }; - // Overflow - // ----------------------------------------------------------------------------------------------------------------- - ScrollComponent.prototype.applyOverflow = function () { - applyStyle(this.el, { - overflowX: this.overflowX, - overflowY: this.overflowY - }); - }; - // Causes any 'auto' overflow values to resolves to 'scroll' or 'hidden'. - // Useful for preserving scrollbar widths regardless of future resizes. - // Can pass in scrollbarWidths for optimization. - ScrollComponent.prototype.lockOverflow = function (scrollbarWidths) { - var overflowX = this.overflowX; - var overflowY = this.overflowY; - scrollbarWidths = scrollbarWidths || this.getScrollbarWidths(); - if (overflowX === 'auto') { - overflowX = (scrollbarWidths.bottom || // horizontal scrollbars? - this.canScrollHorizontally() // OR scrolling pane with massless scrollbars? - ) ? 'scroll' : 'hidden'; - } - if (overflowY === 'auto') { - overflowY = (scrollbarWidths.left || scrollbarWidths.right || // horizontal scrollbars? - this.canScrollVertically() // OR scrolling pane with massless scrollbars? - ) ? 'scroll' : 'hidden'; - } - applyStyle(this.el, { overflowX: overflowX, overflowY: overflowY }); - }; - ScrollComponent.prototype.setHeight = function (height) { - applyStyleProp(this.el, 'height', height); - }; - ScrollComponent.prototype.getScrollbarWidths = function () { - var edges = computeEdges(this.el); - return { - left: edges.scrollbarLeft, - right: edges.scrollbarRight, - bottom: edges.scrollbarBottom - }; - }; - return ScrollComponent; -}(ElementScrollController)); - -var Theme = /** @class */ (function () { - function Theme(calendarOptions) { - this.calendarOptions = calendarOptions; - this.processIconOverride(); - } - Theme.prototype.processIconOverride = function () { - if (this.iconOverrideOption) { - this.setIconOverride(this.calendarOptions[this.iconOverrideOption]); - } - }; - Theme.prototype.setIconOverride = function (iconOverrideHash) { - var iconClassesCopy; - var buttonName; - if (typeof iconOverrideHash === 'object' && iconOverrideHash) { // non-null object - iconClassesCopy = __assign({}, this.iconClasses); - for (buttonName in iconOverrideHash) { - iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]); - } - this.iconClasses = iconClassesCopy; - } - else if (iconOverrideHash === false) { - this.iconClasses = {}; - } - }; - Theme.prototype.applyIconOverridePrefix = function (className) { - var prefix = this.iconOverridePrefix; - if (prefix && className.indexOf(prefix) !== 0) { // if not already present - className = prefix + className; - } - return className; - }; - Theme.prototype.getClass = function (key) { - return this.classes[key] || ''; - }; - Theme.prototype.getIconClass = function (buttonName) { - var className = this.iconClasses[buttonName]; - if (className) { - return this.baseIconClass + ' ' + className; - } - return ''; - }; - Theme.prototype.getCustomButtonIconClass = function (customButtonProps) { - var className; - if (this.iconOverrideCustomButtonOption) { - className = customButtonProps[this.iconOverrideCustomButtonOption]; - if (className) { - return this.baseIconClass + ' ' + this.applyIconOverridePrefix(className); - } - } - return ''; - }; - return Theme; -}()); -Theme.prototype.classes = {}; -Theme.prototype.iconClasses = {}; -Theme.prototype.baseIconClass = ''; -Theme.prototype.iconOverridePrefix = ''; - -var guid = 0; -var Component = /** @class */ (function () { - function Component(context, isView) { - // HACK to populate view at top of component instantiation call chain - if (isView) { - context.view = this; - } - this.uid = String(guid++); - this.context = context; - this.dateEnv = context.dateEnv; - this.theme = context.theme; - this.view = context.view; - this.calendar = context.calendar; - this.isRtl = this.opt('dir') === 'rtl'; - } - Component.addEqualityFuncs = function (newFuncs) { - this.prototype.equalityFuncs = __assign({}, this.prototype.equalityFuncs, newFuncs); - }; - Component.prototype.opt = function (name) { - return this.context.options[name]; - }; - Component.prototype.receiveProps = function (props) { - var _a = recycleProps(this.props || {}, props, this.equalityFuncs), anyChanges = _a.anyChanges, comboProps = _a.comboProps; - this.props = comboProps; - if (anyChanges) { - this.render(comboProps); - } - }; - Component.prototype.render = function (props) { - }; - // after destroy is called, this component won't ever be used again - Component.prototype.destroy = function () { - }; - return Component; -}()); -Component.prototype.equalityFuncs = {}; -/* -Reuses old values when equal. If anything is unequal, returns newProps as-is. -Great for PureComponent, but won't be feasible with React, so just eliminate and use React's DOM diffing. -*/ -function recycleProps(oldProps, newProps, equalityFuncs) { - var comboProps = {}; // some old, some new - var anyChanges = false; - for (var key in newProps) { - if (key in oldProps && (oldProps[key] === newProps[key] || - (equalityFuncs[key] && equalityFuncs[key](oldProps[key], newProps[key])))) { - // equal to old? use old prop - comboProps[key] = oldProps[key]; - } - else { - comboProps[key] = newProps[key]; - anyChanges = true; - } - } - for (var key in oldProps) { - if (!(key in newProps)) { - anyChanges = true; - break; - } - } - return { anyChanges: anyChanges, comboProps: comboProps }; -} - -/* -PURPOSES: -- hook up to fg, fill, and mirror renderers -- interface for dragging and hits -*/ -var DateComponent = /** @class */ (function (_super) { - __extends(DateComponent, _super); - function DateComponent(context, el, isView) { - var _this = _super.call(this, context, isView) || this; - _this.el = el; - return _this; - } - DateComponent.prototype.destroy = function () { - _super.prototype.destroy.call(this); - removeElement(this.el); - }; - // TODO: WHAT ABOUT (sourceSeg && sourceSeg.component.doesDragMirror) - // - // Event Drag-n-Drop Rendering (for both events and external elements) - // --------------------------------------------------------------------------------------------------------------- - /* - renderEventDragSegs(state: EventSegUiInteractionState) { - if (state) { - let { isEvent, segs, sourceSeg } = state - - if (this.eventRenderer) { - this.eventRenderer.hideByHash(state.affectedInstances) - } - - // if the user is dragging something that is considered an event with real event data, - // and this component likes to do drag mirrors OR the component where the seg came from - // likes to do drag mirrors, then render a drag mirror. - if (isEvent && (this.doesDragMirror || sourceSeg && sourceSeg.component.doesDragMirror)) { - if (this.mirrorRenderer) { - this.mirrorRenderer.renderSegs(segs, { isDragging: true, sourceSeg }) - } - } - - // if it would be impossible to render a drag mirror OR this component likes to render - // highlights, then render a highlight. - if (!isEvent || this.doesDragHighlight) { - if (this.fillRenderer) { - this.fillRenderer.renderSegs('highlight', segs) - } - } - } - } - */ - // Hit System - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.buildPositionCaches = function () { - }; - DateComponent.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) { - return null; // this should be abstract - }; - // Validation - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.isInteractionValid = function (interaction) { - var calendar = this.calendar; - var dateProfile = this.props.dateProfile; // HACK - var instances = interaction.mutatedEvents.instances; - if (dateProfile) { // HACK for DayTile - for (var instanceId in instances) { - if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) { - return false; - } - } - } - return isInteractionValid(interaction, calendar); - }; - DateComponent.prototype.isDateSelectionValid = function (selection) { - var dateProfile = this.props.dateProfile; // HACK - if (dateProfile && // HACK for DayTile - !rangeContainsRange(dateProfile.validRange, selection.range)) { - return false; - } - return isDateSelectionValid(selection, this.calendar); - }; - // Triggering - // ----------------------------------------------------------------------------------------------------------------- - // TODO: move to Calendar - DateComponent.prototype.publiclyTrigger = function (name, args) { - var calendar = this.calendar; - return calendar.publiclyTrigger(name, args); - }; - DateComponent.prototype.publiclyTriggerAfterSizing = function (name, args) { - var calendar = this.calendar; - return calendar.publiclyTriggerAfterSizing(name, args); - }; - DateComponent.prototype.hasPublicHandlers = function (name) { - var calendar = this.calendar; - return calendar.hasPublicHandlers(name); - }; - DateComponent.prototype.triggerRenderedSegs = function (segs, isMirrors) { - var calendar = this.calendar; - if (this.hasPublicHandlers('eventPositioned')) { - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - this.publiclyTriggerAfterSizing('eventPositioned', [ - { - event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirrors, - isStart: seg.isStart, - isEnd: seg.isEnd, - el: seg.el, - view: this // safe to cast because this method is only called on context.view - } - ]); - } - } - if (!calendar.state.loadingLevel) { // avoid initial empty state while pending - calendar.afterSizingTriggers._eventsPositioned = [null]; // fire once - } - }; - DateComponent.prototype.triggerWillRemoveSegs = function (segs, isMirrors) { - var calendar = this.calendar; - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - calendar.trigger('eventElRemove', seg.el); - } - if (this.hasPublicHandlers('eventDestroy')) { - for (var _a = 0, segs_3 = segs; _a < segs_3.length; _a++) { - var seg = segs_3[_a]; - this.publiclyTrigger('eventDestroy', [ - { - event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirrors, - el: seg.el, - view: this // safe to cast because this method is only called on context.view - } - ]); - } - } - }; - // Pointer Interaction Utils - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.isValidSegDownEl = function (el) { - return !this.props.eventDrag && // HACK - !this.props.eventResize && // HACK - !elementClosest(el, '.fc-mirror') && - (this.isPopover() || !this.isInPopover(el)); - // ^above line ensures we don't detect a seg interaction within a nested component. - // it's a HACK because it only supports a popover as the nested component. - }; - DateComponent.prototype.isValidDateDownEl = function (el) { - var segEl = elementClosest(el, this.fgSegSelector); - return (!segEl || segEl.classList.contains('fc-mirror')) && - !elementClosest(el, '.fc-more') && // a "more.." link - !elementClosest(el, 'a[data-goto]') && // a clickable nav link - !this.isInPopover(el); - }; - DateComponent.prototype.isPopover = function () { - return this.el.classList.contains('fc-popover'); - }; - DateComponent.prototype.isInPopover = function (el) { - return Boolean(elementClosest(el, '.fc-popover')); - }; - return DateComponent; -}(Component)); -DateComponent.prototype.fgSegSelector = '.fc-event-container > *'; -DateComponent.prototype.bgSegSelector = '.fc-bgevent:not(.fc-nonbusiness)'; - -var uid$1 = 0; -function createPlugin(input) { - return { - id: String(uid$1++), - deps: input.deps || [], - reducers: input.reducers || [], - eventDefParsers: input.eventDefParsers || [], - isDraggableTransformers: input.isDraggableTransformers || [], - eventDragMutationMassagers: input.eventDragMutationMassagers || [], - eventDefMutationAppliers: input.eventDefMutationAppliers || [], - dateSelectionTransformers: input.dateSelectionTransformers || [], - datePointTransforms: input.datePointTransforms || [], - dateSpanTransforms: input.dateSpanTransforms || [], - views: input.views || {}, - viewPropsTransformers: input.viewPropsTransformers || [], - isPropsValid: input.isPropsValid || null, - externalDefTransforms: input.externalDefTransforms || [], - eventResizeJoinTransforms: input.eventResizeJoinTransforms || [], - viewContainerModifiers: input.viewContainerModifiers || [], - eventDropTransformers: input.eventDropTransformers || [], - componentInteractions: input.componentInteractions || [], - calendarInteractions: input.calendarInteractions || [], - themeClasses: input.themeClasses || {}, - eventSourceDefs: input.eventSourceDefs || [], - cmdFormatter: input.cmdFormatter, - recurringTypes: input.recurringTypes || [], - namedTimeZonedImpl: input.namedTimeZonedImpl, - defaultView: input.defaultView || '', - elementDraggingImpl: input.elementDraggingImpl, - optionChangeHandlers: input.optionChangeHandlers || {} - }; -} -var PluginSystem = /** @class */ (function () { - function PluginSystem() { - this.hooks = { - reducers: [], - eventDefParsers: [], - isDraggableTransformers: [], - eventDragMutationMassagers: [], - eventDefMutationAppliers: [], - dateSelectionTransformers: [], - datePointTransforms: [], - dateSpanTransforms: [], - views: {}, - viewPropsTransformers: [], - isPropsValid: null, - externalDefTransforms: [], - eventResizeJoinTransforms: [], - viewContainerModifiers: [], - eventDropTransformers: [], - componentInteractions: [], - calendarInteractions: [], - themeClasses: {}, - eventSourceDefs: [], - cmdFormatter: null, - recurringTypes: [], - namedTimeZonedImpl: null, - defaultView: '', - elementDraggingImpl: null, - optionChangeHandlers: {} - }; - this.addedHash = {}; - } - PluginSystem.prototype.add = function (plugin) { - if (!this.addedHash[plugin.id]) { - this.addedHash[plugin.id] = true; - for (var _i = 0, _a = plugin.deps; _i < _a.length; _i++) { - var dep = _a[_i]; - this.add(dep); - } - this.hooks = combineHooks(this.hooks, plugin); - } - }; - return PluginSystem; -}()); -function combineHooks(hooks0, hooks1) { - return { - reducers: hooks0.reducers.concat(hooks1.reducers), - eventDefParsers: hooks0.eventDefParsers.concat(hooks1.eventDefParsers), - isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers), - eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers), - eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers), - dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers), - datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms), - dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms), - views: __assign({}, hooks0.views, hooks1.views), - viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers), - isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid, - externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms), - eventResizeJoinTransforms: hooks0.eventResizeJoinTransforms.concat(hooks1.eventResizeJoinTransforms), - viewContainerModifiers: hooks0.viewContainerModifiers.concat(hooks1.viewContainerModifiers), - eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers), - calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions), - componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions), - themeClasses: __assign({}, hooks0.themeClasses, hooks1.themeClasses), - eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs), - cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter, - recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes), - namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl, - defaultView: hooks0.defaultView || hooks1.defaultView, - elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl, - optionChangeHandlers: __assign({}, hooks0.optionChangeHandlers, hooks1.optionChangeHandlers) - }; -} - -var eventSourceDef = { - ignoreRange: true, - parseMeta: function (raw) { - if (Array.isArray(raw)) { // short form - return raw; - } - else if (Array.isArray(raw.events)) { - return raw.events; - } - return null; - }, - fetch: function (arg, success) { - success({ - rawEvents: arg.eventSource.meta - }); - } -}; -var ArrayEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef] -}); - -var eventSourceDef$1 = { - parseMeta: function (raw) { - if (typeof raw === 'function') { // short form - return raw; - } - else if (typeof raw.events === 'function') { - return raw.events; - } - return null; - }, - fetch: function (arg, success, failure) { - var dateEnv = arg.calendar.dateEnv; - var func = arg.eventSource.meta; - unpromisify(func.bind(null, { - start: dateEnv.toDate(arg.range.start), - end: dateEnv.toDate(arg.range.end), - startStr: dateEnv.formatIso(arg.range.start), - endStr: dateEnv.formatIso(arg.range.end), - timeZone: dateEnv.timeZone - }), function (rawEvents) { - success({ rawEvents: rawEvents }); // needs an object response - }, failure // send errorObj directly to failure callback - ); - } -}; -var FuncEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef$1] -}); - -function requestJson(method, url, params, successCallback, failureCallback) { - method = method.toUpperCase(); - var body = null; - if (method === 'GET') { - url = injectQueryStringParams(url, params); - } - else { - body = encodeParams(params); - } - var xhr = new XMLHttpRequest(); - xhr.open(method, url, true); - if (method !== 'GET') { - xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - } - xhr.onload = function () { - if (xhr.status >= 200 && xhr.status < 400) { - try { - var res = JSON.parse(xhr.responseText); - successCallback(res, xhr); - } - catch (err) { - failureCallback('Failure parsing JSON', xhr); - } - } - else { - failureCallback('Request failed', xhr); - } - }; - xhr.onerror = function () { - failureCallback('Request failed', xhr); - }; - xhr.send(body); -} -function injectQueryStringParams(url, params) { - return url + - (url.indexOf('?') === -1 ? '?' : '&') + - encodeParams(params); -} -function encodeParams(params) { - var parts = []; - for (var key in params) { - parts.push(encodeURIComponent(key) + '=' + encodeURIComponent(params[key])); - } - return parts.join('&'); -} - -var eventSourceDef$2 = { - parseMeta: function (raw) { - if (typeof raw === 'string') { // short form - raw = { url: raw }; - } - else if (!raw || typeof raw !== 'object' || !raw.url) { - return null; - } - return { - url: raw.url, - method: (raw.method || 'GET').toUpperCase(), - extraParams: raw.extraParams, - startParam: raw.startParam, - endParam: raw.endParam, - timeZoneParam: raw.timeZoneParam - }; - }, - fetch: function (arg, success, failure) { - var meta = arg.eventSource.meta; - var requestParams = buildRequestParams(meta, arg.range, arg.calendar); - requestJson(meta.method, meta.url, requestParams, function (rawEvents, xhr) { - success({ rawEvents: rawEvents, xhr: xhr }); - }, function (errorMessage, xhr) { - failure({ message: errorMessage, xhr: xhr }); - }); - } -}; -var JsonFeedEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef$2] -}); -function buildRequestParams(meta, range, calendar) { - var dateEnv = calendar.dateEnv; - var startParam; - var endParam; - var timeZoneParam; - var customRequestParams; - var params = {}; - startParam = meta.startParam; - if (startParam == null) { - startParam = calendar.opt('startParam'); - } - endParam = meta.endParam; - if (endParam == null) { - endParam = calendar.opt('endParam'); - } - timeZoneParam = meta.timeZoneParam; - if (timeZoneParam == null) { - timeZoneParam = calendar.opt('timeZoneParam'); - } - // retrieve any outbound GET/POST data from the options - if (typeof meta.extraParams === 'function') { - // supplied as a function that returns a key/value object - customRequestParams = meta.extraParams(); - } - else { - // probably supplied as a straight key/value object - customRequestParams = meta.extraParams || {}; - } - __assign(params, customRequestParams); - params[startParam] = dateEnv.formatIso(range.start); - params[endParam] = dateEnv.formatIso(range.end); - if (dateEnv.timeZone !== 'local') { - params[timeZoneParam] = dateEnv.timeZone; - } - return params; -} - -var recurring = { - parse: function (rawEvent, leftoverProps, dateEnv) { - var createMarker = dateEnv.createMarker.bind(dateEnv); - var processors = { - daysOfWeek: null, - startTime: createDuration, - endTime: createDuration, - startRecur: createMarker, - endRecur: createMarker - }; - var props = refineProps(rawEvent, processors, {}, leftoverProps); - var anyValid = false; - for (var propName in props) { - if (props[propName] != null) { - anyValid = true; - break; - } - } - if (anyValid) { - var duration = null; - if ('duration' in leftoverProps) { - duration = createDuration(leftoverProps.duration); - delete leftoverProps.duration; - } - if (!duration && props.startTime && props.endTime) { - duration = subtractDurations(props.endTime, props.startTime); - } - return { - allDayGuess: Boolean(!props.startTime && !props.endTime), - duration: duration, - typeData: props // doesn't need endTime anymore but oh well - }; - } - return null; - }, - expand: function (typeData, framingRange, dateEnv) { - var clippedFramingRange = intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur }); - if (clippedFramingRange) { - return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv); - } - else { - return []; - } - } -}; -var SimpleRecurrencePlugin = createPlugin({ - recurringTypes: [recurring] -}); -function expandRanges(daysOfWeek, startTime, framingRange, dateEnv) { - var dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null; - var dayMarker = startOfDay(framingRange.start); - var endMarker = framingRange.end; - var instanceStarts = []; - while (dayMarker < endMarker) { - var instanceStart - // if everyday, or this particular day-of-week - = void 0; - // if everyday, or this particular day-of-week - if (!dowHash || dowHash[dayMarker.getUTCDay()]) { - if (startTime) { - instanceStart = dateEnv.add(dayMarker, startTime); - } - else { - instanceStart = dayMarker; - } - instanceStarts.push(instanceStart); - } - dayMarker = addDays(dayMarker, 1); - } - return instanceStarts; -} - -var DefaultOptionChangeHandlers = createPlugin({ - optionChangeHandlers: { - events: function (events, calendar, deepEqual) { - handleEventSources([events], calendar, deepEqual); - }, - eventSources: handleEventSources, - plugins: handlePlugins - } -}); -function handleEventSources(inputs, calendar, deepEqual) { - var unfoundSources = hashValuesToArray(calendar.state.eventSources); - var newInputs = []; - for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) { - var input = inputs_1[_i]; - var inputFound = false; - for (var i = 0; i < unfoundSources.length; i++) { - if (deepEqual(unfoundSources[i]._raw, input)) { - unfoundSources.splice(i, 1); // delete - inputFound = true; - break; - } - } - if (!inputFound) { - newInputs.push(input); - } - } - for (var _a = 0, unfoundSources_1 = unfoundSources; _a < unfoundSources_1.length; _a++) { - var unfoundSource = unfoundSources_1[_a]; - calendar.dispatch({ - type: 'REMOVE_EVENT_SOURCE', - sourceId: unfoundSource.sourceId - }); - } - for (var _b = 0, newInputs_1 = newInputs; _b < newInputs_1.length; _b++) { - var newInput = newInputs_1[_b]; - calendar.addEventSource(newInput); - } -} -// shortcoming: won't remove plugins -function handlePlugins(inputs, calendar) { - calendar.addPluginInputs(inputs); // will gracefully handle duplicates -} - -var config = {}; // TODO: make these options -var globalDefaults = { - defaultRangeSeparator: ' - ', - titleRangeSeparator: ' \u2013 ', - defaultTimedEventDuration: '01:00:00', - defaultAllDayEventDuration: { day: 1 }, - forceEventDuration: false, - nextDayThreshold: '00:00:00', - // display - columnHeader: true, - defaultView: '', - aspectRatio: 1.35, - header: { - left: 'title', - center: '', - right: 'today prev,next' - }, - weekends: true, - weekNumbers: false, - weekNumberCalculation: 'local', - editable: false, - // nowIndicator: false, - scrollTime: '06:00:00', - minTime: '00:00:00', - maxTime: '24:00:00', - showNonCurrentDates: true, - // event ajax - lazyFetching: true, - startParam: 'start', - endParam: 'end', - timeZoneParam: 'timeZone', - timeZone: 'local', - // allDayDefault: undefined, - // locale - locales: [], - locale: '', - // dir: will get this from the default locale - // buttonIcons: null, - // allows setting a min-height to the event segment to prevent short events overlapping each other - timeGridEventMinHeight: 0, - themeSystem: 'standard', - // eventResizableFromStart: false, - dragRevertDuration: 500, - dragScroll: true, - allDayMaintainDuration: false, - // selectable: false, - unselectAuto: true, - // selectMinDistance: 0, - dropAccept: '*', - eventOrder: 'start,-duration,allDay,title', - // ^ if start tie, longer events go before shorter. final tie-breaker is title text - // rerenderDelay: null, - eventLimit: false, - eventLimitClick: 'popover', - dayPopoverFormat: { month: 'long', day: 'numeric', year: 'numeric' }, - handleWindowResize: true, - windowResizeDelay: 100, - longPressDelay: 1000, - eventDragMinDistance: 5 // only applies to mouse -}; -var rtlDefaults = { - header: { - left: 'next,prev today', - center: '', - right: 'title' - }, - buttonIcons: { - // TODO: make RTL support the responibility of the theme - prev: 'fc-icon-chevron-right', - next: 'fc-icon-chevron-left', - prevYear: 'fc-icon-chevrons-right', - nextYear: 'fc-icon-chevrons-left' - } -}; -var complexOptions = [ - 'header', - 'footer', - 'buttonText', - 'buttonIcons' -]; -// Merges an array of option objects into a single object -function mergeOptions(optionObjs) { - return mergeProps(optionObjs, complexOptions); -} -// TODO: move this stuff to a "plugin"-related file... -var INTERNAL_PLUGINS = [ - ArrayEventSourcePlugin, - FuncEventSourcePlugin, - JsonFeedEventSourcePlugin, - SimpleRecurrencePlugin, - DefaultOptionChangeHandlers -]; -function refinePluginDefs(pluginInputs) { - var plugins = []; - for (var _i = 0, pluginInputs_1 = pluginInputs; _i < pluginInputs_1.length; _i++) { - var pluginInput = pluginInputs_1[_i]; - if (typeof pluginInput === 'string') { - var globalName = 'FullCalendar' + capitaliseFirstLetter(pluginInput); - if (!window[globalName]) { - console.warn('Plugin file not loaded for ' + pluginInput); - } - else { - plugins.push(window[globalName].default); // is an ES6 module - } - } - else { - plugins.push(pluginInput); - } - } - return INTERNAL_PLUGINS.concat(plugins); -} - -var RAW_EN_LOCALE = { - code: 'en', - week: { - dow: 0, - doy: 4 // 4 days need to be within the year to be considered the first week - }, - dir: 'ltr', - buttonText: { - prev: 'prev', - next: 'next', - prevYear: 'prev year', - nextYear: 'next year', - year: 'year', - today: 'today', - month: 'month', - week: 'week', - day: 'day', - list: 'list' - }, - weekLabel: 'W', - allDayText: 'all-day', - eventLimitText: 'more', - noEventsMessage: 'No events to display' -}; -function parseRawLocales(explicitRawLocales) { - var defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en'; - var globalArray = window['FullCalendarLocalesAll'] || []; // from locales-all.js - var globalObject = window['FullCalendarLocales'] || {}; // from locales/*.js. keys are meaningless - var allRawLocales = globalArray.concat(// globalArray is low prio - hashValuesToArray(globalObject), // medium prio - explicitRawLocales // highest prio - ); - var rawLocaleMap = { - en: RAW_EN_LOCALE // necessary? - }; - for (var _i = 0, allRawLocales_1 = allRawLocales; _i < allRawLocales_1.length; _i++) { - var rawLocale = allRawLocales_1[_i]; - rawLocaleMap[rawLocale.code] = rawLocale; - } - return { - map: rawLocaleMap, - defaultCode: defaultCode - }; -} -function buildLocale(inputSingular, available) { - if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) { - return parseLocale(inputSingular.code, [inputSingular.code], inputSingular); - } - else { - return queryLocale(inputSingular, available); - } -} -function queryLocale(codeArg, available) { - var codes = [].concat(codeArg || []); // will convert to array - var raw = queryRawLocale(codes, available) || RAW_EN_LOCALE; - return parseLocale(codeArg, codes, raw); -} -function queryRawLocale(codes, available) { - for (var i = 0; i < codes.length; i++) { - var parts = codes[i].toLocaleLowerCase().split('-'); - for (var j = parts.length; j > 0; j--) { - var simpleId = parts.slice(0, j).join('-'); - if (available[simpleId]) { - return available[simpleId]; - } - } - } - return null; -} -function parseLocale(codeArg, codes, raw) { - var merged = mergeProps([RAW_EN_LOCALE, raw], ['buttonText']); - delete merged.code; // don't want this part of the options - var week = merged.week; - delete merged.week; - return { - codeArg: codeArg, - codes: codes, - week: week, - simpleNumberFormat: new Intl.NumberFormat(codeArg), - options: merged - }; -} - -var OptionsManager = /** @class */ (function () { - function OptionsManager(overrides) { - this.overrides = __assign({}, overrides); // make a copy - this.dynamicOverrides = {}; - this.compute(); - } - OptionsManager.prototype.mutate = function (updates, removals, isDynamic) { - var overrideHash = isDynamic ? this.dynamicOverrides : this.overrides; - __assign(overrideHash, updates); - for (var _i = 0, removals_1 = removals; _i < removals_1.length; _i++) { - var propName = removals_1[_i]; - delete overrideHash[propName]; - } - this.compute(); - }; - // Computes the flattened options hash for the calendar and assigns to `this.options`. - // Assumes this.overrides and this.dynamicOverrides have already been initialized. - OptionsManager.prototype.compute = function () { - // TODO: not a very efficient system - var locales = firstDefined(// explicit locale option given? - this.dynamicOverrides.locales, this.overrides.locales, globalDefaults.locales); - var locale = firstDefined(// explicit locales option given? - this.dynamicOverrides.locale, this.overrides.locale, globalDefaults.locale); - var available = parseRawLocales(locales); - var localeDefaults = buildLocale(locale || available.defaultCode, available.map).options; - var dir = firstDefined(// based on options computed so far, is direction RTL? - this.dynamicOverrides.dir, this.overrides.dir, localeDefaults.dir); - var dirDefaults = dir === 'rtl' ? rtlDefaults : {}; - this.dirDefaults = dirDefaults; - this.localeDefaults = localeDefaults; - this.computed = mergeOptions([ - globalDefaults, - dirDefaults, - localeDefaults, - this.overrides, - this.dynamicOverrides - ]); - }; - return OptionsManager; -}()); - -var calendarSystemClassMap = {}; -function registerCalendarSystem(name, theClass) { - calendarSystemClassMap[name] = theClass; -} -function createCalendarSystem(name) { - return new calendarSystemClassMap[name](); -} -var GregorianCalendarSystem = /** @class */ (function () { - function GregorianCalendarSystem() { - } - GregorianCalendarSystem.prototype.getMarkerYear = function (d) { - return d.getUTCFullYear(); - }; - GregorianCalendarSystem.prototype.getMarkerMonth = function (d) { - return d.getUTCMonth(); - }; - GregorianCalendarSystem.prototype.getMarkerDay = function (d) { - return d.getUTCDate(); - }; - GregorianCalendarSystem.prototype.arrayToMarker = function (arr) { - return arrayToUtcDate(arr); - }; - GregorianCalendarSystem.prototype.markerToArray = function (marker) { - return dateToUtcArray(marker); - }; - return GregorianCalendarSystem; -}()); -registerCalendarSystem('gregory', GregorianCalendarSystem); - -var ISO_RE = /^\s*(\d{4})(-(\d{2})(-(\d{2})([T ](\d{2}):(\d{2})(:(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/; -function parse(str) { - var m = ISO_RE.exec(str); - if (m) { - var marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number('0.' + m[12]) * 1000 : 0)); - if (isValidDate(marker)) { - var timeZoneOffset = null; - if (m[13]) { - timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 + - Number(m[18] || 0)); - } - return { - marker: marker, - isTimeUnspecified: !m[6], - timeZoneOffset: timeZoneOffset - }; - } - } - return null; -} - -var DateEnv = /** @class */ (function () { - function DateEnv(settings) { - var timeZone = this.timeZone = settings.timeZone; - var isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC'; - if (settings.namedTimeZoneImpl && isNamedTimeZone) { - this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone); - } - this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl); - this.calendarSystem = createCalendarSystem(settings.calendarSystem); - this.locale = settings.locale; - this.weekDow = settings.locale.week.dow; - this.weekDoy = settings.locale.week.doy; - if (settings.weekNumberCalculation === 'ISO') { - this.weekDow = 1; - this.weekDoy = 4; - } - if (typeof settings.firstDay === 'number') { - this.weekDow = settings.firstDay; - } - if (typeof settings.weekNumberCalculation === 'function') { - this.weekNumberFunc = settings.weekNumberCalculation; - } - this.weekLabel = settings.weekLabel != null ? settings.weekLabel : settings.locale.options.weekLabel; - this.cmdFormatter = settings.cmdFormatter; - } - // Creating / Parsing - DateEnv.prototype.createMarker = function (input) { - var meta = this.createMarkerMeta(input); - if (meta === null) { - return null; - } - return meta.marker; - }; - DateEnv.prototype.createNowMarker = function () { - if (this.canComputeOffset) { - return this.timestampToMarker(new Date().valueOf()); - } - else { - // if we can't compute the current date val for a timezone, - // better to give the current local date vals than UTC - return arrayToUtcDate(dateToLocalArray(new Date())); - } - }; - DateEnv.prototype.createMarkerMeta = function (input) { - if (typeof input === 'string') { - return this.parse(input); - } - var marker = null; - if (typeof input === 'number') { - marker = this.timestampToMarker(input); - } - else if (input instanceof Date) { - input = input.valueOf(); - if (!isNaN(input)) { - marker = this.timestampToMarker(input); - } - } - else if (Array.isArray(input)) { - marker = arrayToUtcDate(input); - } - if (marker === null || !isValidDate(marker)) { - return null; - } - return { marker: marker, isTimeUnspecified: false, forcedTzo: null }; - }; - DateEnv.prototype.parse = function (s) { - var parts = parse(s); - if (parts === null) { - return null; - } - var marker = parts.marker; - var forcedTzo = null; - if (parts.timeZoneOffset !== null) { - if (this.canComputeOffset) { - marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000); - } - else { - forcedTzo = parts.timeZoneOffset; - } - } - return { marker: marker, isTimeUnspecified: parts.isTimeUnspecified, forcedTzo: forcedTzo }; - }; - // Accessors - DateEnv.prototype.getYear = function (marker) { - return this.calendarSystem.getMarkerYear(marker); - }; - DateEnv.prototype.getMonth = function (marker) { - return this.calendarSystem.getMarkerMonth(marker); - }; - // Adding / Subtracting - DateEnv.prototype.add = function (marker, dur) { - var a = this.calendarSystem.markerToArray(marker); - a[0] += dur.years; - a[1] += dur.months; - a[2] += dur.days; - a[6] += dur.milliseconds; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.subtract = function (marker, dur) { - var a = this.calendarSystem.markerToArray(marker); - a[0] -= dur.years; - a[1] -= dur.months; - a[2] -= dur.days; - a[6] -= dur.milliseconds; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.addYears = function (marker, n) { - var a = this.calendarSystem.markerToArray(marker); - a[0] += n; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.addMonths = function (marker, n) { - var a = this.calendarSystem.markerToArray(marker); - a[1] += n; - return this.calendarSystem.arrayToMarker(a); - }; - // Diffing Whole Units - DateEnv.prototype.diffWholeYears = function (m0, m1) { - var calendarSystem = this.calendarSystem; - if (timeAsMs(m0) === timeAsMs(m1) && - calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) && - calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) { - return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0); - } - return null; - }; - DateEnv.prototype.diffWholeMonths = function (m0, m1) { - var calendarSystem = this.calendarSystem; - if (timeAsMs(m0) === timeAsMs(m1) && - calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) { - return (calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0)) + - (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12; - } - return null; - }; - // Range / Duration - DateEnv.prototype.greatestWholeUnit = function (m0, m1) { - var n = this.diffWholeYears(m0, m1); - if (n !== null) { - return { unit: 'year', value: n }; - } - n = this.diffWholeMonths(m0, m1); - if (n !== null) { - return { unit: 'month', value: n }; - } - n = diffWholeWeeks(m0, m1); - if (n !== null) { - return { unit: 'week', value: n }; - } - n = diffWholeDays(m0, m1); - if (n !== null) { - return { unit: 'day', value: n }; - } - n = diffHours(m0, m1); - if (isInt(n)) { - return { unit: 'hour', value: n }; - } - n = diffMinutes(m0, m1); - if (isInt(n)) { - return { unit: 'minute', value: n }; - } - n = diffSeconds(m0, m1); - if (isInt(n)) { - return { unit: 'second', value: n }; - } - return { unit: 'millisecond', value: m1.valueOf() - m0.valueOf() }; - }; - DateEnv.prototype.countDurationsBetween = function (m0, m1, d) { - // TODO: can use greatestWholeUnit - var diff; - if (d.years) { - diff = this.diffWholeYears(m0, m1); - if (diff !== null) { - return diff / asRoughYears(d); - } - } - if (d.months) { - diff = this.diffWholeMonths(m0, m1); - if (diff !== null) { - return diff / asRoughMonths(d); - } - } - if (d.days) { - diff = diffWholeDays(m0, m1); - if (diff !== null) { - return diff / asRoughDays(d); - } - } - return (m1.valueOf() - m0.valueOf()) / asRoughMs(d); - }; - // Start-Of - DateEnv.prototype.startOf = function (m, unit) { - if (unit === 'year') { - return this.startOfYear(m); - } - else if (unit === 'month') { - return this.startOfMonth(m); - } - else if (unit === 'week') { - return this.startOfWeek(m); - } - else if (unit === 'day') { - return startOfDay(m); - } - else if (unit === 'hour') { - return startOfHour(m); - } - else if (unit === 'minute') { - return startOfMinute(m); - } - else if (unit === 'second') { - return startOfSecond(m); - } - }; - DateEnv.prototype.startOfYear = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m) - ]); - }; - DateEnv.prototype.startOfMonth = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m), - this.calendarSystem.getMarkerMonth(m) - ]); - }; - DateEnv.prototype.startOfWeek = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m), - this.calendarSystem.getMarkerMonth(m), - m.getUTCDate() - ((m.getUTCDay() - this.weekDow + 7) % 7) - ]); - }; - // Week Number - DateEnv.prototype.computeWeekNumber = function (marker) { - if (this.weekNumberFunc) { - return this.weekNumberFunc(this.toDate(marker)); - } - else { - return weekOfYear(marker, this.weekDow, this.weekDoy); - } - }; - // TODO: choke on timeZoneName: long - DateEnv.prototype.format = function (marker, formatter, dateOptions) { - if (dateOptions === void 0) { dateOptions = {}; } - return formatter.format({ - marker: marker, - timeZoneOffset: dateOptions.forcedTzo != null ? - dateOptions.forcedTzo : - this.offsetForMarker(marker) - }, this); - }; - DateEnv.prototype.formatRange = function (start, end, formatter, dateOptions) { - if (dateOptions === void 0) { dateOptions = {}; } - if (dateOptions.isEndExclusive) { - end = addMs(end, -1); - } - return formatter.formatRange({ - marker: start, - timeZoneOffset: dateOptions.forcedStartTzo != null ? - dateOptions.forcedStartTzo : - this.offsetForMarker(start) - }, { - marker: end, - timeZoneOffset: dateOptions.forcedEndTzo != null ? - dateOptions.forcedEndTzo : - this.offsetForMarker(end) - }, this); - }; - DateEnv.prototype.formatIso = function (marker, extraOptions) { - if (extraOptions === void 0) { extraOptions = {}; } - var timeZoneOffset = null; - if (!extraOptions.omitTimeZoneOffset) { - if (extraOptions.forcedTzo != null) { - timeZoneOffset = extraOptions.forcedTzo; - } - else { - timeZoneOffset = this.offsetForMarker(marker); - } - } - return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime); - }; - // TimeZone - DateEnv.prototype.timestampToMarker = function (ms) { - if (this.timeZone === 'local') { - return arrayToUtcDate(dateToLocalArray(new Date(ms))); - } - else if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) { - return new Date(ms); - } - else { - return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms)); - } - }; - DateEnv.prototype.offsetForMarker = function (m) { - if (this.timeZone === 'local') { - return -arrayToLocalDate(dateToUtcArray(m)).getTimezoneOffset(); // convert "inverse" offset to "normal" offset - } - else if (this.timeZone === 'UTC') { - return 0; - } - else if (this.namedTimeZoneImpl) { - return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)); - } - return null; - }; - // Conversion - DateEnv.prototype.toDate = function (m, forcedTzo) { - if (this.timeZone === 'local') { - return arrayToLocalDate(dateToUtcArray(m)); - } - else if (this.timeZone === 'UTC') { - return new Date(m.valueOf()); // make sure it's a copy - } - else if (!this.namedTimeZoneImpl) { - return new Date(m.valueOf() - (forcedTzo || 0)); - } - else { - return new Date(m.valueOf() - - this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60 // convert minutes -> ms - ); - } - }; - return DateEnv; -}()); - -var SIMPLE_SOURCE_PROPS = { - id: String, - allDayDefault: Boolean, - eventDataTransform: Function, - success: Function, - failure: Function -}; -var uid$2 = 0; -function doesSourceNeedRange(eventSource, calendar) { - var defs = calendar.pluginSystem.hooks.eventSourceDefs; - return !defs[eventSource.sourceDefId].ignoreRange; -} -function parseEventSource(raw, calendar) { - var defs = calendar.pluginSystem.hooks.eventSourceDefs; - for (var i = defs.length - 1; i >= 0; i--) { // later-added plugins take precedence - var def = defs[i]; - var meta = def.parseMeta(raw); - if (meta) { - var res = parseEventSourceProps(typeof raw === 'object' ? raw : {}, meta, i, calendar); - res._raw = raw; - return res; - } - } - return null; -} -function parseEventSourceProps(raw, meta, sourceDefId, calendar) { - var leftovers0 = {}; - var props = refineProps(raw, SIMPLE_SOURCE_PROPS, {}, leftovers0); - var leftovers1 = {}; - var ui = processUnscopedUiProps(leftovers0, calendar, leftovers1); - props.isFetching = false; - props.latestFetchId = ''; - props.fetchRange = null; - props.publicId = String(raw.id || ''); - props.sourceId = String(uid$2++); - props.sourceDefId = sourceDefId; - props.meta = meta; - props.ui = ui; - props.extendedProps = leftovers1; - return props; -} - -function reduceEventSources (eventSources, action, dateProfile, calendar) { - switch (action.type) { - case 'ADD_EVENT_SOURCES': // already parsed - return addSources(eventSources, action.sources, dateProfile ? dateProfile.activeRange : null, calendar); - case 'REMOVE_EVENT_SOURCE': - return removeSource(eventSources, action.sourceId); - case 'PREV': // TODO: how do we track all actions that affect dateProfile :( - case 'NEXT': - case 'SET_DATE': - case 'SET_VIEW_TYPE': - if (dateProfile) { - return fetchDirtySources(eventSources, dateProfile.activeRange, calendar); - } - else { - return eventSources; - } - case 'FETCH_EVENT_SOURCES': - case 'CHANGE_TIMEZONE': - return fetchSourcesByIds(eventSources, action.sourceIds ? - arrayToHash(action.sourceIds) : - excludeStaticSources(eventSources, calendar), dateProfile ? dateProfile.activeRange : null, calendar); - case 'RECEIVE_EVENTS': - case 'RECEIVE_EVENT_ERROR': - return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange); - case 'REMOVE_ALL_EVENT_SOURCES': - return {}; - default: - return eventSources; - } -} -var uid$3 = 0; -function addSources(eventSourceHash, sources, fetchRange, calendar) { - var hash = {}; - for (var _i = 0, sources_1 = sources; _i < sources_1.length; _i++) { - var source = sources_1[_i]; - hash[source.sourceId] = source; - } - if (fetchRange) { - hash = fetchDirtySources(hash, fetchRange, calendar); - } - return __assign({}, eventSourceHash, hash); -} -function removeSource(eventSourceHash, sourceId) { - return filterHash(eventSourceHash, function (eventSource) { - return eventSource.sourceId !== sourceId; - }); -} -function fetchDirtySources(sourceHash, fetchRange, calendar) { - return fetchSourcesByIds(sourceHash, filterHash(sourceHash, function (eventSource) { - return isSourceDirty(eventSource, fetchRange, calendar); - }), fetchRange, calendar); -} -function isSourceDirty(eventSource, fetchRange, calendar) { - if (!doesSourceNeedRange(eventSource, calendar)) { - return !eventSource.latestFetchId; - } - else { - return !calendar.opt('lazyFetching') || - !eventSource.fetchRange || - fetchRange.start < eventSource.fetchRange.start || - fetchRange.end > eventSource.fetchRange.end; - } -} -function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, calendar) { - var nextSources = {}; - for (var sourceId in prevSources) { - var source = prevSources[sourceId]; - if (sourceIdHash[sourceId]) { - nextSources[sourceId] = fetchSource(source, fetchRange, calendar); - } - else { - nextSources[sourceId] = source; - } - } - return nextSources; -} -function fetchSource(eventSource, fetchRange, calendar) { - var sourceDef = calendar.pluginSystem.hooks.eventSourceDefs[eventSource.sourceDefId]; - var fetchId = String(uid$3++); - sourceDef.fetch({ - eventSource: eventSource, - calendar: calendar, - range: fetchRange - }, function (res) { - var rawEvents = res.rawEvents; - var calSuccess = calendar.opt('eventSourceSuccess'); - var calSuccessRes; - var sourceSuccessRes; - if (eventSource.success) { - sourceSuccessRes = eventSource.success(rawEvents, res.xhr); - } - if (calSuccess) { - calSuccessRes = calSuccess(rawEvents, res.xhr); - } - rawEvents = sourceSuccessRes || calSuccessRes || rawEvents; - calendar.dispatch({ - type: 'RECEIVE_EVENTS', - sourceId: eventSource.sourceId, - fetchId: fetchId, - fetchRange: fetchRange, - rawEvents: rawEvents - }); - }, function (error) { - var callFailure = calendar.opt('eventSourceFailure'); - console.warn(error.message, error); - if (eventSource.failure) { - eventSource.failure(error); - } - if (callFailure) { - callFailure(error); - } - calendar.dispatch({ - type: 'RECEIVE_EVENT_ERROR', - sourceId: eventSource.sourceId, - fetchId: fetchId, - fetchRange: fetchRange, - error: error - }); - }); - return __assign({}, eventSource, { isFetching: true, latestFetchId: fetchId }); -} -function receiveResponse(sourceHash, sourceId, fetchId, fetchRange) { - var _a; - var eventSource = sourceHash[sourceId]; - if (eventSource && // not already removed - fetchId === eventSource.latestFetchId) { - return __assign({}, sourceHash, (_a = {}, _a[sourceId] = __assign({}, eventSource, { isFetching: false, fetchRange: fetchRange }), _a)); - } - return sourceHash; -} -function excludeStaticSources(eventSources, calendar) { - return filterHash(eventSources, function (eventSource) { - return doesSourceNeedRange(eventSource, calendar); - }); -} - -var DateProfileGenerator = /** @class */ (function () { - function DateProfileGenerator(viewSpec, calendar) { - this.viewSpec = viewSpec; - this.options = viewSpec.options; - this.dateEnv = calendar.dateEnv; - this.calendar = calendar; - this.initHiddenDays(); - } - /* Date Range Computation - ------------------------------------------------------------------------------------------------------------------*/ - // Builds a structure with info about what the dates/ranges will be for the "prev" view. - DateProfileGenerator.prototype.buildPrev = function (currentDateProfile, currentDate) { - var dateEnv = this.dateEnv; - var prevDate = dateEnv.subtract(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month - currentDateProfile.dateIncrement); - return this.build(prevDate, -1); - }; - // Builds a structure with info about what the dates/ranges will be for the "next" view. - DateProfileGenerator.prototype.buildNext = function (currentDateProfile, currentDate) { - var dateEnv = this.dateEnv; - var nextDate = dateEnv.add(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month - currentDateProfile.dateIncrement); - return this.build(nextDate, 1); - }; - // Builds a structure holding dates/ranges for rendering around the given date. - // Optional direction param indicates whether the date is being incremented/decremented - // from its previous value. decremented = -1, incremented = 1 (default). - DateProfileGenerator.prototype.build = function (currentDate, direction, forceToValid) { - if (forceToValid === void 0) { forceToValid = false; } - var validRange; - var minTime = null; - var maxTime = null; - var currentInfo; - var isRangeAllDay; - var renderRange; - var activeRange; - var isValid; - validRange = this.buildValidRange(); - validRange = this.trimHiddenDays(validRange); - if (forceToValid) { - currentDate = constrainMarkerToRange(currentDate, validRange); - } - currentInfo = this.buildCurrentRangeInfo(currentDate, direction); - isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit); - renderRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.range), currentInfo.unit, isRangeAllDay); - renderRange = this.trimHiddenDays(renderRange); - activeRange = renderRange; - if (!this.options.showNonCurrentDates) { - activeRange = intersectRanges(activeRange, currentInfo.range); - } - minTime = createDuration(this.options.minTime); - maxTime = createDuration(this.options.maxTime); - activeRange = this.adjustActiveRange(activeRange, minTime, maxTime); - activeRange = intersectRanges(activeRange, validRange); // might return null - // it's invalid if the originally requested date is not contained, - // or if the range is completely outside of the valid range. - isValid = rangesIntersect(currentInfo.range, validRange); - return { - // constraint for where prev/next operations can go and where events can be dragged/resized to. - // an object with optional start and end properties. - validRange: validRange, - // range the view is formally responsible for. - // for example, a month view might have 1st-31st, excluding padded dates - currentRange: currentInfo.range, - // name of largest unit being displayed, like "month" or "week" - currentRangeUnit: currentInfo.unit, - isRangeAllDay: isRangeAllDay, - // dates that display events and accept drag-n-drop - // will be `null` if no dates accept events - activeRange: activeRange, - // date range with a rendered skeleton - // includes not-active days that need some sort of DOM - renderRange: renderRange, - // Duration object that denotes the first visible time of any given day - minTime: minTime, - // Duration object that denotes the exclusive visible end time of any given day - maxTime: maxTime, - isValid: isValid, - // how far the current date will move for a prev/next operation - dateIncrement: this.buildDateIncrement(currentInfo.duration) - // pass a fallback (might be null) ^ - }; - }; - // Builds an object with optional start/end properties. - // Indicates the minimum/maximum dates to display. - // not responsible for trimming hidden days. - DateProfileGenerator.prototype.buildValidRange = function () { - return this.getRangeOption('validRange', this.calendar.getNow()) || - { start: null, end: null }; // completely open-ended - }; - // Builds a structure with info about the "current" range, the range that is - // highlighted as being the current month for example. - // See build() for a description of `direction`. - // Guaranteed to have `range` and `unit` properties. `duration` is optional. - DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) { - var _a = this, viewSpec = _a.viewSpec, dateEnv = _a.dateEnv; - var duration = null; - var unit = null; - var range = null; - var dayCount; - if (viewSpec.duration) { - duration = viewSpec.duration; - unit = viewSpec.durationUnit; - range = this.buildRangeFromDuration(date, direction, duration, unit); - } - else if ((dayCount = this.options.dayCount)) { - unit = 'day'; - range = this.buildRangeFromDayCount(date, direction, dayCount); - } - else if ((range = this.buildCustomVisibleRange(date))) { - unit = dateEnv.greatestWholeUnit(range.start, range.end).unit; - } - else { - duration = this.getFallbackDuration(); - unit = greatestDurationDenominator(duration).unit; - range = this.buildRangeFromDuration(date, direction, duration, unit); - } - return { duration: duration, unit: unit, range: range }; - }; - DateProfileGenerator.prototype.getFallbackDuration = function () { - return createDuration({ day: 1 }); - }; - // Returns a new activeRange to have time values (un-ambiguate) - // minTime or maxTime causes the range to expand. - DateProfileGenerator.prototype.adjustActiveRange = function (range, minTime, maxTime) { - var dateEnv = this.dateEnv; - var start = range.start; - var end = range.end; - if (this.viewSpec.class.prototype.usesMinMaxTime) { - // expand active range if minTime is negative (why not when positive?) - if (asRoughDays(minTime) < 0) { - start = startOfDay(start); // necessary? - start = dateEnv.add(start, minTime); - } - // expand active range if maxTime is beyond one day (why not when positive?) - if (asRoughDays(maxTime) > 1) { - end = startOfDay(end); // necessary? - end = addDays(end, -1); - end = dateEnv.add(end, maxTime); - } - } - return { start: start, end: end }; - }; - // Builds the "current" range when it is specified as an explicit duration. - // `unit` is the already-computed greatestDurationDenominator unit of duration. - DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) { - var dateEnv = this.dateEnv; - var alignment = this.options.dateAlignment; - var dateIncrementInput; - var dateIncrementDuration; - var start; - var end; - var res; - // compute what the alignment should be - if (!alignment) { - dateIncrementInput = this.options.dateIncrement; - if (dateIncrementInput) { - dateIncrementDuration = createDuration(dateIncrementInput); - // use the smaller of the two units - if (asRoughMs(dateIncrementDuration) < asRoughMs(duration)) { - alignment = greatestDurationDenominator(dateIncrementDuration, !getWeeksFromInput(dateIncrementInput)).unit; - } - else { - alignment = unit; - } - } - else { - alignment = unit; - } - } - // if the view displays a single day or smaller - if (asRoughDays(duration) <= 1) { - if (this.isHiddenDay(start)) { - start = this.skipHiddenDays(start, direction); - start = startOfDay(start); - } - } - function computeRes() { - start = dateEnv.startOf(date, alignment); - end = dateEnv.add(start, duration); - res = { start: start, end: end }; - } - computeRes(); - // if range is completely enveloped by hidden days, go past the hidden days - if (!this.trimHiddenDays(res)) { - date = this.skipHiddenDays(date, direction); - computeRes(); - } - return res; - }; - // Builds the "current" range when a dayCount is specified. - DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) { - var dateEnv = this.dateEnv; - var customAlignment = this.options.dateAlignment; - var runningCount = 0; - var start = date; - var end; - if (customAlignment) { - start = dateEnv.startOf(start, customAlignment); - } - start = startOfDay(start); - start = this.skipHiddenDays(start, direction); - end = start; - do { - end = addDays(end, 1); - if (!this.isHiddenDay(end)) { - runningCount++; - } - } while (runningCount < dayCount); - return { start: start, end: end }; - }; - // Builds a normalized range object for the "visible" range, - // which is a way to define the currentRange and activeRange at the same time. - DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) { - var dateEnv = this.dateEnv; - var visibleRange = this.getRangeOption('visibleRange', dateEnv.toDate(date)); - if (visibleRange && (visibleRange.start == null || visibleRange.end == null)) { - return null; - } - return visibleRange; - }; - // Computes the range that will represent the element/cells for *rendering*, - // but which may have voided days/times. - // not responsible for trimming hidden days. - DateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) { - return currentRange; - }; - // Compute the duration value that should be added/substracted to the current date - // when a prev/next operation happens. - DateProfileGenerator.prototype.buildDateIncrement = function (fallback) { - var dateIncrementInput = this.options.dateIncrement; - var customAlignment; - if (dateIncrementInput) { - return createDuration(dateIncrementInput); - } - else if ((customAlignment = this.options.dateAlignment)) { - return createDuration(1, customAlignment); - } - else if (fallback) { - return fallback; - } - else { - return createDuration({ days: 1 }); - } - }; - // Arguments after name will be forwarded to a hypothetical function value - // WARNING: passed-in arguments will be given to generator functions as-is and can cause side-effects. - // Always clone your objects if you fear mutation. - DateProfileGenerator.prototype.getRangeOption = function (name) { - var otherArgs = []; - for (var _i = 1; _i < arguments.length; _i++) { - otherArgs[_i - 1] = arguments[_i]; - } - var val = this.options[name]; - if (typeof val === 'function') { - val = val.apply(null, otherArgs); - } - if (val) { - val = parseRange(val, this.dateEnv); - } - if (val) { - val = computeVisibleDayRange(val); - } - return val; - }; - /* Hidden Days - ------------------------------------------------------------------------------------------------------------------*/ - // Initializes internal variables related to calculating hidden days-of-week - DateProfileGenerator.prototype.initHiddenDays = function () { - var hiddenDays = this.options.hiddenDays || []; // array of day-of-week indices that are hidden - var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool) - var dayCnt = 0; - var i; - if (this.options.weekends === false) { - hiddenDays.push(0, 6); // 0=sunday, 6=saturday - } - for (i = 0; i < 7; i++) { - if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) { - dayCnt++; - } - } - if (!dayCnt) { - throw new Error('invalid hiddenDays'); // all days were hidden? bad. - } - this.isHiddenDayHash = isHiddenDayHash; - }; - // Remove days from the beginning and end of the range that are computed as hidden. - // If the whole range is trimmed off, returns null - DateProfileGenerator.prototype.trimHiddenDays = function (range) { - var start = range.start; - var end = range.end; - if (start) { - start = this.skipHiddenDays(start); - } - if (end) { - end = this.skipHiddenDays(end, -1, true); - } - if (start == null || end == null || start < end) { - return { start: start, end: end }; - } - return null; - }; - // Is the current day hidden? - // `day` is a day-of-week index (0-6), or a Date (used for UTC) - DateProfileGenerator.prototype.isHiddenDay = function (day) { - if (day instanceof Date) { - day = day.getUTCDay(); - } - return this.isHiddenDayHash[day]; - }; - // Incrementing the current day until it is no longer a hidden day, returning a copy. - // DOES NOT CONSIDER validRange! - // If the initial value of `date` is not a hidden day, don't do anything. - // Pass `isExclusive` as `true` if you are dealing with an end date. - // `inc` defaults to `1` (increment one day forward each time) - DateProfileGenerator.prototype.skipHiddenDays = function (date, inc, isExclusive) { - if (inc === void 0) { inc = 1; } - if (isExclusive === void 0) { isExclusive = false; } - while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) { - date = addDays(date, inc); - } - return date; - }; - return DateProfileGenerator; -}()); -// TODO: find a way to avoid comparing DateProfiles. it's tedious -function isDateProfilesEqual(p0, p1) { - return rangesEqual(p0.validRange, p1.validRange) && - rangesEqual(p0.activeRange, p1.activeRange) && - rangesEqual(p0.renderRange, p1.renderRange) && - durationsEqual(p0.minTime, p1.minTime) && - durationsEqual(p0.maxTime, p1.maxTime); - /* - TODO: compare more? - currentRange: DateRange - currentRangeUnit: string - isRangeAllDay: boolean - isValid: boolean - dateIncrement: Duration - */ -} - -function reduce (state, action, calendar) { - var viewType = reduceViewType(state.viewType, action); - var dateProfile = reduceDateProfile(state.dateProfile, action, state.currentDate, viewType, calendar); - var eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendar); - var nextState = __assign({}, state, { viewType: viewType, - dateProfile: dateProfile, currentDate: reduceCurrentDate(state.currentDate, action, dateProfile), eventSources: eventSources, eventStore: reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendar), dateSelection: reduceDateSelection(state.dateSelection, action, calendar), eventSelection: reduceSelectedEvent(state.eventSelection, action), eventDrag: reduceEventDrag(state.eventDrag, action, eventSources, calendar), eventResize: reduceEventResize(state.eventResize, action, eventSources, calendar), eventSourceLoadingLevel: computeLoadingLevel(eventSources), loadingLevel: computeLoadingLevel(eventSources) }); - for (var _i = 0, _a = calendar.pluginSystem.hooks.reducers; _i < _a.length; _i++) { - var reducerFunc = _a[_i]; - nextState = reducerFunc(nextState, action, calendar); - } - // console.log(action.type, nextState) - return nextState; -} -function reduceViewType(currentViewType, action) { - switch (action.type) { - case 'SET_VIEW_TYPE': - return action.viewType; - default: - return currentViewType; - } -} -function reduceDateProfile(currentDateProfile, action, currentDate, viewType, calendar) { - var newDateProfile; - switch (action.type) { - case 'PREV': - newDateProfile = calendar.dateProfileGenerators[viewType].buildPrev(currentDateProfile, currentDate); - break; - case 'NEXT': - newDateProfile = calendar.dateProfileGenerators[viewType].buildNext(currentDateProfile, currentDate); - break; - case 'SET_DATE': - if (!currentDateProfile.activeRange || - !rangeContainsMarker(currentDateProfile.currentRange, action.dateMarker)) { - newDateProfile = calendar.dateProfileGenerators[viewType].build(action.dateMarker, undefined, true // forceToValid - ); - } - break; - case 'SET_VIEW_TYPE': - var generator = calendar.dateProfileGenerators[viewType]; - if (!generator) { - throw new Error(viewType ? - 'The FullCalendar view "' + viewType + '" does not exist. Make sure your plugins are loaded correctly.' : - 'No available FullCalendar view plugins.'); - } - newDateProfile = generator.build(action.dateMarker || currentDate, undefined, true // forceToValid - ); - break; - } - if (newDateProfile && - newDateProfile.isValid && - !(currentDateProfile && isDateProfilesEqual(currentDateProfile, newDateProfile))) { - return newDateProfile; - } - else { - return currentDateProfile; - } -} -function reduceCurrentDate(currentDate, action, dateProfile) { - switch (action.type) { - case 'PREV': - case 'NEXT': - if (!rangeContainsMarker(dateProfile.currentRange, currentDate)) { - return dateProfile.currentRange.start; - } - else { - return currentDate; - } - case 'SET_DATE': - case 'SET_VIEW_TYPE': - var newDate = action.dateMarker || currentDate; - if (dateProfile.activeRange && !rangeContainsMarker(dateProfile.activeRange, newDate)) { - return dateProfile.currentRange.start; - } - else { - return newDate; - } - default: - return currentDate; - } -} -function reduceDateSelection(currentSelection, action, calendar) { - switch (action.type) { - case 'SELECT_DATES': - return action.selection; - case 'UNSELECT_DATES': - return null; - default: - return currentSelection; - } -} -function reduceSelectedEvent(currentInstanceId, action) { - switch (action.type) { - case 'SELECT_EVENT': - return action.eventInstanceId; - case 'UNSELECT_EVENT': - return ''; - default: - return currentInstanceId; - } -} -function reduceEventDrag(currentDrag, action, sources, calendar) { - switch (action.type) { - case 'SET_EVENT_DRAG': - var newDrag = action.state; - return { - affectedEvents: newDrag.affectedEvents, - mutatedEvents: newDrag.mutatedEvents, - isEvent: newDrag.isEvent, - origSeg: newDrag.origSeg - }; - case 'UNSET_EVENT_DRAG': - return null; - default: - return currentDrag; - } -} -function reduceEventResize(currentResize, action, sources, calendar) { - switch (action.type) { - case 'SET_EVENT_RESIZE': - var newResize = action.state; - return { - affectedEvents: newResize.affectedEvents, - mutatedEvents: newResize.mutatedEvents, - isEvent: newResize.isEvent, - origSeg: newResize.origSeg - }; - case 'UNSET_EVENT_RESIZE': - return null; - default: - return currentResize; - } -} -function computeLoadingLevel(eventSources) { - var cnt = 0; - for (var sourceId in eventSources) { - if (eventSources[sourceId].isFetching) { - cnt++; - } - } - return cnt; -} - -var STANDARD_PROPS = { - start: null, - end: null, - allDay: Boolean -}; -function parseDateSpan(raw, dateEnv, defaultDuration) { - var span = parseOpenDateSpan(raw, dateEnv); - var range = span.range; - if (!range.start) { - return null; - } - if (!range.end) { - if (defaultDuration == null) { - return null; - } - else { - range.end = dateEnv.add(range.start, defaultDuration); - } - } - return span; -} -/* -TODO: somehow combine with parseRange? -Will return null if the start/end props were present but parsed invalidly. -*/ -function parseOpenDateSpan(raw, dateEnv) { - var leftovers = {}; - var standardProps = refineProps(raw, STANDARD_PROPS, {}, leftovers); - var startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null; - var endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null; - var allDay = standardProps.allDay; - if (allDay == null) { - allDay = (startMeta && startMeta.isTimeUnspecified) && - (!endMeta || endMeta.isTimeUnspecified); - } - // use this leftover object as the selection object - leftovers.range = { - start: startMeta ? startMeta.marker : null, - end: endMeta ? endMeta.marker : null - }; - leftovers.allDay = allDay; - return leftovers; -} -function isDateSpansEqual(span0, span1) { - return rangesEqual(span0.range, span1.range) && - span0.allDay === span1.allDay && - isSpanPropsEqual(span0, span1); -} -// the NON-DATE-RELATED props -function isSpanPropsEqual(span0, span1) { - for (var propName in span1) { - if (propName !== 'range' && propName !== 'allDay') { - if (span0[propName] !== span1[propName]) { - return false; - } - } - } - // are there any props that span0 has that span1 DOESN'T have? - // both have range/allDay, so no need to special-case. - for (var propName in span0) { - if (!(propName in span1)) { - return false; - } - } - return true; -} -function buildDateSpanApi(span, dateEnv) { - return { - start: dateEnv.toDate(span.range.start), - end: dateEnv.toDate(span.range.end), - startStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }), - endStr: dateEnv.formatIso(span.range.end, { omitTime: span.allDay }), - allDay: span.allDay - }; -} -function buildDatePointApi(span, dateEnv) { - return { - date: dateEnv.toDate(span.range.start), - dateStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }), - allDay: span.allDay - }; -} -function fabricateEventRange(dateSpan, eventUiBases, calendar) { - var def = parseEventDef({ editable: false }, '', // sourceId - dateSpan.allDay, true, // hasEnd - calendar); - return { - def: def, - ui: compileEventUi(def, eventUiBases), - instance: createEventInstance(def.defId, dateSpan.range), - range: dateSpan.range, - isStart: true, - isEnd: true - }; -} - -function compileViewDefs(defaultConfigs, overrideConfigs) { - var hash = {}; - var viewType; - for (viewType in defaultConfigs) { - ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs); - } - for (viewType in overrideConfigs) { - ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs); - } - return hash; -} -function ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) { - if (hash[viewType]) { - return hash[viewType]; - } - var viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs); - if (viewDef) { - hash[viewType] = viewDef; - } - return viewDef; -} -function buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) { - var defaultConfig = defaultConfigs[viewType]; - var overrideConfig = overrideConfigs[viewType]; - var queryProp = function (name) { - return (defaultConfig && defaultConfig[name] !== null) ? defaultConfig[name] : - ((overrideConfig && overrideConfig[name] !== null) ? overrideConfig[name] : null); - }; - var theClass = queryProp('class'); - var superType = queryProp('superType'); - if (!superType && theClass) { - superType = - findViewNameBySubclass(theClass, overrideConfigs) || - findViewNameBySubclass(theClass, defaultConfigs); - } - var superDef = null; - if (superType) { - if (superType === viewType) { - throw new Error('Can\'t have a custom view type that references itself'); - } - superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs); - } - if (!theClass && superDef) { - theClass = superDef.class; - } - if (!theClass) { - return null; // don't throw a warning, might be settings for a single-unit view - } - return { - type: viewType, - class: theClass, - defaults: __assign({}, (superDef ? superDef.defaults : {}), (defaultConfig ? defaultConfig.options : {})), - overrides: __assign({}, (superDef ? superDef.overrides : {}), (overrideConfig ? overrideConfig.options : {})) - }; -} -function findViewNameBySubclass(viewSubclass, configs) { - var superProto = Object.getPrototypeOf(viewSubclass.prototype); - for (var viewType in configs) { - var parsed = configs[viewType]; - // need DIRECT subclass, so instanceof won't do it - if (parsed.class && parsed.class.prototype === superProto) { - return viewType; - } - } - return ''; -} - -function parseViewConfigs(inputs) { - return mapHash(inputs, parseViewConfig); -} -var VIEW_DEF_PROPS = { - type: String, - class: null -}; -function parseViewConfig(input) { - if (typeof input === 'function') { - input = { class: input }; - } - var options = {}; - var props = refineProps(input, VIEW_DEF_PROPS, {}, options); - return { - superType: props.type, - class: props.class, - options: options - }; -} - -function buildViewSpecs(defaultInputs, optionsManager) { - var defaultConfigs = parseViewConfigs(defaultInputs); - var overrideConfigs = parseViewConfigs(optionsManager.overrides.views); - var viewDefs = compileViewDefs(defaultConfigs, overrideConfigs); - return mapHash(viewDefs, function (viewDef) { - return buildViewSpec(viewDef, overrideConfigs, optionsManager); - }); -} -function buildViewSpec(viewDef, overrideConfigs, optionsManager) { - var durationInput = viewDef.overrides.duration || - viewDef.defaults.duration || - optionsManager.dynamicOverrides.duration || - optionsManager.overrides.duration; - var duration = null; - var durationUnit = ''; - var singleUnit = ''; - var singleUnitOverrides = {}; - if (durationInput) { - duration = createDuration(durationInput); - if (duration) { // valid? - var denom = greatestDurationDenominator(duration, !getWeeksFromInput(durationInput)); - durationUnit = denom.unit; - if (denom.value === 1) { - singleUnit = durationUnit; - singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].options : {}; - } - } - } - var queryButtonText = function (options) { - var buttonTextMap = options.buttonText || {}; - var buttonTextKey = viewDef.defaults.buttonTextKey; - if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) { - return buttonTextMap[buttonTextKey]; - } - if (buttonTextMap[viewDef.type] != null) { - return buttonTextMap[viewDef.type]; - } - if (buttonTextMap[singleUnit] != null) { - return buttonTextMap[singleUnit]; - } - }; - return { - type: viewDef.type, - class: viewDef.class, - duration: duration, - durationUnit: durationUnit, - singleUnit: singleUnit, - options: __assign({}, globalDefaults, viewDef.defaults, optionsManager.dirDefaults, optionsManager.localeDefaults, optionsManager.overrides, singleUnitOverrides, viewDef.overrides, optionsManager.dynamicOverrides), - buttonTextOverride: queryButtonText(optionsManager.dynamicOverrides) || - queryButtonText(optionsManager.overrides) || // constructor-specified buttonText lookup hash takes precedence - viewDef.overrides.buttonText, - buttonTextDefault: queryButtonText(optionsManager.localeDefaults) || - queryButtonText(optionsManager.dirDefaults) || - viewDef.defaults.buttonText || - queryButtonText(globalDefaults) || - viewDef.type // fall back to given view name - }; -} - -var Toolbar = /** @class */ (function (_super) { - __extends(Toolbar, _super); - function Toolbar(context, extraClassName) { - var _this = _super.call(this, context) || this; - _this._renderLayout = memoizeRendering(_this.renderLayout, _this.unrenderLayout); - _this._updateTitle = memoizeRendering(_this.updateTitle, null, [_this._renderLayout]); - _this._updateActiveButton = memoizeRendering(_this.updateActiveButton, null, [_this._renderLayout]); - _this._updateToday = memoizeRendering(_this.updateToday, null, [_this._renderLayout]); - _this._updatePrev = memoizeRendering(_this.updatePrev, null, [_this._renderLayout]); - _this._updateNext = memoizeRendering(_this.updateNext, null, [_this._renderLayout]); - _this.el = createElement('div', { className: 'fc-toolbar ' + extraClassName }); - return _this; - } - Toolbar.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this._renderLayout.unrender(); // should unrender everything else - removeElement(this.el); - }; - Toolbar.prototype.render = function (props) { - this._renderLayout(props.layout); - this._updateTitle(props.title); - this._updateActiveButton(props.activeButton); - this._updateToday(props.isTodayEnabled); - this._updatePrev(props.isPrevEnabled); - this._updateNext(props.isNextEnabled); - }; - Toolbar.prototype.renderLayout = function (layout) { - var el = this.el; - this.viewsWithButtons = []; - appendToElement(el, this.renderSection('left', layout.left)); - appendToElement(el, this.renderSection('center', layout.center)); - appendToElement(el, this.renderSection('right', layout.right)); - }; - Toolbar.prototype.unrenderLayout = function () { - this.el.innerHTML = ''; - }; - Toolbar.prototype.renderSection = function (position, buttonStr) { - var _this = this; - var _a = this, theme = _a.theme, calendar = _a.calendar; - var optionsManager = calendar.optionsManager; - var viewSpecs = calendar.viewSpecs; - var sectionEl = createElement('div', { className: 'fc-' + position }); - var calendarCustomButtons = optionsManager.computed.customButtons || {}; - var calendarButtonTextOverrides = optionsManager.overrides.buttonText || {}; - var calendarButtonText = optionsManager.computed.buttonText || {}; - if (buttonStr) { - buttonStr.split(' ').forEach(function (buttonGroupStr, i) { - var groupChildren = []; - var isOnlyButtons = true; - var groupEl; - buttonGroupStr.split(',').forEach(function (buttonName, j) { - var customButtonProps; - var viewSpec; - var buttonClick; - var buttonIcon; // only one of these will be set - var buttonText; // " - var buttonInnerHtml; - var buttonClasses; - var buttonEl; - var buttonAriaAttr; - if (buttonName === 'title') { - groupChildren.push(htmlToElement('

 

')); // we always want it to take up height - isOnlyButtons = false; - } - else { - if ((customButtonProps = calendarCustomButtons[buttonName])) { - buttonClick = function (ev) { - if (customButtonProps.click) { - customButtonProps.click.call(buttonEl, ev); - } - }; - (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = customButtonProps.text); - } - else if ((viewSpec = viewSpecs[buttonName])) { - _this.viewsWithButtons.push(buttonName); - buttonClick = function () { - calendar.changeView(buttonName); - }; - (buttonText = viewSpec.buttonTextOverride) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = viewSpec.buttonTextDefault); - } - else if (calendar[buttonName]) { // a calendar method - buttonClick = function () { - calendar[buttonName](); - }; - (buttonText = calendarButtonTextOverrides[buttonName]) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = calendarButtonText[buttonName]); - // ^ everything else is considered default - } - if (buttonClick) { - buttonClasses = [ - 'fc-' + buttonName + '-button', - theme.getClass('button') - ]; - if (buttonText) { - buttonInnerHtml = htmlEscape(buttonText); - buttonAriaAttr = ''; - } - else if (buttonIcon) { - buttonInnerHtml = ""; - buttonAriaAttr = ' aria-label="' + buttonName + '"'; - } - buttonEl = htmlToElement(// type="button" so that it doesn't submit a form - ''); - buttonEl.addEventListener('click', buttonClick); - groupChildren.push(buttonEl); - } - } - }); - if (groupChildren.length > 1) { - groupEl = document.createElement('div'); - var buttonGroupClassName = theme.getClass('buttonGroup'); - if (isOnlyButtons && buttonGroupClassName) { - groupEl.classList.add(buttonGroupClassName); - } - appendToElement(groupEl, groupChildren); - sectionEl.appendChild(groupEl); - } - else { - appendToElement(sectionEl, groupChildren); // 1 or 0 children - } - }); - } - return sectionEl; - }; - Toolbar.prototype.updateToday = function (isTodayEnabled) { - this.toggleButtonEnabled('today', isTodayEnabled); - }; - Toolbar.prototype.updatePrev = function (isPrevEnabled) { - this.toggleButtonEnabled('prev', isPrevEnabled); - }; - Toolbar.prototype.updateNext = function (isNextEnabled) { - this.toggleButtonEnabled('next', isNextEnabled); - }; - Toolbar.prototype.updateTitle = function (text) { - findElements(this.el, 'h2').forEach(function (titleEl) { - titleEl.innerText = text; - }); - }; - Toolbar.prototype.updateActiveButton = function (buttonName) { - var className = this.theme.getClass('buttonActive'); - findElements(this.el, 'button').forEach(function (buttonEl) { - if (buttonName && buttonEl.classList.contains('fc-' + buttonName + '-button')) { - buttonEl.classList.add(className); - } - else { - buttonEl.classList.remove(className); - } - }); - }; - Toolbar.prototype.toggleButtonEnabled = function (buttonName, bool) { - findElements(this.el, '.fc-' + buttonName + '-button').forEach(function (buttonEl) { - buttonEl.disabled = !bool; - }); - }; - return Toolbar; -}(Component)); - -var CalendarComponent = /** @class */ (function (_super) { - __extends(CalendarComponent, _super); - function CalendarComponent(context, el) { - var _this = _super.call(this, context) || this; - _this._renderToolbars = memoizeRendering(_this.renderToolbars); - _this.buildViewPropTransformers = memoize(buildViewPropTransformers); - _this.el = el; - prependToElement(el, _this.contentEl = createElement('div', { className: 'fc-view-container' })); - var calendar = _this.calendar; - for (var _i = 0, _a = calendar.pluginSystem.hooks.viewContainerModifiers; _i < _a.length; _i++) { - var modifyViewContainer = _a[_i]; - modifyViewContainer(_this.contentEl, calendar); - } - _this.toggleElClassNames(true); - _this.computeTitle = memoize(computeTitle); - _this.parseBusinessHours = memoize(function (input) { - return parseBusinessHours(input, _this.calendar); - }); - return _this; - } - CalendarComponent.prototype.destroy = function () { - if (this.header) { - this.header.destroy(); - } - if (this.footer) { - this.footer.destroy(); - } - if (this.view) { - this.view.destroy(); - } - removeElement(this.contentEl); - this.toggleElClassNames(false); - _super.prototype.destroy.call(this); - }; - CalendarComponent.prototype.toggleElClassNames = function (bool) { - var classList = this.el.classList; - var dirClassName = 'fc-' + this.opt('dir'); - var themeClassName = this.theme.getClass('widget'); - if (bool) { - classList.add('fc'); - classList.add(dirClassName); - classList.add(themeClassName); - } - else { - classList.remove('fc'); - classList.remove(dirClassName); - classList.remove(themeClassName); - } - }; - CalendarComponent.prototype.render = function (props) { - this.freezeHeight(); - var title = this.computeTitle(props.dateProfile, props.viewSpec.options); - this._renderToolbars(props.viewSpec, props.dateProfile, props.currentDate, props.dateProfileGenerator, title); - this.renderView(props, title); - this.updateSize(); - this.thawHeight(); - }; - CalendarComponent.prototype.renderToolbars = function (viewSpec, dateProfile, currentDate, dateProfileGenerator, title) { - var headerLayout = this.opt('header'); - var footerLayout = this.opt('footer'); - var now = this.calendar.getNow(); - var todayInfo = dateProfileGenerator.build(now); - var prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate); - var nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate); - var toolbarProps = { - title: title, - activeButton: viewSpec.type, - isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now), - isPrevEnabled: prevInfo.isValid, - isNextEnabled: nextInfo.isValid - }; - if (headerLayout) { - if (!this.header) { - this.header = new Toolbar(this.context, 'fc-header-toolbar'); - prependToElement(this.el, this.header.el); - } - this.header.receiveProps(__assign({ layout: headerLayout }, toolbarProps)); - } - else if (this.header) { - this.header.destroy(); - this.header = null; - } - if (footerLayout) { - if (!this.footer) { - this.footer = new Toolbar(this.context, 'fc-footer-toolbar'); - appendToElement(this.el, this.footer.el); - } - this.footer.receiveProps(__assign({ layout: footerLayout }, toolbarProps)); - } - else if (this.footer) { - this.footer.destroy(); - this.footer = null; - } - }; - CalendarComponent.prototype.renderView = function (props, title) { - var view = this.view; - var viewSpec = props.viewSpec, dateProfileGenerator = props.dateProfileGenerator; - if (!view || view.viewSpec !== viewSpec) { - if (view) { - view.destroy(); - } - view = this.view = new viewSpec['class']({ - calendar: this.calendar, - view: null, - dateEnv: this.dateEnv, - theme: this.theme, - options: viewSpec.options - }, viewSpec, dateProfileGenerator, this.contentEl); - } - else { - view.addScroll(view.queryScroll()); - } - view.title = title; // for the API - var viewProps = { - dateProfile: props.dateProfile, - businessHours: this.parseBusinessHours(viewSpec.options.businessHours), - eventStore: props.eventStore, - eventUiBases: props.eventUiBases, - dateSelection: props.dateSelection, - eventSelection: props.eventSelection, - eventDrag: props.eventDrag, - eventResize: props.eventResize - }; - var transformers = this.buildViewPropTransformers(this.calendar.pluginSystem.hooks.viewPropsTransformers); - for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) { - var transformer = transformers_1[_i]; - __assign(viewProps, transformer.transform(viewProps, viewSpec, props, view)); - } - view.receiveProps(viewProps); - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - CalendarComponent.prototype.updateSize = function (isResize) { - if (isResize === void 0) { isResize = false; } - var view = this.view; - if (isResize) { - view.addScroll(view.queryScroll()); - } - if (isResize || this.isHeightAuto == null) { - this.computeHeightVars(); - } - view.updateSize(isResize, this.viewHeight, this.isHeightAuto); - view.updateNowIndicator(); // we need to guarantee this will run after updateSize - view.popScroll(isResize); - }; - CalendarComponent.prototype.computeHeightVars = function () { - var calendar = this.calendar; // yuck. need to handle dynamic options - var heightInput = calendar.opt('height'); - var contentHeightInput = calendar.opt('contentHeight'); - this.isHeightAuto = heightInput === 'auto' || contentHeightInput === 'auto'; - if (typeof contentHeightInput === 'number') { // exists and not 'auto' - this.viewHeight = contentHeightInput; - } - else if (typeof contentHeightInput === 'function') { // exists and is a function - this.viewHeight = contentHeightInput(); - } - else if (typeof heightInput === 'number') { // exists and not 'auto' - this.viewHeight = heightInput - this.queryToolbarsHeight(); - } - else if (typeof heightInput === 'function') { // exists and is a function - this.viewHeight = heightInput() - this.queryToolbarsHeight(); - } - else if (heightInput === 'parent') { // set to height of parent element - var parentEl = this.el.parentNode; - this.viewHeight = parentEl.getBoundingClientRect().height - this.queryToolbarsHeight(); - } - else { - this.viewHeight = Math.round(this.contentEl.getBoundingClientRect().width / - Math.max(calendar.opt('aspectRatio'), .5)); - } - }; - CalendarComponent.prototype.queryToolbarsHeight = function () { - var height = 0; - if (this.header) { - height += computeHeightAndMargins(this.header.el); - } - if (this.footer) { - height += computeHeightAndMargins(this.footer.el); - } - return height; - }; - // Height "Freezing" - // ----------------------------------------------------------------------------------------------------------------- - CalendarComponent.prototype.freezeHeight = function () { - applyStyle(this.el, { - height: this.el.getBoundingClientRect().height, - overflow: 'hidden' - }); - }; - CalendarComponent.prototype.thawHeight = function () { - applyStyle(this.el, { - height: '', - overflow: '' - }); - }; - return CalendarComponent; -}(Component)); -// Title and Date Formatting -// ----------------------------------------------------------------------------------------------------------------- -// Computes what the title at the top of the calendar should be for this view -function computeTitle(dateProfile, viewOptions) { - var range; - // for views that span a large unit of time, show the proper interval, ignoring stray days before and after - if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) { - range = dateProfile.currentRange; - } - else { // for day units or smaller, use the actual day range - range = dateProfile.activeRange; - } - return this.dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || computeTitleFormat(dateProfile), viewOptions.titleRangeSeparator), { isEndExclusive: dateProfile.isRangeAllDay }); -} -// Generates the format string that should be used to generate the title for the current date range. -// Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`. -function computeTitleFormat(dateProfile) { - var currentRangeUnit = dateProfile.currentRangeUnit; - if (currentRangeUnit === 'year') { - return { year: 'numeric' }; - } - else if (currentRangeUnit === 'month') { - return { year: 'numeric', month: 'long' }; // like "September 2014" - } - else { - var days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end); - if (days !== null && days > 1) { - // multi-day range. shorter, like "Sep 9 - 10 2014" - return { year: 'numeric', month: 'short', day: 'numeric' }; - } - else { - // one day. longer, like "September 9 2014" - return { year: 'numeric', month: 'long', day: 'numeric' }; - } - } -} -// Plugin -// ----------------------------------------------------------------------------------------------------------------- -function buildViewPropTransformers(theClasses) { - return theClasses.map(function (theClass) { - return new theClass(); - }); -} - -var Interaction = /** @class */ (function () { - function Interaction(settings) { - this.component = settings.component; - } - Interaction.prototype.destroy = function () { - }; - return Interaction; -}()); -function parseInteractionSettings(component, input) { - return { - component: component, - el: input.el, - useEventCenter: input.useEventCenter != null ? input.useEventCenter : true - }; -} -function interactionSettingsToStore(settings) { - var _a; - return _a = {}, - _a[settings.component.uid] = settings, - _a; -} -// global state -var interactionSettingsStore = {}; - -/* -Detects when the user clicks on an event within a DateComponent -*/ -var EventClicking = /** @class */ (function (_super) { - __extends(EventClicking, _super); - function EventClicking(settings) { - var _this = _super.call(this, settings) || this; - _this.handleSegClick = function (ev, segEl) { - var component = _this.component; - var seg = getElSeg(segEl); - if (seg && // might be the
surrounding the more link - component.isValidSegDownEl(ev.target)) { - // our way to simulate a link click for elements that can't be tags - // grab before trigger fired in case trigger trashes DOM thru rerendering - var hasUrlContainer = elementClosest(ev.target, '.fc-has-url'); - var url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : ''; - component.publiclyTrigger('eventClick', [ - { - el: segEl, - event: new EventApi(component.calendar, seg.eventRange.def, seg.eventRange.instance), - jsEvent: ev, - view: component.view - } - ]); - if (url && !ev.defaultPrevented) { - window.location.href = url; - } - } - }; - var component = settings.component; - _this.destroy = listenBySelector(component.el, 'click', component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegClick); - return _this; - } - return EventClicking; -}(Interaction)); - -/* -Triggers events and adds/removes core classNames when the user's pointer -enters/leaves event-elements of a component. -*/ -var EventHovering = /** @class */ (function (_super) { - __extends(EventHovering, _super); - function EventHovering(settings) { - var _this = _super.call(this, settings) || this; - // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it - _this.handleEventElRemove = function (el) { - if (el === _this.currentSegEl) { - _this.handleSegLeave(null, _this.currentSegEl); - } - }; - _this.handleSegEnter = function (ev, segEl) { - if (getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper - segEl.classList.add('fc-allow-mouse-resize'); - _this.currentSegEl = segEl; - _this.triggerEvent('eventMouseEnter', ev, segEl); - } - }; - _this.handleSegLeave = function (ev, segEl) { - if (_this.currentSegEl) { - segEl.classList.remove('fc-allow-mouse-resize'); - _this.currentSegEl = null; - _this.triggerEvent('eventMouseLeave', ev, segEl); - } - }; - var component = settings.component; - _this.removeHoverListeners = listenToHoverBySelector(component.el, component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegEnter, _this.handleSegLeave); - component.calendar.on('eventElRemove', _this.handleEventElRemove); - return _this; - } - EventHovering.prototype.destroy = function () { - this.removeHoverListeners(); - this.component.calendar.off('eventElRemove', this.handleEventElRemove); - }; - EventHovering.prototype.triggerEvent = function (publicEvName, ev, segEl) { - var component = this.component; - var seg = getElSeg(segEl); - if (!ev || component.isValidSegDownEl(ev.target)) { - component.publiclyTrigger(publicEvName, [ - { - el: segEl, - event: new EventApi(this.component.calendar, seg.eventRange.def, seg.eventRange.instance), - jsEvent: ev, - view: component.view - } - ]); - } - }; - return EventHovering; -}(Interaction)); - -var StandardTheme = /** @class */ (function (_super) { - __extends(StandardTheme, _super); - function StandardTheme() { - return _super !== null && _super.apply(this, arguments) || this; - } - return StandardTheme; -}(Theme)); -StandardTheme.prototype.classes = { - widget: 'fc-unthemed', - widgetHeader: 'fc-widget-header', - widgetContent: 'fc-widget-content', - buttonGroup: 'fc-button-group', - button: 'fc-button fc-button-primary', - buttonActive: 'fc-button-active', - popoverHeader: 'fc-widget-header', - popoverContent: 'fc-widget-content', - // day grid - headerRow: 'fc-widget-header', - dayRow: 'fc-widget-content', - // list view - listView: 'fc-widget-content' -}; -StandardTheme.prototype.baseIconClass = 'fc-icon'; -StandardTheme.prototype.iconClasses = { - close: 'fc-icon-x', - prev: 'fc-icon-chevron-left', - next: 'fc-icon-chevron-right', - prevYear: 'fc-icon-chevrons-left', - nextYear: 'fc-icon-chevrons-right' -}; -StandardTheme.prototype.iconOverrideOption = 'buttonIcons'; -StandardTheme.prototype.iconOverrideCustomButtonOption = 'icon'; -StandardTheme.prototype.iconOverridePrefix = 'fc-icon-'; - -var Calendar = /** @class */ (function () { - function Calendar(el, overrides) { - var _this = this; - this.parseRawLocales = memoize(parseRawLocales); - this.buildLocale = memoize(buildLocale); - this.buildDateEnv = memoize(buildDateEnv); - this.buildTheme = memoize(buildTheme); - this.buildEventUiSingleBase = memoize(this._buildEventUiSingleBase); - this.buildSelectionConfig = memoize(this._buildSelectionConfig); - this.buildEventUiBySource = memoizeOutput(buildEventUiBySource, isPropsEqual); - this.buildEventUiBases = memoize(buildEventUiBases); - this.interactionsStore = {}; - this.actionQueue = []; - this.isReducing = false; - // isDisplaying: boolean = false // installed in DOM? accepting renders? - this.needsRerender = false; // needs a render? - this.needsFullRerender = false; - this.isRendering = false; // currently in the executeRender function? - this.renderingPauseDepth = 0; - this.buildDelayedRerender = memoize(buildDelayedRerender); - this.afterSizingTriggers = {}; - this.isViewUpdated = false; - this.isDatesUpdated = false; - this.isEventsUpdated = false; - this.el = el; - this.optionsManager = new OptionsManager(overrides || {}); - this.pluginSystem = new PluginSystem(); - // only do once. don't do in handleOptions. because can't remove plugins - this.addPluginInputs(this.optionsManager.computed.plugins || []); - this.handleOptions(this.optionsManager.computed); - this.publiclyTrigger('_init'); // for tests - this.hydrate(); - this.calendarInteractions = this.pluginSystem.hooks.calendarInteractions - .map(function (calendarInteractionClass) { - return new calendarInteractionClass(_this); - }); - } - Calendar.prototype.addPluginInputs = function (pluginInputs) { - var pluginDefs = refinePluginDefs(pluginInputs); - for (var _i = 0, pluginDefs_1 = pluginDefs; _i < pluginDefs_1.length; _i++) { - var pluginDef = pluginDefs_1[_i]; - this.pluginSystem.add(pluginDef); - } - }; - Object.defineProperty(Calendar.prototype, "view", { - // public API - get: function () { - return this.component ? this.component.view : null; - }, - enumerable: true, - configurable: true - }); - // Public API for rendering - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.render = function () { - if (!this.component) { - this.renderableEventStore = createEmptyEventStore(); - this.bindHandlers(); - this.executeRender(); - } - else { - this.requestRerender(true); - } - }; - Calendar.prototype.destroy = function () { - if (this.component) { - this.unbindHandlers(); - this.component.destroy(); // don't null-out. in case API needs access - this.component = null; // umm ??? - for (var _i = 0, _a = this.calendarInteractions; _i < _a.length; _i++) { - var interaction = _a[_i]; - interaction.destroy(); - } - this.publiclyTrigger('_destroyed'); - } - }; - // Handlers - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.bindHandlers = function () { - var _this = this; - // event delegation for nav links - this.removeNavLinkListener = listenBySelector(this.el, 'click', 'a[data-goto]', function (ev, anchorEl) { - var gotoOptions = anchorEl.getAttribute('data-goto'); - gotoOptions = gotoOptions ? JSON.parse(gotoOptions) : {}; - var dateEnv = _this.dateEnv; - var dateMarker = dateEnv.createMarker(gotoOptions.date); - var viewType = gotoOptions.type; - // property like "navLinkDayClick". might be a string or a function - var customAction = _this.viewOpt('navLink' + capitaliseFirstLetter(viewType) + 'Click'); - if (typeof customAction === 'function') { - customAction(dateEnv.toDate(dateMarker), ev); - } - else { - if (typeof customAction === 'string') { - viewType = customAction; - } - _this.zoomTo(dateMarker, viewType); - } - }); - if (this.opt('handleWindowResize')) { - window.addEventListener('resize', this.windowResizeProxy = debounce(// prevents rapid calls - this.windowResize.bind(this), this.opt('windowResizeDelay'))); - } - }; - Calendar.prototype.unbindHandlers = function () { - this.removeNavLinkListener(); - if (this.windowResizeProxy) { - window.removeEventListener('resize', this.windowResizeProxy); - this.windowResizeProxy = null; - } - }; - // Dispatcher - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.hydrate = function () { - var _this = this; - this.state = this.buildInitialState(); - var rawSources = this.opt('eventSources') || []; - var singleRawSource = this.opt('events'); - var sources = []; // parsed - if (singleRawSource) { - rawSources.unshift(singleRawSource); - } - for (var _i = 0, rawSources_1 = rawSources; _i < rawSources_1.length; _i++) { - var rawSource = rawSources_1[_i]; - var source = parseEventSource(rawSource, this); - if (source) { - sources.push(source); - } - } - this.batchRendering(function () { - _this.dispatch({ type: 'INIT' }); // pass in sources here? - _this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: sources }); - _this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: _this.opt('defaultView') || _this.pluginSystem.hooks.defaultView - }); - }); - }; - Calendar.prototype.buildInitialState = function () { - return { - viewType: null, - loadingLevel: 0, - eventSourceLoadingLevel: 0, - currentDate: this.getInitialDate(), - dateProfile: null, - eventSources: {}, - eventStore: createEmptyEventStore(), - dateSelection: null, - eventSelection: '', - eventDrag: null, - eventResize: null - }; - }; - Calendar.prototype.dispatch = function (action) { - this.actionQueue.push(action); - if (!this.isReducing) { - this.isReducing = true; - var oldState = this.state; - while (this.actionQueue.length) { - this.state = this.reduce(this.state, this.actionQueue.shift(), this); - } - var newState = this.state; - this.isReducing = false; - if (!oldState.loadingLevel && newState.loadingLevel) { - this.publiclyTrigger('loading', [true]); - } - else if (oldState.loadingLevel && !newState.loadingLevel) { - this.publiclyTrigger('loading', [false]); - } - var view = this.component && this.component.view; - if (oldState.eventStore !== newState.eventStore || this.needsFullRerender) { - if (oldState.eventStore) { - this.isEventsUpdated = true; - } - } - if (oldState.dateProfile !== newState.dateProfile || this.needsFullRerender) { - if (oldState.dateProfile && view) { // why would view be null!? - this.publiclyTrigger('datesDestroy', [ - { - view: view, - el: view.el - } - ]); - } - this.isDatesUpdated = true; - } - if (oldState.viewType !== newState.viewType || this.needsFullRerender) { - if (oldState.viewType && view) { // why would view be null!? - this.publiclyTrigger('viewSkeletonDestroy', [ - { - view: view, - el: view.el - } - ]); - } - this.isViewUpdated = true; - } - this.requestRerender(); - } - }; - Calendar.prototype.reduce = function (state, action, calendar) { - return reduce(state, action, calendar); - }; - // Render Queue - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.requestRerender = function (needsFull) { - if (needsFull === void 0) { needsFull = false; } - this.needsRerender = true; - this.needsFullRerender = this.needsFullRerender || needsFull; - this.delayedRerender(); // will call a debounced-version of tryRerender - }; - Calendar.prototype.tryRerender = function () { - if (this.component && // must be accepting renders - this.needsRerender && // indicates that a rerender was requested - !this.renderingPauseDepth && // not paused - !this.isRendering // not currently in the render loop - ) { - this.executeRender(); - } - }; - Calendar.prototype.batchRendering = function (func) { - this.renderingPauseDepth++; - func(); - this.renderingPauseDepth--; - if (this.needsRerender) { - this.requestRerender(); - } - }; - // Rendering - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.executeRender = function () { - var needsFullRerender = this.needsFullRerender; // save before clearing - // clear these BEFORE the render so that new values will accumulate during render - this.needsRerender = false; - this.needsFullRerender = false; - this.isRendering = true; - this.renderComponent(needsFullRerender); - this.isRendering = false; - // received a rerender request while rendering - if (this.needsRerender) { - this.delayedRerender(); - } - }; - /* - don't call this directly. use executeRender instead - */ - Calendar.prototype.renderComponent = function (needsFull) { - var _a = this, state = _a.state, component = _a.component; - var viewType = state.viewType; - var viewSpec = this.viewSpecs[viewType]; - var savedScroll = (needsFull && component) ? component.view.queryScroll() : null; - if (!viewSpec) { - throw new Error("View type \"" + viewType + "\" is not valid"); - } - // if event sources are still loading and progressive rendering hasn't been enabled, - // keep rendering the last fully loaded set of events - var renderableEventStore = this.renderableEventStore = - (state.eventSourceLoadingLevel && !this.opt('progressiveEventRendering')) ? - this.renderableEventStore : - state.eventStore; - var eventUiSingleBase = this.buildEventUiSingleBase(viewSpec.options); - var eventUiBySource = this.buildEventUiBySource(state.eventSources); - var eventUiBases = this.eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource); - if (needsFull || !component) { - if (component) { - component.freezeHeight(); // next component will unfreeze it - component.destroy(); - } - component = this.component = new CalendarComponent({ - calendar: this, - view: null, - dateEnv: this.dateEnv, - theme: this.theme, - options: this.optionsManager.computed - }, this.el); - this.isViewUpdated = true; - this.isDatesUpdated = true; - this.isEventsUpdated = true; - } - component.receiveProps(__assign({}, state, { viewSpec: viewSpec, dateProfile: state.dateProfile, dateProfileGenerator: this.dateProfileGenerators[viewType], eventStore: renderableEventStore, eventUiBases: eventUiBases, dateSelection: state.dateSelection, eventSelection: state.eventSelection, eventDrag: state.eventDrag, eventResize: state.eventResize })); - if (savedScroll) { - component.view.applyScroll(savedScroll, false); - } - if (this.isViewUpdated) { - this.isViewUpdated = false; - this.publiclyTrigger('viewSkeletonRender', [ - { - view: component.view, - el: component.view.el - } - ]); - } - if (this.isDatesUpdated) { - this.isDatesUpdated = false; - this.publiclyTrigger('datesRender', [ - { - view: component.view, - el: component.view.el - } - ]); - } - if (this.isEventsUpdated) { - this.isEventsUpdated = false; - } - this.releaseAfterSizingTriggers(); - }; - // Options - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.setOption = function (name, val) { - var _a; - this.mutateOptions((_a = {}, _a[name] = val, _a), [], true); - }; - Calendar.prototype.getOption = function (name) { - return this.optionsManager.computed[name]; - }; - Calendar.prototype.opt = function (name) { - return this.optionsManager.computed[name]; - }; - Calendar.prototype.viewOpt = function (name) { - return this.viewOpts()[name]; - }; - Calendar.prototype.viewOpts = function () { - return this.viewSpecs[this.state.viewType].options; - }; - /* - handles option changes (like a diff) - */ - Calendar.prototype.mutateOptions = function (updates, removals, isDynamic, deepEqual) { - var _this = this; - var changeHandlers = this.pluginSystem.hooks.optionChangeHandlers; - var normalUpdates = {}; - var specialUpdates = {}; - var oldDateEnv = this.dateEnv; // do this before handleOptions - var isTimeZoneDirty = false; - var isSizeDirty = false; - var anyDifficultOptions = Boolean(removals.length); - for (var name_1 in updates) { - if (changeHandlers[name_1]) { - specialUpdates[name_1] = updates[name_1]; - } - else { - normalUpdates[name_1] = updates[name_1]; - } - } - for (var name_2 in normalUpdates) { - if (/^(height|contentHeight|aspectRatio)$/.test(name_2)) { - isSizeDirty = true; - } - else if (/^(defaultDate|defaultView)$/.test(name_2)) ; - else { - anyDifficultOptions = true; - if (name_2 === 'timeZone') { - isTimeZoneDirty = true; - } - } - } - this.optionsManager.mutate(normalUpdates, removals, isDynamic); - if (anyDifficultOptions) { - this.handleOptions(this.optionsManager.computed); - this.needsFullRerender = true; - } - this.batchRendering(function () { - if (anyDifficultOptions) { - if (isTimeZoneDirty) { - _this.dispatch({ - type: 'CHANGE_TIMEZONE', - oldDateEnv: oldDateEnv - }); - } - /* HACK - has the same effect as calling this.requestRerender(true) - but recomputes the state's dateProfile - */ - _this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: _this.state.viewType - }); - } - else if (isSizeDirty) { - _this.updateSize(); - } - // special updates - if (deepEqual) { - for (var name_3 in specialUpdates) { - changeHandlers[name_3](specialUpdates[name_3], _this, deepEqual); - } - } - }); - }; - /* - rebuilds things based off of a complete set of refined options - */ - Calendar.prototype.handleOptions = function (options) { - var _this = this; - var pluginHooks = this.pluginSystem.hooks; - this.defaultAllDayEventDuration = createDuration(options.defaultAllDayEventDuration); - this.defaultTimedEventDuration = createDuration(options.defaultTimedEventDuration); - this.delayedRerender = this.buildDelayedRerender(options.rerenderDelay); - this.theme = this.buildTheme(options); - var available = this.parseRawLocales(options.locales); - this.availableRawLocales = available.map; - var locale = this.buildLocale(options.locale || available.defaultCode, available.map); - this.dateEnv = this.buildDateEnv(locale, options.timeZone, pluginHooks.namedTimeZonedImpl, options.firstDay, options.weekNumberCalculation, options.weekLabel, pluginHooks.cmdFormatter); - this.selectionConfig = this.buildSelectionConfig(options); // needs dateEnv. do after :( - // ineffecient to do every time? - this.viewSpecs = buildViewSpecs(pluginHooks.views, this.optionsManager); - // ineffecient to do every time? - this.dateProfileGenerators = mapHash(this.viewSpecs, function (viewSpec) { - return new viewSpec.class.prototype.dateProfileGeneratorClass(viewSpec, _this); - }); - }; - Calendar.prototype.getAvailableLocaleCodes = function () { - return Object.keys(this.availableRawLocales); - }; - Calendar.prototype._buildSelectionConfig = function (rawOpts) { - return processScopedUiProps('select', rawOpts, this); - }; - Calendar.prototype._buildEventUiSingleBase = function (rawOpts) { - if (rawOpts.editable) { // so 'editable' affected events - rawOpts = __assign({}, rawOpts, { eventEditable: true }); - } - return processScopedUiProps('event', rawOpts, this); - }; - // Trigger - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.hasPublicHandlers = function (name) { - return this.hasHandlers(name) || - this.opt(name); // handler specified in options - }; - Calendar.prototype.publiclyTrigger = function (name, args) { - var optHandler = this.opt(name); - this.triggerWith(name, this, args); - if (optHandler) { - return optHandler.apply(this, args); - } - }; - Calendar.prototype.publiclyTriggerAfterSizing = function (name, args) { - var afterSizingTriggers = this.afterSizingTriggers; - (afterSizingTriggers[name] || (afterSizingTriggers[name] = [])).push(args); - }; - Calendar.prototype.releaseAfterSizingTriggers = function () { - var afterSizingTriggers = this.afterSizingTriggers; - for (var name_4 in afterSizingTriggers) { - for (var _i = 0, _a = afterSizingTriggers[name_4]; _i < _a.length; _i++) { - var args = _a[_i]; - this.publiclyTrigger(name_4, args); - } - } - this.afterSizingTriggers = {}; - }; - // View - // ----------------------------------------------------------------------------------------------------------------- - // Returns a boolean about whether the view is okay to instantiate at some point - Calendar.prototype.isValidViewType = function (viewType) { - return Boolean(this.viewSpecs[viewType]); - }; - Calendar.prototype.changeView = function (viewType, dateOrRange) { - var dateMarker = null; - if (dateOrRange) { - if (dateOrRange.start && dateOrRange.end) { // a range - this.optionsManager.mutate({ visibleRange: dateOrRange }, []); // will not rerender - this.handleOptions(this.optionsManager.computed); // ...but yuck - } - else { // a date - dateMarker = this.dateEnv.createMarker(dateOrRange); // just like gotoDate - } - } - this.unselect(); - this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: viewType, - dateMarker: dateMarker - }); - }; - // Forces navigation to a view for the given date. - // `viewType` can be a specific view name or a generic one like "week" or "day". - // needs to change - Calendar.prototype.zoomTo = function (dateMarker, viewType) { - var spec; - viewType = viewType || 'day'; // day is default zoom - spec = this.viewSpecs[viewType] || - this.getUnitViewSpec(viewType); - this.unselect(); - if (spec) { - this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: spec.type, - dateMarker: dateMarker - }); - } - else { - this.dispatch({ - type: 'SET_DATE', - dateMarker: dateMarker - }); - } - }; - // Given a duration singular unit, like "week" or "day", finds a matching view spec. - // Preference is given to views that have corresponding buttons. - Calendar.prototype.getUnitViewSpec = function (unit) { - var component = this.component; - var viewTypes = []; - var i; - var spec; - // put views that have buttons first. there will be duplicates, but oh - if (component.header) { - viewTypes.push.apply(viewTypes, component.header.viewsWithButtons); - } - if (component.footer) { - viewTypes.push.apply(viewTypes, component.footer.viewsWithButtons); - } - for (var viewType in this.viewSpecs) { - viewTypes.push(viewType); - } - for (i = 0; i < viewTypes.length; i++) { - spec = this.viewSpecs[viewTypes[i]]; - if (spec) { - if (spec.singleUnit === unit) { - return spec; - } - } - } - }; - // Current Date - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.getInitialDate = function () { - var defaultDateInput = this.opt('defaultDate'); - // compute the initial ambig-timezone date - if (defaultDateInput != null) { - return this.dateEnv.createMarker(defaultDateInput); - } - else { - return this.getNow(); // getNow already returns unzoned - } - }; - Calendar.prototype.prev = function () { - this.unselect(); - this.dispatch({ type: 'PREV' }); - }; - Calendar.prototype.next = function () { - this.unselect(); - this.dispatch({ type: 'NEXT' }); - }; - Calendar.prototype.prevYear = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.addYears(this.state.currentDate, -1) - }); - }; - Calendar.prototype.nextYear = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.addYears(this.state.currentDate, 1) - }); - }; - Calendar.prototype.today = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.getNow() - }); - }; - Calendar.prototype.gotoDate = function (zonedDateInput) { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.createMarker(zonedDateInput) - }); - }; - Calendar.prototype.incrementDate = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // else, warn about invalid input? - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.add(this.state.currentDate, delta) - }); - } - }; - // for external API - Calendar.prototype.getDate = function () { - return this.dateEnv.toDate(this.state.currentDate); - }; - // Date Formatting Utils - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.formatDate = function (d, formatter) { - var dateEnv = this.dateEnv; - return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter)); - }; - // `settings` is for formatter AND isEndExclusive - Calendar.prototype.formatRange = function (d0, d1, settings) { - var dateEnv = this.dateEnv; - return dateEnv.formatRange(dateEnv.createMarker(d0), dateEnv.createMarker(d1), createFormatter(settings, this.opt('defaultRangeSeparator')), settings); - }; - Calendar.prototype.formatIso = function (d, omitTime) { - var dateEnv = this.dateEnv; - return dateEnv.formatIso(dateEnv.createMarker(d), { omitTime: omitTime }); - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.windowResize = function (ev) { - if (!this.isHandlingWindowResize && - this.component && // why? - ev.target === window // not a jqui resize event - ) { - this.isHandlingWindowResize = true; - this.updateSize(); - this.publiclyTrigger('windowResize', [this.view]); - this.isHandlingWindowResize = false; - } - }; - Calendar.prototype.updateSize = function () { - if (this.component) { // when? - this.component.updateSize(true); - } - }; - // Component Registration - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.registerInteractiveComponent = function (component, settingsInput) { - var settings = parseInteractionSettings(component, settingsInput); - var DEFAULT_INTERACTIONS = [ - EventClicking, - EventHovering - ]; - var interactionClasses = DEFAULT_INTERACTIONS.concat(this.pluginSystem.hooks.componentInteractions); - var interactions = interactionClasses.map(function (interactionClass) { - return new interactionClass(settings); - }); - this.interactionsStore[component.uid] = interactions; - interactionSettingsStore[component.uid] = settings; - }; - Calendar.prototype.unregisterInteractiveComponent = function (component) { - for (var _i = 0, _a = this.interactionsStore[component.uid]; _i < _a.length; _i++) { - var listener = _a[_i]; - listener.destroy(); - } - delete this.interactionsStore[component.uid]; - delete interactionSettingsStore[component.uid]; - }; - // Date Selection / Event Selection / DayClick - // ----------------------------------------------------------------------------------------------------------------- - // this public method receives start/end dates in any format, with any timezone - // NOTE: args were changed from v3 - Calendar.prototype.select = function (dateOrObj, endDate) { - var selectionInput; - if (endDate == null) { - if (dateOrObj.start != null) { - selectionInput = dateOrObj; - } - else { - selectionInput = { - start: dateOrObj, - end: null - }; - } - } - else { - selectionInput = { - start: dateOrObj, - end: endDate - }; - } - var selection = parseDateSpan(selectionInput, this.dateEnv, createDuration({ days: 1 }) // TODO: cache this? - ); - if (selection) { // throw parse error otherwise? - this.dispatch({ type: 'SELECT_DATES', selection: selection }); - this.triggerDateSelect(selection); - } - }; - // public method - Calendar.prototype.unselect = function (pev) { - if (this.state.dateSelection) { - this.dispatch({ type: 'UNSELECT_DATES' }); - this.triggerDateUnselect(pev); - } - }; - Calendar.prototype.triggerDateSelect = function (selection, pev) { - var arg = __assign({}, this.buildDateSpanApi(selection), { jsEvent: pev ? pev.origEvent : null, view: this.view }); - this.publiclyTrigger('select', [arg]); - }; - Calendar.prototype.triggerDateUnselect = function (pev) { - this.publiclyTrigger('unselect', [ - { - jsEvent: pev ? pev.origEvent : null, - view: this.view - } - ]); - }; - // TODO: receive pev? - Calendar.prototype.triggerDateClick = function (dateSpan, dayEl, view, ev) { - var arg = __assign({}, this.buildDatePointApi(dateSpan), { dayEl: dayEl, jsEvent: ev, // Is this always a mouse event? See #4655 - view: view }); - this.publiclyTrigger('dateClick', [arg]); - }; - Calendar.prototype.buildDatePointApi = function (dateSpan) { - var props = {}; - for (var _i = 0, _a = this.pluginSystem.hooks.datePointTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(props, transform(dateSpan, this)); - } - __assign(props, buildDatePointApi(dateSpan, this.dateEnv)); - return props; - }; - Calendar.prototype.buildDateSpanApi = function (dateSpan) { - var props = {}; - for (var _i = 0, _a = this.pluginSystem.hooks.dateSpanTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(props, transform(dateSpan, this)); - } - __assign(props, buildDateSpanApi(dateSpan, this.dateEnv)); - return props; - }; - // Date Utils - // ----------------------------------------------------------------------------------------------------------------- - // Returns a DateMarker for the current date, as defined by the client's computer or from the `now` option - Calendar.prototype.getNow = function () { - var now = this.opt('now'); - if (typeof now === 'function') { - now = now(); - } - if (now == null) { - return this.dateEnv.createNowMarker(); - } - return this.dateEnv.createMarker(now); - }; - // Event-Date Utilities - // ----------------------------------------------------------------------------------------------------------------- - // Given an event's allDay status and start date, return what its fallback end date should be. - // TODO: rename to computeDefaultEventEnd - Calendar.prototype.getDefaultEventEnd = function (allDay, marker) { - var end = marker; - if (allDay) { - end = startOfDay(end); - end = this.dateEnv.add(end, this.defaultAllDayEventDuration); - } - else { - end = this.dateEnv.add(end, this.defaultTimedEventDuration); - } - return end; - }; - // Public Events API - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.addEvent = function (eventInput, sourceInput) { - if (eventInput instanceof EventApi) { - var def = eventInput._def; - var instance = eventInput._instance; - // not already present? don't want to add an old snapshot - if (!this.state.eventStore.defs[def.defId]) { - this.dispatch({ - type: 'ADD_EVENTS', - eventStore: eventTupleToStore({ def: def, instance: instance }) // TODO: better util for two args? - }); - } - return eventInput; - } - var sourceId; - if (sourceInput instanceof EventSourceApi) { - sourceId = sourceInput.internalEventSource.sourceId; - } - else if (sourceInput != null) { - var sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function - if (!sourceApi) { - console.warn('Could not find an event source with ID "' + sourceInput + '"'); // TODO: test - return null; - } - else { - sourceId = sourceApi.internalEventSource.sourceId; - } - } - var tuple = parseEvent(eventInput, sourceId, this); - if (tuple) { - this.dispatch({ - type: 'ADD_EVENTS', - eventStore: eventTupleToStore(tuple) - }); - return new EventApi(this, tuple.def, tuple.def.recurringDef ? null : tuple.instance); - } - return null; - }; - // TODO: optimize - Calendar.prototype.getEventById = function (id) { - var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances; - id = String(id); - for (var defId in defs) { - var def = defs[defId]; - if (def.publicId === id) { - if (def.recurringDef) { - return new EventApi(this, def, null); - } - else { - for (var instanceId in instances) { - var instance = instances[instanceId]; - if (instance.defId === def.defId) { - return new EventApi(this, def, instance); - } - } - } - } - } - return null; - }; - Calendar.prototype.getEvents = function () { - var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances; - var eventApis = []; - for (var id in instances) { - var instance = instances[id]; - var def = defs[instance.defId]; - eventApis.push(new EventApi(this, def, instance)); - } - return eventApis; - }; - Calendar.prototype.removeAllEvents = function () { - this.dispatch({ type: 'REMOVE_ALL_EVENTS' }); - }; - Calendar.prototype.rerenderEvents = function () { - this.dispatch({ type: 'RESET_EVENTS' }); - }; - // Public Event Sources API - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.getEventSources = function () { - var sourceHash = this.state.eventSources; - var sourceApis = []; - for (var internalId in sourceHash) { - sourceApis.push(new EventSourceApi(this, sourceHash[internalId])); - } - return sourceApis; - }; - Calendar.prototype.getEventSourceById = function (id) { - var sourceHash = this.state.eventSources; - id = String(id); - for (var sourceId in sourceHash) { - if (sourceHash[sourceId].publicId === id) { - return new EventSourceApi(this, sourceHash[sourceId]); - } - } - return null; - }; - Calendar.prototype.addEventSource = function (sourceInput) { - if (sourceInput instanceof EventSourceApi) { - // not already present? don't want to add an old snapshot - if (!this.state.eventSources[sourceInput.internalEventSource.sourceId]) { - this.dispatch({ - type: 'ADD_EVENT_SOURCES', - sources: [sourceInput.internalEventSource] - }); - } - return sourceInput; - } - var eventSource = parseEventSource(sourceInput, this); - if (eventSource) { // TODO: error otherwise? - this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: [eventSource] }); - return new EventSourceApi(this, eventSource); - } - return null; - }; - Calendar.prototype.removeAllEventSources = function () { - this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' }); - }; - Calendar.prototype.refetchEvents = function () { - this.dispatch({ type: 'FETCH_EVENT_SOURCES' }); - }; - // Scroll - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.scrollToTime = function (timeInput) { - var duration = createDuration(timeInput); - if (duration) { - this.component.view.scrollToDuration(duration); - } - }; - return Calendar; -}()); -EmitterMixin.mixInto(Calendar); -// for memoizers -// ----------------------------------------------------------------------------------------------------------------- -function buildDateEnv(locale, timeZone, namedTimeZoneImpl, firstDay, weekNumberCalculation, weekLabel, cmdFormatter) { - return new DateEnv({ - calendarSystem: 'gregory', - timeZone: timeZone, - namedTimeZoneImpl: namedTimeZoneImpl, - locale: locale, - weekNumberCalculation: weekNumberCalculation, - firstDay: firstDay, - weekLabel: weekLabel, - cmdFormatter: cmdFormatter - }); -} -function buildTheme(calendarOptions) { - var themeClass = this.pluginSystem.hooks.themeClasses[calendarOptions.themeSystem] || StandardTheme; - return new themeClass(calendarOptions); -} -function buildDelayedRerender(wait) { - var func = this.tryRerender.bind(this); - if (wait != null) { - func = debounce(func, wait); - } - return func; -} -function buildEventUiBySource(eventSources) { - return mapHash(eventSources, function (eventSource) { - return eventSource.ui; - }); -} -function buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) { - var eventUiBases = { '': eventUiSingleBase }; - for (var defId in eventDefs) { - var def = eventDefs[defId]; - if (def.sourceId && eventUiBySource[def.sourceId]) { - eventUiBases[defId] = eventUiBySource[def.sourceId]; - } - } - return eventUiBases; -} - -var View = /** @class */ (function (_super) { - __extends(View, _super); - function View(context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, context, createElement('div', { className: 'fc-view fc-' + viewSpec.type + '-view' }), true // isView (HACK) - ) || this; - _this.renderDatesMem = memoizeRendering(_this.renderDatesWrap, _this.unrenderDatesWrap); - _this.renderBusinessHoursMem = memoizeRendering(_this.renderBusinessHours, _this.unrenderBusinessHours, [_this.renderDatesMem]); - _this.renderDateSelectionMem = memoizeRendering(_this.renderDateSelectionWrap, _this.unrenderDateSelectionWrap, [_this.renderDatesMem]); - _this.renderEventsMem = memoizeRendering(_this.renderEvents, _this.unrenderEvents, [_this.renderDatesMem]); - _this.renderEventSelectionMem = memoizeRendering(_this.renderEventSelectionWrap, _this.unrenderEventSelectionWrap, [_this.renderEventsMem]); - _this.renderEventDragMem = memoizeRendering(_this.renderEventDragWrap, _this.unrenderEventDragWrap, [_this.renderDatesMem]); - _this.renderEventResizeMem = memoizeRendering(_this.renderEventResizeWrap, _this.unrenderEventResizeWrap, [_this.renderDatesMem]); - _this.viewSpec = viewSpec; - _this.dateProfileGenerator = dateProfileGenerator; - _this.type = viewSpec.type; - _this.eventOrderSpecs = parseFieldSpecs(_this.opt('eventOrder')); - _this.nextDayThreshold = createDuration(_this.opt('nextDayThreshold')); - parentEl.appendChild(_this.el); - _this.initialize(); - return _this; - } - View.prototype.initialize = function () { - }; - Object.defineProperty(View.prototype, "activeStart", { - // Date Setting/Unsetting - // ----------------------------------------------------------------------------------------------------------------- - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.activeRange.start); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "activeEnd", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.activeRange.end); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "currentStart", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.currentRange.start); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "currentEnd", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.currentRange.end); - }, - enumerable: true, - configurable: true - }); - // General Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.render = function (props) { - this.renderDatesMem(props.dateProfile); - this.renderBusinessHoursMem(props.businessHours); - this.renderDateSelectionMem(props.dateSelection); - this.renderEventsMem(props.eventStore); - this.renderEventSelectionMem(props.eventSelection); - this.renderEventDragMem(props.eventDrag); - this.renderEventResizeMem(props.eventResize); - }; - View.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderDatesMem.unrender(); // should unrender everything else - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.updateSize = function (isResize, viewHeight, isAuto) { - var calendar = this.calendar; - if (isResize || // HACKS... - calendar.isViewUpdated || - calendar.isDatesUpdated || - calendar.isEventsUpdated) { - // sort of the catch-all sizing - // anything that might cause dimension changes - this.updateBaseSize(isResize, viewHeight, isAuto); - } - }; - View.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) { - }; - // Date Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderDatesWrap = function (dateProfile) { - this.renderDates(dateProfile); - this.addScroll({ - duration: createDuration(this.opt('scrollTime')) - }); - this.startNowIndicator(dateProfile); // shouldn't render yet because updateSize will be called soon - }; - View.prototype.unrenderDatesWrap = function () { - this.stopNowIndicator(); - this.unrenderDates(); - }; - View.prototype.renderDates = function (dateProfile) { }; - View.prototype.unrenderDates = function () { }; - // Business Hours - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderBusinessHours = function (businessHours) { }; - View.prototype.unrenderBusinessHours = function () { }; - // Date Selection - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderDateSelectionWrap = function (selection) { - if (selection) { - this.renderDateSelection(selection); - } - }; - View.prototype.unrenderDateSelectionWrap = function (selection) { - if (selection) { - this.unrenderDateSelection(selection); - } - }; - View.prototype.renderDateSelection = function (selection) { }; - View.prototype.unrenderDateSelection = function (selection) { }; - // Event Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEvents = function (eventStore) { }; - View.prototype.unrenderEvents = function () { }; - // util for subclasses - View.prototype.sliceEvents = function (eventStore, allDay) { - var props = this.props; - return sliceEventStore(eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? this.nextDayThreshold : null).fg; - }; - View.prototype.computeEventDraggable = function (eventDef, eventUi) { - var transformers = this.calendar.pluginSystem.hooks.isDraggableTransformers; - var val = eventUi.startEditable; - for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) { - var transformer = transformers_1[_i]; - val = transformer(val, eventDef, eventUi, this); - } - return val; - }; - View.prototype.computeEventStartResizable = function (eventDef, eventUi) { - return eventUi.durationEditable && this.opt('eventResizableFromStart'); - }; - View.prototype.computeEventEndResizable = function (eventDef, eventUi) { - return eventUi.durationEditable; - }; - // Event Selection - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventSelectionWrap = function (instanceId) { - if (instanceId) { - this.renderEventSelection(instanceId); - } - }; - View.prototype.unrenderEventSelectionWrap = function (instanceId) { - if (instanceId) { - this.unrenderEventSelection(instanceId); - } - }; - View.prototype.renderEventSelection = function (instanceId) { }; - View.prototype.unrenderEventSelection = function (instanceId) { }; - // Event Drag - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventDragWrap = function (state) { - if (state) { - this.renderEventDrag(state); - } - }; - View.prototype.unrenderEventDragWrap = function (state) { - if (state) { - this.unrenderEventDrag(state); - } - }; - View.prototype.renderEventDrag = function (state) { }; - View.prototype.unrenderEventDrag = function (state) { }; - // Event Resize - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventResizeWrap = function (state) { - if (state) { - this.renderEventResize(state); - } - }; - View.prototype.unrenderEventResizeWrap = function (state) { - if (state) { - this.unrenderEventResize(state); - } - }; - View.prototype.renderEventResize = function (state) { }; - View.prototype.unrenderEventResize = function (state) { }; - /* Now Indicator - ------------------------------------------------------------------------------------------------------------------*/ - // Immediately render the current time indicator and begins re-rendering it at an interval, - // which is defined by this.getNowIndicatorUnit(). - // TODO: somehow do this for the current whole day's background too - View.prototype.startNowIndicator = function (dateProfile) { - var _this = this; - var dateEnv = this.dateEnv; - var unit; - var update; - var delay; // ms wait value - if (this.opt('nowIndicator')) { - unit = this.getNowIndicatorUnit(dateProfile); - if (unit) { - update = this.updateNowIndicator.bind(this); - this.initialNowDate = this.calendar.getNow(); - this.initialNowQueriedMs = new Date().valueOf(); - // wait until the beginning of the next interval - delay = dateEnv.add(dateEnv.startOf(this.initialNowDate, unit), createDuration(1, unit)).valueOf() - this.initialNowDate.valueOf(); - // TODO: maybe always use setTimeout, waiting until start of next unit - this.nowIndicatorTimeoutID = setTimeout(function () { - _this.nowIndicatorTimeoutID = null; - update(); - if (unit === 'second') { - delay = 1000; // every second - } - else { - delay = 1000 * 60; // otherwise, every minute - } - _this.nowIndicatorIntervalID = setInterval(update, delay); // update every interval - }, delay); - } - // rendering will be initiated in updateSize - } - }; - // rerenders the now indicator, computing the new current time from the amount of time that has passed - // since the initial getNow call. - View.prototype.updateNowIndicator = function () { - if (this.props.dateProfile && // a way to determine if dates were rendered yet - this.initialNowDate // activated before? - ) { - this.unrenderNowIndicator(); // won't unrender if unnecessary - this.renderNowIndicator(addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs)); - this.isNowIndicatorRendered = true; - } - }; - // Immediately unrenders the view's current time indicator and stops any re-rendering timers. - // Won't cause side effects if indicator isn't rendered. - View.prototype.stopNowIndicator = function () { - if (this.isNowIndicatorRendered) { - if (this.nowIndicatorTimeoutID) { - clearTimeout(this.nowIndicatorTimeoutID); - this.nowIndicatorTimeoutID = null; - } - if (this.nowIndicatorIntervalID) { - clearInterval(this.nowIndicatorIntervalID); - this.nowIndicatorIntervalID = null; - } - this.unrenderNowIndicator(); - this.isNowIndicatorRendered = false; - } - }; - View.prototype.getNowIndicatorUnit = function (dateProfile) { - // subclasses should implement - }; - // Renders a current time indicator at the given datetime - View.prototype.renderNowIndicator = function (date) { - // SUBCLASSES MUST PASS TO CHILDREN! - }; - // Undoes the rendering actions from renderNowIndicator - View.prototype.unrenderNowIndicator = function () { - // SUBCLASSES MUST PASS TO CHILDREN! - }; - /* Scroller - ------------------------------------------------------------------------------------------------------------------*/ - View.prototype.addScroll = function (scroll) { - var queuedScroll = this.queuedScroll || (this.queuedScroll = {}); - __assign(queuedScroll, scroll); - }; - View.prototype.popScroll = function (isResize) { - this.applyQueuedScroll(isResize); - this.queuedScroll = null; - }; - View.prototype.applyQueuedScroll = function (isResize) { - this.applyScroll(this.queuedScroll || {}, isResize); - }; - View.prototype.queryScroll = function () { - var scroll = {}; - if (this.props.dateProfile) { // dates rendered yet? - __assign(scroll, this.queryDateScroll()); - } - return scroll; - }; - View.prototype.applyScroll = function (scroll, isResize) { - var duration = scroll.duration; - if (duration != null) { - delete scroll.duration; - if (this.props.dateProfile) { // dates rendered yet? - __assign(scroll, this.computeDateScroll(duration)); - } - } - if (this.props.dateProfile) { // dates rendered yet? - this.applyDateScroll(scroll); - } - }; - View.prototype.computeDateScroll = function (duration) { - return {}; // subclasses must implement - }; - View.prototype.queryDateScroll = function () { - return {}; // subclasses must implement - }; - View.prototype.applyDateScroll = function (scroll) { - // subclasses must implement - }; - // for API - View.prototype.scrollToDuration = function (duration) { - this.applyScroll({ duration: duration }, false); - }; - return View; -}(DateComponent)); -EmitterMixin.mixInto(View); -View.prototype.usesMinMaxTime = false; -View.prototype.dateProfileGeneratorClass = DateProfileGenerator; - -var FgEventRenderer = /** @class */ (function () { - function FgEventRenderer(context) { - this.segs = []; - this.isSizeDirty = false; - this.context = context; - } - FgEventRenderer.prototype.renderSegs = function (segs, mirrorInfo) { - this.rangeUpdated(); // called too frequently :( - // render an `.el` on each seg - // returns a subset of the segs. segs that were actually rendered - segs = this.renderSegEls(segs, mirrorInfo); - this.segs = segs; - this.attachSegs(segs, mirrorInfo); - this.isSizeDirty = true; - this.context.view.triggerRenderedSegs(this.segs, Boolean(mirrorInfo)); - }; - FgEventRenderer.prototype.unrender = function (_segs, mirrorInfo) { - this.context.view.triggerWillRemoveSegs(this.segs, Boolean(mirrorInfo)); - this.detachSegs(this.segs); - this.segs = []; - }; - // Updates values that rely on options and also relate to range - FgEventRenderer.prototype.rangeUpdated = function () { - var options = this.context.options; - var displayEventTime; - var displayEventEnd; - this.eventTimeFormat = createFormatter(options.eventTimeFormat || this.computeEventTimeFormat(), options.defaultRangeSeparator); - displayEventTime = options.displayEventTime; - if (displayEventTime == null) { - displayEventTime = this.computeDisplayEventTime(); // might be based off of range - } - displayEventEnd = options.displayEventEnd; - if (displayEventEnd == null) { - displayEventEnd = this.computeDisplayEventEnd(); // might be based off of range - } - this.displayEventTime = displayEventTime; - this.displayEventEnd = displayEventEnd; - }; - // Renders and assigns an `el` property for each foreground event segment. - // Only returns segments that successfully rendered. - FgEventRenderer.prototype.renderSegEls = function (segs, mirrorInfo) { - var html = ''; - var i; - if (segs.length) { // don't build an empty html string - // build a large concatenation of event segment HTML - for (i = 0; i < segs.length; i++) { - html += this.renderSegHtml(segs[i], mirrorInfo); - } - // Grab individual elements from the combined HTML string. Use each as the default rendering. - // Then, compute the 'el' for each segment. An el might be null if the eventRender callback returned false. - htmlToElements(html).forEach(function (el, i) { - var seg = segs[i]; - if (el) { - seg.el = el; - } - }); - segs = filterSegsViaEls(this.context.view, segs, Boolean(mirrorInfo)); - } - return segs; - }; - // Generic utility for generating the HTML classNames for an event segment's element - FgEventRenderer.prototype.getSegClasses = function (seg, isDraggable, isResizable, mirrorInfo) { - var classes = [ - 'fc-event', - seg.isStart ? 'fc-start' : 'fc-not-start', - seg.isEnd ? 'fc-end' : 'fc-not-end' - ].concat(seg.eventRange.ui.classNames); - if (isDraggable) { - classes.push('fc-draggable'); - } - if (isResizable) { - classes.push('fc-resizable'); - } - if (mirrorInfo) { - classes.push('fc-mirror'); - if (mirrorInfo.isDragging) { - classes.push('fc-dragging'); - } - if (mirrorInfo.isResizing) { - classes.push('fc-resizing'); - } - } - return classes; - }; - // Compute the text that should be displayed on an event's element. - // `range` can be the Event object itself, or something range-like, with at least a `start`. - // If event times are disabled, or the event has no time, will return a blank string. - // If not specified, formatter will default to the eventTimeFormat setting, - // and displayEnd will default to the displayEventEnd setting. - FgEventRenderer.prototype.getTimeText = function (eventRange, formatter, displayEnd) { - var def = eventRange.def, instance = eventRange.instance; - return this._getTimeText(instance.range.start, def.hasEnd ? instance.range.end : null, def.allDay, formatter, displayEnd, instance.forcedStartTzo, instance.forcedEndTzo); - }; - FgEventRenderer.prototype._getTimeText = function (start, end, allDay, formatter, displayEnd, forcedStartTzo, forcedEndTzo) { - var dateEnv = this.context.dateEnv; - if (formatter == null) { - formatter = this.eventTimeFormat; - } - if (displayEnd == null) { - displayEnd = this.displayEventEnd; - } - if (this.displayEventTime && !allDay) { - if (displayEnd && end) { - return dateEnv.formatRange(start, end, formatter, { - forcedStartTzo: forcedStartTzo, - forcedEndTzo: forcedEndTzo - }); - } - else { - return dateEnv.format(start, formatter, { - forcedTzo: forcedStartTzo - }); - } - } - return ''; - }; - FgEventRenderer.prototype.computeEventTimeFormat = function () { - return { - hour: 'numeric', - minute: '2-digit', - omitZeroMinute: true - }; - }; - FgEventRenderer.prototype.computeDisplayEventTime = function () { - return true; - }; - FgEventRenderer.prototype.computeDisplayEventEnd = function () { - return true; - }; - // Utility for generating event skin-related CSS properties - FgEventRenderer.prototype.getSkinCss = function (ui) { - return { - 'background-color': ui.backgroundColor, - 'border-color': ui.borderColor, - color: ui.textColor - }; - }; - FgEventRenderer.prototype.sortEventSegs = function (segs) { - var specs = this.context.view.eventOrderSpecs; - var objs = segs.map(buildSegCompareObj); - objs.sort(function (obj0, obj1) { - return compareByFieldSpecs(obj0, obj1, specs); - }); - return objs.map(function (c) { - return c._seg; - }); - }; - FgEventRenderer.prototype.computeSizes = function (force) { - if (force || this.isSizeDirty) { - this.computeSegSizes(this.segs); - } - }; - FgEventRenderer.prototype.assignSizes = function (force) { - if (force || this.isSizeDirty) { - this.assignSegSizes(this.segs); - this.isSizeDirty = false; - } - }; - FgEventRenderer.prototype.computeSegSizes = function (segs) { - }; - FgEventRenderer.prototype.assignSegSizes = function (segs) { - }; - // Manipulation on rendered segs - FgEventRenderer.prototype.hideByHash = function (hash) { - if (hash) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (hash[seg.eventRange.instance.instanceId]) { - seg.el.style.visibility = 'hidden'; - } - } - } - }; - FgEventRenderer.prototype.showByHash = function (hash) { - if (hash) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (hash[seg.eventRange.instance.instanceId]) { - seg.el.style.visibility = ''; - } - } - } - }; - FgEventRenderer.prototype.selectByInstanceId = function (instanceId) { - if (instanceId) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - var eventInstance = seg.eventRange.instance; - if (eventInstance && eventInstance.instanceId === instanceId && - seg.el // necessary? - ) { - seg.el.classList.add('fc-selected'); - } - } - } - }; - FgEventRenderer.prototype.unselectByInstanceId = function (instanceId) { - if (instanceId) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (seg.el) { // necessary? - seg.el.classList.remove('fc-selected'); - } - } - } - }; - return FgEventRenderer; -}()); -// returns a object with all primitive props that can be compared -function buildSegCompareObj(seg) { - var eventDef = seg.eventRange.def; - var range = seg.eventRange.instance.range; - var start = range.start ? range.start.valueOf() : 0; // TODO: better support for open-range events - var end = range.end ? range.end.valueOf() : 0; // " - return __assign({}, eventDef.extendedProps, eventDef, { id: eventDef.publicId, start: start, - end: end, duration: end - start, allDay: Number(eventDef.allDay), _seg: seg // for later retrieval - }); -} - -var FillRenderer = /** @class */ (function () { - function FillRenderer(context) { - this.fillSegTag = 'div'; - this.dirtySizeFlags = {}; - this.context = context; - this.containerElsByType = {}; - this.segsByType = {}; - } - FillRenderer.prototype.getSegsByType = function (type) { - return this.segsByType[type] || []; - }; - FillRenderer.prototype.renderSegs = function (type, segs) { - var _a; - var renderedSegs = this.renderSegEls(type, segs); // assignes `.el` to each seg. returns successfully rendered segs - var containerEls = this.attachSegs(type, renderedSegs); - if (containerEls) { - (_a = (this.containerElsByType[type] || (this.containerElsByType[type] = []))).push.apply(_a, containerEls); - } - this.segsByType[type] = renderedSegs; - if (type === 'bgEvent') { - this.context.view.triggerRenderedSegs(renderedSegs, false); // isMirror=false - } - this.dirtySizeFlags[type] = true; - }; - // Unrenders a specific type of fill that is currently rendered on the grid - FillRenderer.prototype.unrender = function (type) { - var segs = this.segsByType[type]; - if (segs) { - if (type === 'bgEvent') { - this.context.view.triggerWillRemoveSegs(segs, false); // isMirror=false - } - this.detachSegs(type, segs); - } - }; - // Renders and assigns an `el` property for each fill segment. Generic enough to work with different types. - // Only returns segments that successfully rendered. - FillRenderer.prototype.renderSegEls = function (type, segs) { - var _this = this; - var html = ''; - var i; - if (segs.length) { - // build a large concatenation of segment HTML - for (i = 0; i < segs.length; i++) { - html += this.renderSegHtml(type, segs[i]); - } - // Grab individual elements from the combined HTML string. Use each as the default rendering. - // Then, compute the 'el' for each segment. - htmlToElements(html).forEach(function (el, i) { - var seg = segs[i]; - if (el) { - seg.el = el; - } - }); - if (type === 'bgEvent') { - segs = filterSegsViaEls(this.context.view, segs, false // isMirror. background events can never be mirror elements - ); - } - // correct element type? (would be bad if a non-TD were inserted into a table for example) - segs = segs.filter(function (seg) { - return elementMatches(seg.el, _this.fillSegTag); - }); - } - return segs; - }; - // Builds the HTML needed for one fill segment. Generic enough to work with different types. - FillRenderer.prototype.renderSegHtml = function (type, seg) { - var css = null; - var classNames = []; - if (type !== 'highlight' && type !== 'businessHours') { - css = { - 'background-color': seg.eventRange.ui.backgroundColor - }; - } - if (type !== 'highlight') { - classNames = classNames.concat(seg.eventRange.ui.classNames); - } - if (type === 'businessHours') { - classNames.push('fc-bgevent'); - } - else { - classNames.push('fc-' + type.toLowerCase()); - } - return '<' + this.fillSegTag + - (classNames.length ? ' class="' + classNames.join(' ') + '"' : '') + - (css ? ' style="' + cssToStr(css) + '"' : '') + - '>'; - }; - FillRenderer.prototype.detachSegs = function (type, segs) { - var containerEls = this.containerElsByType[type]; - if (containerEls) { - containerEls.forEach(removeElement); - delete this.containerElsByType[type]; - } - }; - FillRenderer.prototype.computeSizes = function (force) { - for (var type in this.segsByType) { - if (force || this.dirtySizeFlags[type]) { - this.computeSegSizes(this.segsByType[type]); - } - } - }; - FillRenderer.prototype.assignSizes = function (force) { - for (var type in this.segsByType) { - if (force || this.dirtySizeFlags[type]) { - this.assignSegSizes(this.segsByType[type]); - } - } - this.dirtySizeFlags = {}; - }; - FillRenderer.prototype.computeSegSizes = function (segs) { - }; - FillRenderer.prototype.assignSegSizes = function (segs) { - }; - return FillRenderer; -}()); - -var NamedTimeZoneImpl = /** @class */ (function () { - function NamedTimeZoneImpl(timeZoneName) { - this.timeZoneName = timeZoneName; - } - return NamedTimeZoneImpl; -}()); - -/* -An abstraction for a dragging interaction originating on an event. -Does higher-level things than PointerDragger, such as possibly: -- a "mirror" that moves with the pointer -- a minimum number of pixels or other criteria for a true drag to begin - -subclasses must emit: -- pointerdown -- dragstart -- dragmove -- pointerup -- dragend -*/ -var ElementDragging = /** @class */ (function () { - function ElementDragging(el) { - this.emitter = new EmitterMixin(); - } - ElementDragging.prototype.destroy = function () { - }; - ElementDragging.prototype.setMirrorIsVisible = function (bool) { - // optional if subclass doesn't want to support a mirror - }; - ElementDragging.prototype.setMirrorNeedsRevert = function (bool) { - // optional if subclass doesn't want to support a mirror - }; - ElementDragging.prototype.setAutoScrollEnabled = function (bool) { - // optional - }; - return ElementDragging; -}()); - -function formatDate(dateInput, settings) { - if (settings === void 0) { settings = {}; } - var dateEnv = buildDateEnv$1(settings); - var formatter = createFormatter(settings); - var dateMeta = dateEnv.createMarkerMeta(dateInput); - if (!dateMeta) { // TODO: warning? - return ''; - } - return dateEnv.format(dateMeta.marker, formatter, { - forcedTzo: dateMeta.forcedTzo - }); -} -function formatRange(startInput, endInput, settings // mixture of env and formatter settings -) { - var dateEnv = buildDateEnv$1(typeof settings === 'object' && settings ? settings : {}); // pass in if non-null object - var formatter = createFormatter(settings, globalDefaults.defaultRangeSeparator); - var startMeta = dateEnv.createMarkerMeta(startInput); - var endMeta = dateEnv.createMarkerMeta(endInput); - if (!startMeta || !endMeta) { // TODO: warning? - return ''; - } - return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, { - forcedStartTzo: startMeta.forcedTzo, - forcedEndTzo: endMeta.forcedTzo, - isEndExclusive: settings.isEndExclusive - }); -} -// TODO: more DRY and optimized -function buildDateEnv$1(settings) { - var locale = buildLocale(settings.locale || 'en', parseRawLocales([]).map); // TODO: don't hardcode 'en' everywhere - // ensure required settings - settings = __assign({ timeZone: globalDefaults.timeZone, calendarSystem: 'gregory' }, settings, { locale: locale }); - return new DateEnv(settings); -} - -var DRAG_META_PROPS = { - startTime: createDuration, - duration: createDuration, - create: Boolean, - sourceId: String -}; -var DRAG_META_DEFAULTS = { - create: true -}; -function parseDragMeta(raw) { - var leftoverProps = {}; - var refined = refineProps(raw, DRAG_META_PROPS, DRAG_META_DEFAULTS, leftoverProps); - refined.leftoverProps = leftoverProps; - return refined; -} - -// Computes a default column header formatting string if `colFormat` is not explicitly defined -function computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) { - // if more than one week row, or if there are a lot of columns with not much space, - // put just the day numbers will be in each cell - if (!datesRepDistinctDays || dayCnt > 10) { - return { weekday: 'short' }; // "Sat" - } - else if (dayCnt > 1) { - return { weekday: 'short', month: 'numeric', day: 'numeric', omitCommas: true }; // "Sat 11/12" - } - else { - return { weekday: 'long' }; // "Saturday" - } -} -function renderDateCell(dateMarker, dateProfile, datesRepDistinctDays, colCnt, colHeadFormat, context, colspan, otherAttrs) { - var view = context.view, dateEnv = context.dateEnv, theme = context.theme, options = context.options; - var isDateValid = rangeContainsMarker(dateProfile.activeRange, dateMarker); // TODO: called too frequently. cache somehow. - var classNames = [ - 'fc-day-header', - theme.getClass('widgetHeader') - ]; - var innerHtml; - if (typeof options.columnHeaderHtml === 'function') { - innerHtml = options.columnHeaderHtml(dateEnv.toDate(dateMarker)); - } - else if (typeof options.columnHeaderText === 'function') { - innerHtml = htmlEscape(options.columnHeaderText(dateEnv.toDate(dateMarker))); - } - else { - innerHtml = htmlEscape(dateEnv.format(dateMarker, colHeadFormat)); - } - // if only one row of days, the classNames on the header can represent the specific days beneath - if (datesRepDistinctDays) { - classNames = classNames.concat( - // includes the day-of-week class - // noThemeHighlight=true (don't highlight the header) - getDayClasses(dateMarker, dateProfile, context, true)); - } - else { - classNames.push('fc-' + DAY_IDS[dateMarker.getUTCDay()]); // only add the day-of-week class - } - return '' + - ' 1 ? - ' colspan="' + colspan + '"' : - '') + - (otherAttrs ? - ' ' + otherAttrs : - '') + - '>' + - (isDateValid ? - // don't make a link if the heading could represent multiple days, or if there's only one day (forceOff) - buildGotoAnchorHtml(view, { date: dateMarker, forceOff: !datesRepDistinctDays || colCnt === 1 }, innerHtml) : - // if not valid, display text, but no link - innerHtml) + - ''; -} - -var DayHeader = /** @class */ (function (_super) { - __extends(DayHeader, _super); - function DayHeader(context, parentEl) { - var _this = _super.call(this, context) || this; - parentEl.innerHTML = ''; // because might be nbsp - parentEl.appendChild(_this.el = htmlToElement('
' + - '' + - '' + - '
' + - '
')); - _this.thead = _this.el.querySelector('thead'); - return _this; - } - DayHeader.prototype.destroy = function () { - removeElement(this.el); - }; - DayHeader.prototype.render = function (props) { - var dates = props.dates, datesRepDistinctDays = props.datesRepDistinctDays; - var parts = []; - if (props.renderIntroHtml) { - parts.push(props.renderIntroHtml()); - } - var colHeadFormat = createFormatter(this.opt('columnHeaderFormat') || - computeFallbackHeaderFormat(datesRepDistinctDays, dates.length)); - for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) { - var date = dates_1[_i]; - parts.push(renderDateCell(date, props.dateProfile, datesRepDistinctDays, dates.length, colHeadFormat, this.context)); - } - if (this.isRtl) { - parts.reverse(); - } - this.thead.innerHTML = '' + parts.join('') + ''; - }; - return DayHeader; -}(Component)); - -var DaySeries = /** @class */ (function () { - function DaySeries(range, dateProfileGenerator) { - var date = range.start; - var end = range.end; - var indices = []; - var dates = []; - var dayIndex = -1; - while (date < end) { // loop each day from start to end - if (dateProfileGenerator.isHiddenDay(date)) { - indices.push(dayIndex + 0.5); // mark that it's between indices - } - else { - dayIndex++; - indices.push(dayIndex); - dates.push(date); - } - date = addDays(date, 1); - } - this.dates = dates; - this.indices = indices; - this.cnt = dates.length; - } - DaySeries.prototype.sliceRange = function (range) { - var firstIndex = this.getDateDayIndex(range.start); // inclusive first index - var lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index - var clippedFirstIndex = Math.max(0, firstIndex); - var clippedLastIndex = Math.min(this.cnt - 1, lastIndex); - // deal with in-between indices - clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell - clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell - if (clippedFirstIndex <= clippedLastIndex) { - return { - firstIndex: clippedFirstIndex, - lastIndex: clippedLastIndex, - isStart: firstIndex === clippedFirstIndex, - isEnd: lastIndex === clippedLastIndex - }; - } - else { - return null; - } - }; - // Given a date, returns its chronolocial cell-index from the first cell of the grid. - // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets. - // If before the first offset, returns a negative number. - // If after the last offset, returns an offset past the last cell offset. - // Only works for *start* dates of cells. Will not work for exclusive end dates for cells. - DaySeries.prototype.getDateDayIndex = function (date) { - var indices = this.indices; - var dayOffset = Math.floor(diffDays(this.dates[0], date)); - if (dayOffset < 0) { - return indices[0] - 1; - } - else if (dayOffset >= indices.length) { - return indices[indices.length - 1] + 1; - } - else { - return indices[dayOffset]; - } - }; - return DaySeries; -}()); - -var DayTable = /** @class */ (function () { - function DayTable(daySeries, breakOnWeeks) { - var dates = daySeries.dates; - var daysPerRow; - var firstDay; - var rowCnt; - if (breakOnWeeks) { - // count columns until the day-of-week repeats - firstDay = dates[0].getUTCDay(); - for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow++) { - if (dates[daysPerRow].getUTCDay() === firstDay) { - break; - } - } - rowCnt = Math.ceil(dates.length / daysPerRow); - } - else { - rowCnt = 1; - daysPerRow = dates.length; - } - this.rowCnt = rowCnt; - this.colCnt = daysPerRow; - this.daySeries = daySeries; - this.cells = this.buildCells(); - this.headerDates = this.buildHeaderDates(); - } - DayTable.prototype.buildCells = function () { - var rows = []; - for (var row = 0; row < this.rowCnt; row++) { - var cells = []; - for (var col = 0; col < this.colCnt; col++) { - cells.push(this.buildCell(row, col)); - } - rows.push(cells); - } - return rows; - }; - DayTable.prototype.buildCell = function (row, col) { - return { - date: this.daySeries.dates[row * this.colCnt + col] - }; - }; - DayTable.prototype.buildHeaderDates = function () { - var dates = []; - for (var col = 0; col < this.colCnt; col++) { - dates.push(this.cells[0][col].date); - } - return dates; - }; - DayTable.prototype.sliceRange = function (range) { - var colCnt = this.colCnt; - var seriesSeg = this.daySeries.sliceRange(range); - var segs = []; - if (seriesSeg) { - var firstIndex = seriesSeg.firstIndex, lastIndex = seriesSeg.lastIndex; - var index = firstIndex; - while (index <= lastIndex) { - var row = Math.floor(index / colCnt); - var nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1); - segs.push({ - row: row, - firstCol: index % colCnt, - lastCol: (nextIndex - 1) % colCnt, - isStart: seriesSeg.isStart && index === firstIndex, - isEnd: seriesSeg.isEnd && (nextIndex - 1) === lastIndex - }); - index = nextIndex; - } - } - return segs; - }; - return DayTable; -}()); - -var Slicer = /** @class */ (function () { - function Slicer() { - this.sliceBusinessHours = memoize(this._sliceBusinessHours); - this.sliceDateSelection = memoize(this._sliceDateSpan); - this.sliceEventStore = memoize(this._sliceEventStore); - this.sliceEventDrag = memoize(this._sliceInteraction); - this.sliceEventResize = memoize(this._sliceInteraction); - } - Slicer.prototype.sliceProps = function (props, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 4; _i < arguments.length; _i++) { - extraArgs[_i - 4] = arguments[_i]; - } - var eventUiBases = props.eventUiBases; - var eventSegs = this.sliceEventStore.apply(this, [props.eventStore, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)); - return { - dateSelectionSegs: this.sliceDateSelection.apply(this, [props.dateSelection, eventUiBases, component].concat(extraArgs)), - businessHourSegs: this.sliceBusinessHours.apply(this, [props.businessHours, dateProfile, nextDayThreshold, component].concat(extraArgs)), - fgEventSegs: eventSegs.fg, - bgEventSegs: eventSegs.bg, - eventDrag: this.sliceEventDrag.apply(this, [props.eventDrag, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)), - eventResize: this.sliceEventResize.apply(this, [props.eventResize, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)), - eventSelection: props.eventSelection - }; // TODO: give interactionSegs? - }; - Slicer.prototype.sliceNowDate = function (// does not memoize - date, component) { - var extraArgs = []; - for (var _i = 2; _i < arguments.length; _i++) { - extraArgs[_i - 2] = arguments[_i]; - } - return this._sliceDateSpan.apply(this, [{ range: { start: date, end: addMs(date, 1) }, allDay: false }, - {}, - component].concat(extraArgs)); - }; - Slicer.prototype._sliceBusinessHours = function (businessHours, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 4; _i < arguments.length; _i++) { - extraArgs[_i - 4] = arguments[_i]; - } - if (!businessHours) { - return []; - } - return this._sliceEventStore.apply(this, [expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), component.calendar), - {}, - dateProfile, - nextDayThreshold, - component].concat(extraArgs)).bg; - }; - Slicer.prototype._sliceEventStore = function (eventStore, eventUiBases, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 5; _i < arguments.length; _i++) { - extraArgs[_i - 5] = arguments[_i]; - } - if (eventStore) { - var rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold); - return { - bg: this.sliceEventRanges(rangeRes.bg, component, extraArgs), - fg: this.sliceEventRanges(rangeRes.fg, component, extraArgs) - }; - } - else { - return { bg: [], fg: [] }; - } - }; - Slicer.prototype._sliceInteraction = function (interaction, eventUiBases, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 5; _i < arguments.length; _i++) { - extraArgs[_i - 5] = arguments[_i]; - } - if (!interaction) { - return null; - } - var rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold); - return { - segs: this.sliceEventRanges(rangeRes.fg, component, extraArgs), - affectedInstances: interaction.affectedEvents.instances, - isEvent: interaction.isEvent, - sourceSeg: interaction.origSeg - }; - }; - Slicer.prototype._sliceDateSpan = function (dateSpan, eventUiBases, component) { - var extraArgs = []; - for (var _i = 3; _i < arguments.length; _i++) { - extraArgs[_i - 3] = arguments[_i]; - } - if (!dateSpan) { - return []; - } - var eventRange = fabricateEventRange(dateSpan, eventUiBases, component.calendar); - var segs = this.sliceRange.apply(this, [dateSpan.range].concat(extraArgs)); - for (var _a = 0, segs_1 = segs; _a < segs_1.length; _a++) { - var seg = segs_1[_a]; - seg.component = component; - seg.eventRange = eventRange; - } - return segs; - }; - /* - "complete" seg means it has component and eventRange - */ - Slicer.prototype.sliceEventRanges = function (eventRanges, component, // TODO: kill - extraArgs) { - var segs = []; - for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) { - var eventRange = eventRanges_1[_i]; - segs.push.apply(segs, this.sliceEventRange(eventRange, component, extraArgs)); - } - return segs; - }; - /* - "complete" seg means it has component and eventRange - */ - Slicer.prototype.sliceEventRange = function (eventRange, component, // TODO: kill - extraArgs) { - var segs = this.sliceRange.apply(this, [eventRange.range].concat(extraArgs)); - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - seg.component = component; - seg.eventRange = eventRange; - seg.isStart = eventRange.isStart && seg.isStart; - seg.isEnd = eventRange.isEnd && seg.isEnd; - } - return segs; - }; - return Slicer; -}()); -/* -for incorporating minTime/maxTime if appropriate -TODO: should be part of DateProfile! -TimelineDateProfile already does this btw -*/ -function computeActiveRange(dateProfile, isComponentAllDay) { - var range = dateProfile.activeRange; - if (isComponentAllDay) { - return range; - } - return { - start: addMs(range.start, dateProfile.minTime.milliseconds), - end: addMs(range.end, dateProfile.maxTime.milliseconds - 864e5) // 864e5 = ms in a day - }; -} - -// exports -// -------------------------------------------------------------------------------------------------- -var version = '4.3.1'; - -export { Calendar, Component, DateComponent, DateEnv, DateProfileGenerator, DayHeader, DaySeries, DayTable, ElementDragging, ElementScrollController, EmitterMixin, EventApi, FgEventRenderer, FillRenderer, Interaction, Mixin, NamedTimeZoneImpl, PositionCache, ScrollComponent, ScrollController, Slicer, Splitter, Theme, View, WindowScrollController, addDays, addDurations, addMs, addWeeks, allowContextMenu, allowSelection, appendToElement, applyAll, applyMutationToEventStore, applyStyle, applyStyleProp, asRoughMinutes, asRoughMs, asRoughSeconds, buildGotoAnchorHtml, buildSegCompareObj, capitaliseFirstLetter, combineEventUis, compareByFieldSpec, compareByFieldSpecs, compareNumbers, compensateScroll, computeClippingRect, computeEdges, computeFallbackHeaderFormat, computeHeightAndMargins, computeInnerRect, computeRect, computeVisibleDayRange, config, constrainPoint, createDuration, createElement, createEmptyEventStore, createEventInstance, createFormatter, createPlugin, cssToStr, debounce, diffDates, diffDayAndTime, diffDays, diffPoints, diffWeeks, diffWholeDays, diffWholeWeeks, disableCursor, distributeHeight, elementClosest, elementMatches, enableCursor, eventTupleToStore, filterEventStoreDefs, filterHash, findChildren, findElements, flexibleCompare, forceClassName, formatDate, formatIsoTimeString, formatRange, getAllDayHtml, getClippingParents, getDayClasses, getElSeg, getRectCenter, getRelevantEvents, globalDefaults, greatestDurationDenominator, hasBgRendering, htmlEscape, htmlToElement, insertAfterElement, interactionSettingsStore, interactionSettingsToStore, intersectRanges, intersectRects, isArraysEqual, isDateSpansEqual, isInt, isInteractionValid, isMultiDayRange, isPropsEqual, isPropsValid, isSingleDay, isValidDate, listenBySelector, mapHash, matchCellWidths, memoize, memoizeOutput, memoizeRendering, mergeEventStores, multiplyDuration, padStart, parseBusinessHours, parseDragMeta, parseEventDef, parseFieldSpecs, parse as parseMarker, pointInsideRect, prependToElement, preventContextMenu, preventDefault, preventSelection, processScopedUiProps, rangeContainsMarker, rangeContainsRange, rangesEqual, rangesIntersect, refineProps, removeElement, removeExact, renderDateCell, requestJson, sliceEventStore, startOfDay, subtractInnerElHeight, translateRect, uncompensateScroll, undistributeHeight, unpromisify, version, whenTransitionDone, wholeDivideDurations }; diff --git a/htdocs/public/high/plugins/fullcalendar/main.js b/htdocs/public/high/plugins/fullcalendar/main.js deleted file mode 100644 index ec0808d0..00000000 --- a/htdocs/public/high/plugins/fullcalendar/main.js +++ /dev/null @@ -1,8717 +0,0 @@ -/*! -FullCalendar Core Package v4.3.1 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (global = global || self, factory(global.FullCalendar = {})); -}(this, function (exports) { 'use strict'; - - // Creating - // ---------------------------------------------------------------------------------------------------------------- - var elementPropHash = { - className: true, - colSpan: true, - rowSpan: true - }; - var containerTagHash = { - '= rect.left && - point.left < rect.right && - point.top >= rect.top && - point.top < rect.bottom; - } - // Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false - function intersectRects(rect1, rect2) { - var res = { - left: Math.max(rect1.left, rect2.left), - right: Math.min(rect1.right, rect2.right), - top: Math.max(rect1.top, rect2.top), - bottom: Math.min(rect1.bottom, rect2.bottom) - }; - if (res.left < res.right && res.top < res.bottom) { - return res; - } - return false; - } - function translateRect(rect, deltaX, deltaY) { - return { - left: rect.left + deltaX, - right: rect.right + deltaX, - top: rect.top + deltaY, - bottom: rect.bottom + deltaY - }; - } - // Returns a new point that will have been moved to reside within the given rectangle - function constrainPoint(point, rect) { - return { - left: Math.min(Math.max(point.left, rect.left), rect.right), - top: Math.min(Math.max(point.top, rect.top), rect.bottom) - }; - } - // Returns a point that is the center of the given rectangle - function getRectCenter(rect) { - return { - left: (rect.left + rect.right) / 2, - top: (rect.top + rect.bottom) / 2 - }; - } - // Subtracts point2's coordinates from point1's coordinates, returning a delta - function diffPoints(point1, point2) { - return { - left: point1.left - point2.left, - top: point1.top - point2.top - }; - } - - // Logic for determining if, when the element is right-to-left, the scrollbar appears on the left side - var isRtlScrollbarOnLeft = null; - function getIsRtlScrollbarOnLeft() { - if (isRtlScrollbarOnLeft === null) { - isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft(); - } - return isRtlScrollbarOnLeft; - } - function computeIsRtlScrollbarOnLeft() { - var outerEl = createElement('div', { - style: { - position: 'absolute', - top: -1000, - left: 0, - border: 0, - padding: 0, - overflow: 'scroll', - direction: 'rtl' - } - }, '
'); - document.body.appendChild(outerEl); - var innerEl = outerEl.firstChild; - var res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left; - removeElement(outerEl); - return res; - } - // The scrollbar width computations in computeEdges are sometimes flawed when it comes to - // retina displays, rounding, and IE11. Massage them into a usable value. - function sanitizeScrollbarWidth(width) { - width = Math.max(0, width); // no negatives - width = Math.round(width); - return width; - } - - function computeEdges(el, getPadding) { - if (getPadding === void 0) { getPadding = false; } - var computedStyle = window.getComputedStyle(el); - var borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0; - var borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0; - var borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0; - var borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0; - // must use offset(Width|Height) because compatible with client(Width|Height) - var scrollbarLeftRight = sanitizeScrollbarWidth(el.offsetWidth - el.clientWidth - borderLeft - borderRight); - var scrollbarBottom = sanitizeScrollbarWidth(el.offsetHeight - el.clientHeight - borderTop - borderBottom); - var res = { - borderLeft: borderLeft, - borderRight: borderRight, - borderTop: borderTop, - borderBottom: borderBottom, - scrollbarBottom: scrollbarBottom, - scrollbarLeft: 0, - scrollbarRight: 0 - }; - if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') { // is the scrollbar on the left side? - res.scrollbarLeft = scrollbarLeftRight; - } - else { - res.scrollbarRight = scrollbarLeftRight; - } - if (getPadding) { - res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0; - res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0; - res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0; - res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0; - } - return res; - } - function computeInnerRect(el, goWithinPadding) { - if (goWithinPadding === void 0) { goWithinPadding = false; } - var outerRect = computeRect(el); - var edges = computeEdges(el, goWithinPadding); - var res = { - left: outerRect.left + edges.borderLeft + edges.scrollbarLeft, - right: outerRect.right - edges.borderRight - edges.scrollbarRight, - top: outerRect.top + edges.borderTop, - bottom: outerRect.bottom - edges.borderBottom - edges.scrollbarBottom - }; - if (goWithinPadding) { - res.left += edges.paddingLeft; - res.right -= edges.paddingRight; - res.top += edges.paddingTop; - res.bottom -= edges.paddingBottom; - } - return res; - } - function computeRect(el) { - var rect = el.getBoundingClientRect(); - return { - left: rect.left + window.pageXOffset, - top: rect.top + window.pageYOffset, - right: rect.right + window.pageXOffset, - bottom: rect.bottom + window.pageYOffset - }; - } - function computeViewportRect() { - return { - left: window.pageXOffset, - right: window.pageXOffset + document.documentElement.clientWidth, - top: window.pageYOffset, - bottom: window.pageYOffset + document.documentElement.clientHeight - }; - } - function computeHeightAndMargins(el) { - return el.getBoundingClientRect().height + computeVMargins(el); - } - function computeVMargins(el) { - var computed = window.getComputedStyle(el); - return parseInt(computed.marginTop, 10) + - parseInt(computed.marginBottom, 10); - } - // does not return window - function getClippingParents(el) { - var parents = []; - while (el instanceof HTMLElement) { // will stop when gets to document or null - var computedStyle = window.getComputedStyle(el); - if (computedStyle.position === 'fixed') { - break; - } - if ((/(auto|scroll)/).test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) { - parents.push(el); - } - el = el.parentNode; - } - return parents; - } - function computeClippingRect(el) { - return getClippingParents(el) - .map(function (el) { - return computeInnerRect(el); - }) - .concat(computeViewportRect()) - .reduce(function (rect0, rect1) { - return intersectRects(rect0, rect1) || rect1; // should always intersect - }); - } - - // Stops a mouse/touch event from doing it's native browser action - function preventDefault(ev) { - ev.preventDefault(); - } - // Event Delegation - // ---------------------------------------------------------------------------------------------------------------- - function listenBySelector(container, eventType, selector, handler) { - function realHandler(ev) { - var matchedChild = elementClosest(ev.target, selector); - if (matchedChild) { - handler.call(matchedChild, ev, matchedChild); - } - } - container.addEventListener(eventType, realHandler); - return function () { - container.removeEventListener(eventType, realHandler); - }; - } - function listenToHoverBySelector(container, selector, onMouseEnter, onMouseLeave) { - var currentMatchedChild; - return listenBySelector(container, 'mouseover', selector, function (ev, matchedChild) { - if (matchedChild !== currentMatchedChild) { - currentMatchedChild = matchedChild; - onMouseEnter(ev, matchedChild); - var realOnMouseLeave_1 = function (ev) { - currentMatchedChild = null; - onMouseLeave(ev, matchedChild); - matchedChild.removeEventListener('mouseleave', realOnMouseLeave_1); - }; - // listen to the next mouseleave, and then unattach - matchedChild.addEventListener('mouseleave', realOnMouseLeave_1); - } - }); - } - // Animation - // ---------------------------------------------------------------------------------------------------------------- - var transitionEventNames = [ - 'webkitTransitionEnd', - 'otransitionend', - 'oTransitionEnd', - 'msTransitionEnd', - 'transitionend' - ]; - // triggered only when the next single subsequent transition finishes - function whenTransitionDone(el, callback) { - var realCallback = function (ev) { - callback(ev); - transitionEventNames.forEach(function (eventName) { - el.removeEventListener(eventName, realCallback); - }); - }; - transitionEventNames.forEach(function (eventName) { - el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes - }); - } - - var DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']; - // Adding - function addWeeks(m, n) { - var a = dateToUtcArray(m); - a[2] += n * 7; - return arrayToUtcDate(a); - } - function addDays(m, n) { - var a = dateToUtcArray(m); - a[2] += n; - return arrayToUtcDate(a); - } - function addMs(m, n) { - var a = dateToUtcArray(m); - a[6] += n; - return arrayToUtcDate(a); - } - // Diffing (all return floats) - function diffWeeks(m0, m1) { - return diffDays(m0, m1) / 7; - } - function diffDays(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24); - } - function diffHours(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60); - } - function diffMinutes(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60); - } - function diffSeconds(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / 1000; - } - function diffDayAndTime(m0, m1) { - var m0day = startOfDay(m0); - var m1day = startOfDay(m1); - return { - years: 0, - months: 0, - days: Math.round(diffDays(m0day, m1day)), - milliseconds: (m1.valueOf() - m1day.valueOf()) - (m0.valueOf() - m0day.valueOf()) - }; - } - // Diffing Whole Units - function diffWholeWeeks(m0, m1) { - var d = diffWholeDays(m0, m1); - if (d !== null && d % 7 === 0) { - return d / 7; - } - return null; - } - function diffWholeDays(m0, m1) { - if (timeAsMs(m0) === timeAsMs(m1)) { - return Math.round(diffDays(m0, m1)); - } - return null; - } - // Start-Of - function startOfDay(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate() - ]); - } - function startOfHour(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours() - ]); - } - function startOfMinute(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours(), - m.getUTCMinutes() - ]); - } - function startOfSecond(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours(), - m.getUTCMinutes(), - m.getUTCSeconds() - ]); - } - // Week Computation - function weekOfYear(marker, dow, doy) { - var y = marker.getUTCFullYear(); - var w = weekOfGivenYear(marker, y, dow, doy); - if (w < 1) { - return weekOfGivenYear(marker, y - 1, dow, doy); - } - var nextW = weekOfGivenYear(marker, y + 1, dow, doy); - if (nextW >= 1) { - return Math.min(w, nextW); - } - return w; - } - function weekOfGivenYear(marker, year, dow, doy) { - var firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)]); - var dayStart = startOfDay(marker); - var days = Math.round(diffDays(firstWeekStart, dayStart)); - return Math.floor(days / 7) + 1; // zero-indexed - } - // start-of-first-week - start-of-year - function firstWeekOffset(year, dow, doy) { - // first-week day -- which january is always in the first week (4 for iso, 1 for other) - var fwd = 7 + dow - doy; - // first-week day local weekday -- which local weekday is fwd - var fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7; - return -fwdlw + fwd - 1; - } - // Array Conversion - function dateToLocalArray(date) { - return [ - date.getFullYear(), - date.getMonth(), - date.getDate(), - date.getHours(), - date.getMinutes(), - date.getSeconds(), - date.getMilliseconds() - ]; - } - function arrayToLocalDate(a) { - return new Date(a[0], a[1] || 0, a[2] == null ? 1 : a[2], // day of month - a[3] || 0, a[4] || 0, a[5] || 0); - } - function dateToUtcArray(date) { - return [ - date.getUTCFullYear(), - date.getUTCMonth(), - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds(), - date.getUTCMilliseconds() - ]; - } - function arrayToUtcDate(a) { - // according to web standards (and Safari), a month index is required. - // massage if only given a year. - if (a.length === 1) { - a = a.concat([0]); - } - return new Date(Date.UTC.apply(Date, a)); - } - // Other Utils - function isValidDate(m) { - return !isNaN(m.valueOf()); - } - function timeAsMs(m) { - return m.getUTCHours() * 1000 * 60 * 60 + - m.getUTCMinutes() * 1000 * 60 + - m.getUTCSeconds() * 1000 + - m.getUTCMilliseconds(); - } - - var INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds']; - var PARSE_RE = /^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/; - // Parsing and Creation - function createDuration(input, unit) { - var _a; - if (typeof input === 'string') { - return parseString(input); - } - else if (typeof input === 'object' && input) { // non-null object - return normalizeObject(input); - } - else if (typeof input === 'number') { - return normalizeObject((_a = {}, _a[unit || 'milliseconds'] = input, _a)); - } - else { - return null; - } - } - function parseString(s) { - var m = PARSE_RE.exec(s); - if (m) { - var sign = m[1] ? -1 : 1; - return { - years: 0, - months: 0, - days: sign * (m[2] ? parseInt(m[2], 10) : 0), - milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours - (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes - (m[5] ? parseInt(m[5], 10) : 0) * 1000 + // seconds - (m[6] ? parseInt(m[6], 10) : 0) // ms - ) - }; - } - return null; - } - function normalizeObject(obj) { - return { - years: obj.years || obj.year || 0, - months: obj.months || obj.month || 0, - days: (obj.days || obj.day || 0) + - getWeeksFromInput(obj) * 7, - milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours - (obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes - (obj.seconds || obj.second || 0) * 1000 + // seconds - (obj.milliseconds || obj.millisecond || obj.ms || 0) // ms - }; - } - function getWeeksFromInput(obj) { - return obj.weeks || obj.week || 0; - } - // Equality - function durationsEqual(d0, d1) { - return d0.years === d1.years && - d0.months === d1.months && - d0.days === d1.days && - d0.milliseconds === d1.milliseconds; - } - function isSingleDay(dur) { - return dur.years === 0 && dur.months === 0 && dur.days === 1 && dur.milliseconds === 0; - } - // Simple Math - function addDurations(d0, d1) { - return { - years: d0.years + d1.years, - months: d0.months + d1.months, - days: d0.days + d1.days, - milliseconds: d0.milliseconds + d1.milliseconds - }; - } - function subtractDurations(d1, d0) { - return { - years: d1.years - d0.years, - months: d1.months - d0.months, - days: d1.days - d0.days, - milliseconds: d1.milliseconds - d0.milliseconds - }; - } - function multiplyDuration(d, n) { - return { - years: d.years * n, - months: d.months * n, - days: d.days * n, - milliseconds: d.milliseconds * n - }; - } - // Conversions - // "Rough" because they are based on average-case Gregorian months/years - function asRoughYears(dur) { - return asRoughDays(dur) / 365; - } - function asRoughMonths(dur) { - return asRoughDays(dur) / 30; - } - function asRoughDays(dur) { - return asRoughMs(dur) / 864e5; - } - function asRoughMinutes(dur) { - return asRoughMs(dur) / (1000 * 60); - } - function asRoughSeconds(dur) { - return asRoughMs(dur) / 1000; - } - function asRoughMs(dur) { - return dur.years * (365 * 864e5) + - dur.months * (30 * 864e5) + - dur.days * 864e5 + - dur.milliseconds; - } - // Advanced Math - function wholeDivideDurations(numerator, denominator) { - var res = null; - for (var i = 0; i < INTERNAL_UNITS.length; i++) { - var unit = INTERNAL_UNITS[i]; - if (denominator[unit]) { - var localRes = numerator[unit] / denominator[unit]; - if (!isInt(localRes) || (res !== null && res !== localRes)) { - return null; - } - res = localRes; - } - else if (numerator[unit]) { - // needs to divide by something but can't! - return null; - } - } - return res; - } - function greatestDurationDenominator(dur, dontReturnWeeks) { - var ms = dur.milliseconds; - if (ms) { - if (ms % 1000 !== 0) { - return { unit: 'millisecond', value: ms }; - } - if (ms % (1000 * 60) !== 0) { - return { unit: 'second', value: ms / 1000 }; - } - if (ms % (1000 * 60 * 60) !== 0) { - return { unit: 'minute', value: ms / (1000 * 60) }; - } - if (ms) { - return { unit: 'hour', value: ms / (1000 * 60 * 60) }; - } - } - if (dur.days) { - if (!dontReturnWeeks && dur.days % 7 === 0) { - return { unit: 'week', value: dur.days / 7 }; - } - return { unit: 'day', value: dur.days }; - } - if (dur.months) { - return { unit: 'month', value: dur.months }; - } - if (dur.years) { - return { unit: 'year', value: dur.years }; - } - return { unit: 'millisecond', value: 0 }; - } - - /* FullCalendar-specific DOM Utilities - ----------------------------------------------------------------------------------------------------------------------*/ - // Given the scrollbar widths of some other container, create borders/margins on rowEls in order to match the left - // and right space that was offset by the scrollbars. A 1-pixel border first, then margin beyond that. - function compensateScroll(rowEl, scrollbarWidths) { - if (scrollbarWidths.left) { - applyStyle(rowEl, { - borderLeftWidth: 1, - marginLeft: scrollbarWidths.left - 1 - }); - } - if (scrollbarWidths.right) { - applyStyle(rowEl, { - borderRightWidth: 1, - marginRight: scrollbarWidths.right - 1 - }); - } - } - // Undoes compensateScroll and restores all borders/margins - function uncompensateScroll(rowEl) { - applyStyle(rowEl, { - marginLeft: '', - marginRight: '', - borderLeftWidth: '', - borderRightWidth: '' - }); - } - // Make the mouse cursor express that an event is not allowed in the current area - function disableCursor() { - document.body.classList.add('fc-not-allowed'); - } - // Returns the mouse cursor to its original look - function enableCursor() { - document.body.classList.remove('fc-not-allowed'); - } - // Given a total available height to fill, have `els` (essentially child rows) expand to accomodate. - // By default, all elements that are shorter than the recommended height are expanded uniformly, not considering - // any other els that are already too tall. if `shouldRedistribute` is on, it considers these tall rows and - // reduces the available height. - function distributeHeight(els, availableHeight, shouldRedistribute) { - // *FLOORING NOTE*: we floor in certain places because zoom can give inaccurate floating-point dimensions, - // and it is better to be shorter than taller, to avoid creating unnecessary scrollbars. - var minOffset1 = Math.floor(availableHeight / els.length); // for non-last element - var minOffset2 = Math.floor(availableHeight - minOffset1 * (els.length - 1)); // for last element *FLOORING NOTE* - var flexEls = []; // elements that are allowed to expand. array of DOM nodes - var flexOffsets = []; // amount of vertical space it takes up - var flexHeights = []; // actual css height - var usedHeight = 0; - undistributeHeight(els); // give all elements their natural height - // find elements that are below the recommended height (expandable). - // important to query for heights in a single first pass (to avoid reflow oscillation). - els.forEach(function (el, i) { - var minOffset = i === els.length - 1 ? minOffset2 : minOffset1; - var naturalHeight = el.getBoundingClientRect().height; - var naturalOffset = naturalHeight + computeVMargins(el); - if (naturalOffset < minOffset) { - flexEls.push(el); - flexOffsets.push(naturalOffset); - flexHeights.push(naturalHeight); - } - else { - // this element stretches past recommended height (non-expandable). mark the space as occupied. - usedHeight += naturalOffset; - } - }); - // readjust the recommended height to only consider the height available to non-maxed-out rows. - if (shouldRedistribute) { - availableHeight -= usedHeight; - minOffset1 = Math.floor(availableHeight / flexEls.length); - minOffset2 = Math.floor(availableHeight - minOffset1 * (flexEls.length - 1)); // *FLOORING NOTE* - } - // assign heights to all expandable elements - flexEls.forEach(function (el, i) { - var minOffset = i === flexEls.length - 1 ? minOffset2 : minOffset1; - var naturalOffset = flexOffsets[i]; - var naturalHeight = flexHeights[i]; - var newHeight = minOffset - (naturalOffset - naturalHeight); // subtract the margin/padding - if (naturalOffset < minOffset) { // we check this again because redistribution might have changed things - el.style.height = newHeight + 'px'; - } - }); - } - // Undoes distrubuteHeight, restoring all els to their natural height - function undistributeHeight(els) { - els.forEach(function (el) { - el.style.height = ''; - }); - } - // Given `els`, a set of cells, find the cell with the largest natural width and set the widths of all the - // cells to be that width. - // PREREQUISITE: if you want a cell to take up width, it needs to have a single inner element w/ display:inline - function matchCellWidths(els) { - var maxInnerWidth = 0; - els.forEach(function (el) { - var innerEl = el.firstChild; // hopefully an element - if (innerEl instanceof HTMLElement) { - var innerWidth_1 = innerEl.getBoundingClientRect().width; - if (innerWidth_1 > maxInnerWidth) { - maxInnerWidth = innerWidth_1; - } - } - }); - maxInnerWidth++; // sometimes not accurate of width the text needs to stay on one line. insurance - els.forEach(function (el) { - el.style.width = maxInnerWidth + 'px'; - }); - return maxInnerWidth; - } - // Given one element that resides inside another, - // Subtracts the height of the inner element from the outer element. - function subtractInnerElHeight(outerEl, innerEl) { - // effin' IE8/9/10/11 sometimes returns 0 for dimensions. this weird hack was the only thing that worked - var reflowStyleProps = { - position: 'relative', - left: -1 // ensure reflow in case the el was already relative. negative is less likely to cause new scroll - }; - applyStyle(outerEl, reflowStyleProps); - applyStyle(innerEl, reflowStyleProps); - var diff = // grab the dimensions - outerEl.getBoundingClientRect().height - - innerEl.getBoundingClientRect().height; - // undo hack - var resetStyleProps = { position: '', left: '' }; - applyStyle(outerEl, resetStyleProps); - applyStyle(innerEl, resetStyleProps); - return diff; - } - /* Selection - ----------------------------------------------------------------------------------------------------------------------*/ - function preventSelection(el) { - el.classList.add('fc-unselectable'); - el.addEventListener('selectstart', preventDefault); - } - function allowSelection(el) { - el.classList.remove('fc-unselectable'); - el.removeEventListener('selectstart', preventDefault); - } - /* Context Menu - ----------------------------------------------------------------------------------------------------------------------*/ - function preventContextMenu(el) { - el.addEventListener('contextmenu', preventDefault); - } - function allowContextMenu(el) { - el.removeEventListener('contextmenu', preventDefault); - } - /* Object Ordering by Field - ----------------------------------------------------------------------------------------------------------------------*/ - function parseFieldSpecs(input) { - var specs = []; - var tokens = []; - var i; - var token; - if (typeof input === 'string') { - tokens = input.split(/\s*,\s*/); - } - else if (typeof input === 'function') { - tokens = [input]; - } - else if (Array.isArray(input)) { - tokens = input; - } - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - if (typeof token === 'string') { - specs.push(token.charAt(0) === '-' ? - { field: token.substring(1), order: -1 } : - { field: token, order: 1 }); - } - else if (typeof token === 'function') { - specs.push({ func: token }); - } - } - return specs; - } - function compareByFieldSpecs(obj0, obj1, fieldSpecs) { - var i; - var cmp; - for (i = 0; i < fieldSpecs.length; i++) { - cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]); - if (cmp) { - return cmp; - } - } - return 0; - } - function compareByFieldSpec(obj0, obj1, fieldSpec) { - if (fieldSpec.func) { - return fieldSpec.func(obj0, obj1); - } - return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field]) - * (fieldSpec.order || 1); - } - function flexibleCompare(a, b) { - if (!a && !b) { - return 0; - } - if (b == null) { - return -1; - } - if (a == null) { - return 1; - } - if (typeof a === 'string' || typeof b === 'string') { - return String(a).localeCompare(String(b)); - } - return a - b; - } - /* String Utilities - ----------------------------------------------------------------------------------------------------------------------*/ - function capitaliseFirstLetter(str) { - return str.charAt(0).toUpperCase() + str.slice(1); - } - function padStart(val, len) { - var s = String(val); - return '000'.substr(0, len - s.length) + s; - } - /* Number Utilities - ----------------------------------------------------------------------------------------------------------------------*/ - function compareNumbers(a, b) { - return a - b; - } - function isInt(n) { - return n % 1 === 0; - } - /* Weird Utilities - ----------------------------------------------------------------------------------------------------------------------*/ - function applyAll(functions, thisObj, args) { - if (typeof functions === 'function') { // supplied a single function - functions = [functions]; - } - if (functions) { - var i = void 0; - var ret = void 0; - for (i = 0; i < functions.length; i++) { - ret = functions[i].apply(thisObj, args) || ret; - } - return ret; - } - } - function firstDefined() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - for (var i = 0; i < args.length; i++) { - if (args[i] !== undefined) { - return args[i]; - } - } - } - // Returns a function, that, as long as it continues to be invoked, will not - // be triggered. The function will be called after it stops being called for - // N milliseconds. If `immediate` is passed, trigger the function on the - // leading edge, instead of the trailing. - // https://github.com/jashkenas/underscore/blob/1.6.0/underscore.js#L714 - function debounce(func, wait) { - var timeout; - var args; - var context; - var timestamp; - var result; - var later = function () { - var last = new Date().valueOf() - timestamp; - if (last < wait) { - timeout = setTimeout(later, wait - last); - } - else { - timeout = null; - result = func.apply(context, args); - context = args = null; - } - }; - return function () { - context = this; - args = arguments; - timestamp = new Date().valueOf(); - if (!timeout) { - timeout = setTimeout(later, wait); - } - return result; - }; - } - // Number and Boolean are only types that defaults or not computed for - // TODO: write more comments - function refineProps(rawProps, processors, defaults, leftoverProps) { - if (defaults === void 0) { defaults = {}; } - var refined = {}; - for (var key in processors) { - var processor = processors[key]; - if (rawProps[key] !== undefined) { - // found - if (processor === Function) { - refined[key] = typeof rawProps[key] === 'function' ? rawProps[key] : null; - } - else if (processor) { // a refining function? - refined[key] = processor(rawProps[key]); - } - else { - refined[key] = rawProps[key]; - } - } - else if (defaults[key] !== undefined) { - // there's an explicit default - refined[key] = defaults[key]; - } - else { - // must compute a default - if (processor === String) { - refined[key] = ''; // empty string is default for String - } - else if (!processor || processor === Number || processor === Boolean || processor === Function) { - refined[key] = null; // assign null for other non-custom processor funcs - } - else { - refined[key] = processor(null); // run the custom processor func - } - } - } - if (leftoverProps) { - for (var key in rawProps) { - if (processors[key] === undefined) { - leftoverProps[key] = rawProps[key]; - } - } - } - return refined; - } - /* Date stuff that doesn't belong in datelib core - ----------------------------------------------------------------------------------------------------------------------*/ - // given a timed range, computes an all-day range that has the same exact duration, - // but whose start time is aligned with the start of the day. - function computeAlignedDayRange(timedRange) { - var dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1; - var start = startOfDay(timedRange.start); - var end = addDays(start, dayCnt); - return { start: start, end: end }; - } - // given a timed range, computes an all-day range based on how for the end date bleeds into the next day - // TODO: give nextDayThreshold a default arg - function computeVisibleDayRange(timedRange, nextDayThreshold) { - if (nextDayThreshold === void 0) { nextDayThreshold = createDuration(0); } - var startDay = null; - var endDay = null; - if (timedRange.end) { - endDay = startOfDay(timedRange.end); - var endTimeMS = timedRange.end.valueOf() - endDay.valueOf(); // # of milliseconds into `endDay` - // If the end time is actually inclusively part of the next day and is equal to or - // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`. - // Otherwise, leaving it as inclusive will cause it to exclude `endDay`. - if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) { - endDay = addDays(endDay, 1); - } - } - if (timedRange.start) { - startDay = startOfDay(timedRange.start); // the beginning of the day the range starts - // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day. - if (endDay && endDay <= startDay) { - endDay = addDays(startDay, 1); - } - } - return { start: startDay, end: endDay }; - } - // spans from one day into another? - function isMultiDayRange(range) { - var visibleRange = computeVisibleDayRange(range); - return diffDays(visibleRange.start, visibleRange.end) > 1; - } - function diffDates(date0, date1, dateEnv, largeUnit) { - if (largeUnit === 'year') { - return createDuration(dateEnv.diffWholeYears(date0, date1), 'year'); - } - else if (largeUnit === 'month') { - return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month'); - } - else { - return diffDayAndTime(date0, date1); // returns a duration - } - } - - /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */ - /* global Reflect, Promise */ - - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - - function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - } - - var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); - }; - - function parseRecurring(eventInput, allDayDefault, dateEnv, recurringTypes, leftovers) { - for (var i = 0; i < recurringTypes.length; i++) { - var localLeftovers = {}; - var parsed = recurringTypes[i].parse(eventInput, localLeftovers, dateEnv); - if (parsed) { - var allDay = localLeftovers.allDay; - delete localLeftovers.allDay; // remove from leftovers - if (allDay == null) { - allDay = allDayDefault; - if (allDay == null) { - allDay = parsed.allDayGuess; - if (allDay == null) { - allDay = false; - } - } - } - __assign(leftovers, localLeftovers); - return { - allDay: allDay, - duration: parsed.duration, - typeData: parsed.typeData, - typeId: i - }; - } - } - return null; - } - /* - Event MUST have a recurringDef - */ - function expandRecurringRanges(eventDef, duration, framingRange, dateEnv, recurringTypes) { - var typeDef = recurringTypes[eventDef.recurringDef.typeId]; - var markers = typeDef.expand(eventDef.recurringDef.typeData, { - start: dateEnv.subtract(framingRange.start, duration), - end: framingRange.end - }, dateEnv); - // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to - if (eventDef.allDay) { - markers = markers.map(startOfDay); - } - return markers; - } - - var hasOwnProperty = Object.prototype.hasOwnProperty; - // Merges an array of objects into a single object. - // The second argument allows for an array of property names who's object values will be merged together. - function mergeProps(propObjs, complexProps) { - var dest = {}; - var i; - var name; - var complexObjs; - var j; - var val; - var props; - if (complexProps) { - for (i = 0; i < complexProps.length; i++) { - name = complexProps[i]; - complexObjs = []; - // collect the trailing object values, stopping when a non-object is discovered - for (j = propObjs.length - 1; j >= 0; j--) { - val = propObjs[j][name]; - if (typeof val === 'object' && val) { // non-null object - complexObjs.unshift(val); - } - else if (val !== undefined) { - dest[name] = val; // if there were no objects, this value will be used - break; - } - } - // if the trailing values were objects, use the merged value - if (complexObjs.length) { - dest[name] = mergeProps(complexObjs); - } - } - } - // copy values into the destination, going from last to first - for (i = propObjs.length - 1; i >= 0; i--) { - props = propObjs[i]; - for (name in props) { - if (!(name in dest)) { // if already assigned by previous props or complex props, don't reassign - dest[name] = props[name]; - } - } - } - return dest; - } - function filterHash(hash, func) { - var filtered = {}; - for (var key in hash) { - if (func(hash[key], key)) { - filtered[key] = hash[key]; - } - } - return filtered; - } - function mapHash(hash, func) { - var newHash = {}; - for (var key in hash) { - newHash[key] = func(hash[key], key); - } - return newHash; - } - function arrayToHash(a) { - var hash = {}; - for (var _i = 0, a_1 = a; _i < a_1.length; _i++) { - var item = a_1[_i]; - hash[item] = true; - } - return hash; - } - function hashValuesToArray(obj) { - var a = []; - for (var key in obj) { - a.push(obj[key]); - } - return a; - } - function isPropsEqual(obj0, obj1) { - for (var key in obj0) { - if (hasOwnProperty.call(obj0, key)) { - if (!(key in obj1)) { - return false; - } - } - } - for (var key in obj1) { - if (hasOwnProperty.call(obj1, key)) { - if (obj0[key] !== obj1[key]) { - return false; - } - } - } - return true; - } - - function parseEvents(rawEvents, sourceId, calendar, allowOpenRange) { - var eventStore = createEmptyEventStore(); - for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) { - var rawEvent = rawEvents_1[_i]; - var tuple = parseEvent(rawEvent, sourceId, calendar, allowOpenRange); - if (tuple) { - eventTupleToStore(tuple, eventStore); - } - } - return eventStore; - } - function eventTupleToStore(tuple, eventStore) { - if (eventStore === void 0) { eventStore = createEmptyEventStore(); } - eventStore.defs[tuple.def.defId] = tuple.def; - if (tuple.instance) { - eventStore.instances[tuple.instance.instanceId] = tuple.instance; - } - return eventStore; - } - function expandRecurring(eventStore, framingRange, calendar) { - var dateEnv = calendar.dateEnv; - var defs = eventStore.defs, instances = eventStore.instances; - // remove existing recurring instances - instances = filterHash(instances, function (instance) { - return !defs[instance.defId].recurringDef; - }); - for (var defId in defs) { - var def = defs[defId]; - if (def.recurringDef) { - var duration = def.recurringDef.duration; - if (!duration) { - duration = def.allDay ? - calendar.defaultAllDayEventDuration : - calendar.defaultTimedEventDuration; - } - var starts = expandRecurringRanges(def, duration, framingRange, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes); - for (var _i = 0, starts_1 = starts; _i < starts_1.length; _i++) { - var start = starts_1[_i]; - var instance = createEventInstance(defId, { - start: start, - end: dateEnv.add(start, duration) - }); - instances[instance.instanceId] = instance; - } - } - } - return { defs: defs, instances: instances }; - } - // retrieves events that have the same groupId as the instance specified by `instanceId` - // or they are the same as the instance. - // why might instanceId not be in the store? an event from another calendar? - function getRelevantEvents(eventStore, instanceId) { - var instance = eventStore.instances[instanceId]; - if (instance) { - var def_1 = eventStore.defs[instance.defId]; - // get events/instances with same group - var newStore = filterEventStoreDefs(eventStore, function (lookDef) { - return isEventDefsGrouped(def_1, lookDef); - }); - // add the original - // TODO: wish we could use eventTupleToStore or something like it - newStore.defs[def_1.defId] = def_1; - newStore.instances[instance.instanceId] = instance; - return newStore; - } - return createEmptyEventStore(); - } - function isEventDefsGrouped(def0, def1) { - return Boolean(def0.groupId && def0.groupId === def1.groupId); - } - function transformRawEvents(rawEvents, eventSource, calendar) { - var calEachTransform = calendar.opt('eventDataTransform'); - var sourceEachTransform = eventSource ? eventSource.eventDataTransform : null; - if (sourceEachTransform) { - rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform); - } - if (calEachTransform) { - rawEvents = transformEachRawEvent(rawEvents, calEachTransform); - } - return rawEvents; - } - function transformEachRawEvent(rawEvents, func) { - var refinedEvents; - if (!func) { - refinedEvents = rawEvents; - } - else { - refinedEvents = []; - for (var _i = 0, rawEvents_2 = rawEvents; _i < rawEvents_2.length; _i++) { - var rawEvent = rawEvents_2[_i]; - var refinedEvent = func(rawEvent); - if (refinedEvent) { - refinedEvents.push(refinedEvent); - } - else if (refinedEvent == null) { - refinedEvents.push(rawEvent); - } // if a different falsy value, do nothing - } - } - return refinedEvents; - } - function createEmptyEventStore() { - return { defs: {}, instances: {} }; - } - function mergeEventStores(store0, store1) { - return { - defs: __assign({}, store0.defs, store1.defs), - instances: __assign({}, store0.instances, store1.instances) - }; - } - function filterEventStoreDefs(eventStore, filterFunc) { - var defs = filterHash(eventStore.defs, filterFunc); - var instances = filterHash(eventStore.instances, function (instance) { - return defs[instance.defId]; // still exists? - }); - return { defs: defs, instances: instances }; - } - - function parseRange(input, dateEnv) { - var start = null; - var end = null; - if (input.start) { - start = dateEnv.createMarker(input.start); - } - if (input.end) { - end = dateEnv.createMarker(input.end); - } - if (!start && !end) { - return null; - } - if (start && end && end < start) { - return null; - } - return { start: start, end: end }; - } - // SIDE-EFFECT: will mutate ranges. - // Will return a new array result. - function invertRanges(ranges, constraintRange) { - var invertedRanges = []; - var start = constraintRange.start; // the end of the previous range. the start of the new range - var i; - var dateRange; - // ranges need to be in order. required for our date-walking algorithm - ranges.sort(compareRanges); - for (i = 0; i < ranges.length; i++) { - dateRange = ranges[i]; - // add the span of time before the event (if there is any) - if (dateRange.start > start) { // compare millisecond time (skip any ambig logic) - invertedRanges.push({ start: start, end: dateRange.start }); - } - if (dateRange.end > start) { - start = dateRange.end; - } - } - // add the span of time after the last event (if there is any) - if (start < constraintRange.end) { // compare millisecond time (skip any ambig logic) - invertedRanges.push({ start: start, end: constraintRange.end }); - } - return invertedRanges; - } - function compareRanges(range0, range1) { - return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first - } - function intersectRanges(range0, range1) { - var start = range0.start; - var end = range0.end; - var newRange = null; - if (range1.start !== null) { - if (start === null) { - start = range1.start; - } - else { - start = new Date(Math.max(start.valueOf(), range1.start.valueOf())); - } - } - if (range1.end != null) { - if (end === null) { - end = range1.end; - } - else { - end = new Date(Math.min(end.valueOf(), range1.end.valueOf())); - } - } - if (start === null || end === null || start < end) { - newRange = { start: start, end: end }; - } - return newRange; - } - function rangesEqual(range0, range1) { - return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) && - (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf()); - } - function rangesIntersect(range0, range1) { - return (range0.end === null || range1.start === null || range0.end > range1.start) && - (range0.start === null || range1.end === null || range0.start < range1.end); - } - function rangeContainsRange(outerRange, innerRange) { - return (outerRange.start === null || (innerRange.start !== null && innerRange.start >= outerRange.start)) && - (outerRange.end === null || (innerRange.end !== null && innerRange.end <= outerRange.end)); - } - function rangeContainsMarker(range, date) { - return (range.start === null || date >= range.start) && - (range.end === null || date < range.end); - } - // If the given date is not within the given range, move it inside. - // (If it's past the end, make it one millisecond before the end). - function constrainMarkerToRange(date, range) { - if (range.start != null && date < range.start) { - return range.start; - } - if (range.end != null && date >= range.end) { - return new Date(range.end.valueOf() - 1); - } - return date; - } - - function removeExact(array, exactVal) { - var removeCnt = 0; - var i = 0; - while (i < array.length) { - if (array[i] === exactVal) { - array.splice(i, 1); - removeCnt++; - } - else { - i++; - } - } - return removeCnt; - } - function isArraysEqual(a0, a1) { - var len = a0.length; - var i; - if (len !== a1.length) { // not array? or not same length? - return false; - } - for (i = 0; i < len; i++) { - if (a0[i] !== a1[i]) { - return false; - } - } - return true; - } - - function memoize(workerFunc) { - var args; - var res; - return function () { - if (!args || !isArraysEqual(args, arguments)) { - args = arguments; - res = workerFunc.apply(this, arguments); - } - return res; - }; - } - /* - always executes the workerFunc, but if the result is equal to the previous result, - return the previous result instead. - */ - function memoizeOutput(workerFunc, equalityFunc) { - var cachedRes = null; - return function () { - var newRes = workerFunc.apply(this, arguments); - if (cachedRes === null || !(cachedRes === newRes || equalityFunc(cachedRes, newRes))) { - cachedRes = newRes; - } - return cachedRes; - }; - } - - var EXTENDED_SETTINGS_AND_SEVERITIES = { - week: 3, - separator: 0, - omitZeroMinute: 0, - meridiem: 0, - omitCommas: 0 - }; - var STANDARD_DATE_PROP_SEVERITIES = { - timeZoneName: 7, - era: 6, - year: 5, - month: 4, - day: 2, - weekday: 2, - hour: 1, - minute: 1, - second: 1 - }; - var MERIDIEM_RE = /\s*([ap])\.?m\.?/i; // eats up leading spaces too - var COMMA_RE = /,/g; // we need re for globalness - var MULTI_SPACE_RE = /\s+/g; - var LTR_RE = /\u200e/g; // control character - var UTC_RE = /UTC|GMT/; - var NativeFormatter = /** @class */ (function () { - function NativeFormatter(formatSettings) { - var standardDateProps = {}; - var extendedSettings = {}; - var severity = 0; - for (var name_1 in formatSettings) { - if (name_1 in EXTENDED_SETTINGS_AND_SEVERITIES) { - extendedSettings[name_1] = formatSettings[name_1]; - severity = Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name_1], severity); - } - else { - standardDateProps[name_1] = formatSettings[name_1]; - if (name_1 in STANDARD_DATE_PROP_SEVERITIES) { - severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name_1], severity); - } - } - } - this.standardDateProps = standardDateProps; - this.extendedSettings = extendedSettings; - this.severity = severity; - this.buildFormattingFunc = memoize(buildFormattingFunc); - } - NativeFormatter.prototype.format = function (date, context) { - return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date); - }; - NativeFormatter.prototype.formatRange = function (start, end, context) { - var _a = this, standardDateProps = _a.standardDateProps, extendedSettings = _a.extendedSettings; - var diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem); - if (!diffSeverity) { - return this.format(start, context); - } - var biggestUnitForPartial = diffSeverity; - if (biggestUnitForPartial > 1 && // the two dates are different in a way that's larger scale than time - (standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') && - (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') && - (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')) { - biggestUnitForPartial = 1; // make it look like the dates are only different in terms of time - } - var full0 = this.format(start, context); - var full1 = this.format(end, context); - if (full0 === full1) { - return full0; - } - var partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial); - var partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context); - var partial0 = partialFormattingFunc(start); - var partial1 = partialFormattingFunc(end); - var insertion = findCommonInsertion(full0, partial0, full1, partial1); - var separator = extendedSettings.separator || ''; - if (insertion) { - return insertion.before + partial0 + separator + partial1 + insertion.after; - } - return full0 + separator + full1; - }; - NativeFormatter.prototype.getLargestUnit = function () { - switch (this.severity) { - case 7: - case 6: - case 5: - return 'year'; - case 4: - return 'month'; - case 3: - return 'week'; - default: - return 'day'; - } - }; - return NativeFormatter; - }()); - function buildFormattingFunc(standardDateProps, extendedSettings, context) { - var standardDatePropCnt = Object.keys(standardDateProps).length; - if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') { - return function (date) { - return formatTimeZoneOffset(date.timeZoneOffset); - }; - } - if (standardDatePropCnt === 0 && extendedSettings.week) { - return function (date) { - return formatWeekNumber(context.computeWeekNumber(date.marker), context.weekLabel, context.locale, extendedSettings.week); - }; - } - return buildNativeFormattingFunc(standardDateProps, extendedSettings, context); - } - function buildNativeFormattingFunc(standardDateProps, extendedSettings, context) { - standardDateProps = __assign({}, standardDateProps); // copy - extendedSettings = __assign({}, extendedSettings); // copy - sanitizeSettings(standardDateProps, extendedSettings); - standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers - var normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps); - var zeroFormat; // needed? - if (extendedSettings.omitZeroMinute) { - var zeroProps = __assign({}, standardDateProps); - delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings - zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps); - } - return function (date) { - var marker = date.marker; - var format; - if (zeroFormat && !marker.getUTCMinutes()) { - format = zeroFormat; - } - else { - format = normalFormat; - } - var s = format.format(marker); - return postProcess(s, date, standardDateProps, extendedSettings, context); - }; - } - function sanitizeSettings(standardDateProps, extendedSettings) { - // deal with a browser inconsistency where formatting the timezone - // requires that the hour/minute be present. - if (standardDateProps.timeZoneName) { - if (!standardDateProps.hour) { - standardDateProps.hour = '2-digit'; - } - if (!standardDateProps.minute) { - standardDateProps.minute = '2-digit'; - } - } - // only support short timezone names - if (standardDateProps.timeZoneName === 'long') { - standardDateProps.timeZoneName = 'short'; - } - // if requesting to display seconds, MUST display minutes - if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) { - delete extendedSettings.omitZeroMinute; - } - } - function postProcess(s, date, standardDateProps, extendedSettings, context) { - s = s.replace(LTR_RE, ''); // remove left-to-right control chars. do first. good for other regexes - if (standardDateProps.timeZoneName === 'short') { - s = injectTzoStr(s, (context.timeZone === 'UTC' || date.timeZoneOffset == null) ? - 'UTC' : // important to normalize for IE, which does "GMT" - formatTimeZoneOffset(date.timeZoneOffset)); - } - if (extendedSettings.omitCommas) { - s = s.replace(COMMA_RE, '').trim(); - } - if (extendedSettings.omitZeroMinute) { - s = s.replace(':00', ''); // zeroFormat doesn't always achieve this - } - // ^ do anything that might create adjacent spaces before this point, - // because MERIDIEM_RE likes to eat up loading spaces - if (extendedSettings.meridiem === false) { - s = s.replace(MERIDIEM_RE, '').trim(); - } - else if (extendedSettings.meridiem === 'narrow') { // a/p - s = s.replace(MERIDIEM_RE, function (m0, m1) { - return m1.toLocaleLowerCase(); - }); - } - else if (extendedSettings.meridiem === 'short') { // am/pm - s = s.replace(MERIDIEM_RE, function (m0, m1) { - return m1.toLocaleLowerCase() + 'm'; - }); - } - else if (extendedSettings.meridiem === 'lowercase') { // other meridiem transformers already converted to lowercase - s = s.replace(MERIDIEM_RE, function (m0) { - return m0.toLocaleLowerCase(); - }); - } - s = s.replace(MULTI_SPACE_RE, ' '); - s = s.trim(); - return s; - } - function injectTzoStr(s, tzoStr) { - var replaced = false; - s = s.replace(UTC_RE, function () { - replaced = true; - return tzoStr; - }); - // IE11 doesn't include UTC/GMT in the original string, so append to end - if (!replaced) { - s += ' ' + tzoStr; - } - return s; - } - function formatWeekNumber(num, weekLabel, locale, display) { - var parts = []; - if (display === 'narrow') { - parts.push(weekLabel); - } - else if (display === 'short') { - parts.push(weekLabel, ' '); - } - // otherwise, considered 'numeric' - parts.push(locale.simpleNumberFormat.format(num)); - if (locale.options.isRtl) { // TODO: use control characters instead? - parts.reverse(); - } - return parts.join(''); - } - // Range Formatting Utils - // 0 = exactly the same - // 1 = different by time - // and bigger - function computeMarkerDiffSeverity(d0, d1, ca) { - if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) { - return 5; - } - if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) { - return 4; - } - if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) { - return 2; - } - if (timeAsMs(d0) !== timeAsMs(d1)) { - return 1; - } - return 0; - } - function computePartialFormattingOptions(options, biggestUnit) { - var partialOptions = {}; - for (var name_2 in options) { - if (!(name_2 in STANDARD_DATE_PROP_SEVERITIES) || // not a date part prop (like timeZone) - STANDARD_DATE_PROP_SEVERITIES[name_2] <= biggestUnit) { - partialOptions[name_2] = options[name_2]; - } - } - return partialOptions; - } - function findCommonInsertion(full0, partial0, full1, partial1) { - var i0 = 0; - while (i0 < full0.length) { - var found0 = full0.indexOf(partial0, i0); - if (found0 === -1) { - break; - } - var before0 = full0.substr(0, found0); - i0 = found0 + partial0.length; - var after0 = full0.substr(i0); - var i1 = 0; - while (i1 < full1.length) { - var found1 = full1.indexOf(partial1, i1); - if (found1 === -1) { - break; - } - var before1 = full1.substr(0, found1); - i1 = found1 + partial1.length; - var after1 = full1.substr(i1); - if (before0 === before1 && after0 === after1) { - return { - before: before0, - after: after0 - }; - } - } - } - return null; - } - - /* - TODO: fix the terminology of "formatter" vs "formatting func" - */ - /* - At the time of instantiation, this object does not know which cmd-formatting system it will use. - It receives this at the time of formatting, as a setting. - */ - var CmdFormatter = /** @class */ (function () { - function CmdFormatter(cmdStr, separator) { - this.cmdStr = cmdStr; - this.separator = separator; - } - CmdFormatter.prototype.format = function (date, context) { - return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, this.separator)); - }; - CmdFormatter.prototype.formatRange = function (start, end, context) { - return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, this.separator)); - }; - return CmdFormatter; - }()); - - var FuncFormatter = /** @class */ (function () { - function FuncFormatter(func) { - this.func = func; - } - FuncFormatter.prototype.format = function (date, context) { - return this.func(createVerboseFormattingArg(date, null, context)); - }; - FuncFormatter.prototype.formatRange = function (start, end, context) { - return this.func(createVerboseFormattingArg(start, end, context)); - }; - return FuncFormatter; - }()); - - // Formatter Object Creation - function createFormatter(input, defaultSeparator) { - if (typeof input === 'object' && input) { // non-null object - if (typeof defaultSeparator === 'string') { - input = __assign({ separator: defaultSeparator }, input); - } - return new NativeFormatter(input); - } - else if (typeof input === 'string') { - return new CmdFormatter(input, defaultSeparator); - } - else if (typeof input === 'function') { - return new FuncFormatter(input); - } - } - // String Utils - // timeZoneOffset is in minutes - function buildIsoString(marker, timeZoneOffset, stripZeroTime) { - if (stripZeroTime === void 0) { stripZeroTime = false; } - var s = marker.toISOString(); - s = s.replace('.000', ''); - if (stripZeroTime) { - s = s.replace('T00:00:00Z', ''); - } - if (s.length > 10) { // time part wasn't stripped, can add timezone info - if (timeZoneOffset == null) { - s = s.replace('Z', ''); - } - else if (timeZoneOffset !== 0) { - s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true)); - } - // otherwise, its UTC-0 and we want to keep the Z - } - return s; - } - function formatIsoTimeString(marker) { - return padStart(marker.getUTCHours(), 2) + ':' + - padStart(marker.getUTCMinutes(), 2) + ':' + - padStart(marker.getUTCSeconds(), 2); - } - function formatTimeZoneOffset(minutes, doIso) { - if (doIso === void 0) { doIso = false; } - var sign = minutes < 0 ? '-' : '+'; - var abs = Math.abs(minutes); - var hours = Math.floor(abs / 60); - var mins = Math.round(abs % 60); - if (doIso) { - return sign + padStart(hours, 2) + ':' + padStart(mins, 2); - } - else { - return 'GMT' + sign + hours + (mins ? ':' + padStart(mins, 2) : ''); - } - } - // Arg Utils - function createVerboseFormattingArg(start, end, context, separator) { - var startInfo = expandZonedMarker(start, context.calendarSystem); - var endInfo = end ? expandZonedMarker(end, context.calendarSystem) : null; - return { - date: startInfo, - start: startInfo, - end: endInfo, - timeZone: context.timeZone, - localeCodes: context.locale.codes, - separator: separator - }; - } - function expandZonedMarker(dateInfo, calendarSystem) { - var a = calendarSystem.markerToArray(dateInfo.marker); - return { - marker: dateInfo.marker, - timeZoneOffset: dateInfo.timeZoneOffset, - array: a, - year: a[0], - month: a[1], - day: a[2], - hour: a[3], - minute: a[4], - second: a[5], - millisecond: a[6] - }; - } - - var EventSourceApi = /** @class */ (function () { - function EventSourceApi(calendar, internalEventSource) { - this.calendar = calendar; - this.internalEventSource = internalEventSource; - } - EventSourceApi.prototype.remove = function () { - this.calendar.dispatch({ - type: 'REMOVE_EVENT_SOURCE', - sourceId: this.internalEventSource.sourceId - }); - }; - EventSourceApi.prototype.refetch = function () { - this.calendar.dispatch({ - type: 'FETCH_EVENT_SOURCES', - sourceIds: [this.internalEventSource.sourceId] - }); - }; - Object.defineProperty(EventSourceApi.prototype, "id", { - get: function () { - return this.internalEventSource.publicId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventSourceApi.prototype, "url", { - // only relevant to json-feed event sources - get: function () { - return this.internalEventSource.meta.url; - }, - enumerable: true, - configurable: true - }); - return EventSourceApi; - }()); - - var EventApi = /** @class */ (function () { - function EventApi(calendar, def, instance) { - this._calendar = calendar; - this._def = def; - this._instance = instance || null; - } - /* - TODO: make event struct more responsible for this - */ - EventApi.prototype.setProp = function (name, val) { - var _a, _b; - if (name in DATE_PROPS) ; - else if (name in NON_DATE_PROPS) { - if (typeof NON_DATE_PROPS[name] === 'function') { - val = NON_DATE_PROPS[name](val); - } - this.mutate({ - standardProps: (_a = {}, _a[name] = val, _a) - }); - } - else if (name in UNSCOPED_EVENT_UI_PROPS) { - var ui = void 0; - if (typeof UNSCOPED_EVENT_UI_PROPS[name] === 'function') { - val = UNSCOPED_EVENT_UI_PROPS[name](val); - } - if (name === 'color') { - ui = { backgroundColor: val, borderColor: val }; - } - else if (name === 'editable') { - ui = { startEditable: val, durationEditable: val }; - } - else { - ui = (_b = {}, _b[name] = val, _b); - } - this.mutate({ - standardProps: { ui: ui } - }); - } - }; - EventApi.prototype.setExtendedProp = function (name, val) { - var _a; - this.mutate({ - extendedProps: (_a = {}, _a[name] = val, _a) - }); - }; - EventApi.prototype.setStart = function (startInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var start = dateEnv.createMarker(startInput); - if (start && this._instance) { // TODO: warning if parsed bad - var instanceRange = this._instance.range; - var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); // what if parsed bad!? - if (options.maintainDuration) { - this.mutate({ datesDelta: startDelta }); - } - else { - this.mutate({ startDelta: startDelta }); - } - } - }; - EventApi.prototype.setEnd = function (endInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var end; - if (endInput != null) { - end = dateEnv.createMarker(endInput); - if (!end) { - return; // TODO: warning if parsed bad - } - } - if (this._instance) { - if (end) { - var endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity); - this.mutate({ endDelta: endDelta }); - } - else { - this.mutate({ standardProps: { hasEnd: false } }); - } - } - }; - EventApi.prototype.setDates = function (startInput, endInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var standardProps = { allDay: options.allDay }; - var start = dateEnv.createMarker(startInput); - var end; - if (!start) { - return; // TODO: warning if parsed bad - } - if (endInput != null) { - end = dateEnv.createMarker(endInput); - if (!end) { // TODO: warning if parsed bad - return; - } - } - if (this._instance) { - var instanceRange = this._instance.range; - // when computing the diff for an event being converted to all-day, - // compute diff off of the all-day values the way event-mutation does. - if (options.allDay === true) { - instanceRange = computeAlignedDayRange(instanceRange); - } - var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); - if (end) { - var endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity); - if (durationsEqual(startDelta, endDelta)) { - this.mutate({ datesDelta: startDelta, standardProps: standardProps }); - } - else { - this.mutate({ startDelta: startDelta, endDelta: endDelta, standardProps: standardProps }); - } - } - else { // means "clear the end" - standardProps.hasEnd = false; - this.mutate({ datesDelta: startDelta, standardProps: standardProps }); - } - } - }; - EventApi.prototype.moveStart = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ startDelta: delta }); - } - }; - EventApi.prototype.moveEnd = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ endDelta: delta }); - } - }; - EventApi.prototype.moveDates = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ datesDelta: delta }); - } - }; - EventApi.prototype.setAllDay = function (allDay, options) { - if (options === void 0) { options = {}; } - var standardProps = { allDay: allDay }; - var maintainDuration = options.maintainDuration; - if (maintainDuration == null) { - maintainDuration = this._calendar.opt('allDayMaintainDuration'); - } - if (this._def.allDay !== allDay) { - standardProps.hasEnd = maintainDuration; - } - this.mutate({ standardProps: standardProps }); - }; - EventApi.prototype.formatRange = function (formatInput) { - var dateEnv = this._calendar.dateEnv; - var instance = this._instance; - var formatter = createFormatter(formatInput, this._calendar.opt('defaultRangeSeparator')); - if (this._def.hasEnd) { - return dateEnv.formatRange(instance.range.start, instance.range.end, formatter, { - forcedStartTzo: instance.forcedStartTzo, - forcedEndTzo: instance.forcedEndTzo - }); - } - else { - return dateEnv.format(instance.range.start, formatter, { - forcedTzo: instance.forcedStartTzo - }); - } - }; - EventApi.prototype.mutate = function (mutation) { - var def = this._def; - var instance = this._instance; - if (instance) { - this._calendar.dispatch({ - type: 'MUTATE_EVENTS', - instanceId: instance.instanceId, - mutation: mutation, - fromApi: true - }); - var eventStore = this._calendar.state.eventStore; - this._def = eventStore.defs[def.defId]; - this._instance = eventStore.instances[instance.instanceId]; - } - }; - EventApi.prototype.remove = function () { - this._calendar.dispatch({ - type: 'REMOVE_EVENT_DEF', - defId: this._def.defId - }); - }; - Object.defineProperty(EventApi.prototype, "source", { - get: function () { - var sourceId = this._def.sourceId; - if (sourceId) { - return new EventSourceApi(this._calendar, this._calendar.state.eventSources[sourceId]); - } - return null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "start", { - get: function () { - return this._instance ? - this._calendar.dateEnv.toDate(this._instance.range.start) : - null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "end", { - get: function () { - return (this._instance && this._def.hasEnd) ? - this._calendar.dateEnv.toDate(this._instance.range.end) : - null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "id", { - // computable props that all access the def - // TODO: find a TypeScript-compatible way to do this at scale - get: function () { return this._def.publicId; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "groupId", { - get: function () { return this._def.groupId; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "allDay", { - get: function () { return this._def.allDay; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "title", { - get: function () { return this._def.title; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "url", { - get: function () { return this._def.url; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "rendering", { - get: function () { return this._def.rendering; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "startEditable", { - get: function () { return this._def.ui.startEditable; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "durationEditable", { - get: function () { return this._def.ui.durationEditable; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "constraint", { - get: function () { return this._def.ui.constraints[0] || null; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "overlap", { - get: function () { return this._def.ui.overlap; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "allow", { - get: function () { return this._def.ui.allows[0] || null; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "backgroundColor", { - get: function () { return this._def.ui.backgroundColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "borderColor", { - get: function () { return this._def.ui.borderColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "textColor", { - get: function () { return this._def.ui.textColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "classNames", { - // NOTE: user can't modify these because Object.freeze was called in event-def parsing - get: function () { return this._def.ui.classNames; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "extendedProps", { - get: function () { return this._def.extendedProps; }, - enumerable: true, - configurable: true - }); - return EventApi; - }()); - - /* - Specifying nextDayThreshold signals that all-day ranges should be sliced. - */ - function sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshold) { - var inverseBgByGroupId = {}; - var inverseBgByDefId = {}; - var defByGroupId = {}; - var bgRanges = []; - var fgRanges = []; - var eventUis = compileEventUis(eventStore.defs, eventUiBases); - for (var defId in eventStore.defs) { - var def = eventStore.defs[defId]; - if (def.rendering === 'inverse-background') { - if (def.groupId) { - inverseBgByGroupId[def.groupId] = []; - if (!defByGroupId[def.groupId]) { - defByGroupId[def.groupId] = def; - } - } - else { - inverseBgByDefId[defId] = []; - } - } - } - for (var instanceId in eventStore.instances) { - var instance = eventStore.instances[instanceId]; - var def = eventStore.defs[instance.defId]; - var ui = eventUis[def.defId]; - var origRange = instance.range; - var normalRange = (!def.allDay && nextDayThreshold) ? - computeVisibleDayRange(origRange, nextDayThreshold) : - origRange; - var slicedRange = intersectRanges(normalRange, framingRange); - if (slicedRange) { - if (def.rendering === 'inverse-background') { - if (def.groupId) { - inverseBgByGroupId[def.groupId].push(slicedRange); - } - else { - inverseBgByDefId[instance.defId].push(slicedRange); - } - } - else { - (def.rendering === 'background' ? bgRanges : fgRanges).push({ - def: def, - ui: ui, - instance: instance, - range: slicedRange, - isStart: normalRange.start && normalRange.start.valueOf() === slicedRange.start.valueOf(), - isEnd: normalRange.end && normalRange.end.valueOf() === slicedRange.end.valueOf() - }); - } - } - } - for (var groupId in inverseBgByGroupId) { // BY GROUP - var ranges = inverseBgByGroupId[groupId]; - var invertedRanges = invertRanges(ranges, framingRange); - for (var _i = 0, invertedRanges_1 = invertedRanges; _i < invertedRanges_1.length; _i++) { - var invertedRange = invertedRanges_1[_i]; - var def = defByGroupId[groupId]; - var ui = eventUis[def.defId]; - bgRanges.push({ - def: def, - ui: ui, - instance: null, - range: invertedRange, - isStart: false, - isEnd: false - }); - } - } - for (var defId in inverseBgByDefId) { - var ranges = inverseBgByDefId[defId]; - var invertedRanges = invertRanges(ranges, framingRange); - for (var _a = 0, invertedRanges_2 = invertedRanges; _a < invertedRanges_2.length; _a++) { - var invertedRange = invertedRanges_2[_a]; - bgRanges.push({ - def: eventStore.defs[defId], - ui: eventUis[defId], - instance: null, - range: invertedRange, - isStart: false, - isEnd: false - }); - } - } - return { bg: bgRanges, fg: fgRanges }; - } - function hasBgRendering(def) { - return def.rendering === 'background' || def.rendering === 'inverse-background'; - } - function filterSegsViaEls(view, segs, isMirror) { - if (view.hasPublicHandlers('eventRender')) { - segs = segs.filter(function (seg) { - var custom = view.publiclyTrigger('eventRender', [ - { - event: new EventApi(view.calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirror, - isStart: seg.isStart, - isEnd: seg.isEnd, - // TODO: include seg.range once all components consistently generate it - el: seg.el, - view: view - } - ]); - if (custom === false) { // means don't render at all - return false; - } - else if (custom && custom !== true) { - seg.el = custom; - } - return true; - }); - } - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - setElSeg(seg.el, seg); - } - return segs; - } - function setElSeg(el, seg) { - el.fcSeg = seg; - } - function getElSeg(el) { - return el.fcSeg || null; - } - // event ui computation - function compileEventUis(eventDefs, eventUiBases) { - return mapHash(eventDefs, function (eventDef) { - return compileEventUi(eventDef, eventUiBases); - }); - } - function compileEventUi(eventDef, eventUiBases) { - var uis = []; - if (eventUiBases['']) { - uis.push(eventUiBases['']); - } - if (eventUiBases[eventDef.defId]) { - uis.push(eventUiBases[eventDef.defId]); - } - uis.push(eventDef.ui); - return combineEventUis(uis); - } - - // applies the mutation to ALL defs/instances within the event store - function applyMutationToEventStore(eventStore, eventConfigBase, mutation, calendar) { - var eventConfigs = compileEventUis(eventStore.defs, eventConfigBase); - var dest = createEmptyEventStore(); - for (var defId in eventStore.defs) { - var def = eventStore.defs[defId]; - dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, calendar.pluginSystem.hooks.eventDefMutationAppliers, calendar); - } - for (var instanceId in eventStore.instances) { - var instance = eventStore.instances[instanceId]; - var def = dest.defs[instance.defId]; // important to grab the newly modified def - dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, calendar); - } - return dest; - } - function applyMutationToEventDef(eventDef, eventConfig, mutation, appliers, calendar) { - var standardProps = mutation.standardProps || {}; - // if hasEnd has not been specified, guess a good value based on deltas. - // if duration will change, there's no way the default duration will persist, - // and thus, we need to mark the event as having a real end - if (standardProps.hasEnd == null && - eventConfig.durationEditable && - (mutation.startDelta || mutation.endDelta)) { - standardProps.hasEnd = true; // TODO: is this mutation okay? - } - var copy = __assign({}, eventDef, standardProps, { ui: __assign({}, eventDef.ui, standardProps.ui) }); - if (mutation.extendedProps) { - copy.extendedProps = __assign({}, copy.extendedProps, mutation.extendedProps); - } - for (var _i = 0, appliers_1 = appliers; _i < appliers_1.length; _i++) { - var applier = appliers_1[_i]; - applier(copy, mutation, calendar); - } - if (!copy.hasEnd && calendar.opt('forceEventDuration')) { - copy.hasEnd = true; - } - return copy; - } - function applyMutationToEventInstance(eventInstance, eventDef, // must first be modified by applyMutationToEventDef - eventConfig, mutation, calendar) { - var dateEnv = calendar.dateEnv; - var forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true; - var clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false; - var copy = __assign({}, eventInstance); - if (forceAllDay) { - copy.range = computeAlignedDayRange(copy.range); - } - if (mutation.datesDelta && eventConfig.startEditable) { - copy.range = { - start: dateEnv.add(copy.range.start, mutation.datesDelta), - end: dateEnv.add(copy.range.end, mutation.datesDelta) - }; - } - if (mutation.startDelta && eventConfig.durationEditable) { - copy.range = { - start: dateEnv.add(copy.range.start, mutation.startDelta), - end: copy.range.end - }; - } - if (mutation.endDelta && eventConfig.durationEditable) { - copy.range = { - start: copy.range.start, - end: dateEnv.add(copy.range.end, mutation.endDelta) - }; - } - if (clearEnd) { - copy.range = { - start: copy.range.start, - end: calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start) - }; - } - // in case event was all-day but the supplied deltas were not - // better util for this? - if (eventDef.allDay) { - copy.range = { - start: startOfDay(copy.range.start), - end: startOfDay(copy.range.end) - }; - } - // handle invalid durations - if (copy.range.end < copy.range.start) { - copy.range.end = calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start); - } - return copy; - } - - function reduceEventStore (eventStore, action, eventSources, dateProfile, calendar) { - switch (action.type) { - case 'RECEIVE_EVENTS': // raw - return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, calendar); - case 'ADD_EVENTS': // already parsed, but not expanded - return addEvent(eventStore, action.eventStore, // new ones - dateProfile ? dateProfile.activeRange : null, calendar); - case 'MERGE_EVENTS': // already parsed and expanded - return mergeEventStores(eventStore, action.eventStore); - case 'PREV': // TODO: how do we track all actions that affect dateProfile :( - case 'NEXT': - case 'SET_DATE': - case 'SET_VIEW_TYPE': - if (dateProfile) { - return expandRecurring(eventStore, dateProfile.activeRange, calendar); - } - else { - return eventStore; - } - case 'CHANGE_TIMEZONE': - return rezoneDates(eventStore, action.oldDateEnv, calendar.dateEnv); - case 'MUTATE_EVENTS': - return applyMutationToRelated(eventStore, action.instanceId, action.mutation, action.fromApi, calendar); - case 'REMOVE_EVENT_INSTANCES': - return excludeInstances(eventStore, action.instances); - case 'REMOVE_EVENT_DEF': - return filterEventStoreDefs(eventStore, function (eventDef) { - return eventDef.defId !== action.defId; - }); - case 'REMOVE_EVENT_SOURCE': - return excludeEventsBySourceId(eventStore, action.sourceId); - case 'REMOVE_ALL_EVENT_SOURCES': - return filterEventStoreDefs(eventStore, function (eventDef) { - return !eventDef.sourceId; // only keep events with no source id - }); - case 'REMOVE_ALL_EVENTS': - return createEmptyEventStore(); - case 'RESET_EVENTS': - return { - defs: eventStore.defs, - instances: eventStore.instances - }; - default: - return eventStore; - } - } - function receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, calendar) { - if (eventSource && // not already removed - fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources - ) { - var subset = parseEvents(transformRawEvents(rawEvents, eventSource, calendar), eventSource.sourceId, calendar); - if (fetchRange) { - subset = expandRecurring(subset, fetchRange, calendar); - } - return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset); - } - return eventStore; - } - function addEvent(eventStore, subset, expandRange, calendar) { - if (expandRange) { - subset = expandRecurring(subset, expandRange, calendar); - } - return mergeEventStores(eventStore, subset); - } - function rezoneDates(eventStore, oldDateEnv, newDateEnv) { - var defs = eventStore.defs; - var instances = mapHash(eventStore.instances, function (instance) { - var def = defs[instance.defId]; - if (def.allDay || def.recurringDef) { - return instance; // isn't dependent on timezone - } - else { - return __assign({}, instance, { range: { - start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)), - end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo)) - }, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo }); - } - }); - return { defs: defs, instances: instances }; - } - function applyMutationToRelated(eventStore, instanceId, mutation, fromApi, calendar) { - var relevant = getRelevantEvents(eventStore, instanceId); - var eventConfigBase = fromApi ? - { '': { - startEditable: true, - durationEditable: true, - constraints: [], - overlap: null, - allows: [], - backgroundColor: '', - borderColor: '', - textColor: '', - classNames: [] - } } : - calendar.eventUiBases; - relevant = applyMutationToEventStore(relevant, eventConfigBase, mutation, calendar); - return mergeEventStores(eventStore, relevant); - } - function excludeEventsBySourceId(eventStore, sourceId) { - return filterEventStoreDefs(eventStore, function (eventDef) { - return eventDef.sourceId !== sourceId; - }); - } - // QUESTION: why not just return instances? do a general object-property-exclusion util - function excludeInstances(eventStore, removals) { - return { - defs: eventStore.defs, - instances: filterHash(eventStore.instances, function (instance) { - return !removals[instance.instanceId]; - }) - }; - } - - // high-level segmenting-aware tester functions - // ------------------------------------------------------------------------------------------------------------------------ - function isInteractionValid(interaction, calendar) { - return isNewPropsValid({ eventDrag: interaction }, calendar); // HACK: the eventDrag props is used for ALL interactions - } - function isDateSelectionValid(dateSelection, calendar) { - return isNewPropsValid({ dateSelection: dateSelection }, calendar); - } - function isNewPropsValid(newProps, calendar) { - var view = calendar.view; - var props = __assign({ businessHours: view ? view.props.businessHours : createEmptyEventStore(), dateSelection: '', eventStore: calendar.state.eventStore, eventUiBases: calendar.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps); - return (calendar.pluginSystem.hooks.isPropsValid || isPropsValid)(props, calendar); - } - function isPropsValid(state, calendar, dateSpanMeta, filterConfig) { - if (dateSpanMeta === void 0) { dateSpanMeta = {}; } - if (state.eventDrag && !isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig)) { - return false; - } - if (state.dateSelection && !isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig)) { - return false; - } - return true; - } - // Moving Event Validation - // ------------------------------------------------------------------------------------------------------------------------ - function isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig) { - var interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions - var subjectEventStore = interaction.mutatedEvents; - var subjectDefs = subjectEventStore.defs; - var subjectInstances = subjectEventStore.instances; - var subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ? - state.eventUiBases : - { '': calendar.selectionConfig } // if not a real event, validate as a selection - ); - if (filterConfig) { - subjectConfigs = mapHash(subjectConfigs, filterConfig); - } - var otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances); // exclude the subject events. TODO: exclude defs too? - var otherDefs = otherEventStore.defs; - var otherInstances = otherEventStore.instances; - var otherConfigs = compileEventUis(otherDefs, state.eventUiBases); - for (var subjectInstanceId in subjectInstances) { - var subjectInstance = subjectInstances[subjectInstanceId]; - var subjectRange = subjectInstance.range; - var subjectConfig = subjectConfigs[subjectInstance.defId]; - var subjectDef = subjectDefs[subjectInstance.defId]; - // constraint - if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, calendar)) { - return false; - } - // overlap - var overlapFunc = calendar.opt('eventOverlap'); - if (typeof overlapFunc !== 'function') { - overlapFunc = null; - } - for (var otherInstanceId in otherInstances) { - var otherInstance = otherInstances[otherInstanceId]; - // intersect! evaluate - if (rangesIntersect(subjectRange, otherInstance.range)) { - var otherOverlap = otherConfigs[otherInstance.defId].overlap; - // consider the other event's overlap. only do this if the subject event is a "real" event - if (otherOverlap === false && interaction.isEvent) { - return false; - } - if (subjectConfig.overlap === false) { - return false; - } - if (overlapFunc && !overlapFunc(new EventApi(calendar, otherDefs[otherInstance.defId], otherInstance), // still event - new EventApi(calendar, subjectDef, subjectInstance) // moving event - )) { - return false; - } - } - } - // allow (a function) - var calendarEventStore = calendar.state.eventStore; // need global-to-calendar, not local to component (splittable)state - for (var _i = 0, _a = subjectConfig.allows; _i < _a.length; _i++) { - var subjectAllow = _a[_i]; - var subjectDateSpan = __assign({}, dateSpanMeta, { range: subjectInstance.range, allDay: subjectDef.allDay }); - var origDef = calendarEventStore.defs[subjectDef.defId]; - var origInstance = calendarEventStore.instances[subjectInstanceId]; - var eventApi = void 0; - if (origDef) { // was previously in the calendar - eventApi = new EventApi(calendar, origDef, origInstance); - } - else { // was an external event - eventApi = new EventApi(calendar, subjectDef); // no instance, because had no dates - } - if (!subjectAllow(calendar.buildDateSpanApi(subjectDateSpan), eventApi)) { - return false; - } - } - } - return true; - } - // Date Selection Validation - // ------------------------------------------------------------------------------------------------------------------------ - function isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig) { - var relevantEventStore = state.eventStore; - var relevantDefs = relevantEventStore.defs; - var relevantInstances = relevantEventStore.instances; - var selection = state.dateSelection; - var selectionRange = selection.range; - var selectionConfig = calendar.selectionConfig; - if (filterConfig) { - selectionConfig = filterConfig(selectionConfig); - } - // constraint - if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, calendar)) { - return false; - } - // overlap - var overlapFunc = calendar.opt('selectOverlap'); - if (typeof overlapFunc !== 'function') { - overlapFunc = null; - } - for (var relevantInstanceId in relevantInstances) { - var relevantInstance = relevantInstances[relevantInstanceId]; - // intersect! evaluate - if (rangesIntersect(selectionRange, relevantInstance.range)) { - if (selectionConfig.overlap === false) { - return false; - } - if (overlapFunc && !overlapFunc(new EventApi(calendar, relevantDefs[relevantInstance.defId], relevantInstance))) { - return false; - } - } - } - // allow (a function) - for (var _i = 0, _a = selectionConfig.allows; _i < _a.length; _i++) { - var selectionAllow = _a[_i]; - var fullDateSpan = __assign({}, dateSpanMeta, selection); - if (!selectionAllow(calendar.buildDateSpanApi(fullDateSpan), null)) { - return false; - } - } - return true; - } - // Constraint Utils - // ------------------------------------------------------------------------------------------------------------------------ - function allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, calendar) { - for (var _i = 0, constraints_1 = constraints; _i < constraints_1.length; _i++) { - var constraint = constraints_1[_i]; - if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, calendar), subjectRange)) { - return false; - } - } - return true; - } - function constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours - otherEventStore, // for if constraint is an even group ID - businessHoursUnexpanded, // for if constraint is 'businessHours' - calendar // for expanding businesshours - ) { - if (constraint === 'businessHours') { - return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, calendar)); - } - else if (typeof constraint === 'string') { // an group ID - return eventStoreToRanges(filterEventStoreDefs(otherEventStore, function (eventDef) { - return eventDef.groupId === constraint; - })); - } - else if (typeof constraint === 'object' && constraint) { // non-null object - return eventStoreToRanges(expandRecurring(constraint, subjectRange, calendar)); - } - return []; // if it's false - } - // TODO: move to event-store file? - function eventStoreToRanges(eventStore) { - var instances = eventStore.instances; - var ranges = []; - for (var instanceId in instances) { - ranges.push(instances[instanceId].range); - } - return ranges; - } - // TODO: move to geom file? - function anyRangesContainRange(outerRanges, innerRange) { - for (var _i = 0, outerRanges_1 = outerRanges; _i < outerRanges_1.length; _i++) { - var outerRange = outerRanges_1[_i]; - if (rangeContainsRange(outerRange, innerRange)) { - return true; - } - } - return false; - } - // Parsing - // ------------------------------------------------------------------------------------------------------------------------ - function normalizeConstraint(input, calendar) { - if (Array.isArray(input)) { - return parseEvents(input, '', calendar, true); // allowOpenRange=true - } - else if (typeof input === 'object' && input) { // non-null object - return parseEvents([input], '', calendar, true); // allowOpenRange=true - } - else if (input != null) { - return String(input); - } - else { - return null; - } - } - - function htmlEscape(s) { - return (s + '').replace(/&/g, '&') - .replace(//g, '>') - .replace(/'/g, ''') - .replace(/"/g, '"') - .replace(/\n/g, '
'); - } - // Given a hash of CSS properties, returns a string of CSS. - // Uses property names as-is (no camel-case conversion). Will not make statements for null/undefined values. - function cssToStr(cssProps) { - var statements = []; - for (var name_1 in cssProps) { - var val = cssProps[name_1]; - if (val != null && val !== '') { - statements.push(name_1 + ':' + val); - } - } - return statements.join(';'); - } - // Given an object hash of HTML attribute names to values, - // generates a string that can be injected between < > in HTML - function attrsToStr(attrs) { - var parts = []; - for (var name_2 in attrs) { - var val = attrs[name_2]; - if (val != null) { - parts.push(name_2 + '="' + htmlEscape(val) + '"'); - } - } - return parts.join(' '); - } - function parseClassName(raw) { - if (Array.isArray(raw)) { - return raw; - } - else if (typeof raw === 'string') { - return raw.split(/\s+/); - } - else { - return []; - } - } - - var UNSCOPED_EVENT_UI_PROPS = { - editable: Boolean, - startEditable: Boolean, - durationEditable: Boolean, - constraint: null, - overlap: null, - allow: null, - className: parseClassName, - classNames: parseClassName, - color: String, - backgroundColor: String, - borderColor: String, - textColor: String - }; - function processUnscopedUiProps(rawProps, calendar, leftovers) { - var props = refineProps(rawProps, UNSCOPED_EVENT_UI_PROPS, {}, leftovers); - var constraint = normalizeConstraint(props.constraint, calendar); - return { - startEditable: props.startEditable != null ? props.startEditable : props.editable, - durationEditable: props.durationEditable != null ? props.durationEditable : props.editable, - constraints: constraint != null ? [constraint] : [], - overlap: props.overlap, - allows: props.allow != null ? [props.allow] : [], - backgroundColor: props.backgroundColor || props.color, - borderColor: props.borderColor || props.color, - textColor: props.textColor, - classNames: props.classNames.concat(props.className) - }; - } - function processScopedUiProps(prefix, rawScoped, calendar, leftovers) { - var rawUnscoped = {}; - var wasFound = {}; - for (var key in UNSCOPED_EVENT_UI_PROPS) { - var scopedKey = prefix + capitaliseFirstLetter(key); - rawUnscoped[key] = rawScoped[scopedKey]; - wasFound[scopedKey] = true; - } - if (prefix === 'event') { - rawUnscoped.editable = rawScoped.editable; // special case. there is no 'eventEditable', just 'editable' - } - if (leftovers) { - for (var key in rawScoped) { - if (!wasFound[key]) { - leftovers[key] = rawScoped[key]; - } - } - } - return processUnscopedUiProps(rawUnscoped, calendar); - } - var EMPTY_EVENT_UI = { - startEditable: null, - durationEditable: null, - constraints: [], - overlap: null, - allows: [], - backgroundColor: '', - borderColor: '', - textColor: '', - classNames: [] - }; - // prevent against problems with <2 args! - function combineEventUis(uis) { - return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI); - } - function combineTwoEventUis(item0, item1) { - return { - startEditable: item1.startEditable != null ? item1.startEditable : item0.startEditable, - durationEditable: item1.durationEditable != null ? item1.durationEditable : item0.durationEditable, - constraints: item0.constraints.concat(item1.constraints), - overlap: typeof item1.overlap === 'boolean' ? item1.overlap : item0.overlap, - allows: item0.allows.concat(item1.allows), - backgroundColor: item1.backgroundColor || item0.backgroundColor, - borderColor: item1.borderColor || item0.borderColor, - textColor: item1.textColor || item0.textColor, - classNames: item0.classNames.concat(item1.classNames) - }; - } - - var NON_DATE_PROPS = { - id: String, - groupId: String, - title: String, - url: String, - rendering: String, - extendedProps: null - }; - var DATE_PROPS = { - start: null, - date: null, - end: null, - allDay: null - }; - var uid = 0; - function parseEvent(raw, sourceId, calendar, allowOpenRange) { - var allDayDefault = computeIsAllDayDefault(sourceId, calendar); - var leftovers0 = {}; - var recurringRes = parseRecurring(raw, // raw, but with single-event stuff stripped out - allDayDefault, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes, leftovers0 // will populate with non-recurring props - ); - if (recurringRes) { - var def = parseEventDef(leftovers0, sourceId, recurringRes.allDay, Boolean(recurringRes.duration), calendar); - def.recurringDef = { - typeId: recurringRes.typeId, - typeData: recurringRes.typeData, - duration: recurringRes.duration - }; - return { def: def, instance: null }; - } - else { - var leftovers1 = {}; - var singleRes = parseSingle(raw, allDayDefault, calendar, leftovers1, allowOpenRange); - if (singleRes) { - var def = parseEventDef(leftovers1, sourceId, singleRes.allDay, singleRes.hasEnd, calendar); - var instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo); - return { def: def, instance: instance }; - } - } - return null; - } - /* - Will NOT populate extendedProps with the leftover properties. - Will NOT populate date-related props. - The EventNonDateInput has been normalized (id => publicId, etc). - */ - function parseEventDef(raw, sourceId, allDay, hasEnd, calendar) { - var leftovers = {}; - var def = pluckNonDateProps(raw, calendar, leftovers); - def.defId = String(uid++); - def.sourceId = sourceId; - def.allDay = allDay; - def.hasEnd = hasEnd; - for (var _i = 0, _a = calendar.pluginSystem.hooks.eventDefParsers; _i < _a.length; _i++) { - var eventDefParser = _a[_i]; - var newLeftovers = {}; - eventDefParser(def, leftovers, newLeftovers); - leftovers = newLeftovers; - } - def.extendedProps = __assign(leftovers, def.extendedProps || {}); - // help out EventApi from having user modify props - Object.freeze(def.ui.classNames); - Object.freeze(def.extendedProps); - return def; - } - function createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) { - return { - instanceId: String(uid++), - defId: defId, - range: range, - forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo, - forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo - }; - } - function parseSingle(raw, allDayDefault, calendar, leftovers, allowOpenRange) { - var props = pluckDateProps(raw, leftovers); - var allDay = props.allDay; - var startMeta; - var startMarker = null; - var hasEnd = false; - var endMeta; - var endMarker = null; - startMeta = calendar.dateEnv.createMarkerMeta(props.start); - if (startMeta) { - startMarker = startMeta.marker; - } - else if (!allowOpenRange) { - return null; - } - if (props.end != null) { - endMeta = calendar.dateEnv.createMarkerMeta(props.end); - } - if (allDay == null) { - if (allDayDefault != null) { - allDay = allDayDefault; - } - else { - // fall back to the date props LAST - allDay = (!startMeta || startMeta.isTimeUnspecified) && - (!endMeta || endMeta.isTimeUnspecified); - } - } - if (allDay && startMarker) { - startMarker = startOfDay(startMarker); - } - if (endMeta) { - endMarker = endMeta.marker; - if (allDay) { - endMarker = startOfDay(endMarker); - } - if (startMarker && endMarker <= startMarker) { - endMarker = null; - } - } - if (endMarker) { - hasEnd = true; - } - else if (!allowOpenRange) { - hasEnd = calendar.opt('forceEventDuration') || false; - endMarker = calendar.dateEnv.add(startMarker, allDay ? - calendar.defaultAllDayEventDuration : - calendar.defaultTimedEventDuration); - } - return { - allDay: allDay, - hasEnd: hasEnd, - range: { start: startMarker, end: endMarker }, - forcedStartTzo: startMeta ? startMeta.forcedTzo : null, - forcedEndTzo: endMeta ? endMeta.forcedTzo : null - }; - } - function pluckDateProps(raw, leftovers) { - var props = refineProps(raw, DATE_PROPS, {}, leftovers); - props.start = (props.start !== null) ? props.start : props.date; - delete props.date; - return props; - } - function pluckNonDateProps(raw, calendar, leftovers) { - var preLeftovers = {}; - var props = refineProps(raw, NON_DATE_PROPS, {}, preLeftovers); - var ui = processUnscopedUiProps(preLeftovers, calendar, leftovers); - props.publicId = props.id; - delete props.id; - props.ui = ui; - return props; - } - function computeIsAllDayDefault(sourceId, calendar) { - var res = null; - if (sourceId) { - var source = calendar.state.eventSources[sourceId]; - res = source.allDayDefault; - } - if (res == null) { - res = calendar.opt('allDayDefault'); - } - return res; - } - - var DEF_DEFAULTS = { - startTime: '09:00', - endTime: '17:00', - daysOfWeek: [1, 2, 3, 4, 5], - rendering: 'inverse-background', - classNames: 'fc-nonbusiness', - groupId: '_businessHours' // so multiple defs get grouped - }; - /* - TODO: pass around as EventDefHash!!! - */ - function parseBusinessHours(input, calendar) { - return parseEvents(refineInputs(input), '', calendar); - } - function refineInputs(input) { - var rawDefs; - if (input === true) { - rawDefs = [{}]; // will get DEF_DEFAULTS verbatim - } - else if (Array.isArray(input)) { - // if specifying an array, every sub-definition NEEDS a day-of-week - rawDefs = input.filter(function (rawDef) { - return rawDef.daysOfWeek; - }); - } - else if (typeof input === 'object' && input) { // non-null object - rawDefs = [input]; - } - else { // is probably false - rawDefs = []; - } - rawDefs = rawDefs.map(function (rawDef) { - return __assign({}, DEF_DEFAULTS, rawDef); - }); - return rawDefs; - } - - function memoizeRendering(renderFunc, unrenderFunc, dependencies) { - if (dependencies === void 0) { dependencies = []; } - var dependents = []; - var thisContext; - var prevArgs; - function unrender() { - if (prevArgs) { - for (var _i = 0, dependents_1 = dependents; _i < dependents_1.length; _i++) { - var dependent = dependents_1[_i]; - dependent.unrender(); - } - if (unrenderFunc) { - unrenderFunc.apply(thisContext, prevArgs); - } - prevArgs = null; - } - } - function res() { - if (!prevArgs || !isArraysEqual(prevArgs, arguments)) { - unrender(); - thisContext = this; - prevArgs = arguments; - renderFunc.apply(this, arguments); - } - } - res.dependents = dependents; - res.unrender = unrender; - for (var _i = 0, dependencies_1 = dependencies; _i < dependencies_1.length; _i++) { - var dependency = dependencies_1[_i]; - dependency.dependents.push(res); - } - return res; - } - - var EMPTY_EVENT_STORE = createEmptyEventStore(); // for purecomponents. TODO: keep elsewhere - var Splitter = /** @class */ (function () { - function Splitter() { - this.getKeysForEventDefs = memoize(this._getKeysForEventDefs); - this.splitDateSelection = memoize(this._splitDateSpan); - this.splitEventStore = memoize(this._splitEventStore); - this.splitIndividualUi = memoize(this._splitIndividualUi); - this.splitEventDrag = memoize(this._splitInteraction); - this.splitEventResize = memoize(this._splitInteraction); - this.eventUiBuilders = {}; // TODO: typescript protection - } - Splitter.prototype.splitProps = function (props) { - var _this = this; - var keyInfos = this.getKeyInfo(props); - var defKeys = this.getKeysForEventDefs(props.eventStore); - var dateSelections = this.splitDateSelection(props.dateSelection); - var individualUi = this.splitIndividualUi(props.eventUiBases, defKeys); // the individual *bases* - var eventStores = this.splitEventStore(props.eventStore, defKeys); - var eventDrags = this.splitEventDrag(props.eventDrag); - var eventResizes = this.splitEventResize(props.eventResize); - var splitProps = {}; - this.eventUiBuilders = mapHash(keyInfos, function (info, key) { - return _this.eventUiBuilders[key] || memoize(buildEventUiForKey); - }); - for (var key in keyInfos) { - var keyInfo = keyInfos[key]; - var eventStore = eventStores[key] || EMPTY_EVENT_STORE; - var buildEventUi = this.eventUiBuilders[key]; - splitProps[key] = { - businessHours: keyInfo.businessHours || props.businessHours, - dateSelection: dateSelections[key] || null, - eventStore: eventStore, - eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]), - eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '', - eventDrag: eventDrags[key] || null, - eventResize: eventResizes[key] || null - }; - } - return splitProps; - }; - Splitter.prototype._splitDateSpan = function (dateSpan) { - var dateSpans = {}; - if (dateSpan) { - var keys = this.getKeysForDateSpan(dateSpan); - for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { - var key = keys_1[_i]; - dateSpans[key] = dateSpan; - } - } - return dateSpans; - }; - Splitter.prototype._getKeysForEventDefs = function (eventStore) { - var _this = this; - return mapHash(eventStore.defs, function (eventDef) { - return _this.getKeysForEventDef(eventDef); - }); - }; - Splitter.prototype._splitEventStore = function (eventStore, defKeys) { - var defs = eventStore.defs, instances = eventStore.instances; - var splitStores = {}; - for (var defId in defs) { - for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) { - var key = _a[_i]; - if (!splitStores[key]) { - splitStores[key] = createEmptyEventStore(); - } - splitStores[key].defs[defId] = defs[defId]; - } - } - for (var instanceId in instances) { - var instance = instances[instanceId]; - for (var _b = 0, _c = defKeys[instance.defId]; _b < _c.length; _b++) { - var key = _c[_b]; - if (splitStores[key]) { // must have already been created - splitStores[key].instances[instanceId] = instance; - } - } - } - return splitStores; - }; - Splitter.prototype._splitIndividualUi = function (eventUiBases, defKeys) { - var splitHashes = {}; - for (var defId in eventUiBases) { - if (defId) { // not the '' key - for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) { - var key = _a[_i]; - if (!splitHashes[key]) { - splitHashes[key] = {}; - } - splitHashes[key][defId] = eventUiBases[defId]; - } - } - } - return splitHashes; - }; - Splitter.prototype._splitInteraction = function (interaction) { - var splitStates = {}; - if (interaction) { - var affectedStores_1 = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents) // can't use cached. might be events from other calendar - ); - // can't rely on defKeys because event data is mutated - var mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents); - var mutatedStores_1 = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId); - var populate = function (key) { - if (!splitStates[key]) { - splitStates[key] = { - affectedEvents: affectedStores_1[key] || EMPTY_EVENT_STORE, - mutatedEvents: mutatedStores_1[key] || EMPTY_EVENT_STORE, - isEvent: interaction.isEvent, - origSeg: interaction.origSeg - }; - } - }; - for (var key in affectedStores_1) { - populate(key); - } - for (var key in mutatedStores_1) { - populate(key); - } - } - return splitStates; - }; - return Splitter; - }()); - function buildEventUiForKey(allUi, eventUiForKey, individualUi) { - var baseParts = []; - if (allUi) { - baseParts.push(allUi); - } - if (eventUiForKey) { - baseParts.push(eventUiForKey); - } - var stuff = { - '': combineEventUis(baseParts) - }; - if (individualUi) { - __assign(stuff, individualUi); - } - return stuff; - } - - // Generates HTML for an anchor to another view into the calendar. - // Will either generate an
tag or a non-clickable tag, depending on enabled settings. - // `gotoOptions` can either be a DateMarker, or an object with the form: - // { date, type, forceOff } - // `type` is a view-type like "day" or "week". default value is "day". - // `attrs` and `innerHtml` are use to generate the rest of the HTML tag. - function buildGotoAnchorHtml(component, gotoOptions, attrs, innerHtml) { - var dateEnv = component.dateEnv; - var date; - var type; - var forceOff; - var finalOptions; - if (gotoOptions instanceof Date) { - date = gotoOptions; // a single date-like input - } - else { - date = gotoOptions.date; - type = gotoOptions.type; - forceOff = gotoOptions.forceOff; - } - finalOptions = { - date: dateEnv.formatIso(date, { omitTime: true }), - type: type || 'day' - }; - if (typeof attrs === 'string') { - innerHtml = attrs; - attrs = null; - } - attrs = attrs ? ' ' + attrsToStr(attrs) : ''; // will have a leading space - innerHtml = innerHtml || ''; - if (!forceOff && component.opt('navLinks')) { - return '' + - innerHtml + - ''; - } - else { - return '' + - innerHtml + - ''; - } - } - function getAllDayHtml(component) { - return component.opt('allDayHtml') || htmlEscape(component.opt('allDayText')); - } - // Computes HTML classNames for a single-day element - function getDayClasses(date, dateProfile, context, noThemeHighlight) { - var calendar = context.calendar, view = context.view, theme = context.theme, dateEnv = context.dateEnv; - var classes = []; - var todayStart; - var todayEnd; - if (!rangeContainsMarker(dateProfile.activeRange, date)) { - classes.push('fc-disabled-day'); - } - else { - classes.push('fc-' + DAY_IDS[date.getUTCDay()]); - if (view.opt('monthMode') && - dateEnv.getMonth(date) !== dateEnv.getMonth(dateProfile.currentRange.start)) { - classes.push('fc-other-month'); - } - todayStart = startOfDay(calendar.getNow()); - todayEnd = addDays(todayStart, 1); - if (date < todayStart) { - classes.push('fc-past'); - } - else if (date >= todayEnd) { - classes.push('fc-future'); - } - else { - classes.push('fc-today'); - if (noThemeHighlight !== true) { - classes.push(theme.getClass('today')); - } - } - } - return classes; - } - - // given a function that resolves a result asynchronously. - // the function can either call passed-in success and failure callbacks, - // or it can return a promise. - // if you need to pass additional params to func, bind them first. - function unpromisify(func, success, failure) { - // guard against success/failure callbacks being called more than once - // and guard against a promise AND callback being used together. - var isResolved = false; - var wrappedSuccess = function () { - if (!isResolved) { - isResolved = true; - success.apply(this, arguments); - } - }; - var wrappedFailure = function () { - if (!isResolved) { - isResolved = true; - if (failure) { - failure.apply(this, arguments); - } - } - }; - var res = func(wrappedSuccess, wrappedFailure); - if (res && typeof res.then === 'function') { - res.then(wrappedSuccess, wrappedFailure); - } - } - - var Mixin = /** @class */ (function () { - function Mixin() { - } - // mix into a CLASS - Mixin.mixInto = function (destClass) { - this.mixIntoObj(destClass.prototype); - }; - // mix into ANY object - Mixin.mixIntoObj = function (destObj) { - var _this = this; - Object.getOwnPropertyNames(this.prototype).forEach(function (name) { - if (!destObj[name]) { // if destination doesn't already define it - destObj[name] = _this.prototype[name]; - } - }); - }; - /* - will override existing methods - TODO: remove! not used anymore - */ - Mixin.mixOver = function (destClass) { - var _this = this; - Object.getOwnPropertyNames(this.prototype).forEach(function (name) { - destClass.prototype[name] = _this.prototype[name]; - }); - }; - return Mixin; - }()); - - /* - USAGE: - import { default as EmitterMixin, EmitterInterface } from './EmitterMixin' - in class: - on: EmitterInterface['on'] - one: EmitterInterface['one'] - off: EmitterInterface['off'] - trigger: EmitterInterface['trigger'] - triggerWith: EmitterInterface['triggerWith'] - hasHandlers: EmitterInterface['hasHandlers'] - after class: - EmitterMixin.mixInto(TheClass) - */ - var EmitterMixin = /** @class */ (function (_super) { - __extends(EmitterMixin, _super); - function EmitterMixin() { - return _super !== null && _super.apply(this, arguments) || this; - } - EmitterMixin.prototype.on = function (type, handler) { - addToHash(this._handlers || (this._handlers = {}), type, handler); - return this; // for chaining - }; - // todo: add comments - EmitterMixin.prototype.one = function (type, handler) { - addToHash(this._oneHandlers || (this._oneHandlers = {}), type, handler); - return this; // for chaining - }; - EmitterMixin.prototype.off = function (type, handler) { - if (this._handlers) { - removeFromHash(this._handlers, type, handler); - } - if (this._oneHandlers) { - removeFromHash(this._oneHandlers, type, handler); - } - return this; // for chaining - }; - EmitterMixin.prototype.trigger = function (type) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - this.triggerWith(type, this, args); - return this; // for chaining - }; - EmitterMixin.prototype.triggerWith = function (type, context, args) { - if (this._handlers) { - applyAll(this._handlers[type], context, args); - } - if (this._oneHandlers) { - applyAll(this._oneHandlers[type], context, args); - delete this._oneHandlers[type]; // will never fire again - } - return this; // for chaining - }; - EmitterMixin.prototype.hasHandlers = function (type) { - return (this._handlers && this._handlers[type] && this._handlers[type].length) || - (this._oneHandlers && this._oneHandlers[type] && this._oneHandlers[type].length); - }; - return EmitterMixin; - }(Mixin)); - function addToHash(hash, type, handler) { - (hash[type] || (hash[type] = [])) - .push(handler); - } - function removeFromHash(hash, type, handler) { - if (handler) { - if (hash[type]) { - hash[type] = hash[type].filter(function (func) { - return func !== handler; - }); - } - } - else { - delete hash[type]; // remove all handler funcs for this type - } - } - - /* - Records offset information for a set of elements, relative to an origin element. - Can record the left/right OR the top/bottom OR both. - Provides methods for querying the cache by position. - */ - var PositionCache = /** @class */ (function () { - function PositionCache(originEl, els, isHorizontal, isVertical) { - this.originEl = originEl; - this.els = els; - this.isHorizontal = isHorizontal; - this.isVertical = isVertical; - } - // Queries the els for coordinates and stores them. - // Call this method before using and of the get* methods below. - PositionCache.prototype.build = function () { - var originEl = this.originEl; - var originClientRect = this.originClientRect = - originEl.getBoundingClientRect(); // relative to viewport top-left - if (this.isHorizontal) { - this.buildElHorizontals(originClientRect.left); - } - if (this.isVertical) { - this.buildElVerticals(originClientRect.top); - } - }; - // Populates the left/right internal coordinate arrays - PositionCache.prototype.buildElHorizontals = function (originClientLeft) { - var lefts = []; - var rights = []; - for (var _i = 0, _a = this.els; _i < _a.length; _i++) { - var el = _a[_i]; - var rect = el.getBoundingClientRect(); - lefts.push(rect.left - originClientLeft); - rights.push(rect.right - originClientLeft); - } - this.lefts = lefts; - this.rights = rights; - }; - // Populates the top/bottom internal coordinate arrays - PositionCache.prototype.buildElVerticals = function (originClientTop) { - var tops = []; - var bottoms = []; - for (var _i = 0, _a = this.els; _i < _a.length; _i++) { - var el = _a[_i]; - var rect = el.getBoundingClientRect(); - tops.push(rect.top - originClientTop); - bottoms.push(rect.bottom - originClientTop); - } - this.tops = tops; - this.bottoms = bottoms; - }; - // Given a left offset (from document left), returns the index of the el that it horizontally intersects. - // If no intersection is made, returns undefined. - PositionCache.prototype.leftToIndex = function (leftPosition) { - var lefts = this.lefts; - var rights = this.rights; - var len = lefts.length; - var i; - for (i = 0; i < len; i++) { - if (leftPosition >= lefts[i] && leftPosition < rights[i]) { - return i; - } - } - }; - // Given a top offset (from document top), returns the index of the el that it vertically intersects. - // If no intersection is made, returns undefined. - PositionCache.prototype.topToIndex = function (topPosition) { - var tops = this.tops; - var bottoms = this.bottoms; - var len = tops.length; - var i; - for (i = 0; i < len; i++) { - if (topPosition >= tops[i] && topPosition < bottoms[i]) { - return i; - } - } - }; - // Gets the width of the element at the given index - PositionCache.prototype.getWidth = function (leftIndex) { - return this.rights[leftIndex] - this.lefts[leftIndex]; - }; - // Gets the height of the element at the given index - PositionCache.prototype.getHeight = function (topIndex) { - return this.bottoms[topIndex] - this.tops[topIndex]; - }; - return PositionCache; - }()); - - /* - An object for getting/setting scroll-related information for an element. - Internally, this is done very differently for window versus DOM element, - so this object serves as a common interface. - */ - var ScrollController = /** @class */ (function () { - function ScrollController() { - } - ScrollController.prototype.getMaxScrollTop = function () { - return this.getScrollHeight() - this.getClientHeight(); - }; - ScrollController.prototype.getMaxScrollLeft = function () { - return this.getScrollWidth() - this.getClientWidth(); - }; - ScrollController.prototype.canScrollVertically = function () { - return this.getMaxScrollTop() > 0; - }; - ScrollController.prototype.canScrollHorizontally = function () { - return this.getMaxScrollLeft() > 0; - }; - ScrollController.prototype.canScrollUp = function () { - return this.getScrollTop() > 0; - }; - ScrollController.prototype.canScrollDown = function () { - return this.getScrollTop() < this.getMaxScrollTop(); - }; - ScrollController.prototype.canScrollLeft = function () { - return this.getScrollLeft() > 0; - }; - ScrollController.prototype.canScrollRight = function () { - return this.getScrollLeft() < this.getMaxScrollLeft(); - }; - return ScrollController; - }()); - var ElementScrollController = /** @class */ (function (_super) { - __extends(ElementScrollController, _super); - function ElementScrollController(el) { - var _this = _super.call(this) || this; - _this.el = el; - return _this; - } - ElementScrollController.prototype.getScrollTop = function () { - return this.el.scrollTop; - }; - ElementScrollController.prototype.getScrollLeft = function () { - return this.el.scrollLeft; - }; - ElementScrollController.prototype.setScrollTop = function (top) { - this.el.scrollTop = top; - }; - ElementScrollController.prototype.setScrollLeft = function (left) { - this.el.scrollLeft = left; - }; - ElementScrollController.prototype.getScrollWidth = function () { - return this.el.scrollWidth; - }; - ElementScrollController.prototype.getScrollHeight = function () { - return this.el.scrollHeight; - }; - ElementScrollController.prototype.getClientHeight = function () { - return this.el.clientHeight; - }; - ElementScrollController.prototype.getClientWidth = function () { - return this.el.clientWidth; - }; - return ElementScrollController; - }(ScrollController)); - var WindowScrollController = /** @class */ (function (_super) { - __extends(WindowScrollController, _super); - function WindowScrollController() { - return _super !== null && _super.apply(this, arguments) || this; - } - WindowScrollController.prototype.getScrollTop = function () { - return window.pageYOffset; - }; - WindowScrollController.prototype.getScrollLeft = function () { - return window.pageXOffset; - }; - WindowScrollController.prototype.setScrollTop = function (n) { - window.scroll(window.pageXOffset, n); - }; - WindowScrollController.prototype.setScrollLeft = function (n) { - window.scroll(n, window.pageYOffset); - }; - WindowScrollController.prototype.getScrollWidth = function () { - return document.documentElement.scrollWidth; - }; - WindowScrollController.prototype.getScrollHeight = function () { - return document.documentElement.scrollHeight; - }; - WindowScrollController.prototype.getClientHeight = function () { - return document.documentElement.clientHeight; - }; - WindowScrollController.prototype.getClientWidth = function () { - return document.documentElement.clientWidth; - }; - return WindowScrollController; - }(ScrollController)); - - /* - Embodies a div that has potential scrollbars - */ - var ScrollComponent = /** @class */ (function (_super) { - __extends(ScrollComponent, _super); - function ScrollComponent(overflowX, overflowY) { - var _this = _super.call(this, createElement('div', { - className: 'fc-scroller' - })) || this; - _this.overflowX = overflowX; - _this.overflowY = overflowY; - _this.applyOverflow(); - return _this; - } - // sets to natural height, unlocks overflow - ScrollComponent.prototype.clear = function () { - this.setHeight('auto'); - this.applyOverflow(); - }; - ScrollComponent.prototype.destroy = function () { - removeElement(this.el); - }; - // Overflow - // ----------------------------------------------------------------------------------------------------------------- - ScrollComponent.prototype.applyOverflow = function () { - applyStyle(this.el, { - overflowX: this.overflowX, - overflowY: this.overflowY - }); - }; - // Causes any 'auto' overflow values to resolves to 'scroll' or 'hidden'. - // Useful for preserving scrollbar widths regardless of future resizes. - // Can pass in scrollbarWidths for optimization. - ScrollComponent.prototype.lockOverflow = function (scrollbarWidths) { - var overflowX = this.overflowX; - var overflowY = this.overflowY; - scrollbarWidths = scrollbarWidths || this.getScrollbarWidths(); - if (overflowX === 'auto') { - overflowX = (scrollbarWidths.bottom || // horizontal scrollbars? - this.canScrollHorizontally() // OR scrolling pane with massless scrollbars? - ) ? 'scroll' : 'hidden'; - } - if (overflowY === 'auto') { - overflowY = (scrollbarWidths.left || scrollbarWidths.right || // horizontal scrollbars? - this.canScrollVertically() // OR scrolling pane with massless scrollbars? - ) ? 'scroll' : 'hidden'; - } - applyStyle(this.el, { overflowX: overflowX, overflowY: overflowY }); - }; - ScrollComponent.prototype.setHeight = function (height) { - applyStyleProp(this.el, 'height', height); - }; - ScrollComponent.prototype.getScrollbarWidths = function () { - var edges = computeEdges(this.el); - return { - left: edges.scrollbarLeft, - right: edges.scrollbarRight, - bottom: edges.scrollbarBottom - }; - }; - return ScrollComponent; - }(ElementScrollController)); - - var Theme = /** @class */ (function () { - function Theme(calendarOptions) { - this.calendarOptions = calendarOptions; - this.processIconOverride(); - } - Theme.prototype.processIconOverride = function () { - if (this.iconOverrideOption) { - this.setIconOverride(this.calendarOptions[this.iconOverrideOption]); - } - }; - Theme.prototype.setIconOverride = function (iconOverrideHash) { - var iconClassesCopy; - var buttonName; - if (typeof iconOverrideHash === 'object' && iconOverrideHash) { // non-null object - iconClassesCopy = __assign({}, this.iconClasses); - for (buttonName in iconOverrideHash) { - iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]); - } - this.iconClasses = iconClassesCopy; - } - else if (iconOverrideHash === false) { - this.iconClasses = {}; - } - }; - Theme.prototype.applyIconOverridePrefix = function (className) { - var prefix = this.iconOverridePrefix; - if (prefix && className.indexOf(prefix) !== 0) { // if not already present - className = prefix + className; - } - return className; - }; - Theme.prototype.getClass = function (key) { - return this.classes[key] || ''; - }; - Theme.prototype.getIconClass = function (buttonName) { - var className = this.iconClasses[buttonName]; - if (className) { - return this.baseIconClass + ' ' + className; - } - return ''; - }; - Theme.prototype.getCustomButtonIconClass = function (customButtonProps) { - var className; - if (this.iconOverrideCustomButtonOption) { - className = customButtonProps[this.iconOverrideCustomButtonOption]; - if (className) { - return this.baseIconClass + ' ' + this.applyIconOverridePrefix(className); - } - } - return ''; - }; - return Theme; - }()); - Theme.prototype.classes = {}; - Theme.prototype.iconClasses = {}; - Theme.prototype.baseIconClass = ''; - Theme.prototype.iconOverridePrefix = ''; - - var guid = 0; - var Component = /** @class */ (function () { - function Component(context, isView) { - // HACK to populate view at top of component instantiation call chain - if (isView) { - context.view = this; - } - this.uid = String(guid++); - this.context = context; - this.dateEnv = context.dateEnv; - this.theme = context.theme; - this.view = context.view; - this.calendar = context.calendar; - this.isRtl = this.opt('dir') === 'rtl'; - } - Component.addEqualityFuncs = function (newFuncs) { - this.prototype.equalityFuncs = __assign({}, this.prototype.equalityFuncs, newFuncs); - }; - Component.prototype.opt = function (name) { - return this.context.options[name]; - }; - Component.prototype.receiveProps = function (props) { - var _a = recycleProps(this.props || {}, props, this.equalityFuncs), anyChanges = _a.anyChanges, comboProps = _a.comboProps; - this.props = comboProps; - if (anyChanges) { - this.render(comboProps); - } - }; - Component.prototype.render = function (props) { - }; - // after destroy is called, this component won't ever be used again - Component.prototype.destroy = function () { - }; - return Component; - }()); - Component.prototype.equalityFuncs = {}; - /* - Reuses old values when equal. If anything is unequal, returns newProps as-is. - Great for PureComponent, but won't be feasible with React, so just eliminate and use React's DOM diffing. - */ - function recycleProps(oldProps, newProps, equalityFuncs) { - var comboProps = {}; // some old, some new - var anyChanges = false; - for (var key in newProps) { - if (key in oldProps && (oldProps[key] === newProps[key] || - (equalityFuncs[key] && equalityFuncs[key](oldProps[key], newProps[key])))) { - // equal to old? use old prop - comboProps[key] = oldProps[key]; - } - else { - comboProps[key] = newProps[key]; - anyChanges = true; - } - } - for (var key in oldProps) { - if (!(key in newProps)) { - anyChanges = true; - break; - } - } - return { anyChanges: anyChanges, comboProps: comboProps }; - } - - /* - PURPOSES: - - hook up to fg, fill, and mirror renderers - - interface for dragging and hits - */ - var DateComponent = /** @class */ (function (_super) { - __extends(DateComponent, _super); - function DateComponent(context, el, isView) { - var _this = _super.call(this, context, isView) || this; - _this.el = el; - return _this; - } - DateComponent.prototype.destroy = function () { - _super.prototype.destroy.call(this); - removeElement(this.el); - }; - // TODO: WHAT ABOUT (sourceSeg && sourceSeg.component.doesDragMirror) - // - // Event Drag-n-Drop Rendering (for both events and external elements) - // --------------------------------------------------------------------------------------------------------------- - /* - renderEventDragSegs(state: EventSegUiInteractionState) { - if (state) { - let { isEvent, segs, sourceSeg } = state - - if (this.eventRenderer) { - this.eventRenderer.hideByHash(state.affectedInstances) - } - - // if the user is dragging something that is considered an event with real event data, - // and this component likes to do drag mirrors OR the component where the seg came from - // likes to do drag mirrors, then render a drag mirror. - if (isEvent && (this.doesDragMirror || sourceSeg && sourceSeg.component.doesDragMirror)) { - if (this.mirrorRenderer) { - this.mirrorRenderer.renderSegs(segs, { isDragging: true, sourceSeg }) - } - } - - // if it would be impossible to render a drag mirror OR this component likes to render - // highlights, then render a highlight. - if (!isEvent || this.doesDragHighlight) { - if (this.fillRenderer) { - this.fillRenderer.renderSegs('highlight', segs) - } - } - } - } - */ - // Hit System - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.buildPositionCaches = function () { - }; - DateComponent.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) { - return null; // this should be abstract - }; - // Validation - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.isInteractionValid = function (interaction) { - var calendar = this.calendar; - var dateProfile = this.props.dateProfile; // HACK - var instances = interaction.mutatedEvents.instances; - if (dateProfile) { // HACK for DayTile - for (var instanceId in instances) { - if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) { - return false; - } - } - } - return isInteractionValid(interaction, calendar); - }; - DateComponent.prototype.isDateSelectionValid = function (selection) { - var dateProfile = this.props.dateProfile; // HACK - if (dateProfile && // HACK for DayTile - !rangeContainsRange(dateProfile.validRange, selection.range)) { - return false; - } - return isDateSelectionValid(selection, this.calendar); - }; - // Triggering - // ----------------------------------------------------------------------------------------------------------------- - // TODO: move to Calendar - DateComponent.prototype.publiclyTrigger = function (name, args) { - var calendar = this.calendar; - return calendar.publiclyTrigger(name, args); - }; - DateComponent.prototype.publiclyTriggerAfterSizing = function (name, args) { - var calendar = this.calendar; - return calendar.publiclyTriggerAfterSizing(name, args); - }; - DateComponent.prototype.hasPublicHandlers = function (name) { - var calendar = this.calendar; - return calendar.hasPublicHandlers(name); - }; - DateComponent.prototype.triggerRenderedSegs = function (segs, isMirrors) { - var calendar = this.calendar; - if (this.hasPublicHandlers('eventPositioned')) { - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - this.publiclyTriggerAfterSizing('eventPositioned', [ - { - event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirrors, - isStart: seg.isStart, - isEnd: seg.isEnd, - el: seg.el, - view: this // safe to cast because this method is only called on context.view - } - ]); - } - } - if (!calendar.state.loadingLevel) { // avoid initial empty state while pending - calendar.afterSizingTriggers._eventsPositioned = [null]; // fire once - } - }; - DateComponent.prototype.triggerWillRemoveSegs = function (segs, isMirrors) { - var calendar = this.calendar; - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - calendar.trigger('eventElRemove', seg.el); - } - if (this.hasPublicHandlers('eventDestroy')) { - for (var _a = 0, segs_3 = segs; _a < segs_3.length; _a++) { - var seg = segs_3[_a]; - this.publiclyTrigger('eventDestroy', [ - { - event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirrors, - el: seg.el, - view: this // safe to cast because this method is only called on context.view - } - ]); - } - } - }; - // Pointer Interaction Utils - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.isValidSegDownEl = function (el) { - return !this.props.eventDrag && // HACK - !this.props.eventResize && // HACK - !elementClosest(el, '.fc-mirror') && - (this.isPopover() || !this.isInPopover(el)); - // ^above line ensures we don't detect a seg interaction within a nested component. - // it's a HACK because it only supports a popover as the nested component. - }; - DateComponent.prototype.isValidDateDownEl = function (el) { - var segEl = elementClosest(el, this.fgSegSelector); - return (!segEl || segEl.classList.contains('fc-mirror')) && - !elementClosest(el, '.fc-more') && // a "more.." link - !elementClosest(el, 'a[data-goto]') && // a clickable nav link - !this.isInPopover(el); - }; - DateComponent.prototype.isPopover = function () { - return this.el.classList.contains('fc-popover'); - }; - DateComponent.prototype.isInPopover = function (el) { - return Boolean(elementClosest(el, '.fc-popover')); - }; - return DateComponent; - }(Component)); - DateComponent.prototype.fgSegSelector = '.fc-event-container > *'; - DateComponent.prototype.bgSegSelector = '.fc-bgevent:not(.fc-nonbusiness)'; - - var uid$1 = 0; - function createPlugin(input) { - return { - id: String(uid$1++), - deps: input.deps || [], - reducers: input.reducers || [], - eventDefParsers: input.eventDefParsers || [], - isDraggableTransformers: input.isDraggableTransformers || [], - eventDragMutationMassagers: input.eventDragMutationMassagers || [], - eventDefMutationAppliers: input.eventDefMutationAppliers || [], - dateSelectionTransformers: input.dateSelectionTransformers || [], - datePointTransforms: input.datePointTransforms || [], - dateSpanTransforms: input.dateSpanTransforms || [], - views: input.views || {}, - viewPropsTransformers: input.viewPropsTransformers || [], - isPropsValid: input.isPropsValid || null, - externalDefTransforms: input.externalDefTransforms || [], - eventResizeJoinTransforms: input.eventResizeJoinTransforms || [], - viewContainerModifiers: input.viewContainerModifiers || [], - eventDropTransformers: input.eventDropTransformers || [], - componentInteractions: input.componentInteractions || [], - calendarInteractions: input.calendarInteractions || [], - themeClasses: input.themeClasses || {}, - eventSourceDefs: input.eventSourceDefs || [], - cmdFormatter: input.cmdFormatter, - recurringTypes: input.recurringTypes || [], - namedTimeZonedImpl: input.namedTimeZonedImpl, - defaultView: input.defaultView || '', - elementDraggingImpl: input.elementDraggingImpl, - optionChangeHandlers: input.optionChangeHandlers || {} - }; - } - var PluginSystem = /** @class */ (function () { - function PluginSystem() { - this.hooks = { - reducers: [], - eventDefParsers: [], - isDraggableTransformers: [], - eventDragMutationMassagers: [], - eventDefMutationAppliers: [], - dateSelectionTransformers: [], - datePointTransforms: [], - dateSpanTransforms: [], - views: {}, - viewPropsTransformers: [], - isPropsValid: null, - externalDefTransforms: [], - eventResizeJoinTransforms: [], - viewContainerModifiers: [], - eventDropTransformers: [], - componentInteractions: [], - calendarInteractions: [], - themeClasses: {}, - eventSourceDefs: [], - cmdFormatter: null, - recurringTypes: [], - namedTimeZonedImpl: null, - defaultView: '', - elementDraggingImpl: null, - optionChangeHandlers: {} - }; - this.addedHash = {}; - } - PluginSystem.prototype.add = function (plugin) { - if (!this.addedHash[plugin.id]) { - this.addedHash[plugin.id] = true; - for (var _i = 0, _a = plugin.deps; _i < _a.length; _i++) { - var dep = _a[_i]; - this.add(dep); - } - this.hooks = combineHooks(this.hooks, plugin); - } - }; - return PluginSystem; - }()); - function combineHooks(hooks0, hooks1) { - return { - reducers: hooks0.reducers.concat(hooks1.reducers), - eventDefParsers: hooks0.eventDefParsers.concat(hooks1.eventDefParsers), - isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers), - eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers), - eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers), - dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers), - datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms), - dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms), - views: __assign({}, hooks0.views, hooks1.views), - viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers), - isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid, - externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms), - eventResizeJoinTransforms: hooks0.eventResizeJoinTransforms.concat(hooks1.eventResizeJoinTransforms), - viewContainerModifiers: hooks0.viewContainerModifiers.concat(hooks1.viewContainerModifiers), - eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers), - calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions), - componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions), - themeClasses: __assign({}, hooks0.themeClasses, hooks1.themeClasses), - eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs), - cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter, - recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes), - namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl, - defaultView: hooks0.defaultView || hooks1.defaultView, - elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl, - optionChangeHandlers: __assign({}, hooks0.optionChangeHandlers, hooks1.optionChangeHandlers) - }; - } - - var eventSourceDef = { - ignoreRange: true, - parseMeta: function (raw) { - if (Array.isArray(raw)) { // short form - return raw; - } - else if (Array.isArray(raw.events)) { - return raw.events; - } - return null; - }, - fetch: function (arg, success) { - success({ - rawEvents: arg.eventSource.meta - }); - } - }; - var ArrayEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef] - }); - - var eventSourceDef$1 = { - parseMeta: function (raw) { - if (typeof raw === 'function') { // short form - return raw; - } - else if (typeof raw.events === 'function') { - return raw.events; - } - return null; - }, - fetch: function (arg, success, failure) { - var dateEnv = arg.calendar.dateEnv; - var func = arg.eventSource.meta; - unpromisify(func.bind(null, { - start: dateEnv.toDate(arg.range.start), - end: dateEnv.toDate(arg.range.end), - startStr: dateEnv.formatIso(arg.range.start), - endStr: dateEnv.formatIso(arg.range.end), - timeZone: dateEnv.timeZone - }), function (rawEvents) { - success({ rawEvents: rawEvents }); // needs an object response - }, failure // send errorObj directly to failure callback - ); - } - }; - var FuncEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef$1] - }); - - function requestJson(method, url, params, successCallback, failureCallback) { - method = method.toUpperCase(); - var body = null; - if (method === 'GET') { - url = injectQueryStringParams(url, params); - } - else { - body = encodeParams(params); - } - var xhr = new XMLHttpRequest(); - xhr.open(method, url, true); - if (method !== 'GET') { - xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - } - xhr.onload = function () { - if (xhr.status >= 200 && xhr.status < 400) { - try { - var res = JSON.parse(xhr.responseText); - successCallback(res, xhr); - } - catch (err) { - failureCallback('Failure parsing JSON', xhr); - } - } - else { - failureCallback('Request failed', xhr); - } - }; - xhr.onerror = function () { - failureCallback('Request failed', xhr); - }; - xhr.send(body); - } - function injectQueryStringParams(url, params) { - return url + - (url.indexOf('?') === -1 ? '?' : '&') + - encodeParams(params); - } - function encodeParams(params) { - var parts = []; - for (var key in params) { - parts.push(encodeURIComponent(key) + '=' + encodeURIComponent(params[key])); - } - return parts.join('&'); - } - - var eventSourceDef$2 = { - parseMeta: function (raw) { - if (typeof raw === 'string') { // short form - raw = { url: raw }; - } - else if (!raw || typeof raw !== 'object' || !raw.url) { - return null; - } - return { - url: raw.url, - method: (raw.method || 'GET').toUpperCase(), - extraParams: raw.extraParams, - startParam: raw.startParam, - endParam: raw.endParam, - timeZoneParam: raw.timeZoneParam - }; - }, - fetch: function (arg, success, failure) { - var meta = arg.eventSource.meta; - var requestParams = buildRequestParams(meta, arg.range, arg.calendar); - requestJson(meta.method, meta.url, requestParams, function (rawEvents, xhr) { - success({ rawEvents: rawEvents, xhr: xhr }); - }, function (errorMessage, xhr) { - failure({ message: errorMessage, xhr: xhr }); - }); - } - }; - var JsonFeedEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef$2] - }); - function buildRequestParams(meta, range, calendar) { - var dateEnv = calendar.dateEnv; - var startParam; - var endParam; - var timeZoneParam; - var customRequestParams; - var params = {}; - startParam = meta.startParam; - if (startParam == null) { - startParam = calendar.opt('startParam'); - } - endParam = meta.endParam; - if (endParam == null) { - endParam = calendar.opt('endParam'); - } - timeZoneParam = meta.timeZoneParam; - if (timeZoneParam == null) { - timeZoneParam = calendar.opt('timeZoneParam'); - } - // retrieve any outbound GET/POST data from the options - if (typeof meta.extraParams === 'function') { - // supplied as a function that returns a key/value object - customRequestParams = meta.extraParams(); - } - else { - // probably supplied as a straight key/value object - customRequestParams = meta.extraParams || {}; - } - __assign(params, customRequestParams); - params[startParam] = dateEnv.formatIso(range.start); - params[endParam] = dateEnv.formatIso(range.end); - if (dateEnv.timeZone !== 'local') { - params[timeZoneParam] = dateEnv.timeZone; - } - return params; - } - - var recurring = { - parse: function (rawEvent, leftoverProps, dateEnv) { - var createMarker = dateEnv.createMarker.bind(dateEnv); - var processors = { - daysOfWeek: null, - startTime: createDuration, - endTime: createDuration, - startRecur: createMarker, - endRecur: createMarker - }; - var props = refineProps(rawEvent, processors, {}, leftoverProps); - var anyValid = false; - for (var propName in props) { - if (props[propName] != null) { - anyValid = true; - break; - } - } - if (anyValid) { - var duration = null; - if ('duration' in leftoverProps) { - duration = createDuration(leftoverProps.duration); - delete leftoverProps.duration; - } - if (!duration && props.startTime && props.endTime) { - duration = subtractDurations(props.endTime, props.startTime); - } - return { - allDayGuess: Boolean(!props.startTime && !props.endTime), - duration: duration, - typeData: props // doesn't need endTime anymore but oh well - }; - } - return null; - }, - expand: function (typeData, framingRange, dateEnv) { - var clippedFramingRange = intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur }); - if (clippedFramingRange) { - return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv); - } - else { - return []; - } - } - }; - var SimpleRecurrencePlugin = createPlugin({ - recurringTypes: [recurring] - }); - function expandRanges(daysOfWeek, startTime, framingRange, dateEnv) { - var dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null; - var dayMarker = startOfDay(framingRange.start); - var endMarker = framingRange.end; - var instanceStarts = []; - while (dayMarker < endMarker) { - var instanceStart - // if everyday, or this particular day-of-week - = void 0; - // if everyday, or this particular day-of-week - if (!dowHash || dowHash[dayMarker.getUTCDay()]) { - if (startTime) { - instanceStart = dateEnv.add(dayMarker, startTime); - } - else { - instanceStart = dayMarker; - } - instanceStarts.push(instanceStart); - } - dayMarker = addDays(dayMarker, 1); - } - return instanceStarts; - } - - var DefaultOptionChangeHandlers = createPlugin({ - optionChangeHandlers: { - events: function (events, calendar, deepEqual) { - handleEventSources([events], calendar, deepEqual); - }, - eventSources: handleEventSources, - plugins: handlePlugins - } - }); - function handleEventSources(inputs, calendar, deepEqual) { - var unfoundSources = hashValuesToArray(calendar.state.eventSources); - var newInputs = []; - for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) { - var input = inputs_1[_i]; - var inputFound = false; - for (var i = 0; i < unfoundSources.length; i++) { - if (deepEqual(unfoundSources[i]._raw, input)) { - unfoundSources.splice(i, 1); // delete - inputFound = true; - break; - } - } - if (!inputFound) { - newInputs.push(input); - } - } - for (var _a = 0, unfoundSources_1 = unfoundSources; _a < unfoundSources_1.length; _a++) { - var unfoundSource = unfoundSources_1[_a]; - calendar.dispatch({ - type: 'REMOVE_EVENT_SOURCE', - sourceId: unfoundSource.sourceId - }); - } - for (var _b = 0, newInputs_1 = newInputs; _b < newInputs_1.length; _b++) { - var newInput = newInputs_1[_b]; - calendar.addEventSource(newInput); - } - } - // shortcoming: won't remove plugins - function handlePlugins(inputs, calendar) { - calendar.addPluginInputs(inputs); // will gracefully handle duplicates - } - - var config = {}; // TODO: make these options - var globalDefaults = { - defaultRangeSeparator: ' - ', - titleRangeSeparator: ' \u2013 ', - defaultTimedEventDuration: '01:00:00', - defaultAllDayEventDuration: { day: 1 }, - forceEventDuration: false, - nextDayThreshold: '00:00:00', - // display - columnHeader: true, - defaultView: '', - aspectRatio: 1.35, - header: { - left: 'title', - center: '', - right: 'today prev,next' - }, - weekends: true, - weekNumbers: false, - weekNumberCalculation: 'local', - editable: false, - // nowIndicator: false, - scrollTime: '06:00:00', - minTime: '00:00:00', - maxTime: '24:00:00', - showNonCurrentDates: true, - // event ajax - lazyFetching: true, - startParam: 'start', - endParam: 'end', - timeZoneParam: 'timeZone', - timeZone: 'local', - // allDayDefault: undefined, - // locale - locales: [], - locale: '', - // dir: will get this from the default locale - // buttonIcons: null, - // allows setting a min-height to the event segment to prevent short events overlapping each other - timeGridEventMinHeight: 0, - themeSystem: 'standard', - // eventResizableFromStart: false, - dragRevertDuration: 500, - dragScroll: true, - allDayMaintainDuration: false, - // selectable: false, - unselectAuto: true, - // selectMinDistance: 0, - dropAccept: '*', - eventOrder: 'start,-duration,allDay,title', - // ^ if start tie, longer events go before shorter. final tie-breaker is title text - // rerenderDelay: null, - eventLimit: false, - eventLimitClick: 'popover', - dayPopoverFormat: { month: 'long', day: 'numeric', year: 'numeric' }, - handleWindowResize: true, - windowResizeDelay: 100, - longPressDelay: 1000, - eventDragMinDistance: 5 // only applies to mouse - }; - var rtlDefaults = { - header: { - left: 'next,prev today', - center: '', - right: 'title' - }, - buttonIcons: { - // TODO: make RTL support the responibility of the theme - prev: 'fc-icon-chevron-right', - next: 'fc-icon-chevron-left', - prevYear: 'fc-icon-chevrons-right', - nextYear: 'fc-icon-chevrons-left' - } - }; - var complexOptions = [ - 'header', - 'footer', - 'buttonText', - 'buttonIcons' - ]; - // Merges an array of option objects into a single object - function mergeOptions(optionObjs) { - return mergeProps(optionObjs, complexOptions); - } - // TODO: move this stuff to a "plugin"-related file... - var INTERNAL_PLUGINS = [ - ArrayEventSourcePlugin, - FuncEventSourcePlugin, - JsonFeedEventSourcePlugin, - SimpleRecurrencePlugin, - DefaultOptionChangeHandlers - ]; - function refinePluginDefs(pluginInputs) { - var plugins = []; - for (var _i = 0, pluginInputs_1 = pluginInputs; _i < pluginInputs_1.length; _i++) { - var pluginInput = pluginInputs_1[_i]; - if (typeof pluginInput === 'string') { - var globalName = 'FullCalendar' + capitaliseFirstLetter(pluginInput); - if (!window[globalName]) { - console.warn('Plugin file not loaded for ' + pluginInput); - } - else { - plugins.push(window[globalName].default); // is an ES6 module - } - } - else { - plugins.push(pluginInput); - } - } - return INTERNAL_PLUGINS.concat(plugins); - } - - var RAW_EN_LOCALE = { - code: 'en', - week: { - dow: 0, - doy: 4 // 4 days need to be within the year to be considered the first week - }, - dir: 'ltr', - buttonText: { - prev: 'prev', - next: 'next', - prevYear: 'prev year', - nextYear: 'next year', - year: 'year', - today: 'today', - month: 'month', - week: 'week', - day: 'day', - list: 'list' - }, - weekLabel: 'W', - allDayText: 'all-day', - eventLimitText: 'more', - noEventsMessage: 'No events to display' - }; - function parseRawLocales(explicitRawLocales) { - var defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en'; - var globalArray = window['FullCalendarLocalesAll'] || []; // from locales-all.js - var globalObject = window['FullCalendarLocales'] || {}; // from locales/*.js. keys are meaningless - var allRawLocales = globalArray.concat(// globalArray is low prio - hashValuesToArray(globalObject), // medium prio - explicitRawLocales // highest prio - ); - var rawLocaleMap = { - en: RAW_EN_LOCALE // necessary? - }; - for (var _i = 0, allRawLocales_1 = allRawLocales; _i < allRawLocales_1.length; _i++) { - var rawLocale = allRawLocales_1[_i]; - rawLocaleMap[rawLocale.code] = rawLocale; - } - return { - map: rawLocaleMap, - defaultCode: defaultCode - }; - } - function buildLocale(inputSingular, available) { - if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) { - return parseLocale(inputSingular.code, [inputSingular.code], inputSingular); - } - else { - return queryLocale(inputSingular, available); - } - } - function queryLocale(codeArg, available) { - var codes = [].concat(codeArg || []); // will convert to array - var raw = queryRawLocale(codes, available) || RAW_EN_LOCALE; - return parseLocale(codeArg, codes, raw); - } - function queryRawLocale(codes, available) { - for (var i = 0; i < codes.length; i++) { - var parts = codes[i].toLocaleLowerCase().split('-'); - for (var j = parts.length; j > 0; j--) { - var simpleId = parts.slice(0, j).join('-'); - if (available[simpleId]) { - return available[simpleId]; - } - } - } - return null; - } - function parseLocale(codeArg, codes, raw) { - var merged = mergeProps([RAW_EN_LOCALE, raw], ['buttonText']); - delete merged.code; // don't want this part of the options - var week = merged.week; - delete merged.week; - return { - codeArg: codeArg, - codes: codes, - week: week, - simpleNumberFormat: new Intl.NumberFormat(codeArg), - options: merged - }; - } - - var OptionsManager = /** @class */ (function () { - function OptionsManager(overrides) { - this.overrides = __assign({}, overrides); // make a copy - this.dynamicOverrides = {}; - this.compute(); - } - OptionsManager.prototype.mutate = function (updates, removals, isDynamic) { - var overrideHash = isDynamic ? this.dynamicOverrides : this.overrides; - __assign(overrideHash, updates); - for (var _i = 0, removals_1 = removals; _i < removals_1.length; _i++) { - var propName = removals_1[_i]; - delete overrideHash[propName]; - } - this.compute(); - }; - // Computes the flattened options hash for the calendar and assigns to `this.options`. - // Assumes this.overrides and this.dynamicOverrides have already been initialized. - OptionsManager.prototype.compute = function () { - // TODO: not a very efficient system - var locales = firstDefined(// explicit locale option given? - this.dynamicOverrides.locales, this.overrides.locales, globalDefaults.locales); - var locale = firstDefined(// explicit locales option given? - this.dynamicOverrides.locale, this.overrides.locale, globalDefaults.locale); - var available = parseRawLocales(locales); - var localeDefaults = buildLocale(locale || available.defaultCode, available.map).options; - var dir = firstDefined(// based on options computed so far, is direction RTL? - this.dynamicOverrides.dir, this.overrides.dir, localeDefaults.dir); - var dirDefaults = dir === 'rtl' ? rtlDefaults : {}; - this.dirDefaults = dirDefaults; - this.localeDefaults = localeDefaults; - this.computed = mergeOptions([ - globalDefaults, - dirDefaults, - localeDefaults, - this.overrides, - this.dynamicOverrides - ]); - }; - return OptionsManager; - }()); - - var calendarSystemClassMap = {}; - function registerCalendarSystem(name, theClass) { - calendarSystemClassMap[name] = theClass; - } - function createCalendarSystem(name) { - return new calendarSystemClassMap[name](); - } - var GregorianCalendarSystem = /** @class */ (function () { - function GregorianCalendarSystem() { - } - GregorianCalendarSystem.prototype.getMarkerYear = function (d) { - return d.getUTCFullYear(); - }; - GregorianCalendarSystem.prototype.getMarkerMonth = function (d) { - return d.getUTCMonth(); - }; - GregorianCalendarSystem.prototype.getMarkerDay = function (d) { - return d.getUTCDate(); - }; - GregorianCalendarSystem.prototype.arrayToMarker = function (arr) { - return arrayToUtcDate(arr); - }; - GregorianCalendarSystem.prototype.markerToArray = function (marker) { - return dateToUtcArray(marker); - }; - return GregorianCalendarSystem; - }()); - registerCalendarSystem('gregory', GregorianCalendarSystem); - - var ISO_RE = /^\s*(\d{4})(-(\d{2})(-(\d{2})([T ](\d{2}):(\d{2})(:(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/; - function parse(str) { - var m = ISO_RE.exec(str); - if (m) { - var marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number('0.' + m[12]) * 1000 : 0)); - if (isValidDate(marker)) { - var timeZoneOffset = null; - if (m[13]) { - timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 + - Number(m[18] || 0)); - } - return { - marker: marker, - isTimeUnspecified: !m[6], - timeZoneOffset: timeZoneOffset - }; - } - } - return null; - } - - var DateEnv = /** @class */ (function () { - function DateEnv(settings) { - var timeZone = this.timeZone = settings.timeZone; - var isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC'; - if (settings.namedTimeZoneImpl && isNamedTimeZone) { - this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone); - } - this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl); - this.calendarSystem = createCalendarSystem(settings.calendarSystem); - this.locale = settings.locale; - this.weekDow = settings.locale.week.dow; - this.weekDoy = settings.locale.week.doy; - if (settings.weekNumberCalculation === 'ISO') { - this.weekDow = 1; - this.weekDoy = 4; - } - if (typeof settings.firstDay === 'number') { - this.weekDow = settings.firstDay; - } - if (typeof settings.weekNumberCalculation === 'function') { - this.weekNumberFunc = settings.weekNumberCalculation; - } - this.weekLabel = settings.weekLabel != null ? settings.weekLabel : settings.locale.options.weekLabel; - this.cmdFormatter = settings.cmdFormatter; - } - // Creating / Parsing - DateEnv.prototype.createMarker = function (input) { - var meta = this.createMarkerMeta(input); - if (meta === null) { - return null; - } - return meta.marker; - }; - DateEnv.prototype.createNowMarker = function () { - if (this.canComputeOffset) { - return this.timestampToMarker(new Date().valueOf()); - } - else { - // if we can't compute the current date val for a timezone, - // better to give the current local date vals than UTC - return arrayToUtcDate(dateToLocalArray(new Date())); - } - }; - DateEnv.prototype.createMarkerMeta = function (input) { - if (typeof input === 'string') { - return this.parse(input); - } - var marker = null; - if (typeof input === 'number') { - marker = this.timestampToMarker(input); - } - else if (input instanceof Date) { - input = input.valueOf(); - if (!isNaN(input)) { - marker = this.timestampToMarker(input); - } - } - else if (Array.isArray(input)) { - marker = arrayToUtcDate(input); - } - if (marker === null || !isValidDate(marker)) { - return null; - } - return { marker: marker, isTimeUnspecified: false, forcedTzo: null }; - }; - DateEnv.prototype.parse = function (s) { - var parts = parse(s); - if (parts === null) { - return null; - } - var marker = parts.marker; - var forcedTzo = null; - if (parts.timeZoneOffset !== null) { - if (this.canComputeOffset) { - marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000); - } - else { - forcedTzo = parts.timeZoneOffset; - } - } - return { marker: marker, isTimeUnspecified: parts.isTimeUnspecified, forcedTzo: forcedTzo }; - }; - // Accessors - DateEnv.prototype.getYear = function (marker) { - return this.calendarSystem.getMarkerYear(marker); - }; - DateEnv.prototype.getMonth = function (marker) { - return this.calendarSystem.getMarkerMonth(marker); - }; - // Adding / Subtracting - DateEnv.prototype.add = function (marker, dur) { - var a = this.calendarSystem.markerToArray(marker); - a[0] += dur.years; - a[1] += dur.months; - a[2] += dur.days; - a[6] += dur.milliseconds; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.subtract = function (marker, dur) { - var a = this.calendarSystem.markerToArray(marker); - a[0] -= dur.years; - a[1] -= dur.months; - a[2] -= dur.days; - a[6] -= dur.milliseconds; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.addYears = function (marker, n) { - var a = this.calendarSystem.markerToArray(marker); - a[0] += n; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.addMonths = function (marker, n) { - var a = this.calendarSystem.markerToArray(marker); - a[1] += n; - return this.calendarSystem.arrayToMarker(a); - }; - // Diffing Whole Units - DateEnv.prototype.diffWholeYears = function (m0, m1) { - var calendarSystem = this.calendarSystem; - if (timeAsMs(m0) === timeAsMs(m1) && - calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) && - calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) { - return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0); - } - return null; - }; - DateEnv.prototype.diffWholeMonths = function (m0, m1) { - var calendarSystem = this.calendarSystem; - if (timeAsMs(m0) === timeAsMs(m1) && - calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) { - return (calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0)) + - (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12; - } - return null; - }; - // Range / Duration - DateEnv.prototype.greatestWholeUnit = function (m0, m1) { - var n = this.diffWholeYears(m0, m1); - if (n !== null) { - return { unit: 'year', value: n }; - } - n = this.diffWholeMonths(m0, m1); - if (n !== null) { - return { unit: 'month', value: n }; - } - n = diffWholeWeeks(m0, m1); - if (n !== null) { - return { unit: 'week', value: n }; - } - n = diffWholeDays(m0, m1); - if (n !== null) { - return { unit: 'day', value: n }; - } - n = diffHours(m0, m1); - if (isInt(n)) { - return { unit: 'hour', value: n }; - } - n = diffMinutes(m0, m1); - if (isInt(n)) { - return { unit: 'minute', value: n }; - } - n = diffSeconds(m0, m1); - if (isInt(n)) { - return { unit: 'second', value: n }; - } - return { unit: 'millisecond', value: m1.valueOf() - m0.valueOf() }; - }; - DateEnv.prototype.countDurationsBetween = function (m0, m1, d) { - // TODO: can use greatestWholeUnit - var diff; - if (d.years) { - diff = this.diffWholeYears(m0, m1); - if (diff !== null) { - return diff / asRoughYears(d); - } - } - if (d.months) { - diff = this.diffWholeMonths(m0, m1); - if (diff !== null) { - return diff / asRoughMonths(d); - } - } - if (d.days) { - diff = diffWholeDays(m0, m1); - if (diff !== null) { - return diff / asRoughDays(d); - } - } - return (m1.valueOf() - m0.valueOf()) / asRoughMs(d); - }; - // Start-Of - DateEnv.prototype.startOf = function (m, unit) { - if (unit === 'year') { - return this.startOfYear(m); - } - else if (unit === 'month') { - return this.startOfMonth(m); - } - else if (unit === 'week') { - return this.startOfWeek(m); - } - else if (unit === 'day') { - return startOfDay(m); - } - else if (unit === 'hour') { - return startOfHour(m); - } - else if (unit === 'minute') { - return startOfMinute(m); - } - else if (unit === 'second') { - return startOfSecond(m); - } - }; - DateEnv.prototype.startOfYear = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m) - ]); - }; - DateEnv.prototype.startOfMonth = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m), - this.calendarSystem.getMarkerMonth(m) - ]); - }; - DateEnv.prototype.startOfWeek = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m), - this.calendarSystem.getMarkerMonth(m), - m.getUTCDate() - ((m.getUTCDay() - this.weekDow + 7) % 7) - ]); - }; - // Week Number - DateEnv.prototype.computeWeekNumber = function (marker) { - if (this.weekNumberFunc) { - return this.weekNumberFunc(this.toDate(marker)); - } - else { - return weekOfYear(marker, this.weekDow, this.weekDoy); - } - }; - // TODO: choke on timeZoneName: long - DateEnv.prototype.format = function (marker, formatter, dateOptions) { - if (dateOptions === void 0) { dateOptions = {}; } - return formatter.format({ - marker: marker, - timeZoneOffset: dateOptions.forcedTzo != null ? - dateOptions.forcedTzo : - this.offsetForMarker(marker) - }, this); - }; - DateEnv.prototype.formatRange = function (start, end, formatter, dateOptions) { - if (dateOptions === void 0) { dateOptions = {}; } - if (dateOptions.isEndExclusive) { - end = addMs(end, -1); - } - return formatter.formatRange({ - marker: start, - timeZoneOffset: dateOptions.forcedStartTzo != null ? - dateOptions.forcedStartTzo : - this.offsetForMarker(start) - }, { - marker: end, - timeZoneOffset: dateOptions.forcedEndTzo != null ? - dateOptions.forcedEndTzo : - this.offsetForMarker(end) - }, this); - }; - DateEnv.prototype.formatIso = function (marker, extraOptions) { - if (extraOptions === void 0) { extraOptions = {}; } - var timeZoneOffset = null; - if (!extraOptions.omitTimeZoneOffset) { - if (extraOptions.forcedTzo != null) { - timeZoneOffset = extraOptions.forcedTzo; - } - else { - timeZoneOffset = this.offsetForMarker(marker); - } - } - return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime); - }; - // TimeZone - DateEnv.prototype.timestampToMarker = function (ms) { - if (this.timeZone === 'local') { - return arrayToUtcDate(dateToLocalArray(new Date(ms))); - } - else if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) { - return new Date(ms); - } - else { - return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms)); - } - }; - DateEnv.prototype.offsetForMarker = function (m) { - if (this.timeZone === 'local') { - return -arrayToLocalDate(dateToUtcArray(m)).getTimezoneOffset(); // convert "inverse" offset to "normal" offset - } - else if (this.timeZone === 'UTC') { - return 0; - } - else if (this.namedTimeZoneImpl) { - return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)); - } - return null; - }; - // Conversion - DateEnv.prototype.toDate = function (m, forcedTzo) { - if (this.timeZone === 'local') { - return arrayToLocalDate(dateToUtcArray(m)); - } - else if (this.timeZone === 'UTC') { - return new Date(m.valueOf()); // make sure it's a copy - } - else if (!this.namedTimeZoneImpl) { - return new Date(m.valueOf() - (forcedTzo || 0)); - } - else { - return new Date(m.valueOf() - - this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60 // convert minutes -> ms - ); - } - }; - return DateEnv; - }()); - - var SIMPLE_SOURCE_PROPS = { - id: String, - allDayDefault: Boolean, - eventDataTransform: Function, - success: Function, - failure: Function - }; - var uid$2 = 0; - function doesSourceNeedRange(eventSource, calendar) { - var defs = calendar.pluginSystem.hooks.eventSourceDefs; - return !defs[eventSource.sourceDefId].ignoreRange; - } - function parseEventSource(raw, calendar) { - var defs = calendar.pluginSystem.hooks.eventSourceDefs; - for (var i = defs.length - 1; i >= 0; i--) { // later-added plugins take precedence - var def = defs[i]; - var meta = def.parseMeta(raw); - if (meta) { - var res = parseEventSourceProps(typeof raw === 'object' ? raw : {}, meta, i, calendar); - res._raw = raw; - return res; - } - } - return null; - } - function parseEventSourceProps(raw, meta, sourceDefId, calendar) { - var leftovers0 = {}; - var props = refineProps(raw, SIMPLE_SOURCE_PROPS, {}, leftovers0); - var leftovers1 = {}; - var ui = processUnscopedUiProps(leftovers0, calendar, leftovers1); - props.isFetching = false; - props.latestFetchId = ''; - props.fetchRange = null; - props.publicId = String(raw.id || ''); - props.sourceId = String(uid$2++); - props.sourceDefId = sourceDefId; - props.meta = meta; - props.ui = ui; - props.extendedProps = leftovers1; - return props; - } - - function reduceEventSources (eventSources, action, dateProfile, calendar) { - switch (action.type) { - case 'ADD_EVENT_SOURCES': // already parsed - return addSources(eventSources, action.sources, dateProfile ? dateProfile.activeRange : null, calendar); - case 'REMOVE_EVENT_SOURCE': - return removeSource(eventSources, action.sourceId); - case 'PREV': // TODO: how do we track all actions that affect dateProfile :( - case 'NEXT': - case 'SET_DATE': - case 'SET_VIEW_TYPE': - if (dateProfile) { - return fetchDirtySources(eventSources, dateProfile.activeRange, calendar); - } - else { - return eventSources; - } - case 'FETCH_EVENT_SOURCES': - case 'CHANGE_TIMEZONE': - return fetchSourcesByIds(eventSources, action.sourceIds ? - arrayToHash(action.sourceIds) : - excludeStaticSources(eventSources, calendar), dateProfile ? dateProfile.activeRange : null, calendar); - case 'RECEIVE_EVENTS': - case 'RECEIVE_EVENT_ERROR': - return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange); - case 'REMOVE_ALL_EVENT_SOURCES': - return {}; - default: - return eventSources; - } - } - var uid$3 = 0; - function addSources(eventSourceHash, sources, fetchRange, calendar) { - var hash = {}; - for (var _i = 0, sources_1 = sources; _i < sources_1.length; _i++) { - var source = sources_1[_i]; - hash[source.sourceId] = source; - } - if (fetchRange) { - hash = fetchDirtySources(hash, fetchRange, calendar); - } - return __assign({}, eventSourceHash, hash); - } - function removeSource(eventSourceHash, sourceId) { - return filterHash(eventSourceHash, function (eventSource) { - return eventSource.sourceId !== sourceId; - }); - } - function fetchDirtySources(sourceHash, fetchRange, calendar) { - return fetchSourcesByIds(sourceHash, filterHash(sourceHash, function (eventSource) { - return isSourceDirty(eventSource, fetchRange, calendar); - }), fetchRange, calendar); - } - function isSourceDirty(eventSource, fetchRange, calendar) { - if (!doesSourceNeedRange(eventSource, calendar)) { - return !eventSource.latestFetchId; - } - else { - return !calendar.opt('lazyFetching') || - !eventSource.fetchRange || - fetchRange.start < eventSource.fetchRange.start || - fetchRange.end > eventSource.fetchRange.end; - } - } - function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, calendar) { - var nextSources = {}; - for (var sourceId in prevSources) { - var source = prevSources[sourceId]; - if (sourceIdHash[sourceId]) { - nextSources[sourceId] = fetchSource(source, fetchRange, calendar); - } - else { - nextSources[sourceId] = source; - } - } - return nextSources; - } - function fetchSource(eventSource, fetchRange, calendar) { - var sourceDef = calendar.pluginSystem.hooks.eventSourceDefs[eventSource.sourceDefId]; - var fetchId = String(uid$3++); - sourceDef.fetch({ - eventSource: eventSource, - calendar: calendar, - range: fetchRange - }, function (res) { - var rawEvents = res.rawEvents; - var calSuccess = calendar.opt('eventSourceSuccess'); - var calSuccessRes; - var sourceSuccessRes; - if (eventSource.success) { - sourceSuccessRes = eventSource.success(rawEvents, res.xhr); - } - if (calSuccess) { - calSuccessRes = calSuccess(rawEvents, res.xhr); - } - rawEvents = sourceSuccessRes || calSuccessRes || rawEvents; - calendar.dispatch({ - type: 'RECEIVE_EVENTS', - sourceId: eventSource.sourceId, - fetchId: fetchId, - fetchRange: fetchRange, - rawEvents: rawEvents - }); - }, function (error) { - var callFailure = calendar.opt('eventSourceFailure'); - console.warn(error.message, error); - if (eventSource.failure) { - eventSource.failure(error); - } - if (callFailure) { - callFailure(error); - } - calendar.dispatch({ - type: 'RECEIVE_EVENT_ERROR', - sourceId: eventSource.sourceId, - fetchId: fetchId, - fetchRange: fetchRange, - error: error - }); - }); - return __assign({}, eventSource, { isFetching: true, latestFetchId: fetchId }); - } - function receiveResponse(sourceHash, sourceId, fetchId, fetchRange) { - var _a; - var eventSource = sourceHash[sourceId]; - if (eventSource && // not already removed - fetchId === eventSource.latestFetchId) { - return __assign({}, sourceHash, (_a = {}, _a[sourceId] = __assign({}, eventSource, { isFetching: false, fetchRange: fetchRange }), _a)); - } - return sourceHash; - } - function excludeStaticSources(eventSources, calendar) { - return filterHash(eventSources, function (eventSource) { - return doesSourceNeedRange(eventSource, calendar); - }); - } - - var DateProfileGenerator = /** @class */ (function () { - function DateProfileGenerator(viewSpec, calendar) { - this.viewSpec = viewSpec; - this.options = viewSpec.options; - this.dateEnv = calendar.dateEnv; - this.calendar = calendar; - this.initHiddenDays(); - } - /* Date Range Computation - ------------------------------------------------------------------------------------------------------------------*/ - // Builds a structure with info about what the dates/ranges will be for the "prev" view. - DateProfileGenerator.prototype.buildPrev = function (currentDateProfile, currentDate) { - var dateEnv = this.dateEnv; - var prevDate = dateEnv.subtract(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month - currentDateProfile.dateIncrement); - return this.build(prevDate, -1); - }; - // Builds a structure with info about what the dates/ranges will be for the "next" view. - DateProfileGenerator.prototype.buildNext = function (currentDateProfile, currentDate) { - var dateEnv = this.dateEnv; - var nextDate = dateEnv.add(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month - currentDateProfile.dateIncrement); - return this.build(nextDate, 1); - }; - // Builds a structure holding dates/ranges for rendering around the given date. - // Optional direction param indicates whether the date is being incremented/decremented - // from its previous value. decremented = -1, incremented = 1 (default). - DateProfileGenerator.prototype.build = function (currentDate, direction, forceToValid) { - if (forceToValid === void 0) { forceToValid = false; } - var validRange; - var minTime = null; - var maxTime = null; - var currentInfo; - var isRangeAllDay; - var renderRange; - var activeRange; - var isValid; - validRange = this.buildValidRange(); - validRange = this.trimHiddenDays(validRange); - if (forceToValid) { - currentDate = constrainMarkerToRange(currentDate, validRange); - } - currentInfo = this.buildCurrentRangeInfo(currentDate, direction); - isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit); - renderRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.range), currentInfo.unit, isRangeAllDay); - renderRange = this.trimHiddenDays(renderRange); - activeRange = renderRange; - if (!this.options.showNonCurrentDates) { - activeRange = intersectRanges(activeRange, currentInfo.range); - } - minTime = createDuration(this.options.minTime); - maxTime = createDuration(this.options.maxTime); - activeRange = this.adjustActiveRange(activeRange, minTime, maxTime); - activeRange = intersectRanges(activeRange, validRange); // might return null - // it's invalid if the originally requested date is not contained, - // or if the range is completely outside of the valid range. - isValid = rangesIntersect(currentInfo.range, validRange); - return { - // constraint for where prev/next operations can go and where events can be dragged/resized to. - // an object with optional start and end properties. - validRange: validRange, - // range the view is formally responsible for. - // for example, a month view might have 1st-31st, excluding padded dates - currentRange: currentInfo.range, - // name of largest unit being displayed, like "month" or "week" - currentRangeUnit: currentInfo.unit, - isRangeAllDay: isRangeAllDay, - // dates that display events and accept drag-n-drop - // will be `null` if no dates accept events - activeRange: activeRange, - // date range with a rendered skeleton - // includes not-active days that need some sort of DOM - renderRange: renderRange, - // Duration object that denotes the first visible time of any given day - minTime: minTime, - // Duration object that denotes the exclusive visible end time of any given day - maxTime: maxTime, - isValid: isValid, - // how far the current date will move for a prev/next operation - dateIncrement: this.buildDateIncrement(currentInfo.duration) - // pass a fallback (might be null) ^ - }; - }; - // Builds an object with optional start/end properties. - // Indicates the minimum/maximum dates to display. - // not responsible for trimming hidden days. - DateProfileGenerator.prototype.buildValidRange = function () { - return this.getRangeOption('validRange', this.calendar.getNow()) || - { start: null, end: null }; // completely open-ended - }; - // Builds a structure with info about the "current" range, the range that is - // highlighted as being the current month for example. - // See build() for a description of `direction`. - // Guaranteed to have `range` and `unit` properties. `duration` is optional. - DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) { - var _a = this, viewSpec = _a.viewSpec, dateEnv = _a.dateEnv; - var duration = null; - var unit = null; - var range = null; - var dayCount; - if (viewSpec.duration) { - duration = viewSpec.duration; - unit = viewSpec.durationUnit; - range = this.buildRangeFromDuration(date, direction, duration, unit); - } - else if ((dayCount = this.options.dayCount)) { - unit = 'day'; - range = this.buildRangeFromDayCount(date, direction, dayCount); - } - else if ((range = this.buildCustomVisibleRange(date))) { - unit = dateEnv.greatestWholeUnit(range.start, range.end).unit; - } - else { - duration = this.getFallbackDuration(); - unit = greatestDurationDenominator(duration).unit; - range = this.buildRangeFromDuration(date, direction, duration, unit); - } - return { duration: duration, unit: unit, range: range }; - }; - DateProfileGenerator.prototype.getFallbackDuration = function () { - return createDuration({ day: 1 }); - }; - // Returns a new activeRange to have time values (un-ambiguate) - // minTime or maxTime causes the range to expand. - DateProfileGenerator.prototype.adjustActiveRange = function (range, minTime, maxTime) { - var dateEnv = this.dateEnv; - var start = range.start; - var end = range.end; - if (this.viewSpec.class.prototype.usesMinMaxTime) { - // expand active range if minTime is negative (why not when positive?) - if (asRoughDays(minTime) < 0) { - start = startOfDay(start); // necessary? - start = dateEnv.add(start, minTime); - } - // expand active range if maxTime is beyond one day (why not when positive?) - if (asRoughDays(maxTime) > 1) { - end = startOfDay(end); // necessary? - end = addDays(end, -1); - end = dateEnv.add(end, maxTime); - } - } - return { start: start, end: end }; - }; - // Builds the "current" range when it is specified as an explicit duration. - // `unit` is the already-computed greatestDurationDenominator unit of duration. - DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) { - var dateEnv = this.dateEnv; - var alignment = this.options.dateAlignment; - var dateIncrementInput; - var dateIncrementDuration; - var start; - var end; - var res; - // compute what the alignment should be - if (!alignment) { - dateIncrementInput = this.options.dateIncrement; - if (dateIncrementInput) { - dateIncrementDuration = createDuration(dateIncrementInput); - // use the smaller of the two units - if (asRoughMs(dateIncrementDuration) < asRoughMs(duration)) { - alignment = greatestDurationDenominator(dateIncrementDuration, !getWeeksFromInput(dateIncrementInput)).unit; - } - else { - alignment = unit; - } - } - else { - alignment = unit; - } - } - // if the view displays a single day or smaller - if (asRoughDays(duration) <= 1) { - if (this.isHiddenDay(start)) { - start = this.skipHiddenDays(start, direction); - start = startOfDay(start); - } - } - function computeRes() { - start = dateEnv.startOf(date, alignment); - end = dateEnv.add(start, duration); - res = { start: start, end: end }; - } - computeRes(); - // if range is completely enveloped by hidden days, go past the hidden days - if (!this.trimHiddenDays(res)) { - date = this.skipHiddenDays(date, direction); - computeRes(); - } - return res; - }; - // Builds the "current" range when a dayCount is specified. - DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) { - var dateEnv = this.dateEnv; - var customAlignment = this.options.dateAlignment; - var runningCount = 0; - var start = date; - var end; - if (customAlignment) { - start = dateEnv.startOf(start, customAlignment); - } - start = startOfDay(start); - start = this.skipHiddenDays(start, direction); - end = start; - do { - end = addDays(end, 1); - if (!this.isHiddenDay(end)) { - runningCount++; - } - } while (runningCount < dayCount); - return { start: start, end: end }; - }; - // Builds a normalized range object for the "visible" range, - // which is a way to define the currentRange and activeRange at the same time. - DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) { - var dateEnv = this.dateEnv; - var visibleRange = this.getRangeOption('visibleRange', dateEnv.toDate(date)); - if (visibleRange && (visibleRange.start == null || visibleRange.end == null)) { - return null; - } - return visibleRange; - }; - // Computes the range that will represent the element/cells for *rendering*, - // but which may have voided days/times. - // not responsible for trimming hidden days. - DateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) { - return currentRange; - }; - // Compute the duration value that should be added/substracted to the current date - // when a prev/next operation happens. - DateProfileGenerator.prototype.buildDateIncrement = function (fallback) { - var dateIncrementInput = this.options.dateIncrement; - var customAlignment; - if (dateIncrementInput) { - return createDuration(dateIncrementInput); - } - else if ((customAlignment = this.options.dateAlignment)) { - return createDuration(1, customAlignment); - } - else if (fallback) { - return fallback; - } - else { - return createDuration({ days: 1 }); - } - }; - // Arguments after name will be forwarded to a hypothetical function value - // WARNING: passed-in arguments will be given to generator functions as-is and can cause side-effects. - // Always clone your objects if you fear mutation. - DateProfileGenerator.prototype.getRangeOption = function (name) { - var otherArgs = []; - for (var _i = 1; _i < arguments.length; _i++) { - otherArgs[_i - 1] = arguments[_i]; - } - var val = this.options[name]; - if (typeof val === 'function') { - val = val.apply(null, otherArgs); - } - if (val) { - val = parseRange(val, this.dateEnv); - } - if (val) { - val = computeVisibleDayRange(val); - } - return val; - }; - /* Hidden Days - ------------------------------------------------------------------------------------------------------------------*/ - // Initializes internal variables related to calculating hidden days-of-week - DateProfileGenerator.prototype.initHiddenDays = function () { - var hiddenDays = this.options.hiddenDays || []; // array of day-of-week indices that are hidden - var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool) - var dayCnt = 0; - var i; - if (this.options.weekends === false) { - hiddenDays.push(0, 6); // 0=sunday, 6=saturday - } - for (i = 0; i < 7; i++) { - if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) { - dayCnt++; - } - } - if (!dayCnt) { - throw new Error('invalid hiddenDays'); // all days were hidden? bad. - } - this.isHiddenDayHash = isHiddenDayHash; - }; - // Remove days from the beginning and end of the range that are computed as hidden. - // If the whole range is trimmed off, returns null - DateProfileGenerator.prototype.trimHiddenDays = function (range) { - var start = range.start; - var end = range.end; - if (start) { - start = this.skipHiddenDays(start); - } - if (end) { - end = this.skipHiddenDays(end, -1, true); - } - if (start == null || end == null || start < end) { - return { start: start, end: end }; - } - return null; - }; - // Is the current day hidden? - // `day` is a day-of-week index (0-6), or a Date (used for UTC) - DateProfileGenerator.prototype.isHiddenDay = function (day) { - if (day instanceof Date) { - day = day.getUTCDay(); - } - return this.isHiddenDayHash[day]; - }; - // Incrementing the current day until it is no longer a hidden day, returning a copy. - // DOES NOT CONSIDER validRange! - // If the initial value of `date` is not a hidden day, don't do anything. - // Pass `isExclusive` as `true` if you are dealing with an end date. - // `inc` defaults to `1` (increment one day forward each time) - DateProfileGenerator.prototype.skipHiddenDays = function (date, inc, isExclusive) { - if (inc === void 0) { inc = 1; } - if (isExclusive === void 0) { isExclusive = false; } - while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) { - date = addDays(date, inc); - } - return date; - }; - return DateProfileGenerator; - }()); - // TODO: find a way to avoid comparing DateProfiles. it's tedious - function isDateProfilesEqual(p0, p1) { - return rangesEqual(p0.validRange, p1.validRange) && - rangesEqual(p0.activeRange, p1.activeRange) && - rangesEqual(p0.renderRange, p1.renderRange) && - durationsEqual(p0.minTime, p1.minTime) && - durationsEqual(p0.maxTime, p1.maxTime); - /* - TODO: compare more? - currentRange: DateRange - currentRangeUnit: string - isRangeAllDay: boolean - isValid: boolean - dateIncrement: Duration - */ - } - - function reduce (state, action, calendar) { - var viewType = reduceViewType(state.viewType, action); - var dateProfile = reduceDateProfile(state.dateProfile, action, state.currentDate, viewType, calendar); - var eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendar); - var nextState = __assign({}, state, { viewType: viewType, - dateProfile: dateProfile, currentDate: reduceCurrentDate(state.currentDate, action, dateProfile), eventSources: eventSources, eventStore: reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendar), dateSelection: reduceDateSelection(state.dateSelection, action, calendar), eventSelection: reduceSelectedEvent(state.eventSelection, action), eventDrag: reduceEventDrag(state.eventDrag, action, eventSources, calendar), eventResize: reduceEventResize(state.eventResize, action, eventSources, calendar), eventSourceLoadingLevel: computeLoadingLevel(eventSources), loadingLevel: computeLoadingLevel(eventSources) }); - for (var _i = 0, _a = calendar.pluginSystem.hooks.reducers; _i < _a.length; _i++) { - var reducerFunc = _a[_i]; - nextState = reducerFunc(nextState, action, calendar); - } - // console.log(action.type, nextState) - return nextState; - } - function reduceViewType(currentViewType, action) { - switch (action.type) { - case 'SET_VIEW_TYPE': - return action.viewType; - default: - return currentViewType; - } - } - function reduceDateProfile(currentDateProfile, action, currentDate, viewType, calendar) { - var newDateProfile; - switch (action.type) { - case 'PREV': - newDateProfile = calendar.dateProfileGenerators[viewType].buildPrev(currentDateProfile, currentDate); - break; - case 'NEXT': - newDateProfile = calendar.dateProfileGenerators[viewType].buildNext(currentDateProfile, currentDate); - break; - case 'SET_DATE': - if (!currentDateProfile.activeRange || - !rangeContainsMarker(currentDateProfile.currentRange, action.dateMarker)) { - newDateProfile = calendar.dateProfileGenerators[viewType].build(action.dateMarker, undefined, true // forceToValid - ); - } - break; - case 'SET_VIEW_TYPE': - var generator = calendar.dateProfileGenerators[viewType]; - if (!generator) { - throw new Error(viewType ? - 'The FullCalendar view "' + viewType + '" does not exist. Make sure your plugins are loaded correctly.' : - 'No available FullCalendar view plugins.'); - } - newDateProfile = generator.build(action.dateMarker || currentDate, undefined, true // forceToValid - ); - break; - } - if (newDateProfile && - newDateProfile.isValid && - !(currentDateProfile && isDateProfilesEqual(currentDateProfile, newDateProfile))) { - return newDateProfile; - } - else { - return currentDateProfile; - } - } - function reduceCurrentDate(currentDate, action, dateProfile) { - switch (action.type) { - case 'PREV': - case 'NEXT': - if (!rangeContainsMarker(dateProfile.currentRange, currentDate)) { - return dateProfile.currentRange.start; - } - else { - return currentDate; - } - case 'SET_DATE': - case 'SET_VIEW_TYPE': - var newDate = action.dateMarker || currentDate; - if (dateProfile.activeRange && !rangeContainsMarker(dateProfile.activeRange, newDate)) { - return dateProfile.currentRange.start; - } - else { - return newDate; - } - default: - return currentDate; - } - } - function reduceDateSelection(currentSelection, action, calendar) { - switch (action.type) { - case 'SELECT_DATES': - return action.selection; - case 'UNSELECT_DATES': - return null; - default: - return currentSelection; - } - } - function reduceSelectedEvent(currentInstanceId, action) { - switch (action.type) { - case 'SELECT_EVENT': - return action.eventInstanceId; - case 'UNSELECT_EVENT': - return ''; - default: - return currentInstanceId; - } - } - function reduceEventDrag(currentDrag, action, sources, calendar) { - switch (action.type) { - case 'SET_EVENT_DRAG': - var newDrag = action.state; - return { - affectedEvents: newDrag.affectedEvents, - mutatedEvents: newDrag.mutatedEvents, - isEvent: newDrag.isEvent, - origSeg: newDrag.origSeg - }; - case 'UNSET_EVENT_DRAG': - return null; - default: - return currentDrag; - } - } - function reduceEventResize(currentResize, action, sources, calendar) { - switch (action.type) { - case 'SET_EVENT_RESIZE': - var newResize = action.state; - return { - affectedEvents: newResize.affectedEvents, - mutatedEvents: newResize.mutatedEvents, - isEvent: newResize.isEvent, - origSeg: newResize.origSeg - }; - case 'UNSET_EVENT_RESIZE': - return null; - default: - return currentResize; - } - } - function computeLoadingLevel(eventSources) { - var cnt = 0; - for (var sourceId in eventSources) { - if (eventSources[sourceId].isFetching) { - cnt++; - } - } - return cnt; - } - - var STANDARD_PROPS = { - start: null, - end: null, - allDay: Boolean - }; - function parseDateSpan(raw, dateEnv, defaultDuration) { - var span = parseOpenDateSpan(raw, dateEnv); - var range = span.range; - if (!range.start) { - return null; - } - if (!range.end) { - if (defaultDuration == null) { - return null; - } - else { - range.end = dateEnv.add(range.start, defaultDuration); - } - } - return span; - } - /* - TODO: somehow combine with parseRange? - Will return null if the start/end props were present but parsed invalidly. - */ - function parseOpenDateSpan(raw, dateEnv) { - var leftovers = {}; - var standardProps = refineProps(raw, STANDARD_PROPS, {}, leftovers); - var startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null; - var endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null; - var allDay = standardProps.allDay; - if (allDay == null) { - allDay = (startMeta && startMeta.isTimeUnspecified) && - (!endMeta || endMeta.isTimeUnspecified); - } - // use this leftover object as the selection object - leftovers.range = { - start: startMeta ? startMeta.marker : null, - end: endMeta ? endMeta.marker : null - }; - leftovers.allDay = allDay; - return leftovers; - } - function isDateSpansEqual(span0, span1) { - return rangesEqual(span0.range, span1.range) && - span0.allDay === span1.allDay && - isSpanPropsEqual(span0, span1); - } - // the NON-DATE-RELATED props - function isSpanPropsEqual(span0, span1) { - for (var propName in span1) { - if (propName !== 'range' && propName !== 'allDay') { - if (span0[propName] !== span1[propName]) { - return false; - } - } - } - // are there any props that span0 has that span1 DOESN'T have? - // both have range/allDay, so no need to special-case. - for (var propName in span0) { - if (!(propName in span1)) { - return false; - } - } - return true; - } - function buildDateSpanApi(span, dateEnv) { - return { - start: dateEnv.toDate(span.range.start), - end: dateEnv.toDate(span.range.end), - startStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }), - endStr: dateEnv.formatIso(span.range.end, { omitTime: span.allDay }), - allDay: span.allDay - }; - } - function buildDatePointApi(span, dateEnv) { - return { - date: dateEnv.toDate(span.range.start), - dateStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }), - allDay: span.allDay - }; - } - function fabricateEventRange(dateSpan, eventUiBases, calendar) { - var def = parseEventDef({ editable: false }, '', // sourceId - dateSpan.allDay, true, // hasEnd - calendar); - return { - def: def, - ui: compileEventUi(def, eventUiBases), - instance: createEventInstance(def.defId, dateSpan.range), - range: dateSpan.range, - isStart: true, - isEnd: true - }; - } - - function compileViewDefs(defaultConfigs, overrideConfigs) { - var hash = {}; - var viewType; - for (viewType in defaultConfigs) { - ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs); - } - for (viewType in overrideConfigs) { - ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs); - } - return hash; - } - function ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) { - if (hash[viewType]) { - return hash[viewType]; - } - var viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs); - if (viewDef) { - hash[viewType] = viewDef; - } - return viewDef; - } - function buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) { - var defaultConfig = defaultConfigs[viewType]; - var overrideConfig = overrideConfigs[viewType]; - var queryProp = function (name) { - return (defaultConfig && defaultConfig[name] !== null) ? defaultConfig[name] : - ((overrideConfig && overrideConfig[name] !== null) ? overrideConfig[name] : null); - }; - var theClass = queryProp('class'); - var superType = queryProp('superType'); - if (!superType && theClass) { - superType = - findViewNameBySubclass(theClass, overrideConfigs) || - findViewNameBySubclass(theClass, defaultConfigs); - } - var superDef = null; - if (superType) { - if (superType === viewType) { - throw new Error('Can\'t have a custom view type that references itself'); - } - superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs); - } - if (!theClass && superDef) { - theClass = superDef.class; - } - if (!theClass) { - return null; // don't throw a warning, might be settings for a single-unit view - } - return { - type: viewType, - class: theClass, - defaults: __assign({}, (superDef ? superDef.defaults : {}), (defaultConfig ? defaultConfig.options : {})), - overrides: __assign({}, (superDef ? superDef.overrides : {}), (overrideConfig ? overrideConfig.options : {})) - }; - } - function findViewNameBySubclass(viewSubclass, configs) { - var superProto = Object.getPrototypeOf(viewSubclass.prototype); - for (var viewType in configs) { - var parsed = configs[viewType]; - // need DIRECT subclass, so instanceof won't do it - if (parsed.class && parsed.class.prototype === superProto) { - return viewType; - } - } - return ''; - } - - function parseViewConfigs(inputs) { - return mapHash(inputs, parseViewConfig); - } - var VIEW_DEF_PROPS = { - type: String, - class: null - }; - function parseViewConfig(input) { - if (typeof input === 'function') { - input = { class: input }; - } - var options = {}; - var props = refineProps(input, VIEW_DEF_PROPS, {}, options); - return { - superType: props.type, - class: props.class, - options: options - }; - } - - function buildViewSpecs(defaultInputs, optionsManager) { - var defaultConfigs = parseViewConfigs(defaultInputs); - var overrideConfigs = parseViewConfigs(optionsManager.overrides.views); - var viewDefs = compileViewDefs(defaultConfigs, overrideConfigs); - return mapHash(viewDefs, function (viewDef) { - return buildViewSpec(viewDef, overrideConfigs, optionsManager); - }); - } - function buildViewSpec(viewDef, overrideConfigs, optionsManager) { - var durationInput = viewDef.overrides.duration || - viewDef.defaults.duration || - optionsManager.dynamicOverrides.duration || - optionsManager.overrides.duration; - var duration = null; - var durationUnit = ''; - var singleUnit = ''; - var singleUnitOverrides = {}; - if (durationInput) { - duration = createDuration(durationInput); - if (duration) { // valid? - var denom = greatestDurationDenominator(duration, !getWeeksFromInput(durationInput)); - durationUnit = denom.unit; - if (denom.value === 1) { - singleUnit = durationUnit; - singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].options : {}; - } - } - } - var queryButtonText = function (options) { - var buttonTextMap = options.buttonText || {}; - var buttonTextKey = viewDef.defaults.buttonTextKey; - if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) { - return buttonTextMap[buttonTextKey]; - } - if (buttonTextMap[viewDef.type] != null) { - return buttonTextMap[viewDef.type]; - } - if (buttonTextMap[singleUnit] != null) { - return buttonTextMap[singleUnit]; - } - }; - return { - type: viewDef.type, - class: viewDef.class, - duration: duration, - durationUnit: durationUnit, - singleUnit: singleUnit, - options: __assign({}, globalDefaults, viewDef.defaults, optionsManager.dirDefaults, optionsManager.localeDefaults, optionsManager.overrides, singleUnitOverrides, viewDef.overrides, optionsManager.dynamicOverrides), - buttonTextOverride: queryButtonText(optionsManager.dynamicOverrides) || - queryButtonText(optionsManager.overrides) || // constructor-specified buttonText lookup hash takes precedence - viewDef.overrides.buttonText, - buttonTextDefault: queryButtonText(optionsManager.localeDefaults) || - queryButtonText(optionsManager.dirDefaults) || - viewDef.defaults.buttonText || - queryButtonText(globalDefaults) || - viewDef.type // fall back to given view name - }; - } - - var Toolbar = /** @class */ (function (_super) { - __extends(Toolbar, _super); - function Toolbar(context, extraClassName) { - var _this = _super.call(this, context) || this; - _this._renderLayout = memoizeRendering(_this.renderLayout, _this.unrenderLayout); - _this._updateTitle = memoizeRendering(_this.updateTitle, null, [_this._renderLayout]); - _this._updateActiveButton = memoizeRendering(_this.updateActiveButton, null, [_this._renderLayout]); - _this._updateToday = memoizeRendering(_this.updateToday, null, [_this._renderLayout]); - _this._updatePrev = memoizeRendering(_this.updatePrev, null, [_this._renderLayout]); - _this._updateNext = memoizeRendering(_this.updateNext, null, [_this._renderLayout]); - _this.el = createElement('div', { className: 'fc-toolbar ' + extraClassName }); - return _this; - } - Toolbar.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this._renderLayout.unrender(); // should unrender everything else - removeElement(this.el); - }; - Toolbar.prototype.render = function (props) { - this._renderLayout(props.layout); - this._updateTitle(props.title); - this._updateActiveButton(props.activeButton); - this._updateToday(props.isTodayEnabled); - this._updatePrev(props.isPrevEnabled); - this._updateNext(props.isNextEnabled); - }; - Toolbar.prototype.renderLayout = function (layout) { - var el = this.el; - this.viewsWithButtons = []; - appendToElement(el, this.renderSection('left', layout.left)); - appendToElement(el, this.renderSection('center', layout.center)); - appendToElement(el, this.renderSection('right', layout.right)); - }; - Toolbar.prototype.unrenderLayout = function () { - this.el.innerHTML = ''; - }; - Toolbar.prototype.renderSection = function (position, buttonStr) { - var _this = this; - var _a = this, theme = _a.theme, calendar = _a.calendar; - var optionsManager = calendar.optionsManager; - var viewSpecs = calendar.viewSpecs; - var sectionEl = createElement('div', { className: 'fc-' + position }); - var calendarCustomButtons = optionsManager.computed.customButtons || {}; - var calendarButtonTextOverrides = optionsManager.overrides.buttonText || {}; - var calendarButtonText = optionsManager.computed.buttonText || {}; - if (buttonStr) { - buttonStr.split(' ').forEach(function (buttonGroupStr, i) { - var groupChildren = []; - var isOnlyButtons = true; - var groupEl; - buttonGroupStr.split(',').forEach(function (buttonName, j) { - var customButtonProps; - var viewSpec; - var buttonClick; - var buttonIcon; // only one of these will be set - var buttonText; // " - var buttonInnerHtml; - var buttonClasses; - var buttonEl; - var buttonAriaAttr; - if (buttonName === 'title') { - groupChildren.push(htmlToElement('

 

')); // we always want it to take up height - isOnlyButtons = false; - } - else { - if ((customButtonProps = calendarCustomButtons[buttonName])) { - buttonClick = function (ev) { - if (customButtonProps.click) { - customButtonProps.click.call(buttonEl, ev); - } - }; - (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = customButtonProps.text); - } - else if ((viewSpec = viewSpecs[buttonName])) { - _this.viewsWithButtons.push(buttonName); - buttonClick = function () { - calendar.changeView(buttonName); - }; - (buttonText = viewSpec.buttonTextOverride) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = viewSpec.buttonTextDefault); - } - else if (calendar[buttonName]) { // a calendar method - buttonClick = function () { - calendar[buttonName](); - }; - (buttonText = calendarButtonTextOverrides[buttonName]) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = calendarButtonText[buttonName]); - // ^ everything else is considered default - } - if (buttonClick) { - buttonClasses = [ - 'fc-' + buttonName + '-button', - theme.getClass('button') - ]; - if (buttonText) { - buttonInnerHtml = htmlEscape(buttonText); - buttonAriaAttr = ''; - } - else if (buttonIcon) { - buttonInnerHtml = ""; - buttonAriaAttr = ' aria-label="' + buttonName + '"'; - } - buttonEl = htmlToElement(// type="button" so that it doesn't submit a form - ''); - buttonEl.addEventListener('click', buttonClick); - groupChildren.push(buttonEl); - } - } - }); - if (groupChildren.length > 1) { - groupEl = document.createElement('div'); - var buttonGroupClassName = theme.getClass('buttonGroup'); - if (isOnlyButtons && buttonGroupClassName) { - groupEl.classList.add(buttonGroupClassName); - } - appendToElement(groupEl, groupChildren); - sectionEl.appendChild(groupEl); - } - else { - appendToElement(sectionEl, groupChildren); // 1 or 0 children - } - }); - } - return sectionEl; - }; - Toolbar.prototype.updateToday = function (isTodayEnabled) { - this.toggleButtonEnabled('today', isTodayEnabled); - }; - Toolbar.prototype.updatePrev = function (isPrevEnabled) { - this.toggleButtonEnabled('prev', isPrevEnabled); - }; - Toolbar.prototype.updateNext = function (isNextEnabled) { - this.toggleButtonEnabled('next', isNextEnabled); - }; - Toolbar.prototype.updateTitle = function (text) { - findElements(this.el, 'h2').forEach(function (titleEl) { - titleEl.innerText = text; - }); - }; - Toolbar.prototype.updateActiveButton = function (buttonName) { - var className = this.theme.getClass('buttonActive'); - findElements(this.el, 'button').forEach(function (buttonEl) { - if (buttonName && buttonEl.classList.contains('fc-' + buttonName + '-button')) { - buttonEl.classList.add(className); - } - else { - buttonEl.classList.remove(className); - } - }); - }; - Toolbar.prototype.toggleButtonEnabled = function (buttonName, bool) { - findElements(this.el, '.fc-' + buttonName + '-button').forEach(function (buttonEl) { - buttonEl.disabled = !bool; - }); - }; - return Toolbar; - }(Component)); - - var CalendarComponent = /** @class */ (function (_super) { - __extends(CalendarComponent, _super); - function CalendarComponent(context, el) { - var _this = _super.call(this, context) || this; - _this._renderToolbars = memoizeRendering(_this.renderToolbars); - _this.buildViewPropTransformers = memoize(buildViewPropTransformers); - _this.el = el; - prependToElement(el, _this.contentEl = createElement('div', { className: 'fc-view-container' })); - var calendar = _this.calendar; - for (var _i = 0, _a = calendar.pluginSystem.hooks.viewContainerModifiers; _i < _a.length; _i++) { - var modifyViewContainer = _a[_i]; - modifyViewContainer(_this.contentEl, calendar); - } - _this.toggleElClassNames(true); - _this.computeTitle = memoize(computeTitle); - _this.parseBusinessHours = memoize(function (input) { - return parseBusinessHours(input, _this.calendar); - }); - return _this; - } - CalendarComponent.prototype.destroy = function () { - if (this.header) { - this.header.destroy(); - } - if (this.footer) { - this.footer.destroy(); - } - if (this.view) { - this.view.destroy(); - } - removeElement(this.contentEl); - this.toggleElClassNames(false); - _super.prototype.destroy.call(this); - }; - CalendarComponent.prototype.toggleElClassNames = function (bool) { - var classList = this.el.classList; - var dirClassName = 'fc-' + this.opt('dir'); - var themeClassName = this.theme.getClass('widget'); - if (bool) { - classList.add('fc'); - classList.add(dirClassName); - classList.add(themeClassName); - } - else { - classList.remove('fc'); - classList.remove(dirClassName); - classList.remove(themeClassName); - } - }; - CalendarComponent.prototype.render = function (props) { - this.freezeHeight(); - var title = this.computeTitle(props.dateProfile, props.viewSpec.options); - this._renderToolbars(props.viewSpec, props.dateProfile, props.currentDate, props.dateProfileGenerator, title); - this.renderView(props, title); - this.updateSize(); - this.thawHeight(); - }; - CalendarComponent.prototype.renderToolbars = function (viewSpec, dateProfile, currentDate, dateProfileGenerator, title) { - var headerLayout = this.opt('header'); - var footerLayout = this.opt('footer'); - var now = this.calendar.getNow(); - var todayInfo = dateProfileGenerator.build(now); - var prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate); - var nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate); - var toolbarProps = { - title: title, - activeButton: viewSpec.type, - isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now), - isPrevEnabled: prevInfo.isValid, - isNextEnabled: nextInfo.isValid - }; - if (headerLayout) { - if (!this.header) { - this.header = new Toolbar(this.context, 'fc-header-toolbar'); - prependToElement(this.el, this.header.el); - } - this.header.receiveProps(__assign({ layout: headerLayout }, toolbarProps)); - } - else if (this.header) { - this.header.destroy(); - this.header = null; - } - if (footerLayout) { - if (!this.footer) { - this.footer = new Toolbar(this.context, 'fc-footer-toolbar'); - appendToElement(this.el, this.footer.el); - } - this.footer.receiveProps(__assign({ layout: footerLayout }, toolbarProps)); - } - else if (this.footer) { - this.footer.destroy(); - this.footer = null; - } - }; - CalendarComponent.prototype.renderView = function (props, title) { - var view = this.view; - var viewSpec = props.viewSpec, dateProfileGenerator = props.dateProfileGenerator; - if (!view || view.viewSpec !== viewSpec) { - if (view) { - view.destroy(); - } - view = this.view = new viewSpec['class']({ - calendar: this.calendar, - view: null, - dateEnv: this.dateEnv, - theme: this.theme, - options: viewSpec.options - }, viewSpec, dateProfileGenerator, this.contentEl); - } - else { - view.addScroll(view.queryScroll()); - } - view.title = title; // for the API - var viewProps = { - dateProfile: props.dateProfile, - businessHours: this.parseBusinessHours(viewSpec.options.businessHours), - eventStore: props.eventStore, - eventUiBases: props.eventUiBases, - dateSelection: props.dateSelection, - eventSelection: props.eventSelection, - eventDrag: props.eventDrag, - eventResize: props.eventResize - }; - var transformers = this.buildViewPropTransformers(this.calendar.pluginSystem.hooks.viewPropsTransformers); - for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) { - var transformer = transformers_1[_i]; - __assign(viewProps, transformer.transform(viewProps, viewSpec, props, view)); - } - view.receiveProps(viewProps); - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - CalendarComponent.prototype.updateSize = function (isResize) { - if (isResize === void 0) { isResize = false; } - var view = this.view; - if (isResize) { - view.addScroll(view.queryScroll()); - } - if (isResize || this.isHeightAuto == null) { - this.computeHeightVars(); - } - view.updateSize(isResize, this.viewHeight, this.isHeightAuto); - view.updateNowIndicator(); // we need to guarantee this will run after updateSize - view.popScroll(isResize); - }; - CalendarComponent.prototype.computeHeightVars = function () { - var calendar = this.calendar; // yuck. need to handle dynamic options - var heightInput = calendar.opt('height'); - var contentHeightInput = calendar.opt('contentHeight'); - this.isHeightAuto = heightInput === 'auto' || contentHeightInput === 'auto'; - if (typeof contentHeightInput === 'number') { // exists and not 'auto' - this.viewHeight = contentHeightInput; - } - else if (typeof contentHeightInput === 'function') { // exists and is a function - this.viewHeight = contentHeightInput(); - } - else if (typeof heightInput === 'number') { // exists and not 'auto' - this.viewHeight = heightInput - this.queryToolbarsHeight(); - } - else if (typeof heightInput === 'function') { // exists and is a function - this.viewHeight = heightInput() - this.queryToolbarsHeight(); - } - else if (heightInput === 'parent') { // set to height of parent element - var parentEl = this.el.parentNode; - this.viewHeight = parentEl.getBoundingClientRect().height - this.queryToolbarsHeight(); - } - else { - this.viewHeight = Math.round(this.contentEl.getBoundingClientRect().width / - Math.max(calendar.opt('aspectRatio'), .5)); - } - }; - CalendarComponent.prototype.queryToolbarsHeight = function () { - var height = 0; - if (this.header) { - height += computeHeightAndMargins(this.header.el); - } - if (this.footer) { - height += computeHeightAndMargins(this.footer.el); - } - return height; - }; - // Height "Freezing" - // ----------------------------------------------------------------------------------------------------------------- - CalendarComponent.prototype.freezeHeight = function () { - applyStyle(this.el, { - height: this.el.getBoundingClientRect().height, - overflow: 'hidden' - }); - }; - CalendarComponent.prototype.thawHeight = function () { - applyStyle(this.el, { - height: '', - overflow: '' - }); - }; - return CalendarComponent; - }(Component)); - // Title and Date Formatting - // ----------------------------------------------------------------------------------------------------------------- - // Computes what the title at the top of the calendar should be for this view - function computeTitle(dateProfile, viewOptions) { - var range; - // for views that span a large unit of time, show the proper interval, ignoring stray days before and after - if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) { - range = dateProfile.currentRange; - } - else { // for day units or smaller, use the actual day range - range = dateProfile.activeRange; - } - return this.dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || computeTitleFormat(dateProfile), viewOptions.titleRangeSeparator), { isEndExclusive: dateProfile.isRangeAllDay }); - } - // Generates the format string that should be used to generate the title for the current date range. - // Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`. - function computeTitleFormat(dateProfile) { - var currentRangeUnit = dateProfile.currentRangeUnit; - if (currentRangeUnit === 'year') { - return { year: 'numeric' }; - } - else if (currentRangeUnit === 'month') { - return { year: 'numeric', month: 'long' }; // like "September 2014" - } - else { - var days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end); - if (days !== null && days > 1) { - // multi-day range. shorter, like "Sep 9 - 10 2014" - return { year: 'numeric', month: 'short', day: 'numeric' }; - } - else { - // one day. longer, like "September 9 2014" - return { year: 'numeric', month: 'long', day: 'numeric' }; - } - } - } - // Plugin - // ----------------------------------------------------------------------------------------------------------------- - function buildViewPropTransformers(theClasses) { - return theClasses.map(function (theClass) { - return new theClass(); - }); - } - - var Interaction = /** @class */ (function () { - function Interaction(settings) { - this.component = settings.component; - } - Interaction.prototype.destroy = function () { - }; - return Interaction; - }()); - function parseInteractionSettings(component, input) { - return { - component: component, - el: input.el, - useEventCenter: input.useEventCenter != null ? input.useEventCenter : true - }; - } - function interactionSettingsToStore(settings) { - var _a; - return _a = {}, - _a[settings.component.uid] = settings, - _a; - } - // global state - var interactionSettingsStore = {}; - - /* - Detects when the user clicks on an event within a DateComponent - */ - var EventClicking = /** @class */ (function (_super) { - __extends(EventClicking, _super); - function EventClicking(settings) { - var _this = _super.call(this, settings) || this; - _this.handleSegClick = function (ev, segEl) { - var component = _this.component; - var seg = getElSeg(segEl); - if (seg && // might be the
surrounding the more link - component.isValidSegDownEl(ev.target)) { - // our way to simulate a link click for elements that can't be tags - // grab before trigger fired in case trigger trashes DOM thru rerendering - var hasUrlContainer = elementClosest(ev.target, '.fc-has-url'); - var url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : ''; - component.publiclyTrigger('eventClick', [ - { - el: segEl, - event: new EventApi(component.calendar, seg.eventRange.def, seg.eventRange.instance), - jsEvent: ev, - view: component.view - } - ]); - if (url && !ev.defaultPrevented) { - window.location.href = url; - } - } - }; - var component = settings.component; - _this.destroy = listenBySelector(component.el, 'click', component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegClick); - return _this; - } - return EventClicking; - }(Interaction)); - - /* - Triggers events and adds/removes core classNames when the user's pointer - enters/leaves event-elements of a component. - */ - var EventHovering = /** @class */ (function (_super) { - __extends(EventHovering, _super); - function EventHovering(settings) { - var _this = _super.call(this, settings) || this; - // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it - _this.handleEventElRemove = function (el) { - if (el === _this.currentSegEl) { - _this.handleSegLeave(null, _this.currentSegEl); - } - }; - _this.handleSegEnter = function (ev, segEl) { - if (getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper - segEl.classList.add('fc-allow-mouse-resize'); - _this.currentSegEl = segEl; - _this.triggerEvent('eventMouseEnter', ev, segEl); - } - }; - _this.handleSegLeave = function (ev, segEl) { - if (_this.currentSegEl) { - segEl.classList.remove('fc-allow-mouse-resize'); - _this.currentSegEl = null; - _this.triggerEvent('eventMouseLeave', ev, segEl); - } - }; - var component = settings.component; - _this.removeHoverListeners = listenToHoverBySelector(component.el, component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegEnter, _this.handleSegLeave); - component.calendar.on('eventElRemove', _this.handleEventElRemove); - return _this; - } - EventHovering.prototype.destroy = function () { - this.removeHoverListeners(); - this.component.calendar.off('eventElRemove', this.handleEventElRemove); - }; - EventHovering.prototype.triggerEvent = function (publicEvName, ev, segEl) { - var component = this.component; - var seg = getElSeg(segEl); - if (!ev || component.isValidSegDownEl(ev.target)) { - component.publiclyTrigger(publicEvName, [ - { - el: segEl, - event: new EventApi(this.component.calendar, seg.eventRange.def, seg.eventRange.instance), - jsEvent: ev, - view: component.view - } - ]); - } - }; - return EventHovering; - }(Interaction)); - - var StandardTheme = /** @class */ (function (_super) { - __extends(StandardTheme, _super); - function StandardTheme() { - return _super !== null && _super.apply(this, arguments) || this; - } - return StandardTheme; - }(Theme)); - StandardTheme.prototype.classes = { - widget: 'fc-unthemed', - widgetHeader: 'fc-widget-header', - widgetContent: 'fc-widget-content', - buttonGroup: 'fc-button-group', - button: 'fc-button fc-button-primary', - buttonActive: 'fc-button-active', - popoverHeader: 'fc-widget-header', - popoverContent: 'fc-widget-content', - // day grid - headerRow: 'fc-widget-header', - dayRow: 'fc-widget-content', - // list view - listView: 'fc-widget-content' - }; - StandardTheme.prototype.baseIconClass = 'fc-icon'; - StandardTheme.prototype.iconClasses = { - close: 'fc-icon-x', - prev: 'fc-icon-chevron-left', - next: 'fc-icon-chevron-right', - prevYear: 'fc-icon-chevrons-left', - nextYear: 'fc-icon-chevrons-right' - }; - StandardTheme.prototype.iconOverrideOption = 'buttonIcons'; - StandardTheme.prototype.iconOverrideCustomButtonOption = 'icon'; - StandardTheme.prototype.iconOverridePrefix = 'fc-icon-'; - - var Calendar = /** @class */ (function () { - function Calendar(el, overrides) { - var _this = this; - this.parseRawLocales = memoize(parseRawLocales); - this.buildLocale = memoize(buildLocale); - this.buildDateEnv = memoize(buildDateEnv); - this.buildTheme = memoize(buildTheme); - this.buildEventUiSingleBase = memoize(this._buildEventUiSingleBase); - this.buildSelectionConfig = memoize(this._buildSelectionConfig); - this.buildEventUiBySource = memoizeOutput(buildEventUiBySource, isPropsEqual); - this.buildEventUiBases = memoize(buildEventUiBases); - this.interactionsStore = {}; - this.actionQueue = []; - this.isReducing = false; - // isDisplaying: boolean = false // installed in DOM? accepting renders? - this.needsRerender = false; // needs a render? - this.needsFullRerender = false; - this.isRendering = false; // currently in the executeRender function? - this.renderingPauseDepth = 0; - this.buildDelayedRerender = memoize(buildDelayedRerender); - this.afterSizingTriggers = {}; - this.isViewUpdated = false; - this.isDatesUpdated = false; - this.isEventsUpdated = false; - this.el = el; - this.optionsManager = new OptionsManager(overrides || {}); - this.pluginSystem = new PluginSystem(); - // only do once. don't do in handleOptions. because can't remove plugins - this.addPluginInputs(this.optionsManager.computed.plugins || []); - this.handleOptions(this.optionsManager.computed); - this.publiclyTrigger('_init'); // for tests - this.hydrate(); - this.calendarInteractions = this.pluginSystem.hooks.calendarInteractions - .map(function (calendarInteractionClass) { - return new calendarInteractionClass(_this); - }); - } - Calendar.prototype.addPluginInputs = function (pluginInputs) { - var pluginDefs = refinePluginDefs(pluginInputs); - for (var _i = 0, pluginDefs_1 = pluginDefs; _i < pluginDefs_1.length; _i++) { - var pluginDef = pluginDefs_1[_i]; - this.pluginSystem.add(pluginDef); - } - }; - Object.defineProperty(Calendar.prototype, "view", { - // public API - get: function () { - return this.component ? this.component.view : null; - }, - enumerable: true, - configurable: true - }); - // Public API for rendering - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.render = function () { - if (!this.component) { - this.renderableEventStore = createEmptyEventStore(); - this.bindHandlers(); - this.executeRender(); - } - else { - this.requestRerender(true); - } - }; - Calendar.prototype.destroy = function () { - if (this.component) { - this.unbindHandlers(); - this.component.destroy(); // don't null-out. in case API needs access - this.component = null; // umm ??? - for (var _i = 0, _a = this.calendarInteractions; _i < _a.length; _i++) { - var interaction = _a[_i]; - interaction.destroy(); - } - this.publiclyTrigger('_destroyed'); - } - }; - // Handlers - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.bindHandlers = function () { - var _this = this; - // event delegation for nav links - this.removeNavLinkListener = listenBySelector(this.el, 'click', 'a[data-goto]', function (ev, anchorEl) { - var gotoOptions = anchorEl.getAttribute('data-goto'); - gotoOptions = gotoOptions ? JSON.parse(gotoOptions) : {}; - var dateEnv = _this.dateEnv; - var dateMarker = dateEnv.createMarker(gotoOptions.date); - var viewType = gotoOptions.type; - // property like "navLinkDayClick". might be a string or a function - var customAction = _this.viewOpt('navLink' + capitaliseFirstLetter(viewType) + 'Click'); - if (typeof customAction === 'function') { - customAction(dateEnv.toDate(dateMarker), ev); - } - else { - if (typeof customAction === 'string') { - viewType = customAction; - } - _this.zoomTo(dateMarker, viewType); - } - }); - if (this.opt('handleWindowResize')) { - window.addEventListener('resize', this.windowResizeProxy = debounce(// prevents rapid calls - this.windowResize.bind(this), this.opt('windowResizeDelay'))); - } - }; - Calendar.prototype.unbindHandlers = function () { - this.removeNavLinkListener(); - if (this.windowResizeProxy) { - window.removeEventListener('resize', this.windowResizeProxy); - this.windowResizeProxy = null; - } - }; - // Dispatcher - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.hydrate = function () { - var _this = this; - this.state = this.buildInitialState(); - var rawSources = this.opt('eventSources') || []; - var singleRawSource = this.opt('events'); - var sources = []; // parsed - if (singleRawSource) { - rawSources.unshift(singleRawSource); - } - for (var _i = 0, rawSources_1 = rawSources; _i < rawSources_1.length; _i++) { - var rawSource = rawSources_1[_i]; - var source = parseEventSource(rawSource, this); - if (source) { - sources.push(source); - } - } - this.batchRendering(function () { - _this.dispatch({ type: 'INIT' }); // pass in sources here? - _this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: sources }); - _this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: _this.opt('defaultView') || _this.pluginSystem.hooks.defaultView - }); - }); - }; - Calendar.prototype.buildInitialState = function () { - return { - viewType: null, - loadingLevel: 0, - eventSourceLoadingLevel: 0, - currentDate: this.getInitialDate(), - dateProfile: null, - eventSources: {}, - eventStore: createEmptyEventStore(), - dateSelection: null, - eventSelection: '', - eventDrag: null, - eventResize: null - }; - }; - Calendar.prototype.dispatch = function (action) { - this.actionQueue.push(action); - if (!this.isReducing) { - this.isReducing = true; - var oldState = this.state; - while (this.actionQueue.length) { - this.state = this.reduce(this.state, this.actionQueue.shift(), this); - } - var newState = this.state; - this.isReducing = false; - if (!oldState.loadingLevel && newState.loadingLevel) { - this.publiclyTrigger('loading', [true]); - } - else if (oldState.loadingLevel && !newState.loadingLevel) { - this.publiclyTrigger('loading', [false]); - } - var view = this.component && this.component.view; - if (oldState.eventStore !== newState.eventStore || this.needsFullRerender) { - if (oldState.eventStore) { - this.isEventsUpdated = true; - } - } - if (oldState.dateProfile !== newState.dateProfile || this.needsFullRerender) { - if (oldState.dateProfile && view) { // why would view be null!? - this.publiclyTrigger('datesDestroy', [ - { - view: view, - el: view.el - } - ]); - } - this.isDatesUpdated = true; - } - if (oldState.viewType !== newState.viewType || this.needsFullRerender) { - if (oldState.viewType && view) { // why would view be null!? - this.publiclyTrigger('viewSkeletonDestroy', [ - { - view: view, - el: view.el - } - ]); - } - this.isViewUpdated = true; - } - this.requestRerender(); - } - }; - Calendar.prototype.reduce = function (state, action, calendar) { - return reduce(state, action, calendar); - }; - // Render Queue - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.requestRerender = function (needsFull) { - if (needsFull === void 0) { needsFull = false; } - this.needsRerender = true; - this.needsFullRerender = this.needsFullRerender || needsFull; - this.delayedRerender(); // will call a debounced-version of tryRerender - }; - Calendar.prototype.tryRerender = function () { - if (this.component && // must be accepting renders - this.needsRerender && // indicates that a rerender was requested - !this.renderingPauseDepth && // not paused - !this.isRendering // not currently in the render loop - ) { - this.executeRender(); - } - }; - Calendar.prototype.batchRendering = function (func) { - this.renderingPauseDepth++; - func(); - this.renderingPauseDepth--; - if (this.needsRerender) { - this.requestRerender(); - } - }; - // Rendering - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.executeRender = function () { - var needsFullRerender = this.needsFullRerender; // save before clearing - // clear these BEFORE the render so that new values will accumulate during render - this.needsRerender = false; - this.needsFullRerender = false; - this.isRendering = true; - this.renderComponent(needsFullRerender); - this.isRendering = false; - // received a rerender request while rendering - if (this.needsRerender) { - this.delayedRerender(); - } - }; - /* - don't call this directly. use executeRender instead - */ - Calendar.prototype.renderComponent = function (needsFull) { - var _a = this, state = _a.state, component = _a.component; - var viewType = state.viewType; - var viewSpec = this.viewSpecs[viewType]; - var savedScroll = (needsFull && component) ? component.view.queryScroll() : null; - if (!viewSpec) { - throw new Error("View type \"" + viewType + "\" is not valid"); - } - // if event sources are still loading and progressive rendering hasn't been enabled, - // keep rendering the last fully loaded set of events - var renderableEventStore = this.renderableEventStore = - (state.eventSourceLoadingLevel && !this.opt('progressiveEventRendering')) ? - this.renderableEventStore : - state.eventStore; - var eventUiSingleBase = this.buildEventUiSingleBase(viewSpec.options); - var eventUiBySource = this.buildEventUiBySource(state.eventSources); - var eventUiBases = this.eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource); - if (needsFull || !component) { - if (component) { - component.freezeHeight(); // next component will unfreeze it - component.destroy(); - } - component = this.component = new CalendarComponent({ - calendar: this, - view: null, - dateEnv: this.dateEnv, - theme: this.theme, - options: this.optionsManager.computed - }, this.el); - this.isViewUpdated = true; - this.isDatesUpdated = true; - this.isEventsUpdated = true; - } - component.receiveProps(__assign({}, state, { viewSpec: viewSpec, dateProfile: state.dateProfile, dateProfileGenerator: this.dateProfileGenerators[viewType], eventStore: renderableEventStore, eventUiBases: eventUiBases, dateSelection: state.dateSelection, eventSelection: state.eventSelection, eventDrag: state.eventDrag, eventResize: state.eventResize })); - if (savedScroll) { - component.view.applyScroll(savedScroll, false); - } - if (this.isViewUpdated) { - this.isViewUpdated = false; - this.publiclyTrigger('viewSkeletonRender', [ - { - view: component.view, - el: component.view.el - } - ]); - } - if (this.isDatesUpdated) { - this.isDatesUpdated = false; - this.publiclyTrigger('datesRender', [ - { - view: component.view, - el: component.view.el - } - ]); - } - if (this.isEventsUpdated) { - this.isEventsUpdated = false; - } - this.releaseAfterSizingTriggers(); - }; - // Options - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.setOption = function (name, val) { - var _a; - this.mutateOptions((_a = {}, _a[name] = val, _a), [], true); - }; - Calendar.prototype.getOption = function (name) { - return this.optionsManager.computed[name]; - }; - Calendar.prototype.opt = function (name) { - return this.optionsManager.computed[name]; - }; - Calendar.prototype.viewOpt = function (name) { - return this.viewOpts()[name]; - }; - Calendar.prototype.viewOpts = function () { - return this.viewSpecs[this.state.viewType].options; - }; - /* - handles option changes (like a diff) - */ - Calendar.prototype.mutateOptions = function (updates, removals, isDynamic, deepEqual) { - var _this = this; - var changeHandlers = this.pluginSystem.hooks.optionChangeHandlers; - var normalUpdates = {}; - var specialUpdates = {}; - var oldDateEnv = this.dateEnv; // do this before handleOptions - var isTimeZoneDirty = false; - var isSizeDirty = false; - var anyDifficultOptions = Boolean(removals.length); - for (var name_1 in updates) { - if (changeHandlers[name_1]) { - specialUpdates[name_1] = updates[name_1]; - } - else { - normalUpdates[name_1] = updates[name_1]; - } - } - for (var name_2 in normalUpdates) { - if (/^(height|contentHeight|aspectRatio)$/.test(name_2)) { - isSizeDirty = true; - } - else if (/^(defaultDate|defaultView)$/.test(name_2)) ; - else { - anyDifficultOptions = true; - if (name_2 === 'timeZone') { - isTimeZoneDirty = true; - } - } - } - this.optionsManager.mutate(normalUpdates, removals, isDynamic); - if (anyDifficultOptions) { - this.handleOptions(this.optionsManager.computed); - this.needsFullRerender = true; - } - this.batchRendering(function () { - if (anyDifficultOptions) { - if (isTimeZoneDirty) { - _this.dispatch({ - type: 'CHANGE_TIMEZONE', - oldDateEnv: oldDateEnv - }); - } - /* HACK - has the same effect as calling this.requestRerender(true) - but recomputes the state's dateProfile - */ - _this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: _this.state.viewType - }); - } - else if (isSizeDirty) { - _this.updateSize(); - } - // special updates - if (deepEqual) { - for (var name_3 in specialUpdates) { - changeHandlers[name_3](specialUpdates[name_3], _this, deepEqual); - } - } - }); - }; - /* - rebuilds things based off of a complete set of refined options - */ - Calendar.prototype.handleOptions = function (options) { - var _this = this; - var pluginHooks = this.pluginSystem.hooks; - this.defaultAllDayEventDuration = createDuration(options.defaultAllDayEventDuration); - this.defaultTimedEventDuration = createDuration(options.defaultTimedEventDuration); - this.delayedRerender = this.buildDelayedRerender(options.rerenderDelay); - this.theme = this.buildTheme(options); - var available = this.parseRawLocales(options.locales); - this.availableRawLocales = available.map; - var locale = this.buildLocale(options.locale || available.defaultCode, available.map); - this.dateEnv = this.buildDateEnv(locale, options.timeZone, pluginHooks.namedTimeZonedImpl, options.firstDay, options.weekNumberCalculation, options.weekLabel, pluginHooks.cmdFormatter); - this.selectionConfig = this.buildSelectionConfig(options); // needs dateEnv. do after :( - // ineffecient to do every time? - this.viewSpecs = buildViewSpecs(pluginHooks.views, this.optionsManager); - // ineffecient to do every time? - this.dateProfileGenerators = mapHash(this.viewSpecs, function (viewSpec) { - return new viewSpec.class.prototype.dateProfileGeneratorClass(viewSpec, _this); - }); - }; - Calendar.prototype.getAvailableLocaleCodes = function () { - return Object.keys(this.availableRawLocales); - }; - Calendar.prototype._buildSelectionConfig = function (rawOpts) { - return processScopedUiProps('select', rawOpts, this); - }; - Calendar.prototype._buildEventUiSingleBase = function (rawOpts) { - if (rawOpts.editable) { // so 'editable' affected events - rawOpts = __assign({}, rawOpts, { eventEditable: true }); - } - return processScopedUiProps('event', rawOpts, this); - }; - // Trigger - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.hasPublicHandlers = function (name) { - return this.hasHandlers(name) || - this.opt(name); // handler specified in options - }; - Calendar.prototype.publiclyTrigger = function (name, args) { - var optHandler = this.opt(name); - this.triggerWith(name, this, args); - if (optHandler) { - return optHandler.apply(this, args); - } - }; - Calendar.prototype.publiclyTriggerAfterSizing = function (name, args) { - var afterSizingTriggers = this.afterSizingTriggers; - (afterSizingTriggers[name] || (afterSizingTriggers[name] = [])).push(args); - }; - Calendar.prototype.releaseAfterSizingTriggers = function () { - var afterSizingTriggers = this.afterSizingTriggers; - for (var name_4 in afterSizingTriggers) { - for (var _i = 0, _a = afterSizingTriggers[name_4]; _i < _a.length; _i++) { - var args = _a[_i]; - this.publiclyTrigger(name_4, args); - } - } - this.afterSizingTriggers = {}; - }; - // View - // ----------------------------------------------------------------------------------------------------------------- - // Returns a boolean about whether the view is okay to instantiate at some point - Calendar.prototype.isValidViewType = function (viewType) { - return Boolean(this.viewSpecs[viewType]); - }; - Calendar.prototype.changeView = function (viewType, dateOrRange) { - var dateMarker = null; - if (dateOrRange) { - if (dateOrRange.start && dateOrRange.end) { // a range - this.optionsManager.mutate({ visibleRange: dateOrRange }, []); // will not rerender - this.handleOptions(this.optionsManager.computed); // ...but yuck - } - else { // a date - dateMarker = this.dateEnv.createMarker(dateOrRange); // just like gotoDate - } - } - this.unselect(); - this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: viewType, - dateMarker: dateMarker - }); - }; - // Forces navigation to a view for the given date. - // `viewType` can be a specific view name or a generic one like "week" or "day". - // needs to change - Calendar.prototype.zoomTo = function (dateMarker, viewType) { - var spec; - viewType = viewType || 'day'; // day is default zoom - spec = this.viewSpecs[viewType] || - this.getUnitViewSpec(viewType); - this.unselect(); - if (spec) { - this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: spec.type, - dateMarker: dateMarker - }); - } - else { - this.dispatch({ - type: 'SET_DATE', - dateMarker: dateMarker - }); - } - }; - // Given a duration singular unit, like "week" or "day", finds a matching view spec. - // Preference is given to views that have corresponding buttons. - Calendar.prototype.getUnitViewSpec = function (unit) { - var component = this.component; - var viewTypes = []; - var i; - var spec; - // put views that have buttons first. there will be duplicates, but oh - if (component.header) { - viewTypes.push.apply(viewTypes, component.header.viewsWithButtons); - } - if (component.footer) { - viewTypes.push.apply(viewTypes, component.footer.viewsWithButtons); - } - for (var viewType in this.viewSpecs) { - viewTypes.push(viewType); - } - for (i = 0; i < viewTypes.length; i++) { - spec = this.viewSpecs[viewTypes[i]]; - if (spec) { - if (spec.singleUnit === unit) { - return spec; - } - } - } - }; - // Current Date - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.getInitialDate = function () { - var defaultDateInput = this.opt('defaultDate'); - // compute the initial ambig-timezone date - if (defaultDateInput != null) { - return this.dateEnv.createMarker(defaultDateInput); - } - else { - return this.getNow(); // getNow already returns unzoned - } - }; - Calendar.prototype.prev = function () { - this.unselect(); - this.dispatch({ type: 'PREV' }); - }; - Calendar.prototype.next = function () { - this.unselect(); - this.dispatch({ type: 'NEXT' }); - }; - Calendar.prototype.prevYear = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.addYears(this.state.currentDate, -1) - }); - }; - Calendar.prototype.nextYear = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.addYears(this.state.currentDate, 1) - }); - }; - Calendar.prototype.today = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.getNow() - }); - }; - Calendar.prototype.gotoDate = function (zonedDateInput) { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.createMarker(zonedDateInput) - }); - }; - Calendar.prototype.incrementDate = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // else, warn about invalid input? - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.add(this.state.currentDate, delta) - }); - } - }; - // for external API - Calendar.prototype.getDate = function () { - return this.dateEnv.toDate(this.state.currentDate); - }; - // Date Formatting Utils - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.formatDate = function (d, formatter) { - var dateEnv = this.dateEnv; - return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter)); - }; - // `settings` is for formatter AND isEndExclusive - Calendar.prototype.formatRange = function (d0, d1, settings) { - var dateEnv = this.dateEnv; - return dateEnv.formatRange(dateEnv.createMarker(d0), dateEnv.createMarker(d1), createFormatter(settings, this.opt('defaultRangeSeparator')), settings); - }; - Calendar.prototype.formatIso = function (d, omitTime) { - var dateEnv = this.dateEnv; - return dateEnv.formatIso(dateEnv.createMarker(d), { omitTime: omitTime }); - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.windowResize = function (ev) { - if (!this.isHandlingWindowResize && - this.component && // why? - ev.target === window // not a jqui resize event - ) { - this.isHandlingWindowResize = true; - this.updateSize(); - this.publiclyTrigger('windowResize', [this.view]); - this.isHandlingWindowResize = false; - } - }; - Calendar.prototype.updateSize = function () { - if (this.component) { // when? - this.component.updateSize(true); - } - }; - // Component Registration - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.registerInteractiveComponent = function (component, settingsInput) { - var settings = parseInteractionSettings(component, settingsInput); - var DEFAULT_INTERACTIONS = [ - EventClicking, - EventHovering - ]; - var interactionClasses = DEFAULT_INTERACTIONS.concat(this.pluginSystem.hooks.componentInteractions); - var interactions = interactionClasses.map(function (interactionClass) { - return new interactionClass(settings); - }); - this.interactionsStore[component.uid] = interactions; - interactionSettingsStore[component.uid] = settings; - }; - Calendar.prototype.unregisterInteractiveComponent = function (component) { - for (var _i = 0, _a = this.interactionsStore[component.uid]; _i < _a.length; _i++) { - var listener = _a[_i]; - listener.destroy(); - } - delete this.interactionsStore[component.uid]; - delete interactionSettingsStore[component.uid]; - }; - // Date Selection / Event Selection / DayClick - // ----------------------------------------------------------------------------------------------------------------- - // this public method receives start/end dates in any format, with any timezone - // NOTE: args were changed from v3 - Calendar.prototype.select = function (dateOrObj, endDate) { - var selectionInput; - if (endDate == null) { - if (dateOrObj.start != null) { - selectionInput = dateOrObj; - } - else { - selectionInput = { - start: dateOrObj, - end: null - }; - } - } - else { - selectionInput = { - start: dateOrObj, - end: endDate - }; - } - var selection = parseDateSpan(selectionInput, this.dateEnv, createDuration({ days: 1 }) // TODO: cache this? - ); - if (selection) { // throw parse error otherwise? - this.dispatch({ type: 'SELECT_DATES', selection: selection }); - this.triggerDateSelect(selection); - } - }; - // public method - Calendar.prototype.unselect = function (pev) { - if (this.state.dateSelection) { - this.dispatch({ type: 'UNSELECT_DATES' }); - this.triggerDateUnselect(pev); - } - }; - Calendar.prototype.triggerDateSelect = function (selection, pev) { - var arg = __assign({}, this.buildDateSpanApi(selection), { jsEvent: pev ? pev.origEvent : null, view: this.view }); - this.publiclyTrigger('select', [arg]); - }; - Calendar.prototype.triggerDateUnselect = function (pev) { - this.publiclyTrigger('unselect', [ - { - jsEvent: pev ? pev.origEvent : null, - view: this.view - } - ]); - }; - // TODO: receive pev? - Calendar.prototype.triggerDateClick = function (dateSpan, dayEl, view, ev) { - var arg = __assign({}, this.buildDatePointApi(dateSpan), { dayEl: dayEl, jsEvent: ev, // Is this always a mouse event? See #4655 - view: view }); - this.publiclyTrigger('dateClick', [arg]); - }; - Calendar.prototype.buildDatePointApi = function (dateSpan) { - var props = {}; - for (var _i = 0, _a = this.pluginSystem.hooks.datePointTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(props, transform(dateSpan, this)); - } - __assign(props, buildDatePointApi(dateSpan, this.dateEnv)); - return props; - }; - Calendar.prototype.buildDateSpanApi = function (dateSpan) { - var props = {}; - for (var _i = 0, _a = this.pluginSystem.hooks.dateSpanTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(props, transform(dateSpan, this)); - } - __assign(props, buildDateSpanApi(dateSpan, this.dateEnv)); - return props; - }; - // Date Utils - // ----------------------------------------------------------------------------------------------------------------- - // Returns a DateMarker for the current date, as defined by the client's computer or from the `now` option - Calendar.prototype.getNow = function () { - var now = this.opt('now'); - if (typeof now === 'function') { - now = now(); - } - if (now == null) { - return this.dateEnv.createNowMarker(); - } - return this.dateEnv.createMarker(now); - }; - // Event-Date Utilities - // ----------------------------------------------------------------------------------------------------------------- - // Given an event's allDay status and start date, return what its fallback end date should be. - // TODO: rename to computeDefaultEventEnd - Calendar.prototype.getDefaultEventEnd = function (allDay, marker) { - var end = marker; - if (allDay) { - end = startOfDay(end); - end = this.dateEnv.add(end, this.defaultAllDayEventDuration); - } - else { - end = this.dateEnv.add(end, this.defaultTimedEventDuration); - } - return end; - }; - // Public Events API - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.addEvent = function (eventInput, sourceInput) { - if (eventInput instanceof EventApi) { - var def = eventInput._def; - var instance = eventInput._instance; - // not already present? don't want to add an old snapshot - if (!this.state.eventStore.defs[def.defId]) { - this.dispatch({ - type: 'ADD_EVENTS', - eventStore: eventTupleToStore({ def: def, instance: instance }) // TODO: better util for two args? - }); - } - return eventInput; - } - var sourceId; - if (sourceInput instanceof EventSourceApi) { - sourceId = sourceInput.internalEventSource.sourceId; - } - else if (sourceInput != null) { - var sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function - if (!sourceApi) { - console.warn('Could not find an event source with ID "' + sourceInput + '"'); // TODO: test - return null; - } - else { - sourceId = sourceApi.internalEventSource.sourceId; - } - } - var tuple = parseEvent(eventInput, sourceId, this); - if (tuple) { - this.dispatch({ - type: 'ADD_EVENTS', - eventStore: eventTupleToStore(tuple) - }); - return new EventApi(this, tuple.def, tuple.def.recurringDef ? null : tuple.instance); - } - return null; - }; - // TODO: optimize - Calendar.prototype.getEventById = function (id) { - var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances; - id = String(id); - for (var defId in defs) { - var def = defs[defId]; - if (def.publicId === id) { - if (def.recurringDef) { - return new EventApi(this, def, null); - } - else { - for (var instanceId in instances) { - var instance = instances[instanceId]; - if (instance.defId === def.defId) { - return new EventApi(this, def, instance); - } - } - } - } - } - return null; - }; - Calendar.prototype.getEvents = function () { - var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances; - var eventApis = []; - for (var id in instances) { - var instance = instances[id]; - var def = defs[instance.defId]; - eventApis.push(new EventApi(this, def, instance)); - } - return eventApis; - }; - Calendar.prototype.removeAllEvents = function () { - this.dispatch({ type: 'REMOVE_ALL_EVENTS' }); - }; - Calendar.prototype.rerenderEvents = function () { - this.dispatch({ type: 'RESET_EVENTS' }); - }; - // Public Event Sources API - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.getEventSources = function () { - var sourceHash = this.state.eventSources; - var sourceApis = []; - for (var internalId in sourceHash) { - sourceApis.push(new EventSourceApi(this, sourceHash[internalId])); - } - return sourceApis; - }; - Calendar.prototype.getEventSourceById = function (id) { - var sourceHash = this.state.eventSources; - id = String(id); - for (var sourceId in sourceHash) { - if (sourceHash[sourceId].publicId === id) { - return new EventSourceApi(this, sourceHash[sourceId]); - } - } - return null; - }; - Calendar.prototype.addEventSource = function (sourceInput) { - if (sourceInput instanceof EventSourceApi) { - // not already present? don't want to add an old snapshot - if (!this.state.eventSources[sourceInput.internalEventSource.sourceId]) { - this.dispatch({ - type: 'ADD_EVENT_SOURCES', - sources: [sourceInput.internalEventSource] - }); - } - return sourceInput; - } - var eventSource = parseEventSource(sourceInput, this); - if (eventSource) { // TODO: error otherwise? - this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: [eventSource] }); - return new EventSourceApi(this, eventSource); - } - return null; - }; - Calendar.prototype.removeAllEventSources = function () { - this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' }); - }; - Calendar.prototype.refetchEvents = function () { - this.dispatch({ type: 'FETCH_EVENT_SOURCES' }); - }; - // Scroll - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.scrollToTime = function (timeInput) { - var duration = createDuration(timeInput); - if (duration) { - this.component.view.scrollToDuration(duration); - } - }; - return Calendar; - }()); - EmitterMixin.mixInto(Calendar); - // for memoizers - // ----------------------------------------------------------------------------------------------------------------- - function buildDateEnv(locale, timeZone, namedTimeZoneImpl, firstDay, weekNumberCalculation, weekLabel, cmdFormatter) { - return new DateEnv({ - calendarSystem: 'gregory', - timeZone: timeZone, - namedTimeZoneImpl: namedTimeZoneImpl, - locale: locale, - weekNumberCalculation: weekNumberCalculation, - firstDay: firstDay, - weekLabel: weekLabel, - cmdFormatter: cmdFormatter - }); - } - function buildTheme(calendarOptions) { - var themeClass = this.pluginSystem.hooks.themeClasses[calendarOptions.themeSystem] || StandardTheme; - return new themeClass(calendarOptions); - } - function buildDelayedRerender(wait) { - var func = this.tryRerender.bind(this); - if (wait != null) { - func = debounce(func, wait); - } - return func; - } - function buildEventUiBySource(eventSources) { - return mapHash(eventSources, function (eventSource) { - return eventSource.ui; - }); - } - function buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) { - var eventUiBases = { '': eventUiSingleBase }; - for (var defId in eventDefs) { - var def = eventDefs[defId]; - if (def.sourceId && eventUiBySource[def.sourceId]) { - eventUiBases[defId] = eventUiBySource[def.sourceId]; - } - } - return eventUiBases; - } - - var View = /** @class */ (function (_super) { - __extends(View, _super); - function View(context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, context, createElement('div', { className: 'fc-view fc-' + viewSpec.type + '-view' }), true // isView (HACK) - ) || this; - _this.renderDatesMem = memoizeRendering(_this.renderDatesWrap, _this.unrenderDatesWrap); - _this.renderBusinessHoursMem = memoizeRendering(_this.renderBusinessHours, _this.unrenderBusinessHours, [_this.renderDatesMem]); - _this.renderDateSelectionMem = memoizeRendering(_this.renderDateSelectionWrap, _this.unrenderDateSelectionWrap, [_this.renderDatesMem]); - _this.renderEventsMem = memoizeRendering(_this.renderEvents, _this.unrenderEvents, [_this.renderDatesMem]); - _this.renderEventSelectionMem = memoizeRendering(_this.renderEventSelectionWrap, _this.unrenderEventSelectionWrap, [_this.renderEventsMem]); - _this.renderEventDragMem = memoizeRendering(_this.renderEventDragWrap, _this.unrenderEventDragWrap, [_this.renderDatesMem]); - _this.renderEventResizeMem = memoizeRendering(_this.renderEventResizeWrap, _this.unrenderEventResizeWrap, [_this.renderDatesMem]); - _this.viewSpec = viewSpec; - _this.dateProfileGenerator = dateProfileGenerator; - _this.type = viewSpec.type; - _this.eventOrderSpecs = parseFieldSpecs(_this.opt('eventOrder')); - _this.nextDayThreshold = createDuration(_this.opt('nextDayThreshold')); - parentEl.appendChild(_this.el); - _this.initialize(); - return _this; - } - View.prototype.initialize = function () { - }; - Object.defineProperty(View.prototype, "activeStart", { - // Date Setting/Unsetting - // ----------------------------------------------------------------------------------------------------------------- - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.activeRange.start); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "activeEnd", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.activeRange.end); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "currentStart", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.currentRange.start); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "currentEnd", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.currentRange.end); - }, - enumerable: true, - configurable: true - }); - // General Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.render = function (props) { - this.renderDatesMem(props.dateProfile); - this.renderBusinessHoursMem(props.businessHours); - this.renderDateSelectionMem(props.dateSelection); - this.renderEventsMem(props.eventStore); - this.renderEventSelectionMem(props.eventSelection); - this.renderEventDragMem(props.eventDrag); - this.renderEventResizeMem(props.eventResize); - }; - View.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderDatesMem.unrender(); // should unrender everything else - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.updateSize = function (isResize, viewHeight, isAuto) { - var calendar = this.calendar; - if (isResize || // HACKS... - calendar.isViewUpdated || - calendar.isDatesUpdated || - calendar.isEventsUpdated) { - // sort of the catch-all sizing - // anything that might cause dimension changes - this.updateBaseSize(isResize, viewHeight, isAuto); - } - }; - View.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) { - }; - // Date Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderDatesWrap = function (dateProfile) { - this.renderDates(dateProfile); - this.addScroll({ - duration: createDuration(this.opt('scrollTime')) - }); - this.startNowIndicator(dateProfile); // shouldn't render yet because updateSize will be called soon - }; - View.prototype.unrenderDatesWrap = function () { - this.stopNowIndicator(); - this.unrenderDates(); - }; - View.prototype.renderDates = function (dateProfile) { }; - View.prototype.unrenderDates = function () { }; - // Business Hours - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderBusinessHours = function (businessHours) { }; - View.prototype.unrenderBusinessHours = function () { }; - // Date Selection - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderDateSelectionWrap = function (selection) { - if (selection) { - this.renderDateSelection(selection); - } - }; - View.prototype.unrenderDateSelectionWrap = function (selection) { - if (selection) { - this.unrenderDateSelection(selection); - } - }; - View.prototype.renderDateSelection = function (selection) { }; - View.prototype.unrenderDateSelection = function (selection) { }; - // Event Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEvents = function (eventStore) { }; - View.prototype.unrenderEvents = function () { }; - // util for subclasses - View.prototype.sliceEvents = function (eventStore, allDay) { - var props = this.props; - return sliceEventStore(eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? this.nextDayThreshold : null).fg; - }; - View.prototype.computeEventDraggable = function (eventDef, eventUi) { - var transformers = this.calendar.pluginSystem.hooks.isDraggableTransformers; - var val = eventUi.startEditable; - for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) { - var transformer = transformers_1[_i]; - val = transformer(val, eventDef, eventUi, this); - } - return val; - }; - View.prototype.computeEventStartResizable = function (eventDef, eventUi) { - return eventUi.durationEditable && this.opt('eventResizableFromStart'); - }; - View.prototype.computeEventEndResizable = function (eventDef, eventUi) { - return eventUi.durationEditable; - }; - // Event Selection - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventSelectionWrap = function (instanceId) { - if (instanceId) { - this.renderEventSelection(instanceId); - } - }; - View.prototype.unrenderEventSelectionWrap = function (instanceId) { - if (instanceId) { - this.unrenderEventSelection(instanceId); - } - }; - View.prototype.renderEventSelection = function (instanceId) { }; - View.prototype.unrenderEventSelection = function (instanceId) { }; - // Event Drag - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventDragWrap = function (state) { - if (state) { - this.renderEventDrag(state); - } - }; - View.prototype.unrenderEventDragWrap = function (state) { - if (state) { - this.unrenderEventDrag(state); - } - }; - View.prototype.renderEventDrag = function (state) { }; - View.prototype.unrenderEventDrag = function (state) { }; - // Event Resize - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventResizeWrap = function (state) { - if (state) { - this.renderEventResize(state); - } - }; - View.prototype.unrenderEventResizeWrap = function (state) { - if (state) { - this.unrenderEventResize(state); - } - }; - View.prototype.renderEventResize = function (state) { }; - View.prototype.unrenderEventResize = function (state) { }; - /* Now Indicator - ------------------------------------------------------------------------------------------------------------------*/ - // Immediately render the current time indicator and begins re-rendering it at an interval, - // which is defined by this.getNowIndicatorUnit(). - // TODO: somehow do this for the current whole day's background too - View.prototype.startNowIndicator = function (dateProfile) { - var _this = this; - var dateEnv = this.dateEnv; - var unit; - var update; - var delay; // ms wait value - if (this.opt('nowIndicator')) { - unit = this.getNowIndicatorUnit(dateProfile); - if (unit) { - update = this.updateNowIndicator.bind(this); - this.initialNowDate = this.calendar.getNow(); - this.initialNowQueriedMs = new Date().valueOf(); - // wait until the beginning of the next interval - delay = dateEnv.add(dateEnv.startOf(this.initialNowDate, unit), createDuration(1, unit)).valueOf() - this.initialNowDate.valueOf(); - // TODO: maybe always use setTimeout, waiting until start of next unit - this.nowIndicatorTimeoutID = setTimeout(function () { - _this.nowIndicatorTimeoutID = null; - update(); - if (unit === 'second') { - delay = 1000; // every second - } - else { - delay = 1000 * 60; // otherwise, every minute - } - _this.nowIndicatorIntervalID = setInterval(update, delay); // update every interval - }, delay); - } - // rendering will be initiated in updateSize - } - }; - // rerenders the now indicator, computing the new current time from the amount of time that has passed - // since the initial getNow call. - View.prototype.updateNowIndicator = function () { - if (this.props.dateProfile && // a way to determine if dates were rendered yet - this.initialNowDate // activated before? - ) { - this.unrenderNowIndicator(); // won't unrender if unnecessary - this.renderNowIndicator(addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs)); - this.isNowIndicatorRendered = true; - } - }; - // Immediately unrenders the view's current time indicator and stops any re-rendering timers. - // Won't cause side effects if indicator isn't rendered. - View.prototype.stopNowIndicator = function () { - if (this.isNowIndicatorRendered) { - if (this.nowIndicatorTimeoutID) { - clearTimeout(this.nowIndicatorTimeoutID); - this.nowIndicatorTimeoutID = null; - } - if (this.nowIndicatorIntervalID) { - clearInterval(this.nowIndicatorIntervalID); - this.nowIndicatorIntervalID = null; - } - this.unrenderNowIndicator(); - this.isNowIndicatorRendered = false; - } - }; - View.prototype.getNowIndicatorUnit = function (dateProfile) { - // subclasses should implement - }; - // Renders a current time indicator at the given datetime - View.prototype.renderNowIndicator = function (date) { - // SUBCLASSES MUST PASS TO CHILDREN! - }; - // Undoes the rendering actions from renderNowIndicator - View.prototype.unrenderNowIndicator = function () { - // SUBCLASSES MUST PASS TO CHILDREN! - }; - /* Scroller - ------------------------------------------------------------------------------------------------------------------*/ - View.prototype.addScroll = function (scroll) { - var queuedScroll = this.queuedScroll || (this.queuedScroll = {}); - __assign(queuedScroll, scroll); - }; - View.prototype.popScroll = function (isResize) { - this.applyQueuedScroll(isResize); - this.queuedScroll = null; - }; - View.prototype.applyQueuedScroll = function (isResize) { - this.applyScroll(this.queuedScroll || {}, isResize); - }; - View.prototype.queryScroll = function () { - var scroll = {}; - if (this.props.dateProfile) { // dates rendered yet? - __assign(scroll, this.queryDateScroll()); - } - return scroll; - }; - View.prototype.applyScroll = function (scroll, isResize) { - var duration = scroll.duration; - if (duration != null) { - delete scroll.duration; - if (this.props.dateProfile) { // dates rendered yet? - __assign(scroll, this.computeDateScroll(duration)); - } - } - if (this.props.dateProfile) { // dates rendered yet? - this.applyDateScroll(scroll); - } - }; - View.prototype.computeDateScroll = function (duration) { - return {}; // subclasses must implement - }; - View.prototype.queryDateScroll = function () { - return {}; // subclasses must implement - }; - View.prototype.applyDateScroll = function (scroll) { - // subclasses must implement - }; - // for API - View.prototype.scrollToDuration = function (duration) { - this.applyScroll({ duration: duration }, false); - }; - return View; - }(DateComponent)); - EmitterMixin.mixInto(View); - View.prototype.usesMinMaxTime = false; - View.prototype.dateProfileGeneratorClass = DateProfileGenerator; - - var FgEventRenderer = /** @class */ (function () { - function FgEventRenderer(context) { - this.segs = []; - this.isSizeDirty = false; - this.context = context; - } - FgEventRenderer.prototype.renderSegs = function (segs, mirrorInfo) { - this.rangeUpdated(); // called too frequently :( - // render an `.el` on each seg - // returns a subset of the segs. segs that were actually rendered - segs = this.renderSegEls(segs, mirrorInfo); - this.segs = segs; - this.attachSegs(segs, mirrorInfo); - this.isSizeDirty = true; - this.context.view.triggerRenderedSegs(this.segs, Boolean(mirrorInfo)); - }; - FgEventRenderer.prototype.unrender = function (_segs, mirrorInfo) { - this.context.view.triggerWillRemoveSegs(this.segs, Boolean(mirrorInfo)); - this.detachSegs(this.segs); - this.segs = []; - }; - // Updates values that rely on options and also relate to range - FgEventRenderer.prototype.rangeUpdated = function () { - var options = this.context.options; - var displayEventTime; - var displayEventEnd; - this.eventTimeFormat = createFormatter(options.eventTimeFormat || this.computeEventTimeFormat(), options.defaultRangeSeparator); - displayEventTime = options.displayEventTime; - if (displayEventTime == null) { - displayEventTime = this.computeDisplayEventTime(); // might be based off of range - } - displayEventEnd = options.displayEventEnd; - if (displayEventEnd == null) { - displayEventEnd = this.computeDisplayEventEnd(); // might be based off of range - } - this.displayEventTime = displayEventTime; - this.displayEventEnd = displayEventEnd; - }; - // Renders and assigns an `el` property for each foreground event segment. - // Only returns segments that successfully rendered. - FgEventRenderer.prototype.renderSegEls = function (segs, mirrorInfo) { - var html = ''; - var i; - if (segs.length) { // don't build an empty html string - // build a large concatenation of event segment HTML - for (i = 0; i < segs.length; i++) { - html += this.renderSegHtml(segs[i], mirrorInfo); - } - // Grab individual elements from the combined HTML string. Use each as the default rendering. - // Then, compute the 'el' for each segment. An el might be null if the eventRender callback returned false. - htmlToElements(html).forEach(function (el, i) { - var seg = segs[i]; - if (el) { - seg.el = el; - } - }); - segs = filterSegsViaEls(this.context.view, segs, Boolean(mirrorInfo)); - } - return segs; - }; - // Generic utility for generating the HTML classNames for an event segment's element - FgEventRenderer.prototype.getSegClasses = function (seg, isDraggable, isResizable, mirrorInfo) { - var classes = [ - 'fc-event', - seg.isStart ? 'fc-start' : 'fc-not-start', - seg.isEnd ? 'fc-end' : 'fc-not-end' - ].concat(seg.eventRange.ui.classNames); - if (isDraggable) { - classes.push('fc-draggable'); - } - if (isResizable) { - classes.push('fc-resizable'); - } - if (mirrorInfo) { - classes.push('fc-mirror'); - if (mirrorInfo.isDragging) { - classes.push('fc-dragging'); - } - if (mirrorInfo.isResizing) { - classes.push('fc-resizing'); - } - } - return classes; - }; - // Compute the text that should be displayed on an event's element. - // `range` can be the Event object itself, or something range-like, with at least a `start`. - // If event times are disabled, or the event has no time, will return a blank string. - // If not specified, formatter will default to the eventTimeFormat setting, - // and displayEnd will default to the displayEventEnd setting. - FgEventRenderer.prototype.getTimeText = function (eventRange, formatter, displayEnd) { - var def = eventRange.def, instance = eventRange.instance; - return this._getTimeText(instance.range.start, def.hasEnd ? instance.range.end : null, def.allDay, formatter, displayEnd, instance.forcedStartTzo, instance.forcedEndTzo); - }; - FgEventRenderer.prototype._getTimeText = function (start, end, allDay, formatter, displayEnd, forcedStartTzo, forcedEndTzo) { - var dateEnv = this.context.dateEnv; - if (formatter == null) { - formatter = this.eventTimeFormat; - } - if (displayEnd == null) { - displayEnd = this.displayEventEnd; - } - if (this.displayEventTime && !allDay) { - if (displayEnd && end) { - return dateEnv.formatRange(start, end, formatter, { - forcedStartTzo: forcedStartTzo, - forcedEndTzo: forcedEndTzo - }); - } - else { - return dateEnv.format(start, formatter, { - forcedTzo: forcedStartTzo - }); - } - } - return ''; - }; - FgEventRenderer.prototype.computeEventTimeFormat = function () { - return { - hour: 'numeric', - minute: '2-digit', - omitZeroMinute: true - }; - }; - FgEventRenderer.prototype.computeDisplayEventTime = function () { - return true; - }; - FgEventRenderer.prototype.computeDisplayEventEnd = function () { - return true; - }; - // Utility for generating event skin-related CSS properties - FgEventRenderer.prototype.getSkinCss = function (ui) { - return { - 'background-color': ui.backgroundColor, - 'border-color': ui.borderColor, - color: ui.textColor - }; - }; - FgEventRenderer.prototype.sortEventSegs = function (segs) { - var specs = this.context.view.eventOrderSpecs; - var objs = segs.map(buildSegCompareObj); - objs.sort(function (obj0, obj1) { - return compareByFieldSpecs(obj0, obj1, specs); - }); - return objs.map(function (c) { - return c._seg; - }); - }; - FgEventRenderer.prototype.computeSizes = function (force) { - if (force || this.isSizeDirty) { - this.computeSegSizes(this.segs); - } - }; - FgEventRenderer.prototype.assignSizes = function (force) { - if (force || this.isSizeDirty) { - this.assignSegSizes(this.segs); - this.isSizeDirty = false; - } - }; - FgEventRenderer.prototype.computeSegSizes = function (segs) { - }; - FgEventRenderer.prototype.assignSegSizes = function (segs) { - }; - // Manipulation on rendered segs - FgEventRenderer.prototype.hideByHash = function (hash) { - if (hash) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (hash[seg.eventRange.instance.instanceId]) { - seg.el.style.visibility = 'hidden'; - } - } - } - }; - FgEventRenderer.prototype.showByHash = function (hash) { - if (hash) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (hash[seg.eventRange.instance.instanceId]) { - seg.el.style.visibility = ''; - } - } - } - }; - FgEventRenderer.prototype.selectByInstanceId = function (instanceId) { - if (instanceId) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - var eventInstance = seg.eventRange.instance; - if (eventInstance && eventInstance.instanceId === instanceId && - seg.el // necessary? - ) { - seg.el.classList.add('fc-selected'); - } - } - } - }; - FgEventRenderer.prototype.unselectByInstanceId = function (instanceId) { - if (instanceId) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (seg.el) { // necessary? - seg.el.classList.remove('fc-selected'); - } - } - } - }; - return FgEventRenderer; - }()); - // returns a object with all primitive props that can be compared - function buildSegCompareObj(seg) { - var eventDef = seg.eventRange.def; - var range = seg.eventRange.instance.range; - var start = range.start ? range.start.valueOf() : 0; // TODO: better support for open-range events - var end = range.end ? range.end.valueOf() : 0; // " - return __assign({}, eventDef.extendedProps, eventDef, { id: eventDef.publicId, start: start, - end: end, duration: end - start, allDay: Number(eventDef.allDay), _seg: seg // for later retrieval - }); - } - - var FillRenderer = /** @class */ (function () { - function FillRenderer(context) { - this.fillSegTag = 'div'; - this.dirtySizeFlags = {}; - this.context = context; - this.containerElsByType = {}; - this.segsByType = {}; - } - FillRenderer.prototype.getSegsByType = function (type) { - return this.segsByType[type] || []; - }; - FillRenderer.prototype.renderSegs = function (type, segs) { - var _a; - var renderedSegs = this.renderSegEls(type, segs); // assignes `.el` to each seg. returns successfully rendered segs - var containerEls = this.attachSegs(type, renderedSegs); - if (containerEls) { - (_a = (this.containerElsByType[type] || (this.containerElsByType[type] = []))).push.apply(_a, containerEls); - } - this.segsByType[type] = renderedSegs; - if (type === 'bgEvent') { - this.context.view.triggerRenderedSegs(renderedSegs, false); // isMirror=false - } - this.dirtySizeFlags[type] = true; - }; - // Unrenders a specific type of fill that is currently rendered on the grid - FillRenderer.prototype.unrender = function (type) { - var segs = this.segsByType[type]; - if (segs) { - if (type === 'bgEvent') { - this.context.view.triggerWillRemoveSegs(segs, false); // isMirror=false - } - this.detachSegs(type, segs); - } - }; - // Renders and assigns an `el` property for each fill segment. Generic enough to work with different types. - // Only returns segments that successfully rendered. - FillRenderer.prototype.renderSegEls = function (type, segs) { - var _this = this; - var html = ''; - var i; - if (segs.length) { - // build a large concatenation of segment HTML - for (i = 0; i < segs.length; i++) { - html += this.renderSegHtml(type, segs[i]); - } - // Grab individual elements from the combined HTML string. Use each as the default rendering. - // Then, compute the 'el' for each segment. - htmlToElements(html).forEach(function (el, i) { - var seg = segs[i]; - if (el) { - seg.el = el; - } - }); - if (type === 'bgEvent') { - segs = filterSegsViaEls(this.context.view, segs, false // isMirror. background events can never be mirror elements - ); - } - // correct element type? (would be bad if a non-TD were inserted into a table for example) - segs = segs.filter(function (seg) { - return elementMatches(seg.el, _this.fillSegTag); - }); - } - return segs; - }; - // Builds the HTML needed for one fill segment. Generic enough to work with different types. - FillRenderer.prototype.renderSegHtml = function (type, seg) { - var css = null; - var classNames = []; - if (type !== 'highlight' && type !== 'businessHours') { - css = { - 'background-color': seg.eventRange.ui.backgroundColor - }; - } - if (type !== 'highlight') { - classNames = classNames.concat(seg.eventRange.ui.classNames); - } - if (type === 'businessHours') { - classNames.push('fc-bgevent'); - } - else { - classNames.push('fc-' + type.toLowerCase()); - } - return '<' + this.fillSegTag + - (classNames.length ? ' class="' + classNames.join(' ') + '"' : '') + - (css ? ' style="' + cssToStr(css) + '"' : '') + - '>'; - }; - FillRenderer.prototype.detachSegs = function (type, segs) { - var containerEls = this.containerElsByType[type]; - if (containerEls) { - containerEls.forEach(removeElement); - delete this.containerElsByType[type]; - } - }; - FillRenderer.prototype.computeSizes = function (force) { - for (var type in this.segsByType) { - if (force || this.dirtySizeFlags[type]) { - this.computeSegSizes(this.segsByType[type]); - } - } - }; - FillRenderer.prototype.assignSizes = function (force) { - for (var type in this.segsByType) { - if (force || this.dirtySizeFlags[type]) { - this.assignSegSizes(this.segsByType[type]); - } - } - this.dirtySizeFlags = {}; - }; - FillRenderer.prototype.computeSegSizes = function (segs) { - }; - FillRenderer.prototype.assignSegSizes = function (segs) { - }; - return FillRenderer; - }()); - - var NamedTimeZoneImpl = /** @class */ (function () { - function NamedTimeZoneImpl(timeZoneName) { - this.timeZoneName = timeZoneName; - } - return NamedTimeZoneImpl; - }()); - - /* - An abstraction for a dragging interaction originating on an event. - Does higher-level things than PointerDragger, such as possibly: - - a "mirror" that moves with the pointer - - a minimum number of pixels or other criteria for a true drag to begin - - subclasses must emit: - - pointerdown - - dragstart - - dragmove - - pointerup - - dragend - */ - var ElementDragging = /** @class */ (function () { - function ElementDragging(el) { - this.emitter = new EmitterMixin(); - } - ElementDragging.prototype.destroy = function () { - }; - ElementDragging.prototype.setMirrorIsVisible = function (bool) { - // optional if subclass doesn't want to support a mirror - }; - ElementDragging.prototype.setMirrorNeedsRevert = function (bool) { - // optional if subclass doesn't want to support a mirror - }; - ElementDragging.prototype.setAutoScrollEnabled = function (bool) { - // optional - }; - return ElementDragging; - }()); - - function formatDate(dateInput, settings) { - if (settings === void 0) { settings = {}; } - var dateEnv = buildDateEnv$1(settings); - var formatter = createFormatter(settings); - var dateMeta = dateEnv.createMarkerMeta(dateInput); - if (!dateMeta) { // TODO: warning? - return ''; - } - return dateEnv.format(dateMeta.marker, formatter, { - forcedTzo: dateMeta.forcedTzo - }); - } - function formatRange(startInput, endInput, settings // mixture of env and formatter settings - ) { - var dateEnv = buildDateEnv$1(typeof settings === 'object' && settings ? settings : {}); // pass in if non-null object - var formatter = createFormatter(settings, globalDefaults.defaultRangeSeparator); - var startMeta = dateEnv.createMarkerMeta(startInput); - var endMeta = dateEnv.createMarkerMeta(endInput); - if (!startMeta || !endMeta) { // TODO: warning? - return ''; - } - return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, { - forcedStartTzo: startMeta.forcedTzo, - forcedEndTzo: endMeta.forcedTzo, - isEndExclusive: settings.isEndExclusive - }); - } - // TODO: more DRY and optimized - function buildDateEnv$1(settings) { - var locale = buildLocale(settings.locale || 'en', parseRawLocales([]).map); // TODO: don't hardcode 'en' everywhere - // ensure required settings - settings = __assign({ timeZone: globalDefaults.timeZone, calendarSystem: 'gregory' }, settings, { locale: locale }); - return new DateEnv(settings); - } - - var DRAG_META_PROPS = { - startTime: createDuration, - duration: createDuration, - create: Boolean, - sourceId: String - }; - var DRAG_META_DEFAULTS = { - create: true - }; - function parseDragMeta(raw) { - var leftoverProps = {}; - var refined = refineProps(raw, DRAG_META_PROPS, DRAG_META_DEFAULTS, leftoverProps); - refined.leftoverProps = leftoverProps; - return refined; - } - - // Computes a default column header formatting string if `colFormat` is not explicitly defined - function computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) { - // if more than one week row, or if there are a lot of columns with not much space, - // put just the day numbers will be in each cell - if (!datesRepDistinctDays || dayCnt > 10) { - return { weekday: 'short' }; // "Sat" - } - else if (dayCnt > 1) { - return { weekday: 'short', month: 'numeric', day: 'numeric', omitCommas: true }; // "Sat 11/12" - } - else { - return { weekday: 'long' }; // "Saturday" - } - } - function renderDateCell(dateMarker, dateProfile, datesRepDistinctDays, colCnt, colHeadFormat, context, colspan, otherAttrs) { - var view = context.view, dateEnv = context.dateEnv, theme = context.theme, options = context.options; - var isDateValid = rangeContainsMarker(dateProfile.activeRange, dateMarker); // TODO: called too frequently. cache somehow. - var classNames = [ - 'fc-day-header', - theme.getClass('widgetHeader') - ]; - var innerHtml; - if (typeof options.columnHeaderHtml === 'function') { - innerHtml = options.columnHeaderHtml(dateEnv.toDate(dateMarker)); - } - else if (typeof options.columnHeaderText === 'function') { - innerHtml = htmlEscape(options.columnHeaderText(dateEnv.toDate(dateMarker))); - } - else { - innerHtml = htmlEscape(dateEnv.format(dateMarker, colHeadFormat)); - } - // if only one row of days, the classNames on the header can represent the specific days beneath - if (datesRepDistinctDays) { - classNames = classNames.concat( - // includes the day-of-week class - // noThemeHighlight=true (don't highlight the header) - getDayClasses(dateMarker, dateProfile, context, true)); - } - else { - classNames.push('fc-' + DAY_IDS[dateMarker.getUTCDay()]); // only add the day-of-week class - } - return '' + - ' 1 ? - ' colspan="' + colspan + '"' : - '') + - (otherAttrs ? - ' ' + otherAttrs : - '') + - '>' + - (isDateValid ? - // don't make a link if the heading could represent multiple days, or if there's only one day (forceOff) - buildGotoAnchorHtml(view, { date: dateMarker, forceOff: !datesRepDistinctDays || colCnt === 1 }, innerHtml) : - // if not valid, display text, but no link - innerHtml) + - ''; - } - - var DayHeader = /** @class */ (function (_super) { - __extends(DayHeader, _super); - function DayHeader(context, parentEl) { - var _this = _super.call(this, context) || this; - parentEl.innerHTML = ''; // because might be nbsp - parentEl.appendChild(_this.el = htmlToElement('
' + - '' + - '' + - '
' + - '
')); - _this.thead = _this.el.querySelector('thead'); - return _this; - } - DayHeader.prototype.destroy = function () { - removeElement(this.el); - }; - DayHeader.prototype.render = function (props) { - var dates = props.dates, datesRepDistinctDays = props.datesRepDistinctDays; - var parts = []; - if (props.renderIntroHtml) { - parts.push(props.renderIntroHtml()); - } - var colHeadFormat = createFormatter(this.opt('columnHeaderFormat') || - computeFallbackHeaderFormat(datesRepDistinctDays, dates.length)); - for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) { - var date = dates_1[_i]; - parts.push(renderDateCell(date, props.dateProfile, datesRepDistinctDays, dates.length, colHeadFormat, this.context)); - } - if (this.isRtl) { - parts.reverse(); - } - this.thead.innerHTML = '' + parts.join('') + ''; - }; - return DayHeader; - }(Component)); - - var DaySeries = /** @class */ (function () { - function DaySeries(range, dateProfileGenerator) { - var date = range.start; - var end = range.end; - var indices = []; - var dates = []; - var dayIndex = -1; - while (date < end) { // loop each day from start to end - if (dateProfileGenerator.isHiddenDay(date)) { - indices.push(dayIndex + 0.5); // mark that it's between indices - } - else { - dayIndex++; - indices.push(dayIndex); - dates.push(date); - } - date = addDays(date, 1); - } - this.dates = dates; - this.indices = indices; - this.cnt = dates.length; - } - DaySeries.prototype.sliceRange = function (range) { - var firstIndex = this.getDateDayIndex(range.start); // inclusive first index - var lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index - var clippedFirstIndex = Math.max(0, firstIndex); - var clippedLastIndex = Math.min(this.cnt - 1, lastIndex); - // deal with in-between indices - clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell - clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell - if (clippedFirstIndex <= clippedLastIndex) { - return { - firstIndex: clippedFirstIndex, - lastIndex: clippedLastIndex, - isStart: firstIndex === clippedFirstIndex, - isEnd: lastIndex === clippedLastIndex - }; - } - else { - return null; - } - }; - // Given a date, returns its chronolocial cell-index from the first cell of the grid. - // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets. - // If before the first offset, returns a negative number. - // If after the last offset, returns an offset past the last cell offset. - // Only works for *start* dates of cells. Will not work for exclusive end dates for cells. - DaySeries.prototype.getDateDayIndex = function (date) { - var indices = this.indices; - var dayOffset = Math.floor(diffDays(this.dates[0], date)); - if (dayOffset < 0) { - return indices[0] - 1; - } - else if (dayOffset >= indices.length) { - return indices[indices.length - 1] + 1; - } - else { - return indices[dayOffset]; - } - }; - return DaySeries; - }()); - - var DayTable = /** @class */ (function () { - function DayTable(daySeries, breakOnWeeks) { - var dates = daySeries.dates; - var daysPerRow; - var firstDay; - var rowCnt; - if (breakOnWeeks) { - // count columns until the day-of-week repeats - firstDay = dates[0].getUTCDay(); - for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow++) { - if (dates[daysPerRow].getUTCDay() === firstDay) { - break; - } - } - rowCnt = Math.ceil(dates.length / daysPerRow); - } - else { - rowCnt = 1; - daysPerRow = dates.length; - } - this.rowCnt = rowCnt; - this.colCnt = daysPerRow; - this.daySeries = daySeries; - this.cells = this.buildCells(); - this.headerDates = this.buildHeaderDates(); - } - DayTable.prototype.buildCells = function () { - var rows = []; - for (var row = 0; row < this.rowCnt; row++) { - var cells = []; - for (var col = 0; col < this.colCnt; col++) { - cells.push(this.buildCell(row, col)); - } - rows.push(cells); - } - return rows; - }; - DayTable.prototype.buildCell = function (row, col) { - return { - date: this.daySeries.dates[row * this.colCnt + col] - }; - }; - DayTable.prototype.buildHeaderDates = function () { - var dates = []; - for (var col = 0; col < this.colCnt; col++) { - dates.push(this.cells[0][col].date); - } - return dates; - }; - DayTable.prototype.sliceRange = function (range) { - var colCnt = this.colCnt; - var seriesSeg = this.daySeries.sliceRange(range); - var segs = []; - if (seriesSeg) { - var firstIndex = seriesSeg.firstIndex, lastIndex = seriesSeg.lastIndex; - var index = firstIndex; - while (index <= lastIndex) { - var row = Math.floor(index / colCnt); - var nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1); - segs.push({ - row: row, - firstCol: index % colCnt, - lastCol: (nextIndex - 1) % colCnt, - isStart: seriesSeg.isStart && index === firstIndex, - isEnd: seriesSeg.isEnd && (nextIndex - 1) === lastIndex - }); - index = nextIndex; - } - } - return segs; - }; - return DayTable; - }()); - - var Slicer = /** @class */ (function () { - function Slicer() { - this.sliceBusinessHours = memoize(this._sliceBusinessHours); - this.sliceDateSelection = memoize(this._sliceDateSpan); - this.sliceEventStore = memoize(this._sliceEventStore); - this.sliceEventDrag = memoize(this._sliceInteraction); - this.sliceEventResize = memoize(this._sliceInteraction); - } - Slicer.prototype.sliceProps = function (props, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 4; _i < arguments.length; _i++) { - extraArgs[_i - 4] = arguments[_i]; - } - var eventUiBases = props.eventUiBases; - var eventSegs = this.sliceEventStore.apply(this, [props.eventStore, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)); - return { - dateSelectionSegs: this.sliceDateSelection.apply(this, [props.dateSelection, eventUiBases, component].concat(extraArgs)), - businessHourSegs: this.sliceBusinessHours.apply(this, [props.businessHours, dateProfile, nextDayThreshold, component].concat(extraArgs)), - fgEventSegs: eventSegs.fg, - bgEventSegs: eventSegs.bg, - eventDrag: this.sliceEventDrag.apply(this, [props.eventDrag, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)), - eventResize: this.sliceEventResize.apply(this, [props.eventResize, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)), - eventSelection: props.eventSelection - }; // TODO: give interactionSegs? - }; - Slicer.prototype.sliceNowDate = function (// does not memoize - date, component) { - var extraArgs = []; - for (var _i = 2; _i < arguments.length; _i++) { - extraArgs[_i - 2] = arguments[_i]; - } - return this._sliceDateSpan.apply(this, [{ range: { start: date, end: addMs(date, 1) }, allDay: false }, - {}, - component].concat(extraArgs)); - }; - Slicer.prototype._sliceBusinessHours = function (businessHours, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 4; _i < arguments.length; _i++) { - extraArgs[_i - 4] = arguments[_i]; - } - if (!businessHours) { - return []; - } - return this._sliceEventStore.apply(this, [expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), component.calendar), - {}, - dateProfile, - nextDayThreshold, - component].concat(extraArgs)).bg; - }; - Slicer.prototype._sliceEventStore = function (eventStore, eventUiBases, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 5; _i < arguments.length; _i++) { - extraArgs[_i - 5] = arguments[_i]; - } - if (eventStore) { - var rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold); - return { - bg: this.sliceEventRanges(rangeRes.bg, component, extraArgs), - fg: this.sliceEventRanges(rangeRes.fg, component, extraArgs) - }; - } - else { - return { bg: [], fg: [] }; - } - }; - Slicer.prototype._sliceInteraction = function (interaction, eventUiBases, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 5; _i < arguments.length; _i++) { - extraArgs[_i - 5] = arguments[_i]; - } - if (!interaction) { - return null; - } - var rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold); - return { - segs: this.sliceEventRanges(rangeRes.fg, component, extraArgs), - affectedInstances: interaction.affectedEvents.instances, - isEvent: interaction.isEvent, - sourceSeg: interaction.origSeg - }; - }; - Slicer.prototype._sliceDateSpan = function (dateSpan, eventUiBases, component) { - var extraArgs = []; - for (var _i = 3; _i < arguments.length; _i++) { - extraArgs[_i - 3] = arguments[_i]; - } - if (!dateSpan) { - return []; - } - var eventRange = fabricateEventRange(dateSpan, eventUiBases, component.calendar); - var segs = this.sliceRange.apply(this, [dateSpan.range].concat(extraArgs)); - for (var _a = 0, segs_1 = segs; _a < segs_1.length; _a++) { - var seg = segs_1[_a]; - seg.component = component; - seg.eventRange = eventRange; - } - return segs; - }; - /* - "complete" seg means it has component and eventRange - */ - Slicer.prototype.sliceEventRanges = function (eventRanges, component, // TODO: kill - extraArgs) { - var segs = []; - for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) { - var eventRange = eventRanges_1[_i]; - segs.push.apply(segs, this.sliceEventRange(eventRange, component, extraArgs)); - } - return segs; - }; - /* - "complete" seg means it has component and eventRange - */ - Slicer.prototype.sliceEventRange = function (eventRange, component, // TODO: kill - extraArgs) { - var segs = this.sliceRange.apply(this, [eventRange.range].concat(extraArgs)); - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - seg.component = component; - seg.eventRange = eventRange; - seg.isStart = eventRange.isStart && seg.isStart; - seg.isEnd = eventRange.isEnd && seg.isEnd; - } - return segs; - }; - return Slicer; - }()); - /* - for incorporating minTime/maxTime if appropriate - TODO: should be part of DateProfile! - TimelineDateProfile already does this btw - */ - function computeActiveRange(dateProfile, isComponentAllDay) { - var range = dateProfile.activeRange; - if (isComponentAllDay) { - return range; - } - return { - start: addMs(range.start, dateProfile.minTime.milliseconds), - end: addMs(range.end, dateProfile.maxTime.milliseconds - 864e5) // 864e5 = ms in a day - }; - } - - // exports - // -------------------------------------------------------------------------------------------------- - var version = '4.3.1'; - - exports.Calendar = Calendar; - exports.Component = Component; - exports.DateComponent = DateComponent; - exports.DateEnv = DateEnv; - exports.DateProfileGenerator = DateProfileGenerator; - exports.DayHeader = DayHeader; - exports.DaySeries = DaySeries; - exports.DayTable = DayTable; - exports.ElementDragging = ElementDragging; - exports.ElementScrollController = ElementScrollController; - exports.EmitterMixin = EmitterMixin; - exports.EventApi = EventApi; - exports.FgEventRenderer = FgEventRenderer; - exports.FillRenderer = FillRenderer; - exports.Interaction = Interaction; - exports.Mixin = Mixin; - exports.NamedTimeZoneImpl = NamedTimeZoneImpl; - exports.PositionCache = PositionCache; - exports.ScrollComponent = ScrollComponent; - exports.ScrollController = ScrollController; - exports.Slicer = Slicer; - exports.Splitter = Splitter; - exports.Theme = Theme; - exports.View = View; - exports.WindowScrollController = WindowScrollController; - exports.addDays = addDays; - exports.addDurations = addDurations; - exports.addMs = addMs; - exports.addWeeks = addWeeks; - exports.allowContextMenu = allowContextMenu; - exports.allowSelection = allowSelection; - exports.appendToElement = appendToElement; - exports.applyAll = applyAll; - exports.applyMutationToEventStore = applyMutationToEventStore; - exports.applyStyle = applyStyle; - exports.applyStyleProp = applyStyleProp; - exports.asRoughMinutes = asRoughMinutes; - exports.asRoughMs = asRoughMs; - exports.asRoughSeconds = asRoughSeconds; - exports.buildGotoAnchorHtml = buildGotoAnchorHtml; - exports.buildSegCompareObj = buildSegCompareObj; - exports.capitaliseFirstLetter = capitaliseFirstLetter; - exports.combineEventUis = combineEventUis; - exports.compareByFieldSpec = compareByFieldSpec; - exports.compareByFieldSpecs = compareByFieldSpecs; - exports.compareNumbers = compareNumbers; - exports.compensateScroll = compensateScroll; - exports.computeClippingRect = computeClippingRect; - exports.computeEdges = computeEdges; - exports.computeFallbackHeaderFormat = computeFallbackHeaderFormat; - exports.computeHeightAndMargins = computeHeightAndMargins; - exports.computeInnerRect = computeInnerRect; - exports.computeRect = computeRect; - exports.computeVisibleDayRange = computeVisibleDayRange; - exports.config = config; - exports.constrainPoint = constrainPoint; - exports.createDuration = createDuration; - exports.createElement = createElement; - exports.createEmptyEventStore = createEmptyEventStore; - exports.createEventInstance = createEventInstance; - exports.createFormatter = createFormatter; - exports.createPlugin = createPlugin; - exports.cssToStr = cssToStr; - exports.debounce = debounce; - exports.diffDates = diffDates; - exports.diffDayAndTime = diffDayAndTime; - exports.diffDays = diffDays; - exports.diffPoints = diffPoints; - exports.diffWeeks = diffWeeks; - exports.diffWholeDays = diffWholeDays; - exports.diffWholeWeeks = diffWholeWeeks; - exports.disableCursor = disableCursor; - exports.distributeHeight = distributeHeight; - exports.elementClosest = elementClosest; - exports.elementMatches = elementMatches; - exports.enableCursor = enableCursor; - exports.eventTupleToStore = eventTupleToStore; - exports.filterEventStoreDefs = filterEventStoreDefs; - exports.filterHash = filterHash; - exports.findChildren = findChildren; - exports.findElements = findElements; - exports.flexibleCompare = flexibleCompare; - exports.forceClassName = forceClassName; - exports.formatDate = formatDate; - exports.formatIsoTimeString = formatIsoTimeString; - exports.formatRange = formatRange; - exports.getAllDayHtml = getAllDayHtml; - exports.getClippingParents = getClippingParents; - exports.getDayClasses = getDayClasses; - exports.getElSeg = getElSeg; - exports.getRectCenter = getRectCenter; - exports.getRelevantEvents = getRelevantEvents; - exports.globalDefaults = globalDefaults; - exports.greatestDurationDenominator = greatestDurationDenominator; - exports.hasBgRendering = hasBgRendering; - exports.htmlEscape = htmlEscape; - exports.htmlToElement = htmlToElement; - exports.insertAfterElement = insertAfterElement; - exports.interactionSettingsStore = interactionSettingsStore; - exports.interactionSettingsToStore = interactionSettingsToStore; - exports.intersectRanges = intersectRanges; - exports.intersectRects = intersectRects; - exports.isArraysEqual = isArraysEqual; - exports.isDateSpansEqual = isDateSpansEqual; - exports.isInt = isInt; - exports.isInteractionValid = isInteractionValid; - exports.isMultiDayRange = isMultiDayRange; - exports.isPropsEqual = isPropsEqual; - exports.isPropsValid = isPropsValid; - exports.isSingleDay = isSingleDay; - exports.isValidDate = isValidDate; - exports.listenBySelector = listenBySelector; - exports.mapHash = mapHash; - exports.matchCellWidths = matchCellWidths; - exports.memoize = memoize; - exports.memoizeOutput = memoizeOutput; - exports.memoizeRendering = memoizeRendering; - exports.mergeEventStores = mergeEventStores; - exports.multiplyDuration = multiplyDuration; - exports.padStart = padStart; - exports.parseBusinessHours = parseBusinessHours; - exports.parseDragMeta = parseDragMeta; - exports.parseEventDef = parseEventDef; - exports.parseFieldSpecs = parseFieldSpecs; - exports.parseMarker = parse; - exports.pointInsideRect = pointInsideRect; - exports.prependToElement = prependToElement; - exports.preventContextMenu = preventContextMenu; - exports.preventDefault = preventDefault; - exports.preventSelection = preventSelection; - exports.processScopedUiProps = processScopedUiProps; - exports.rangeContainsMarker = rangeContainsMarker; - exports.rangeContainsRange = rangeContainsRange; - exports.rangesEqual = rangesEqual; - exports.rangesIntersect = rangesIntersect; - exports.refineProps = refineProps; - exports.removeElement = removeElement; - exports.removeExact = removeExact; - exports.renderDateCell = renderDateCell; - exports.requestJson = requestJson; - exports.sliceEventStore = sliceEventStore; - exports.startOfDay = startOfDay; - exports.subtractInnerElHeight = subtractInnerElHeight; - exports.translateRect = translateRect; - exports.uncompensateScroll = uncompensateScroll; - exports.undistributeHeight = undistributeHeight; - exports.unpromisify = unpromisify; - exports.version = version; - exports.whenTransitionDone = whenTransitionDone; - exports.wholeDivideDurations = wholeDivideDurations; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/main.min.css b/htdocs/public/high/plugins/fullcalendar/main.min.css deleted file mode 100644 index 8948b534..00000000 --- a/htdocs/public/high/plugins/fullcalendar/main.min.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.fc-button:not(:disabled),.fc-event.fc-draggable,.fc-event[href],.fc-popover .fc-header .fc-close,a.fc-more,a[data-goto]{cursor:pointer}.fc-bg,.fc-row .fc-bgevent-skeleton,.fc-row .fc-highlight-skeleton{bottom:0}.fc{direction:ltr;text-align:left}.fc-rtl{text-align:right}body .fc{font-size:1em}.fc-highlight{background:#bce8f1;opacity:.3}.fc-bgevent{background:#8fdf82;opacity:.3}.fc-nonbusiness{background:#d7d7d7}.fc-popover{position:absolute;box-shadow:0 2px 6px rgba(0,0,0,.15)}.fc-popover .fc-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:2px 4px}.fc-rtl .fc-popover .fc-header{flex-direction:row-reverse}.fc-popover .fc-header .fc-title{margin:0 2px}.fc-popover .fc-header .fc-close{opacity:.65;font-size:1.1em}.fc-divider{border-style:solid;border-width:1px}hr.fc-divider{height:0;margin:0;padding:0 0 2px;border-width:1px 0}.fc-bg table,.fc-row .fc-bgevent-skeleton table,.fc-row .fc-highlight-skeleton table{height:100%}.fc-bg,.fc-bgevent-skeleton,.fc-highlight-skeleton,.fc-mirror-skeleton{position:absolute;top:0;left:0;right:0}.fc table{width:100%;box-sizing:border-box;table-layout:fixed;border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{border-style:solid;border-width:1px;padding:0;vertical-align:top}.fc td.fc-today{border-style:double}a[data-goto]:hover{text-decoration:underline}.fc .fc-row{border-style:solid;border-width:0}.fc-row table{border-left:0 hidden transparent;border-right:0 hidden transparent;border-bottom:0 hidden transparent}.fc-row:first-child table{border-top:0 hidden transparent}.fc-row{position:relative}.fc-row .fc-bg{z-index:1}.fc-row .fc-bgevent-skeleton td,.fc-row .fc-highlight-skeleton td{border-color:transparent}.fc-row .fc-bgevent-skeleton{z-index:2}.fc-row .fc-highlight-skeleton{z-index:3}.fc-row .fc-content-skeleton{position:relative;z-index:4;padding-bottom:2px}.fc-row .fc-mirror-skeleton{z-index:5}.fc .fc-row .fc-content-skeleton table,.fc .fc-row .fc-content-skeleton td,.fc .fc-row .fc-mirror-skeleton td{background:0 0;border-color:transparent}.fc-row .fc-content-skeleton td,.fc-row .fc-mirror-skeleton td{border-bottom:0}.fc-row .fc-content-skeleton tbody td,.fc-row .fc-mirror-skeleton tbody td{border-top:0}.fc-scroller{-webkit-overflow-scrolling:touch}.fc-scroller>.fc-day-grid,.fc-scroller>.fc-time-grid{position:relative;width:100%}.fc-event{position:relative;display:block;font-size:.85em;line-height:1.4;border-radius:3px;border:1px solid #3788d8}.fc-event,.fc-event-dot{background-color:#3788d8}.fc-event,.fc-event:hover{color:#fff;text-decoration:none}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-event .fc-content{position:relative;z-index:2}.fc-event .fc-resizer{position:absolute;z-index:4;display:none}.fc-event.fc-allow-mouse-resize .fc-resizer,.fc-event.fc-selected .fc-resizer{display:block}.fc-event.fc-selected .fc-resizer:before{content:"";position:absolute;z-index:9999;top:50%;left:50%;width:40px;height:40px;margin-left:-20px;margin-top:-20px}.fc-event.fc-selected{z-index:9999!important;box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event.fc-selected:after{content:"";position:absolute;z-index:1;top:-1px;right:-1px;bottom:-1px;left:-1px;background:#000;opacity:.25}.fc-event.fc-dragging.fc-selected{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event.fc-dragging:not(.fc-selected){opacity:.75}.fc-h-event.fc-selected:before{content:"";position:absolute;z-index:3;top:-10px;bottom:-10px;left:0;right:0}.fc-ltr .fc-h-event.fc-not-start,.fc-rtl .fc-h-event.fc-not-end{margin-left:0;border-left-width:0;padding-left:1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-ltr .fc-h-event.fc-not-end,.fc-rtl .fc-h-event.fc-not-start{margin-right:0;border-right-width:0;padding-right:1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-ltr .fc-h-event .fc-start-resizer,.fc-rtl .fc-h-event .fc-end-resizer{cursor:w-resize;left:-1px}.fc-ltr .fc-h-event .fc-end-resizer,.fc-rtl .fc-h-event .fc-start-resizer{cursor:e-resize;right:-1px}.fc-h-event.fc-allow-mouse-resize .fc-resizer{width:7px;top:-1px;bottom:-1px}.fc-h-event.fc-selected .fc-resizer{border-radius:4px;border-width:1px;width:6px;height:6px;border-style:solid;border-color:inherit;background:#fff;top:50%;margin-top:-4px}.fc-ltr .fc-h-event.fc-selected .fc-start-resizer,.fc-rtl .fc-h-event.fc-selected .fc-end-resizer{margin-left:-4px}.fc-ltr .fc-h-event.fc-selected .fc-end-resizer,.fc-rtl .fc-h-event.fc-selected .fc-start-resizer{margin-right:-4px}.fc-day-grid-event{margin:1px 2px 0;padding:0 1px}tr:first-child>td>.fc-day-grid-event{margin-top:2px}.fc-mirror-skeleton tr:first-child>td>.fc-day-grid-event{margin-top:0}.fc-day-grid-event .fc-content{white-space:nowrap;overflow:hidden}.fc-day-grid-event .fc-time{font-weight:700}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer{margin-left:-2px}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer{margin-right:-2px}a.fc-more{margin:1px 3px;font-size:.85em;text-decoration:none}a.fc-more:hover{text-decoration:underline}.fc-limited{display:none}.fc-button,.fc-icon{display:inline-block;font-weight:400;text-align:center}.fc-day-grid .fc-row{z-index:1}.fc-more-popover{z-index:2;width:220px}.fc-more-popover .fc-event-container{padding:10px}.fc-now-indicator{position:absolute;border:0 solid red}.fc-unselectable{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.fc-unthemed .fc-content,.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading td,.fc-unthemed .fc-list-view,.fc-unthemed .fc-popover,.fc-unthemed .fc-row,.fc-unthemed tbody,.fc-unthemed td,.fc-unthemed th,.fc-unthemed thead{border-color:#ddd}.fc-unthemed .fc-popover{background-color:#fff}.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading td,.fc-unthemed .fc-popover .fc-header{background:#eee}.fc-unthemed td.fc-today{background:#fcf8e3}.fc-unthemed .fc-disabled-day{background:#d7d7d7;opacity:.3}@font-face{font-family:fcicons;src:url("data:application/x-font-ttf;charset=utf-8;base64,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") format("truetype");font-weight:400;font-style:normal}.fc-icon{font-family:fcicons!important;speak:none;font-style:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:1em;height:1em}.fc-icon-chevron-left:before{content:""}.fc-icon-chevron-right:before{content:""}.fc-icon-chevrons-left:before{content:""}.fc-icon-chevrons-right:before{content:""}.fc-icon-minus-square:before{content:""}.fc-icon-plus-square:before{content:""}.fc-icon-x:before{content:""}.fc-button{overflow:visible;text-transform:none;margin:0;font-family:inherit}.fc-button::-moz-focus-inner{padding:0;border-style:none}.fc-button{-webkit-appearance:button;color:#212529;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.4em .65em;font-size:1em;line-height:1.5;border-radius:.25em}.fc-button:hover{color:#212529;text-decoration:none}.fc-button:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(44,62,80,.25);box-shadow:0 0 0 .2rem rgba(44,62,80,.25)}.fc-button:disabled{opacity:.65}.fc-button-primary{color:#fff;background-color:#2C3E50;border-color:#2C3E50}.fc-button-primary:hover{color:#fff;background-color:#1e2b37;border-color:#1a252f}.fc-button-primary:focus{-webkit-box-shadow:0 0 0 .2rem rgba(76,91,106,.5);box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc-button-primary:disabled{color:#fff;background-color:#2C3E50;border-color:#2C3E50}.fc-button-primary:not(:disabled).fc-button-active,.fc-button-primary:not(:disabled):active{color:#fff;background-color:#1a252f;border-color:#151e27}.fc-button-primary:not(:disabled).fc-button-active:focus,.fc-button-primary:not(:disabled):active:focus{-webkit-box-shadow:0 0 0 .2rem rgba(76,91,106,.5);box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc-button .fc-icon{vertical-align:middle;font-size:1.5em}.fc-button-group{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.fc-button-group>.fc-button{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.fc-button-group>.fc-button.fc-button-active,.fc-button-group>.fc-button:active,.fc-button-group>.fc-button:focus,.fc-button-group>.fc-button:hover{z-index:1}.fc-button-group>.fc-button:not(:first-child){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-button-group>.fc-button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.fc-unthemed .fc-popover{border-width:1px;border-style:solid}.fc-unthemed .fc-list-item:hover td{background-color:#f5f5f5}.fc-toolbar{display:flex;justify-content:space-between;align-items:center}.fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-toolbar h2{font-size:1.75em;margin:0}.fc-view-container{position:relative}.fc-view-container *,.fc-view-container :after,.fc-view-container :before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fc-view,.fc-view>table{position:relative;z-index:1}@media print{.fc-bg,.fc-bgevent-container,.fc-bgevent-skeleton,.fc-business-container,.fc-event .fc-resizer,.fc-highlight-container,.fc-highlight-skeleton,.fc-mirror-container,.fc-mirror-skeleton{display:none}.fc tbody .fc-row,.fc-time-grid{min-height:0!important}.fc-time-grid .fc-event.fc-not-end:after,.fc-time-grid .fc-event.fc-not-start:before{content:"..."}.fc{max-width:100%!important}.fc-event{background:#fff!important;color:#000!important;page-break-inside:avoid}.fc hr,.fc tbody,.fc td,.fc th,.fc thead,.fc-row{border-color:#ccc!important;background:#fff!important}.fc tbody .fc-row{height:auto!important}.fc tbody .fc-row .fc-content-skeleton{position:static;padding-bottom:0!important}.fc tbody .fc-row .fc-content-skeleton tbody tr:last-child td{padding-bottom:1em}.fc tbody .fc-row .fc-content-skeleton table{height:1em}.fc-more,.fc-more-cell{display:none!important}.fc tr.fc-limited{display:table-row!important}.fc td.fc-limited{display:table-cell!important}.fc-popover,.fc-timeGrid-view .fc-axis{display:none}.fc-slats,.fc-time-grid hr{display:none!important}.fc button,.fc-button-group,.fc-time-grid .fc-event .fc-time span{display:none}.fc-time-grid .fc-content-skeleton{position:static}.fc-time-grid .fc-content-skeleton table{height:4em}.fc-time-grid .fc-event-container{margin:0!important}.fc-time-grid .fc-event{position:static!important;margin:3px 2px!important}.fc-time-grid .fc-event.fc-not-end{border-bottom-width:1px!important}.fc-time-grid .fc-event.fc-not-start{border-top-width:1px!important}.fc-time-grid .fc-event .fc-time{white-space:normal!important}.fc-time-grid .fc-event .fc-time:after{content:attr(data-full)}.fc-day-grid-container,.fc-scroller,.fc-time-grid-container{overflow:visible!important;height:auto!important}.fc-row{border:0!important;margin:0!important}} \ No newline at end of file diff --git a/htdocs/public/high/plugins/fullcalendar/main.min.js b/htdocs/public/high/plugins/fullcalendar/main.min.js deleted file mode 100644 index 6b72fff6..00000000 --- a/htdocs/public/high/plugins/fullcalendar/main.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! -FullCalendar Core Package v4.3.1 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).FullCalendar={})}(this,function(e){"use strict";var t={className:!0,colSpan:!0,rowSpan:!0},n={"
");document.body.appendChild(e);var t=e.firstChild.getBoundingClientRect().left>e.getBoundingClientRect().left;return c(e),t}()),S}function D(e){return e=Math.max(0,e),e=Math.round(e)}function T(e,t){void 0===t&&(t=!1);var n=window.getComputedStyle(e),r=parseInt(n.borderLeftWidth,10)||0,i=parseInt(n.borderRightWidth,10)||0,o=parseInt(n.borderTopWidth,10)||0,a=parseInt(n.borderBottomWidth,10)||0,s=D(e.offsetWidth-e.clientWidth-r-i),u={borderLeft:r,borderRight:i,borderTop:o,borderBottom:a,scrollbarBottom:D(e.offsetHeight-e.clientHeight-o-a),scrollbarLeft:0,scrollbarRight:0};return b()&&"rtl"===n.direction?u.scrollbarLeft=s:u.scrollbarRight=s,t&&(u.paddingLeft=parseInt(n.paddingLeft,10)||0,u.paddingRight=parseInt(n.paddingRight,10)||0,u.paddingTop=parseInt(n.paddingTop,10)||0,u.paddingBottom=parseInt(n.paddingBottom,10)||0),u}function w(e,t){void 0===t&&(t=!1);var n=R(e),r=T(e,t),i={left:n.left+r.borderLeft+r.scrollbarLeft,right:n.right-r.borderRight-r.scrollbarRight,top:n.top+r.borderTop,bottom:n.bottom-r.borderBottom-r.scrollbarBottom};return t&&(i.left+=r.paddingLeft,i.right-=r.paddingRight,i.top+=r.paddingTop,i.bottom-=r.paddingBottom),i}function R(e){var t=e.getBoundingClientRect();return{left:t.left+window.pageXOffset,top:t.top+window.pageYOffset,right:t.right+window.pageXOffset,bottom:t.bottom+window.pageYOffset}}function I(e){return e.getBoundingClientRect().height+C(e)}function C(e){var t=window.getComputedStyle(e);return parseInt(t.marginTop,10)+parseInt(t.marginBottom,10)}function M(e){for(var t=[];e instanceof HTMLElement;){var n=window.getComputedStyle(e);if("fixed"===n.position)break;/(auto|scroll)/.test(n.overflow+n.overflowY+n.overflowX)&&t.push(e),e=e.parentNode}return t}function k(e){e.preventDefault()}function O(e,t,n,r){function i(e){var t=p(e.target,n);t&&r.call(t,e,t)}return e.addEventListener(t,i),function(){e.removeEventListener(t,i)}}var _=["webkitTransitionEnd","otransitionend","oTransitionEnd","msTransitionEnd","transitionend"];var P=["sun","mon","tue","wed","thu","fri","sat"];function x(e,t){var n=Z(e);return n[2]+=t,j(n)}function H(e,t){var n=Z(e);return n[6]+=t,j(n)}function N(e,t){return(t.valueOf()-e.valueOf())/864e5}function z(e,t){var n=B(e),r=B(t);return{years:0,months:0,days:Math.round(N(n,r)),milliseconds:t.valueOf()-r.valueOf()-(e.valueOf()-n.valueOf())}}function U(e,t){var n=L(e,t);return null!==n&&n%7==0?n/7:null}function L(e,t){return q(e)===q(t)?Math.round(N(e,t)):null}function B(e){return j([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()])}function V(e,t,n,r){var i=j([t,0,1+A(t,n,r)]),o=B(e),a=Math.round(N(i,o));return Math.floor(a/7)+1}function A(e,t,n){var r=7+t-n;return-((7+j([e,0,r]).getUTCDay()-t)%7)+r-1}function F(e){return[e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()]}function W(e){return new Date(e[0],e[1]||0,null==e[2]?1:e[2],e[3]||0,e[4]||0,e[5]||0)}function Z(e){return[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()]}function j(e){return 1===e.length&&(e=e.concat([0])),new Date(Date.UTC.apply(Date,e))}function Y(e){return!isNaN(e.valueOf())}function q(e){return 1e3*e.getUTCHours()*60*60+1e3*e.getUTCMinutes()*60+1e3*e.getUTCSeconds()+e.getUTCMilliseconds()}var G=["years","months","days","milliseconds"],X=/^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/;function J(e,t){var n;return"string"==typeof e?function(e){var t=X.exec(e);if(t){var n=t[1]?-1:1;return{years:0,months:0,days:n*(t[2]?parseInt(t[2],10):0),milliseconds:n*(60*(t[3]?parseInt(t[3],10):0)*60*1e3+60*(t[4]?parseInt(t[4],10):0)*1e3+1e3*(t[5]?parseInt(t[5],10):0)+(t[6]?parseInt(t[6],10):0))}}return null}(e):"object"==typeof e&&e?K(e):"number"==typeof e?K(((n={})[t||"milliseconds"]=e,n)):null}function K(e){return{years:e.years||e.year||0,months:e.months||e.month||0,days:(e.days||e.day||0)+7*Q(e),milliseconds:60*(e.hours||e.hour||0)*60*1e3+60*(e.minutes||e.minute||0)*1e3+1e3*(e.seconds||e.second||0)+(e.milliseconds||e.millisecond||e.ms||0)}}function Q(e){return e.weeks||e.week||0}function $(e,t){return e.years===t.years&&e.months===t.months&&e.days===t.days&&e.milliseconds===t.milliseconds}function ee(e){return te(e)/864e5}function te(e){return 31536e6*e.years+2592e6*e.months+864e5*e.days+e.milliseconds}function ne(e,t){var n=e.milliseconds;if(n){if(n%1e3!=0)return{unit:"millisecond",value:n};if(n%6e4!=0)return{unit:"second",value:n/1e3};if(n%36e5!=0)return{unit:"minute",value:n/6e4};if(n)return{unit:"hour",value:n/36e5}}return e.days?t||e.days%7!=0?{unit:"day",value:e.days}:{unit:"week",value:e.days/7}:e.months?{unit:"month",value:e.months}:e.years?{unit:"year",value:e.years}:{unit:"millisecond",value:0}}function re(e){e.forEach(function(e){e.style.height=""})}function ie(e){var t,n,r=[],i=[];for("string"==typeof e?i=e.split(/\s*,\s*/):"function"==typeof e?i=[e]:Array.isArray(e)&&(i=e),t=0;t=te(t)&&(r=x(r,1))}return e.start&&(n=B(e.start),r&&r<=n&&(r=x(n,1))),{start:n,end:r}}function ye(e,t,n,r){return"year"===r?J(n.diffWholeYears(e,t),"year"):"month"===r?J(n.diffWholeMonths(e,t),"month"):z(e,t)}var me=function(e,t){return(me=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function Ee(e,t){function n(){this.constructor=e}me(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var Se=function(){return(Se=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0;o--)if("object"==typeof(a=e[o][r])&&a)i.unshift(a);else if(void 0!==a){u[r]=a;break}i.length&&(u[r]=Te(i))}for(n=e.length-1;n>=0;n--)for(r in s=e[n])r in u||(u[r]=s[r]);return u}function we(e,t){var n={};for(var r in e)t(e[r],r)&&(n[r]=e[r]);return n}function Re(e,t){var n={};for(var r in e)n[r]=t(e[r],r);return n}function Ie(e){for(var t={},n=0,r=e;no&&i.push({start:o,end:r.start}),r.end>o&&(o=r.end);return ot.start)&&(null===e.start||null===t.end||e.start=e.start)&&(null===e.end||null!==t.end&&t.end<=e.end)}function Ze(e,t){return(null===e.start||t>=e.start)&&(null===e.end||t1)||"numeric"!==r.year&&"2-digit"!==r.year||"numeric"!==r.month&&"2-digit"!==r.month||"numeric"!==r.day&&"2-digit"!==r.day||(a=1);var s=this.format(e,n),u=this.format(t,n);if(s===u)return s;var l=nt(function(e,t){var n={};for(var r in e)r in Xe&&!(Xe[r]<=t)||(n[r]=e[r]);return n}(r,a),i,n),c=l(e),d=l(t),f=function(e,t,n,r){var i=0;for(;i/g,">").replace(/'/g,"'").replace(/"/g,""").replace(/\n/g,"
")}function _t(e){var t=[];for(var n in e){var r=e[n];null!=r&&""!==r&&t.push(n+":"+r)}return t.join(";")}function Pt(e){return Array.isArray(e)?e:"string"==typeof e?e.split(/\s+/):[]}var xt={editable:Boolean,startEditable:Boolean,durationEditable:Boolean,constraint:null,overlap:null,allow:null,className:Pt,classNames:Pt,color:String,backgroundColor:String,borderColor:String,textColor:String};function Ht(e,t,n){var r=he(e,xt,{},n),i=function(e,t){return Array.isArray(e)?ke(e,"",t,!0):"object"==typeof e&&e?ke([e],"",t,!0):null!=e?String(e):null}(r.constraint,t);return{startEditable:null!=r.startEditable?r.startEditable:r.editable,durationEditable:null!=r.durationEditable?r.durationEditable:r.editable,constraints:null!=i?[i]:[],overlap:r.overlap,allows:null!=r.allow?[r.allow]:[],backgroundColor:r.backgroundColor||r.color,borderColor:r.borderColor||r.color,textColor:r.textColor,classNames:r.classNames.concat(r.className)}}function Nt(e,t,n,r){var i={},o={};for(var a in xt){var s=e+ue(a);i[a]=t[s],o[s]=!0}if("event"===e&&(i.editable=t.editable),r)for(var a in t)o[a]||(r[a]=t[a]);return Ht(i,n)}var zt={startEditable:null,durationEditable:null,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]};function Ut(e){return e.reduce(Lt,zt)}function Lt(e,t){return{startEditable:null!=t.startEditable?t.startEditable:e.startEditable,durationEditable:null!=t.durationEditable?t.durationEditable:e.durationEditable,constraints:e.constraints.concat(t.constraints),overlap:"boolean"==typeof t.overlap?t.overlap:e.overlap,allows:e.allows.concat(t.allows),backgroundColor:t.backgroundColor||e.backgroundColor,borderColor:t.borderColor||e.borderColor,textColor:t.textColor||e.textColor,classNames:e.classNames.concat(t.classNames)}}var Bt={id:String,groupId:String,title:String,url:String,rendering:String,extendedProps:null},Vt={start:null,date:null,end:null,allDay:null},At=0;function Ft(e,t,n,r){var i=function(e,t){var n=null;if(e){var r=t.state.eventSources[e];n=r.allDayDefault}null==n&&(n=t.opt("allDayDefault"));return n}(t,n),o={},a=function(e,t,n,r,i){for(var o=0;o'+r+"
":""+r+""}function Qt(e,t,n,r){var i,o,a=n.calendar,s=n.view,u=n.theme,l=n.dateEnv,c=[];return Ze(t.activeRange,e)?(c.push("fc-"+P[e.getUTCDay()]),s.opt("monthMode")&&l.getMonth(e)!==l.getMonth(t.currentRange.start)&&c.push("fc-other-month"),o=x(i=B(a.getNow()),1),e=o?c.push("fc-future"):(c.push("fc-today"),!0!==r&&c.push(u.getClass("today")))):c.push("fc-disabled-day"),c}function $t(e,t,n){var r=!1,i=function(){r||(r=!0,t.apply(this,arguments))},o=function(){r||(r=!0,n&&n.apply(this,arguments))},a=e(i,o);a&&"function"==typeof a.then&&a.then(i,o)}var en=function(){function e(){}return e.mixInto=function(e){this.mixIntoObj(e.prototype)},e.mixIntoObj=function(e){var t=this;Object.getOwnPropertyNames(this.prototype).forEach(function(n){e[n]||(e[n]=t.prototype[n])})},e.mixOver=function(e){var t=this;Object.getOwnPropertyNames(this.prototype).forEach(function(n){e.prototype[n]=t.prototype[n]})},e}(),tn=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Ee(t,e),t.prototype.on=function(e,t){return nn(this._handlers||(this._handlers={}),e,t),this},t.prototype.one=function(e,t){return nn(this._oneHandlers||(this._oneHandlers={}),e,t),this},t.prototype.off=function(e,t){return this._handlers&&rn(this._handlers,e,t),this._oneHandlers&&rn(this._oneHandlers,e,t),this},t.prototype.trigger=function(e){for(var t=[],n=1;n=n[t]&&e=n[t]&&e0},e.prototype.canScrollHorizontally=function(){return this.getMaxScrollLeft()>0},e.prototype.canScrollUp=function(){return this.getScrollTop()>0},e.prototype.canScrollDown=function(){return this.getScrollTop()0},e.prototype.canScrollRight=function(){return this.getScrollLeft()=200&&a.status<400)try{var e=JSON.parse(a.responseText);r(e,a)}catch(e){i("Failure parsing JSON",a)}else i("Request failed",a)},a.onerror=function(){i("Request failed",a)},a.send(o)}function Sn(e){var t=[];for(var n in e)t.push(encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t.join("&")}var bn=vn({eventSourceDefs:[{parseMeta:function(e){if("string"==typeof e)e={url:e};else if(!e||"object"!=typeof e||!e.url)return null;return{url:e.url,method:(e.method||"GET").toUpperCase(),extraParams:e.extraParams,startParam:e.startParam,endParam:e.endParam,timeZoneParam:e.timeZoneParam}},fetch:function(e,t,n){var r=e.eventSource.meta,i=function(e,t,n){var r,i,o,a,s=n.dateEnv,u={};null==(r=e.startParam)&&(r=n.opt("startParam"));null==(i=e.endParam)&&(i=n.opt("endParam"));null==(o=e.timeZoneParam)&&(o=n.opt("timeZoneParam"));a="function"==typeof e.extraParams?e.extraParams():e.extraParams||{};Se(u,a),u[r]=s.formatIso(t.start),u[i]=s.formatIso(t.end),"local"!==s.timeZone&&(u[o]=s.timeZone);return u}(r,e.range,e.calendar);En(r.method,r.url,i,function(e,n){t({rawEvents:e,xhr:n})},function(e,t){n({message:e,xhr:t})})}}]});var Dn=vn({recurringTypes:[{parse:function(e,t,n){var r,i,o=n.createMarker.bind(n),a=he(e,{daysOfWeek:null,startTime:J,endTime:J,startRecur:o,endRecur:o},{},t),s=!1;for(var u in a)if(null!=a[u]){s=!0;break}if(s){var l=null;return"duration"in t&&(l=J(t.duration),delete t.duration),!l&&a.startTime&&a.endTime&&(r=a.endTime,i=a.startTime,l={years:r.years-i.years,months:r.months-i.months,days:r.days-i.days,milliseconds:r.milliseconds-i.milliseconds}),{allDayGuess:Boolean(!a.startTime&&!a.endTime),duration:l,typeData:a}}return null},expand:function(e,t,n){var r=Ve(t,{start:e.startRecur,end:e.endRecur});return r?function(e,t,n,r){var i=e?Ie(e):null,o=B(n.start),a=n.end,s=[];for(;o0?e[0].code:"en",n=window.FullCalendarLocalesAll||[],r=window.FullCalendarLocales||{},i=n.concat(Ce(r),e),o={en:kn},a=0,s=i;a0;i--){var o=r.slice(0,i).join("-");if(t[o])return t[o]}return null}(n,t)||kn;return Pn(e,n,r)}(e,t):Pn(e.code,[e.code],e)}function Pn(e,t,n){var r=Te([kn,n],["buttonText"]);delete r.code;var i=r.week;return delete r.week,{codeArg:e,codes:t,week:i,simpleNumberFormat:new Intl.NumberFormat(e),options:r}}var xn=function(){function e(e){this.overrides=Se({},e),this.dynamicOverrides={},this.compute()}return e.prototype.mutate=function(e,t,n){var r=n?this.dynamicOverrides:this.overrides;Se(r,e);for(var i=0,o=t;i=1?Math.min(i,o):i}(e,this.weekDow,this.weekDoy)},e.prototype.format=function(e,t,n){return void 0===n&&(n={}),t.format({marker:e,timeZoneOffset:null!=n.forcedTzo?n.forcedTzo:this.offsetForMarker(e)},this)},e.prototype.formatRange=function(e,t,n,r){return void 0===r&&(r={}),r.isEndExclusive&&(t=H(t,-1)),n.formatRange({marker:e,timeZoneOffset:null!=r.forcedStartTzo?r.forcedStartTzo:this.offsetForMarker(e)},{marker:t,timeZoneOffset:null!=r.forcedEndTzo?r.forcedEndTzo:this.offsetForMarker(t)},this)},e.prototype.formatIso=function(e,t){void 0===t&&(t={});var n=null;return t.omitTimeZoneOffset||(n=null!=t.forcedTzo?t.forcedTzo:this.offsetForMarker(e)),function(e,t,n){void 0===n&&(n=!1);var r=e.toISOString();return r=r.replace(".000",""),n&&(r=r.replace("T00:00:00Z","")),r.length>10&&(null==t?r=r.replace("Z",""):0!==t&&(r=r.replace("Z",at(t,!0)))),r}(e,n,t.omitTime)},e.prototype.timestampToMarker=function(e){return"local"===this.timeZone?j(F(new Date(e))):"UTC"!==this.timeZone&&this.namedTimeZoneImpl?j(this.namedTimeZoneImpl.timestampToArray(e)):new Date(e)},e.prototype.offsetForMarker=function(e){return"local"===this.timeZone?-W(Z(e)).getTimezoneOffset():"UTC"===this.timeZone?0:this.namedTimeZoneImpl?this.namedTimeZoneImpl.offsetForArray(Z(e)):null},e.prototype.toDate=function(e,t){return"local"===this.timeZone?W(Z(e)):"UTC"===this.timeZone?new Date(e.valueOf()):this.namedTimeZoneImpl?new Date(e.valueOf()-1e3*this.namedTimeZoneImpl.offsetForArray(Z(e))*60):new Date(e.valueOf()-(t||0))},e}(),Vn={id:String,allDayDefault:Boolean,eventDataTransform:Function,success:Function,failure:Function},An=0;function Fn(e,t){return!t.pluginSystem.hooks.eventSourceDefs[e.sourceDefId].ignoreRange}function Wn(e,t){for(var n=t.pluginSystem.hooks.eventSourceDefs,r=n.length-1;r>=0;r--){var i=n[r].parseMeta(e);if(i){var o=Zn("object"==typeof e?e:{},i,r,t);return o._raw=e,o}}return null}function Zn(e,t,n,r){var i={},o=he(e,Vn,{},i),a={},s=Ht(i,r,a);return o.isFetching=!1,o.latestFetchId="",o.fetchRange=null,o.publicId=String(e.id||""),o.sourceId=String(An++),o.sourceDefId=n,o.meta=t,o.ui=s,o.extendedProps=a,o}function jn(e,t,n,r){switch(t.type){case"ADD_EVENT_SOURCES":return function(e,t,n,r){for(var i={},o=0,a=t;oe.fetchRange.end:!e.latestFetchId}(e,t,n)}),t,n)}function Gn(e,t,n,r){var i={};for(var o in e){var a=e[o];t[o]?i[o]=Xn(a,n,r):i[o]=a}return i}function Xn(e,t,n){var r=n.pluginSystem.hooks.eventSourceDefs[e.sourceDefId],i=String(Yn++);return r.fetch({eventSource:e,calendar:n,range:t},function(r){var o,a,s=r.rawEvents,u=n.opt("eventSourceSuccess");e.success&&(a=e.success(s,r.xhr)),u&&(o=u(s,r.xhr)),s=a||o||s,n.dispatch({type:"RECEIVE_EVENTS",sourceId:e.sourceId,fetchId:i,fetchRange:t,rawEvents:s})},function(r){var o=n.opt("eventSourceFailure");console.warn(r.message,r),e.failure&&e.failure(r),o&&o(r),n.dispatch({type:"RECEIVE_EVENT_ERROR",sourceId:e.sourceId,fetchId:i,fetchRange:t,error:r})}),Se({},e,{isFetching:!0,latestFetchId:i})}var Jn=function(){function e(e,t){this.viewSpec=e,this.options=e.options,this.dateEnv=t.dateEnv,this.calendar=t,this.initHiddenDays()}return e.prototype.buildPrev=function(e,t){var n=this.dateEnv,r=n.subtract(n.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(r,-1)},e.prototype.buildNext=function(e,t){var n=this.dateEnv,r=n.add(n.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(r,1)},e.prototype.build=function(e,t,n){var r;void 0===n&&(n=!1);var i,o,a,s,u,l,c,d,f;return r=this.buildValidRange(),r=this.trimHiddenDays(r),n&&(d=e,e=null!=(f=r).start&&d=f.end?new Date(f.end.valueOf()-1):d),a=this.buildCurrentRangeInfo(e,t),s=/^(year|month|week|day)$/.test(a.unit),u=this.buildRenderRange(this.trimHiddenDays(a.range),a.unit,s),l=u=this.trimHiddenDays(u),this.options.showNonCurrentDates||(l=Ve(l,a.range)),i=J(this.options.minTime),o=J(this.options.maxTime),l=Ve(l=this.adjustActiveRange(l,i,o),r),c=Fe(a.range,r),{validRange:r,currentRange:a.range,currentRangeUnit:a.unit,isRangeAllDay:s,activeRange:l,renderRange:u,minTime:i,maxTime:o,isValid:c,dateIncrement:this.buildDateIncrement(a.duration)}},e.prototype.buildValidRange=function(){return this.getRangeOption("validRange",this.calendar.getNow())||{start:null,end:null}},e.prototype.buildCurrentRangeInfo=function(e,t){var n,r=this.viewSpec,i=this.dateEnv,o=null,a=null,s=null;return r.duration?(o=r.duration,a=r.durationUnit,s=this.buildRangeFromDuration(e,t,o,a)):(n=this.options.dayCount)?(a="day",s=this.buildRangeFromDayCount(e,t,n)):(s=this.buildCustomVisibleRange(e))?a=i.greatestWholeUnit(s.start,s.end).unit:(a=ne(o=this.getFallbackDuration()).unit,s=this.buildRangeFromDuration(e,t,o,a)),{duration:o,unit:a,range:s}},e.prototype.getFallbackDuration=function(){return J({day:1})},e.prototype.adjustActiveRange=function(e,t,n){var r=this.dateEnv,i=e.start,o=e.end;return this.viewSpec.class.prototype.usesMinMaxTime&&(ee(t)<0&&(i=B(i),i=r.add(i,t)),ee(n)>1&&(o=x(o=B(o),-1),o=r.add(o,n))),{start:i,end:o}},e.prototype.buildRangeFromDuration=function(e,t,n,r){var i,o,a,s,u,l=this.dateEnv,c=this.options.dateAlignment;function d(){a=l.startOf(e,c),s=l.add(a,n),u={start:a,end:s}}return c||((i=this.options.dateIncrement)?(o=J(i),c=te(o) ")),h=!1):((r=d[e])?(c=function(e){r.click&&r.click.call(E,e)},(v=o.getCustomButtonIconClass(r))||(v=o.getIconClass(e))||(g=r.text)):(s=l[e])?(n.viewsWithButtons.push(e),c=function(){a.changeView(e)},(g=s.buttonTextOverride)||(v=o.getIconClass(e))||(g=s.buttonTextDefault)):a[e]&&(c=function(){a[e]()},(g=f[e])||(v=o.getIconClass(e))||(g=p[e])),c&&(m=["fc-"+e+"-button",o.getClass("button")],g?(y=Ot(g),S=""):v&&(y="",S=' aria-label="'+e+'"'),(E=i('")).addEventListener("click",c),u.push(E)))}),u.length>1){r=document.createElement("div");var v=o.getClass("buttonGroup");h&&v&&r.classList.add(v),s(r,u),c.appendChild(r)}else s(c,u)}),c},t.prototype.updateToday=function(e){this.toggleButtonEnabled("today",e)},t.prototype.updatePrev=function(e){this.toggleButtonEnabled("prev",e)},t.prototype.updateNext=function(e){this.toggleButtonEnabled("next",e)},t.prototype.updateTitle=function(e){v(this.el,"h2").forEach(function(t){t.innerText=e})},t.prototype.updateActiveButton=function(e){var t=this.theme.getClass("buttonActive");v(this.el,"button").forEach(function(n){e&&n.classList.contains("fc-"+e+"-button")?n.classList.add(t):n.classList.remove(t)})},t.prototype.toggleButtonEnabled=function(e,t){v(this.el,".fc-"+e+"-button").forEach(function(e){e.disabled=!t})},t}(fn),hr=function(e){function t(t,n){var i=e.call(this,t)||this;i._renderToolbars=qt(i.renderToolbars),i.buildViewPropTransformers=Ye(gr),i.el=n,u(n,i.contentEl=r("div",{className:"fc-view-container"}));for(var o=i.calendar,a=0,s=o.pluginSystem.hooks.viewContainerModifiers;a1?{year:"numeric",month:"short",day:"numeric"}:{year:"numeric",month:"long",day:"numeric"}}(e),t.titleRangeSeparator),{isEndExclusive:e.isRangeAllDay})}function gr(e){return e.map(function(e){return new e})}var yr=function(){function e(e){this.component=e.component}return e.prototype.destroy=function(){},e}();var mr={},Er=function(e){function t(t){var n=e.call(this,t)||this;n.handleSegClick=function(e,t){var r=n.component,i=ht(t);if(i&&r.isValidSegDownEl(e.target)){var o=p(e.target,".fc-has-url"),a=o?o.querySelector("a[href]").href:"";r.publiclyTrigger("eventClick",[{el:t,event:new ct(r.calendar,i.eventRange.def,i.eventRange.instance),jsEvent:e,view:r.view}]),a&&!e.defaultPrevented&&(window.location.href=a)}};var r=t.component;return n.destroy=O(r.el,"click",r.fgSegSelector+","+r.bgSegSelector,n.handleSegClick),n}return Ee(t,e),t}(yr),Sr=function(e){function t(t){var n=e.call(this,t)||this;n.handleEventElRemove=function(e){e===n.currentSegEl&&n.handleSegLeave(null,n.currentSegEl)},n.handleSegEnter=function(e,t){ht(t)&&(t.classList.add("fc-allow-mouse-resize"),n.currentSegEl=t,n.triggerEvent("eventMouseEnter",e,t))},n.handleSegLeave=function(e,t){n.currentSegEl&&(t.classList.remove("fc-allow-mouse-resize"),n.currentSegEl=null,n.triggerEvent("eventMouseLeave",e,t))};var r,i,o,a,s,u=t.component;return n.removeHoverListeners=(r=u.el,i=u.fgSegSelector+","+u.bgSegSelector,o=n.handleSegEnter,a=n.handleSegLeave,O(r,"mouseover",i,function(e,t){if(t!==s){s=t,o(e,t);var n=function(e){s=null,a(e,t),t.removeEventListener("mouseleave",n)};t.addEventListener("mouseleave",n)}})),u.calendar.on("eventElRemove",n.handleEventElRemove),n}return Ee(t,e),t.prototype.destroy=function(){this.removeHoverListeners(),this.component.calendar.off("eventElRemove",this.handleEventElRemove)},t.prototype.triggerEvent=function(e,t,n){var r=this.component,i=ht(n);t&&!r.isValidSegDownEl(t.target)||r.publiclyTrigger(e,[{el:n,event:new ct(this.component.calendar,i.eventRange.def,i.eventRange.instance),jsEvent:t,view:r.view}])},t}(yr),br=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Ee(t,e),t}(cn);br.prototype.classes={widget:"fc-unthemed",widgetHeader:"fc-widget-header",widgetContent:"fc-widget-content",buttonGroup:"fc-button-group",button:"fc-button fc-button-primary",buttonActive:"fc-button-active",popoverHeader:"fc-widget-header",popoverContent:"fc-widget-content",headerRow:"fc-widget-header",dayRow:"fc-widget-content",listView:"fc-widget-content"},br.prototype.baseIconClass="fc-icon",br.prototype.iconClasses={close:"fc-icon-x",prev:"fc-icon-chevron-left",next:"fc-icon-chevron-right",prevYear:"fc-icon-chevrons-left",nextYear:"fc-icon-chevrons-right"},br.prototype.iconOverrideOption="buttonIcons",br.prototype.iconOverrideCustomButtonOption="icon",br.prototype.iconOverridePrefix="fc-icon-";var Dr=function(){function e(e,t){var n=this;this.parseRawLocales=Ye(On),this.buildLocale=Ye(_n),this.buildDateEnv=Ye(Tr),this.buildTheme=Ye(wr),this.buildEventUiSingleBase=Ye(this._buildEventUiSingleBase),this.buildSelectionConfig=Ye(this._buildSelectionConfig),this.buildEventUiBySource=qe(Ir,Me),this.buildEventUiBases=Ye(Cr),this.interactionsStore={},this.actionQueue=[],this.isReducing=!1,this.needsRerender=!1,this.needsFullRerender=!1,this.isRendering=!1,this.renderingPauseDepth=0,this.buildDelayedRerender=Ye(Rr),this.afterSizingTriggers={},this.isViewUpdated=!1,this.isDatesUpdated=!1,this.isEventsUpdated=!1,this.el=e,this.optionsManager=new xn(t||{}),this.pluginSystem=new gn,this.addPluginInputs(this.optionsManager.computed.plugins||[]),this.handleOptions(this.optionsManager.computed),this.publiclyTrigger("_init"),this.hydrate(),this.calendarInteractions=this.pluginSystem.hooks.calendarInteractions.map(function(e){return new e(n)})}return e.prototype.addPluginInputs=function(e){for(var t=function(e){for(var t=[],n=0,r=e;n"},e.prototype.detachSegs=function(e,t){var n=this.containerElsByType[e];n&&(n.forEach(c),delete this.containerElsByType[e])},e.prototype.computeSizes=function(e){for(var t in this.segsByType)(e||this.dirtySizeFlags[t])&&this.computeSegSizes(this.segsByType[t])},e.prototype.assignSizes=function(e){for(var t in this.segsByType)(e||this.dirtySizeFlags[t])&&this.assignSegSizes(this.segsByType[t]);this.dirtySizeFlags={}},e.prototype.computeSegSizes=function(e){},e.prototype.assignSegSizes=function(e){},e}(),Pr=function(e){this.timeZoneName=e},xr=function(){function e(e){this.emitter=new tn}return e.prototype.destroy=function(){},e.prototype.setMirrorIsVisible=function(e){},e.prototype.setMirrorNeedsRevert=function(e){},e.prototype.setAutoScrollEnabled=function(e){},e}();function Hr(e){var t=_n(e.locale||"en",On([]).map);return e=Se({timeZone:Rn.timeZone,calendarSystem:"gregory"},e,{locale:t}),new Bn(e)}var Nr={startTime:J,duration:J,create:Boolean,sourceId:String},zr={create:!0};function Ur(e,t){return!e||t>10?{weekday:"short"}:t>1?{weekday:"short",month:"numeric",day:"numeric",omitCommas:!0}:{weekday:"long"}}function Lr(e,t,n,r,i,o,a,s){var u,l=o.view,c=o.dateEnv,d=o.theme,f=o.options,p=Ze(t.activeRange,e),h=["fc-day-header",d.getClass("widgetHeader")];return u="function"==typeof f.columnHeaderHtml?f.columnHeaderHtml(c.toDate(e)):"function"==typeof f.columnHeaderText?Ot(f.columnHeaderText(c.toDate(e))):Ot(c.format(e,i)),n?h=h.concat(Qt(e,t,o,!0)):h.push("fc-"+P[e.getUTCDay()]),'1?' colspan="'+a+'"':"")+(s?" "+s:"")+">"+(p?Kt(l,{date:e,forceOff:!n||1===r},u):u)+""}var Br=function(e){function t(t,n){var r=e.call(this,t)||this;return n.innerHTML="",n.appendChild(r.el=i('
')),r.thead=r.el.querySelector("thead"),r}return Ee(t,e),t.prototype.destroy=function(){c(this.el)},t.prototype.render=function(e){var t=e.dates,n=e.datesRepDistinctDays,r=[];e.renderIntroHtml&&r.push(e.renderIntroHtml());for(var i=ot(this.opt("columnHeaderFormat")||Ur(n,t.length)),o=0,a=t;o"+r.join("")+""},t}(fn),Vr=function(){function e(e,t){for(var n=e.start,r=e.end,i=[],o=[],a=-1;n=t.length?t[t.length-1]+1:t[n]},e}(),Ar=function(){function e(e,t){var n,r,i,o=e.dates;if(t){for(r=o[0].getUTCDay(),n=1;n1},e.isPropsEqual=Me,e.isPropsValid=Rt,e.isSingleDay=function(e){return 0===e.years&&0===e.months&&1===e.days&&0===e.milliseconds},e.isValidDate=Y,e.listenBySelector=O,e.mapHash=Re,e.matchCellWidths=function(e){var t=0;return e.forEach(function(e){var n=e.firstChild;if(n instanceof HTMLElement){var r=n.getBoundingClientRect().width;r>t&&(t=r)}}),t++,e.forEach(function(e){e.style.width=t+"px"}),t},e.memoize=Ye,e.memoizeOutput=qe,e.memoizeRendering=qt,e.mergeEventStores=Ne,e.multiplyDuration=function(e,t){return{years:e.years*t,months:e.months*t,days:e.days*t,milliseconds:e.milliseconds*t}},e.padStart=le,e.parseBusinessHours=Yt,e.parseDragMeta=function(e){var t={},n=he(e,Nr,zr,t);return n.leftoverProps=t,n},e.parseEventDef=Wt,e.parseFieldSpecs=ie,e.parseMarker=Ln,e.pointInsideRect=function(e,t){return e.left>=t.left&&e.left=t.top&&e.topel día", - eventLimitText: "más", - noEventsMessage: "No hay eventos para mostrar" - }; - - var _m19 = { - code: "es", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Sig", - today: "Hoy", - month: "Mes", - week: "Semana", - day: "Día", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
el día", - eventLimitText: "más", - noEventsMessage: "No hay eventos para mostrar" - }; - - var _m20 = { - code: "et", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Eelnev", - next: "Järgnev", - today: "Täna", - month: "Kuu", - week: "Nädal", - day: "Päev", - list: "Päevakord" - }, - weekLabel: "näd", - allDayText: "Kogu päev", - eventLimitText: function (n) { - return "+ veel " + n; - }, - noEventsMessage: "Kuvamiseks puuduvad sündmused" - }; - - var _m21 = { - code: "eu", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Aur", - next: "Hur", - today: "Gaur", - month: "Hilabetea", - week: "Astea", - day: "Eguna", - list: "Agenda" - }, - weekLabel: "As", - allDayHtml: "Egun
osoa", - eventLimitText: "gehiago", - noEventsMessage: "Ez dago ekitaldirik erakusteko" - }; - - var _m22 = { - code: "fa", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "قبلی", - next: "بعدی", - today: "امروز", - month: "ماه", - week: "هفته", - day: "روز", - list: "برنامه" - }, - weekLabel: "هف", - allDayText: "تمام روز", - eventLimitText: function (n) { - return "بیش از " + n; - }, - noEventsMessage: "هیچ رویدادی به نمایش" - }; - - var _m23 = { - code: "fi", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Edellinen", - next: "Seuraava", - today: "Tänään", - month: "Kuukausi", - week: "Viikko", - day: "Päivä", - list: "Tapahtumat" - }, - weekLabel: "Vk", - allDayText: "Koko päivä", - eventLimitText: "lisää", - noEventsMessage: "Ei näytettäviä tapahtumia" - }; - - var _m24 = { - code: "fr", - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Aujourd'hui", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sem.", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - var _m25 = { - code: "fr-ch", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Courant", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sm", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - var _m26 = { - code: "fr", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Aujourd'hui", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sem.", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - var _m27 = { - code: "gl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Seg", - today: "Hoxe", - month: "Mes", - week: "Semana", - day: "Día", - list: "Axenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
o día", - eventLimitText: "máis", - noEventsMessage: "Non hai eventos para amosar" - }; - - var _m28 = { - code: "he", - dir: 'rtl', - buttonText: { - prev: "הקודם", - next: "הבא", - today: "היום", - month: "חודש", - week: "שבוע", - day: "יום", - list: "סדר יום" - }, - allDayText: "כל היום", - eventLimitText: "אחר", - noEventsMessage: "אין אירועים להצגה", - weekLabel: "שבוע" - }; - - var _m29 = { - code: "hi", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "पिछला", - next: "अगला", - today: "आज", - month: "महीना", - week: "सप्ताह", - day: "दिन", - list: "कार्यसूची" - }, - weekLabel: "हफ्ता", - allDayText: "सभी दिन", - eventLimitText: function (n) { - return "+अधिक " + n; - }, - noEventsMessage: "कोई घटनाओं को प्रदर्शित करने के लिए" - }; - - var _m30 = { - code: "hr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prijašnji", - next: "Sljedeći", - today: "Danas", - month: "Mjesec", - week: "Tjedan", - day: "Dan", - list: "Raspored" - }, - weekLabel: "Tje", - allDayText: "Cijeli dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nema događaja za prikaz" - }; - - var _m31 = { - code: "hu", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "vissza", - next: "előre", - today: "ma", - month: "Hónap", - week: "Hét", - day: "Nap", - list: "Napló" - }, - weekLabel: "Hét", - allDayText: "Egész nap", - eventLimitText: "további", - noEventsMessage: "Nincs megjeleníthető esemény" - }; - - var _m32 = { - code: "id", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "mundur", - next: "maju", - today: "hari ini", - month: "Bulan", - week: "Minggu", - day: "Hari", - list: "Agenda" - }, - weekLabel: "Mg", - allDayHtml: "Sehari
penuh", - eventLimitText: "lebih", - noEventsMessage: "Tidak ada acara untuk ditampilkan" - }; - - var _m33 = { - code: "is", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Fyrri", - next: "Næsti", - today: "Í dag", - month: "Mánuður", - week: "Vika", - day: "Dagur", - list: "Dagskrá" - }, - weekLabel: "Vika", - allDayHtml: "Allan
daginn", - eventLimitText: "meira", - noEventsMessage: "Engir viðburðir til að sýna" - }; - - var _m34 = { - code: "it", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Prec", - next: "Succ", - today: "Oggi", - month: "Mese", - week: "Settimana", - day: "Giorno", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Tutto il
giorno", - eventLimitText: function (n) { - return "+altri " + n; - }, - noEventsMessage: "Non ci sono eventi da visualizzare" - }; - - var _m35 = { - code: "ja", - buttonText: { - prev: "前", - next: "次", - today: "今日", - month: "月", - week: "週", - day: "日", - list: "予定リスト" - }, - weekLabel: "週", - allDayText: "終日", - eventLimitText: function (n) { - return "他 " + n + " 件"; - }, - noEventsMessage: "表示する予定はありません" - }; - - var _m36 = { - code: "ka", - week: { - dow: 1, - doy: 7 - }, - buttonText: { - prev: "წინა", - next: "შემდეგი", - today: "დღეს", - month: "თვე", - week: "კვირა", - day: "დღე", - list: "დღის წესრიგი" - }, - weekLabel: "კვ", - allDayText: "მთელი დღე", - eventLimitText: function (n) { - return "+ კიდევ " + n; - }, - noEventsMessage: "ღონისძიებები არ არის" - }; - - var _m37 = { - code: "kk", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Алдыңғы", - next: "Келесі", - today: "Бүгін", - month: "Ай", - week: "Апта", - day: "Күн", - list: "Күн тәртібі" - }, - weekLabel: "Не", - allDayText: "Күні бойы", - eventLimitText: function (n) { - return "+ тағы " + n; - }, - noEventsMessage: "Көрсету үшін оқиғалар жоқ" - }; - - var _m38 = { - code: "ko", - buttonText: { - prev: "이전달", - next: "다음달", - today: "오늘", - month: "월", - week: "주", - day: "일", - list: "일정목록" - }, - weekLabel: "주", - allDayText: "종일", - eventLimitText: "개", - noEventsMessage: "일정이 없습니다" - }; - - var _m39 = { - code: "lb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Zréck", - next: "Weider", - today: "Haut", - month: "Mount", - week: "Woch", - day: "Dag", - list: "Terminiwwersiicht" - }, - weekLabel: "W", - allDayText: "Ganzen Dag", - eventLimitText: "méi", - noEventsMessage: "Nee Evenementer ze affichéieren" - }; - - var _m40 = { - code: "lt", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Atgal", - next: "Pirmyn", - today: "Šiandien", - month: "Mėnuo", - week: "Savaitė", - day: "Diena", - list: "Darbotvarkė" - }, - weekLabel: "SAV", - allDayText: "Visą dieną", - eventLimitText: "daugiau", - noEventsMessage: "Nėra įvykių rodyti" - }; - - var _m41 = { - code: "lv", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Iepr.", - next: "Nāk.", - today: "Šodien", - month: "Mēnesis", - week: "Nedēļa", - day: "Diena", - list: "Dienas kārtība" - }, - weekLabel: "Ned.", - allDayText: "Visu dienu", - eventLimitText: function (n) { - return "+vēl " + n; - }, - noEventsMessage: "Nav notikumu" - }; - - var _m42 = { - code: "mk", - buttonText: { - prev: "претходно", - next: "следно", - today: "Денес", - month: "Месец", - week: "Недела", - day: "Ден", - list: "График" - }, - weekLabel: "Сед", - allDayText: "Цел ден", - eventLimitText: function (n) { - return "+повеќе " + n; - }, - noEventsMessage: "Нема настани за прикажување" - }; - - var _m43 = { - code: "ms", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Sebelum", - next: "Selepas", - today: "hari ini", - month: "Bulan", - week: "Minggu", - day: "Hari", - list: "Agenda" - }, - weekLabel: "Mg", - allDayText: "Sepanjang hari", - eventLimitText: function (n) { - return "masih ada " + n + " acara"; - }, - noEventsMessage: "Tiada peristiwa untuk dipaparkan" - }; - - var _m44 = { - code: "nb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Forrige", - next: "Neste", - today: "I dag", - month: "Måned", - week: "Uke", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Uke", - allDayText: "Hele dagen", - eventLimitText: "til", - noEventsMessage: "Ingen hendelser å vise" - }; - - var _m45 = { - code: "nl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Voorgaand", - next: "Volgende", - today: "Vandaag", - year: "Jaar", - month: "Maand", - week: "Week", - day: "Dag", - list: "Agenda" - }, - allDayText: "Hele dag", - eventLimitText: "extra", - noEventsMessage: "Geen evenementen om te laten zien" - }; - - var _m46 = { - code: "nn", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Førre", - next: "Neste", - today: "I dag", - month: "Månad", - week: "Veke", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Veke", - allDayText: "Heile dagen", - eventLimitText: "til", - noEventsMessage: "Ingen hendelser å vise" - }; - - var _m47 = { - code: "pl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Poprzedni", - next: "Następny", - today: "Dziś", - month: "Miesiąc", - week: "Tydzień", - day: "Dzień", - list: "Plan dnia" - }, - weekLabel: "Tydz", - allDayText: "Cały dzień", - eventLimitText: "więcej", - noEventsMessage: "Brak wydarzeń do wyświetlenia" - }; - - var _m48 = { - code: "pt-br", - buttonText: { - prev: "Anterior", - next: "Próximo", - today: "Hoje", - month: "Mês", - week: "Semana", - day: "Dia", - list: "Compromissos" - }, - weekLabel: "Sm", - allDayText: "dia inteiro", - eventLimitText: function (n) { - return "mais +" + n; - }, - noEventsMessage: "Não há eventos para mostrar" - }; - - var _m49 = { - code: "pt", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Anterior", - next: "Seguinte", - today: "Hoje", - month: "Mês", - week: "Semana", - day: "Dia", - list: "Agenda" - }, - weekLabel: "Sem", - allDayText: "Todo o dia", - eventLimitText: "mais", - noEventsMessage: "Não há eventos para mostrar" - }; - - var _m50 = { - code: "ro", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "precedentă", - next: "următoare", - today: "Azi", - month: "Lună", - week: "Săptămână", - day: "Zi", - list: "Agendă" - }, - weekLabel: "Săpt", - allDayText: "Toată ziua", - eventLimitText: function (n) { - return "+alte " + n; - }, - noEventsMessage: "Nu există evenimente de afișat" - }; - - var _m51 = { - code: "ru", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Пред", - next: "След", - today: "Сегодня", - month: "Месяц", - week: "Неделя", - day: "День", - list: "Повестка дня" - }, - weekLabel: "Нед", - allDayText: "Весь день", - eventLimitText: function (n) { - return "+ ещё " + n; - }, - noEventsMessage: "Нет событий для отображения" - }; - - var _m52 = { - code: "sk", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Predchádzajúci", - next: "Nasledujúci", - today: "Dnes", - month: "Mesiac", - week: "Týždeň", - day: "Deň", - list: "Rozvrh" - }, - weekLabel: "Ty", - allDayText: "Celý deň", - eventLimitText: function (n) { - return "+ďalšie: " + n; - }, - noEventsMessage: "Žiadne akcie na zobrazenie" - }; - - var _m53 = { - code: "sl", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prejšnji", - next: "Naslednji", - today: "Trenutni", - month: "Mesec", - week: "Teden", - day: "Dan", - list: "Dnevni red" - }, - weekLabel: "Teden", - allDayText: "Ves dan", - eventLimitText: "več", - noEventsMessage: "Ni dogodkov za prikaz" - }; - - var _m54 = { - code: "sq", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "mbrapa", - next: "Përpara", - today: "sot", - month: "Muaj", - week: "Javë", - day: "Ditë", - list: "Listë" - }, - weekLabel: "Ja", - allDayHtml: "Gjithë
ditën", - eventLimitText: function (n) { - return "+më tepër " + n; - }, - noEventsMessage: "Nuk ka evente për të shfaqur" - }; - - var _m55 = { - code: "sr-cyrl", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Претходна", - next: "следећи", - today: "Данас", - month: "Месец", - week: "Недеља", - day: "Дан", - list: "Планер" - }, - weekLabel: "Сед", - allDayText: "Цео дан", - eventLimitText: function (n) { - return "+ још " + n; - }, - noEventsMessage: "Нема догађаја за приказ" - }; - - var _m56 = { - code: "sr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prethodna", - next: "Sledeći", - today: "Danas", - month: "Mеsеc", - week: "Nеdеlja", - day: "Dan", - list: "Planеr" - }, - weekLabel: "Sed", - allDayText: "Cеo dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nеma događaja za prikaz" - }; - - var _m57 = { - code: "sv", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Förra", - next: "Nästa", - today: "Idag", - month: "Månad", - week: "Vecka", - day: "Dag", - list: "Program" - }, - weekLabel: "v.", - allDayText: "Heldag", - eventLimitText: "till", - noEventsMessage: "Inga händelser att visa" - }; - - var _m58 = { - code: "th", - buttonText: { - prev: "ย้อน", - next: "ถัดไป", - today: "วันนี้", - month: "เดือน", - week: "สัปดาห์", - day: "วัน", - list: "แผนงาน" - }, - allDayText: "ตลอดวัน", - eventLimitText: "เพิ่มเติม", - noEventsMessage: "ไม่มีกิจกรรมที่จะแสดง" - }; - - var _m59 = { - code: "tr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "geri", - next: "ileri", - today: "bugün", - month: "Ay", - week: "Hafta", - day: "Gün", - list: "Ajanda" - }, - weekLabel: "Hf", - allDayText: "Tüm gün", - eventLimitText: "daha fazla", - noEventsMessage: "Gösterilecek etkinlik yok" - }; - - var _m60 = { - code: "uk", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Попередній", - next: "далі", - today: "Сьогодні", - month: "Місяць", - week: "Тиждень", - day: "День", - list: "Порядок денний" - }, - weekLabel: "Тиж", - allDayText: "Увесь день", - eventLimitText: function (n) { - return "+ще " + n + "..."; - }, - noEventsMessage: "Немає подій для відображення" - }; - - var _m61 = { - code: "vi", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Trước", - next: "Tiếp", - today: "Hôm nay", - month: "Tháng", - week: "Tuần", - day: "Ngày", - list: "Lịch biểu" - }, - weekLabel: "Tu", - allDayText: "Cả ngày", - eventLimitText: function (n) { - return "+ thêm " + n; - }, - noEventsMessage: "Không có sự kiện để hiển thị" - }; - - var _m62 = { - code: "zh-cn", - week: { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "上月", - next: "下月", - today: "今天", - month: "月", - week: "周", - day: "日", - list: "日程" - }, - weekLabel: "周", - allDayText: "全天", - eventLimitText: function (n) { - return "另外 " + n + " 个"; - }, - noEventsMessage: "没有事件显示" - }; - - var _m63 = { - code: "zh-tw", - buttonText: { - prev: "上月", - next: "下月", - today: "今天", - month: "月", - week: "週", - day: "天", - list: "活動列表" - }, - weekLabel: "周", - allDayText: "整天", - eventLimitText: '顯示更多', - noEventsMessage: "没有任何活動" - }; - - var _rollupPluginMultiEntry_entryPoint = [ - _m0, _m1, _m2, _m3, _m4, _m5, _m6, _m7, _m8, _m9, _m10, _m11, _m12, _m13, _m14, _m15, _m16, _m17, _m18, _m19, _m20, _m21, _m22, _m23, _m24, _m25, _m26, _m27, _m28, _m29, _m30, _m31, _m32, _m33, _m34, _m35, _m36, _m37, _m38, _m39, _m40, _m41, _m42, _m43, _m44, _m45, _m46, _m47, _m48, _m49, _m50, _m51, _m52, _m53, _m54, _m55, _m56, _m57, _m58, _m59, _m60, _m61, _m62, _m63 - ]; - - return _rollupPluginMultiEntry_entryPoint; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales-all.min.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales-all.min.js deleted file mode 100644 index 810d6dea..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales-all.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).FullCalendarLocalesAll=t()}(this,function(){"use strict";return[{code:"af",week:{dow:1,doy:4},buttonText:{prev:"Vorige",next:"Volgende",today:"Vandag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayHtml:"Heeldag",eventLimitText:"Addisionele",noEventsMessage:"Daar is geen gebeurtenisse nie"},{code:"ar-dz",week:{dow:0,doy:4},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-kw",week:{dow:0,doy:12},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-ly",week:{dow:6,doy:12},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-ma",week:{dow:6,doy:12},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-sa",week:{dow:0,doy:6},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-tn",week:{dow:1,doy:4},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar",week:{dow:6,doy:12},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"bg",week:{dow:1,doy:7},buttonText:{prev:"назад",next:"напред",today:"днес",month:"Месец",week:"Седмица",day:"Ден",list:"График"},allDayText:"Цял ден",eventLimitText:function(e){return"+още "+e},noEventsMessage:"Няма събития за показване"},{code:"bs",week:{dow:1,doy:7},buttonText:{prev:"Prošli",next:"Sljedeći",today:"Danas",month:"Mjesec",week:"Sedmica",day:"Dan",list:"Raspored"},weekLabel:"Sed",allDayText:"Cijeli dan",eventLimitText:function(e){return"+ još "+e},noEventsMessage:"Nema događaja za prikazivanje"},{code:"ca",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Següent",today:"Avui",month:"Mes",week:"Setmana",day:"Dia",list:"Agenda"},weekLabel:"Set",allDayText:"Tot el dia",eventLimitText:"més",noEventsMessage:"No hi ha esdeveniments per mostrar"},{code:"cs",week:{dow:1,doy:4},buttonText:{prev:"Dříve",next:"Později",today:"Nyní",month:"Měsíc",week:"Týden",day:"Den",list:"Agenda"},weekLabel:"Týd",allDayText:"Celý den",eventLimitText:function(e){return"+další: "+e},noEventsMessage:"Žádné akce k zobrazení"},{code:"da",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Næste",today:"I dag",month:"Måned",week:"Uge",day:"Dag",list:"Agenda"},weekLabel:"Uge",allDayText:"Hele dagen",eventLimitText:"flere",noEventsMessage:"Ingen arrangementer at vise"},{code:"de",week:{dow:1,doy:4},buttonText:{prev:"Zurück",next:"Vor",today:"Heute",year:"Jahr",month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},weekLabel:"KW",allDayText:"Ganztägig",eventLimitText:function(e){return"+ weitere "+e},noEventsMessage:"Keine Ereignisse anzuzeigen"},{code:"el",week:{dow:1,doy:4},buttonText:{prev:"Προηγούμενος",next:"Επόμενος",today:"Σήμερα",month:"Μήνας",week:"Εβδομάδα",day:"Ημέρα",list:"Ατζέντα"},weekLabel:"Εβδ",allDayText:"Ολοήμερο",eventLimitText:"περισσότερα",noEventsMessage:"Δεν υπάρχουν γεγονότα για να εμφανιστεί"},{code:"en-au",week:{dow:1,doy:4}},{code:"en-gb",week:{dow:1,doy:4}},{code:"en-nz",week:{dow:1,doy:4}},{code:"es",week:{dow:0,doy:6},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},weekLabel:"Sm",allDayHtml:"Todo
el día",eventLimitText:"más",noEventsMessage:"No hay eventos para mostrar"},{code:"es",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},weekLabel:"Sm",allDayHtml:"Todo
el día",eventLimitText:"más",noEventsMessage:"No hay eventos para mostrar"},{code:"et",week:{dow:1,doy:4},buttonText:{prev:"Eelnev",next:"Järgnev",today:"Täna",month:"Kuu",week:"Nädal",day:"Päev",list:"Päevakord"},weekLabel:"näd",allDayText:"Kogu päev",eventLimitText:function(e){return"+ veel "+e},noEventsMessage:"Kuvamiseks puuduvad sündmused"},{code:"eu",week:{dow:1,doy:7},buttonText:{prev:"Aur",next:"Hur",today:"Gaur",month:"Hilabetea",week:"Astea",day:"Eguna",list:"Agenda"},weekLabel:"As",allDayHtml:"Egun
osoa",eventLimitText:"gehiago",noEventsMessage:"Ez dago ekitaldirik erakusteko"},{code:"fa",week:{dow:6,doy:12},dir:"rtl",buttonText:{prev:"قبلی",next:"بعدی",today:"امروز",month:"ماه",week:"هفته",day:"روز",list:"برنامه"},weekLabel:"هف",allDayText:"تمام روز",eventLimitText:function(e){return"بیش از "+e},noEventsMessage:"هیچ رویدادی به نمایش"},{code:"fi",week:{dow:1,doy:4},buttonText:{prev:"Edellinen",next:"Seuraava",today:"Tänään",month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},weekLabel:"Vk",allDayText:"Koko päivä",eventLimitText:"lisää",noEventsMessage:"Ei näytettäviä tapahtumia"},{code:"fr",buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekLabel:"Sem.",allDayHtml:"Toute la
journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"},{code:"fr-ch",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Courant",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekLabel:"Sm",allDayHtml:"Toute la
journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"},{code:"fr",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekLabel:"Sem.",allDayHtml:"Toute la
journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"},{code:"gl",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Seg",today:"Hoxe",month:"Mes",week:"Semana",day:"Día",list:"Axenda"},weekLabel:"Sm",allDayHtml:"Todo
o día",eventLimitText:"máis",noEventsMessage:"Non hai eventos para amosar"},{code:"he",dir:"rtl",buttonText:{prev:"הקודם",next:"הבא",today:"היום",month:"חודש",week:"שבוע",day:"יום",list:"סדר יום"},allDayText:"כל היום",eventLimitText:"אחר",noEventsMessage:"אין אירועים להצגה",weekLabel:"שבוע"},{code:"hi",week:{dow:0,doy:6},buttonText:{prev:"पिछला",next:"अगला",today:"आज",month:"महीना",week:"सप्ताह",day:"दिन",list:"कार्यसूची"},weekLabel:"हफ्ता",allDayText:"सभी दिन",eventLimitText:function(e){return"+अधिक "+e},noEventsMessage:"कोई घटनाओं को प्रदर्शित करने के लिए"},{code:"hr",week:{dow:1,doy:7},buttonText:{prev:"Prijašnji",next:"Sljedeći",today:"Danas",month:"Mjesec",week:"Tjedan",day:"Dan",list:"Raspored"},weekLabel:"Tje",allDayText:"Cijeli dan",eventLimitText:function(e){return"+ još "+e},noEventsMessage:"Nema događaja za prikaz"},{code:"hu",week:{dow:1,doy:4},buttonText:{prev:"vissza",next:"előre",today:"ma",month:"Hónap",week:"Hét",day:"Nap",list:"Napló"},weekLabel:"Hét",allDayText:"Egész nap",eventLimitText:"további",noEventsMessage:"Nincs megjeleníthető esemény"},{code:"id",week:{dow:1,doy:7},buttonText:{prev:"mundur",next:"maju",today:"hari ini",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekLabel:"Mg",allDayHtml:"Sehari
penuh",eventLimitText:"lebih",noEventsMessage:"Tidak ada acara untuk ditampilkan"},{code:"is",week:{dow:1,doy:4},buttonText:{prev:"Fyrri",next:"Næsti",today:"Í dag",month:"Mánuður",week:"Vika",day:"Dagur",list:"Dagskrá"},weekLabel:"Vika",allDayHtml:"Allan
daginn",eventLimitText:"meira",noEventsMessage:"Engir viðburðir til að sýna"},{code:"it",week:{dow:1,doy:4},buttonText:{prev:"Prec",next:"Succ",today:"Oggi",month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},weekLabel:"Sm",allDayHtml:"Tutto il
giorno",eventLimitText:function(e){return"+altri "+e},noEventsMessage:"Non ci sono eventi da visualizzare"},{code:"ja",buttonText:{prev:"前",next:"次",today:"今日",month:"月",week:"週",day:"日",list:"予定リスト"},weekLabel:"週",allDayText:"終日",eventLimitText:function(e){return"他 "+e+" 件"},noEventsMessage:"表示する予定はありません"},{code:"ka",week:{dow:1,doy:7},buttonText:{prev:"წინა",next:"შემდეგი",today:"დღეს",month:"თვე",week:"კვირა",day:"დღე",list:"დღის წესრიგი"},weekLabel:"კვ",allDayText:"მთელი დღე",eventLimitText:function(e){return"+ კიდევ "+e},noEventsMessage:"ღონისძიებები არ არის"},{code:"kk",week:{dow:1,doy:7},buttonText:{prev:"Алдыңғы",next:"Келесі",today:"Бүгін",month:"Ай",week:"Апта",day:"Күн",list:"Күн тәртібі"},weekLabel:"Не",allDayText:"Күні бойы",eventLimitText:function(e){return"+ тағы "+e},noEventsMessage:"Көрсету үшін оқиғалар жоқ"},{code:"ko",buttonText:{prev:"이전달",next:"다음달",today:"오늘",month:"월",week:"주",day:"일",list:"일정목록"},weekLabel:"주",allDayText:"종일",eventLimitText:"개",noEventsMessage:"일정이 없습니다"},{code:"lb",week:{dow:1,doy:4},buttonText:{prev:"Zréck",next:"Weider",today:"Haut",month:"Mount",week:"Woch",day:"Dag",list:"Terminiwwersiicht"},weekLabel:"W",allDayText:"Ganzen Dag",eventLimitText:"méi",noEventsMessage:"Nee Evenementer ze affichéieren"},{code:"lt",week:{dow:1,doy:4},buttonText:{prev:"Atgal",next:"Pirmyn",today:"Šiandien",month:"Mėnuo",week:"Savaitė",day:"Diena",list:"Darbotvarkė"},weekLabel:"SAV",allDayText:"Visą dieną",eventLimitText:"daugiau",noEventsMessage:"Nėra įvykių rodyti"},{code:"lv",week:{dow:1,doy:4},buttonText:{prev:"Iepr.",next:"Nāk.",today:"Šodien",month:"Mēnesis",week:"Nedēļa",day:"Diena",list:"Dienas kārtība"},weekLabel:"Ned.",allDayText:"Visu dienu",eventLimitText:function(e){return"+vēl "+e},noEventsMessage:"Nav notikumu"},{code:"mk",buttonText:{prev:"претходно",next:"следно",today:"Денес",month:"Месец",week:"Недела",day:"Ден",list:"График"},weekLabel:"Сед",allDayText:"Цел ден",eventLimitText:function(e){return"+повеќе "+e},noEventsMessage:"Нема настани за прикажување"},{code:"ms",week:{dow:1,doy:7},buttonText:{prev:"Sebelum",next:"Selepas",today:"hari ini",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekLabel:"Mg",allDayText:"Sepanjang hari",eventLimitText:function(e){return"masih ada "+e+" acara"},noEventsMessage:"Tiada peristiwa untuk dipaparkan"},{code:"nb",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Neste",today:"I dag",month:"Måned",week:"Uke",day:"Dag",list:"Agenda"},weekLabel:"Uke",allDayText:"Hele dagen",eventLimitText:"til",noEventsMessage:"Ingen hendelser å vise"},{code:"nl",week:{dow:1,doy:4},buttonText:{prev:"Voorgaand",next:"Volgende",today:"Vandaag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag",eventLimitText:"extra",noEventsMessage:"Geen evenementen om te laten zien"},{code:"nn",week:{dow:1,doy:4},buttonText:{prev:"Førre",next:"Neste",today:"I dag",month:"Månad",week:"Veke",day:"Dag",list:"Agenda"},weekLabel:"Veke",allDayText:"Heile dagen",eventLimitText:"til",noEventsMessage:"Ingen hendelser å vise"},{code:"pl",week:{dow:1,doy:4},buttonText:{prev:"Poprzedni",next:"Następny",today:"Dziś",month:"Miesiąc",week:"Tydzień",day:"Dzień",list:"Plan dnia"},weekLabel:"Tydz",allDayText:"Cały dzień",eventLimitText:"więcej",noEventsMessage:"Brak wydarzeń do wyświetlenia"},{code:"pt-br",buttonText:{prev:"Anterior",next:"Próximo",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Compromissos"},weekLabel:"Sm",allDayText:"dia inteiro",eventLimitText:function(e){return"mais +"+e},noEventsMessage:"Não há eventos para mostrar"},{code:"pt",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Seguinte",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},weekLabel:"Sem",allDayText:"Todo o dia",eventLimitText:"mais",noEventsMessage:"Não há eventos para mostrar"},{code:"ro",week:{dow:1,doy:7},buttonText:{prev:"precedentă",next:"următoare",today:"Azi",month:"Lună",week:"Săptămână",day:"Zi",list:"Agendă"},weekLabel:"Săpt",allDayText:"Toată ziua",eventLimitText:function(e){return"+alte "+e},noEventsMessage:"Nu există evenimente de afișat"},{code:"ru",week:{dow:1,doy:4},buttonText:{prev:"Пред",next:"След",today:"Сегодня",month:"Месяц",week:"Неделя",day:"День",list:"Повестка дня"},weekLabel:"Нед",allDayText:"Весь день",eventLimitText:function(e){return"+ ещё "+e},noEventsMessage:"Нет событий для отображения"},{code:"sk",week:{dow:1,doy:4},buttonText:{prev:"Predchádzajúci",next:"Nasledujúci",today:"Dnes",month:"Mesiac",week:"Týždeň",day:"Deň",list:"Rozvrh"},weekLabel:"Ty",allDayText:"Celý deň",eventLimitText:function(e){return"+ďalšie: "+e},noEventsMessage:"Žiadne akcie na zobrazenie"},{code:"sl",week:{dow:1,doy:7},buttonText:{prev:"Prejšnji",next:"Naslednji",today:"Trenutni",month:"Mesec",week:"Teden",day:"Dan",list:"Dnevni red"},weekLabel:"Teden",allDayText:"Ves dan",eventLimitText:"več",noEventsMessage:"Ni dogodkov za prikaz"},{code:"sq",week:{dow:1,doy:4},buttonText:{prev:"mbrapa",next:"Përpara",today:"sot",month:"Muaj",week:"Javë",day:"Ditë",list:"Listë"},weekLabel:"Ja",allDayHtml:"Gjithë
ditën",eventLimitText:function(e){return"+më tepër "+e},noEventsMessage:"Nuk ka evente për të shfaqur"},{code:"sr-cyrl",week:{dow:1,doy:7},buttonText:{prev:"Претходна",next:"следећи",today:"Данас",month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},weekLabel:"Сед",allDayText:"Цео дан",eventLimitText:function(e){return"+ још "+e},noEventsMessage:"Нема догађаја за приказ"},{code:"sr",week:{dow:1,doy:7},buttonText:{prev:"Prethodna",next:"Sledeći",today:"Danas",month:"Mеsеc",week:"Nеdеlja",day:"Dan",list:"Planеr"},weekLabel:"Sed",allDayText:"Cеo dan",eventLimitText:function(e){return"+ još "+e},noEventsMessage:"Nеma događaja za prikaz"},{code:"sv",week:{dow:1,doy:4},buttonText:{prev:"Förra",next:"Nästa",today:"Idag",month:"Månad",week:"Vecka",day:"Dag",list:"Program"},weekLabel:"v.",allDayText:"Heldag",eventLimitText:"till",noEventsMessage:"Inga händelser att visa"},{code:"th",buttonText:{prev:"ย้อน",next:"ถัดไป",today:"วันนี้",month:"เดือน",week:"สัปดาห์",day:"วัน",list:"แผนงาน"},allDayText:"ตลอดวัน",eventLimitText:"เพิ่มเติม",noEventsMessage:"ไม่มีกิจกรรมที่จะแสดง"},{code:"tr",week:{dow:1,doy:7},buttonText:{prev:"geri",next:"ileri",today:"bugün",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},weekLabel:"Hf",allDayText:"Tüm gün",eventLimitText:"daha fazla",noEventsMessage:"Gösterilecek etkinlik yok"},{code:"uk",week:{dow:1,doy:7},buttonText:{prev:"Попередній",next:"далі",today:"Сьогодні",month:"Місяць",week:"Тиждень",day:"День",list:"Порядок денний"},weekLabel:"Тиж",allDayText:"Увесь день",eventLimitText:function(e){return"+ще "+e+"..."},noEventsMessage:"Немає подій для відображення"},{code:"vi",week:{dow:1,doy:4},buttonText:{prev:"Trước",next:"Tiếp",today:"Hôm nay",month:"Tháng",week:"Tuần",day:"Ngày",list:"Lịch biểu"},weekLabel:"Tu",allDayText:"Cả ngày",eventLimitText:function(e){return"+ thêm "+e},noEventsMessage:"Không có sự kiện để hiển thị"},{code:"zh-cn",week:{dow:1,doy:4},buttonText:{prev:"上月",next:"下月",today:"今天",month:"月",week:"周",day:"日",list:"日程"},weekLabel:"周",allDayText:"全天",eventLimitText:function(e){return"另外 "+e+" 个"},noEventsMessage:"没有事件显示"},{code:"zh-tw",buttonText:{prev:"上月",next:"下月",today:"今天",month:"月",week:"週",day:"天",list:"活動列表"},weekLabel:"周",allDayText:"整天",eventLimitText:"顯示更多",noEventsMessage:"没有任何活動"}]}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/af.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/af.js deleted file mode 100644 index ee9f9f74..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/af.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.af = factory())); -}(this, function () { 'use strict'; - - var af = { - code: "af", - week: { - dow: 1, - doy: 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar. - }, - buttonText: { - prev: "Vorige", - next: "Volgende", - today: "Vandag", - year: "Jaar", - month: "Maand", - week: "Week", - day: "Dag", - list: "Agenda" - }, - allDayHtml: "Heeldag", - eventLimitText: "Addisionele", - noEventsMessage: "Daar is geen gebeurtenisse nie" - }; - - return af; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-dz.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-dz.js deleted file mode 100644 index 201eb171..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-dz.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-dz'] = factory())); -}(this, function () { 'use strict'; - - var arDz = { - code: "ar-dz", - week: { - dow: 0, - doy: 4 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arDz; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-kw.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-kw.js deleted file mode 100644 index 94c69001..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-kw.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-kw'] = factory())); -}(this, function () { 'use strict'; - - var arKw = { - code: "ar-kw", - week: { - dow: 0, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arKw; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-ly.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-ly.js deleted file mode 100644 index e1c8aeb0..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-ly.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-ly'] = factory())); -}(this, function () { 'use strict'; - - var arLy = { - code: "ar-ly", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arLy; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-ma.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-ma.js deleted file mode 100644 index 00cc7c67..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-ma.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-ma'] = factory())); -}(this, function () { 'use strict'; - - var arMa = { - code: "ar-ma", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arMa; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-sa.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-sa.js deleted file mode 100644 index 0361f6d8..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-sa.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-sa'] = factory())); -}(this, function () { 'use strict'; - - var arSa = { - code: "ar-sa", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arSa; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-tn.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-tn.js deleted file mode 100644 index 57a07f8f..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-tn.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-tn'] = factory())); -}(this, function () { 'use strict'; - - var arTn = { - code: "ar-tn", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arTn; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar.js deleted file mode 100644 index f789afd1..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ar = factory())); -}(this, function () { 'use strict'; - - var ar = { - code: "ar", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return ar; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/bg.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/bg.js deleted file mode 100644 index e7343a6c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/bg.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.bg = factory())); -}(this, function () { 'use strict'; - - var bg = { - code: "bg", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "назад", - next: "напред", - today: "днес", - month: "Месец", - week: "Седмица", - day: "Ден", - list: "График" - }, - allDayText: "Цял ден", - eventLimitText: function (n) { - return "+още " + n; - }, - noEventsMessage: "Няма събития за показване" - }; - - return bg; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/bs.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/bs.js deleted file mode 100644 index d96b8adb..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/bs.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.bs = factory())); -}(this, function () { 'use strict'; - - var bs = { - code: "bs", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prošli", - next: "Sljedeći", - today: "Danas", - month: "Mjesec", - week: "Sedmica", - day: "Dan", - list: "Raspored" - }, - weekLabel: "Sed", - allDayText: "Cijeli dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nema događaja za prikazivanje" - }; - - return bs; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ca.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ca.js deleted file mode 100644 index d2d3e2aa..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ca.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ca = factory())); -}(this, function () { 'use strict'; - - var ca = { - code: "ca", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Anterior", - next: "Següent", - today: "Avui", - month: "Mes", - week: "Setmana", - day: "Dia", - list: "Agenda" - }, - weekLabel: "Set", - allDayText: "Tot el dia", - eventLimitText: "més", - noEventsMessage: "No hi ha esdeveniments per mostrar" - }; - - return ca; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/cs.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/cs.js deleted file mode 100644 index 2624e360..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/cs.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.cs = factory())); -}(this, function () { 'use strict'; - - var cs = { - code: "cs", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Dříve", - next: "Později", - today: "Nyní", - month: "Měsíc", - week: "Týden", - day: "Den", - list: "Agenda" - }, - weekLabel: "Týd", - allDayText: "Celý den", - eventLimitText: function (n) { - return "+další: " + n; - }, - noEventsMessage: "Žádné akce k zobrazení" - }; - - return cs; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/da.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/da.js deleted file mode 100644 index 73d15592..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/da.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.da = factory())); -}(this, function () { 'use strict'; - - var da = { - code: "da", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Forrige", - next: "Næste", - today: "I dag", - month: "Måned", - week: "Uge", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Uge", - allDayText: "Hele dagen", - eventLimitText: "flere", - noEventsMessage: "Ingen arrangementer at vise" - }; - - return da; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/de.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/de.js deleted file mode 100644 index ab5a815a..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/de.js +++ /dev/null @@ -1,33 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.de = factory())); -}(this, function () { 'use strict'; - - var de = { - code: "de", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Zurück", - next: "Vor", - today: "Heute", - year: "Jahr", - month: "Monat", - week: "Woche", - day: "Tag", - list: "Terminübersicht" - }, - weekLabel: "KW", - allDayText: "Ganztägig", - eventLimitText: function (n) { - return "+ weitere " + n; - }, - noEventsMessage: "Keine Ereignisse anzuzeigen" - }; - - return de; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/el.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/el.js deleted file mode 100644 index 9f59e365..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/el.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.el = factory())); -}(this, function () { 'use strict'; - - var el = { - code: "el", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4st is the first week of the year. - }, - buttonText: { - prev: "Προηγούμενος", - next: "Επόμενος", - today: "Σήμερα", - month: "Μήνας", - week: "Εβδομάδα", - day: "Ημέρα", - list: "Ατζέντα" - }, - weekLabel: "Εβδ", - allDayText: "Ολοήμερο", - eventLimitText: "περισσότερα", - noEventsMessage: "Δεν υπάρχουν γεγονότα για να εμφανιστεί" - }; - - return el; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-au.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-au.js deleted file mode 100644 index be10bfb6..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-au.js +++ /dev/null @@ -1,17 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-au'] = factory())); -}(this, function () { 'use strict'; - - var enAu = { - code: "en-au", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - } - }; - - return enAu; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-gb.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-gb.js deleted file mode 100644 index 8a4a84e6..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-gb.js +++ /dev/null @@ -1,17 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-gb'] = factory())); -}(this, function () { 'use strict'; - - var enGb = { - code: "en-gb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - } - }; - - return enGb; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-nz.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-nz.js deleted file mode 100644 index df56c145..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-nz.js +++ /dev/null @@ -1,17 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-nz'] = factory())); -}(this, function () { 'use strict'; - - var enNz = { - code: "en-nz", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - } - }; - - return enNz; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/es-us.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/es-us.js deleted file mode 100644 index 1efa89a4..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/es-us.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['es-us'] = factory())); -}(this, function () { 'use strict'; - - var esUs = { - code: "es", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Sig", - today: "Hoy", - month: "Mes", - week: "Semana", - day: "Día", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
el día", - eventLimitText: "más", - noEventsMessage: "No hay eventos para mostrar" - }; - - return esUs; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/es.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/es.js deleted file mode 100644 index bfd9af4c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/es.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.es = factory())); -}(this, function () { 'use strict'; - - var es = { - code: "es", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Sig", - today: "Hoy", - month: "Mes", - week: "Semana", - day: "Día", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
el día", - eventLimitText: "más", - noEventsMessage: "No hay eventos para mostrar" - }; - - return es; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/et.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/et.js deleted file mode 100644 index c44fcaec..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/et.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.et = factory())); -}(this, function () { 'use strict'; - - var et = { - code: "et", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Eelnev", - next: "Järgnev", - today: "Täna", - month: "Kuu", - week: "Nädal", - day: "Päev", - list: "Päevakord" - }, - weekLabel: "näd", - allDayText: "Kogu päev", - eventLimitText: function (n) { - return "+ veel " + n; - }, - noEventsMessage: "Kuvamiseks puuduvad sündmused" - }; - - return et; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/eu.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/eu.js deleted file mode 100644 index 91903aaa..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/eu.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.eu = factory())); -}(this, function () { 'use strict'; - - var eu = { - code: "eu", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Aur", - next: "Hur", - today: "Gaur", - month: "Hilabetea", - week: "Astea", - day: "Eguna", - list: "Agenda" - }, - weekLabel: "As", - allDayHtml: "Egun
osoa", - eventLimitText: "gehiago", - noEventsMessage: "Ez dago ekitaldirik erakusteko" - }; - - return eu; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fa.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fa.js deleted file mode 100644 index 031fc7b3..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fa.js +++ /dev/null @@ -1,33 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.fa = factory())); -}(this, function () { 'use strict'; - - var fa = { - code: "fa", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "قبلی", - next: "بعدی", - today: "امروز", - month: "ماه", - week: "هفته", - day: "روز", - list: "برنامه" - }, - weekLabel: "هف", - allDayText: "تمام روز", - eventLimitText: function (n) { - return "بیش از " + n; - }, - noEventsMessage: "هیچ رویدادی به نمایش" - }; - - return fa; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fi.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fi.js deleted file mode 100644 index 3912845c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fi.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.fi = factory())); -}(this, function () { 'use strict'; - - var fi = { - code: "fi", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Edellinen", - next: "Seuraava", - today: "Tänään", - month: "Kuukausi", - week: "Viikko", - day: "Päivä", - list: "Tapahtumat" - }, - weekLabel: "Vk", - allDayText: "Koko päivä", - eventLimitText: "lisää", - noEventsMessage: "Ei näytettäviä tapahtumia" - }; - - return fi; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr-ca.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr-ca.js deleted file mode 100644 index d554c140..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr-ca.js +++ /dev/null @@ -1,27 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['fr-ca'] = factory())); -}(this, function () { 'use strict'; - - var frCa = { - code: "fr", - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Aujourd'hui", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sem.", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - return frCa; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr-ch.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr-ch.js deleted file mode 100644 index 358b8bf3..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr-ch.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['fr-ch'] = factory())); -}(this, function () { 'use strict'; - - var frCh = { - code: "fr-ch", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Courant", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sm", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - return frCh; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr.js deleted file mode 100644 index b679ceff..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.fr = factory())); -}(this, function () { 'use strict'; - - var fr = { - code: "fr", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Aujourd'hui", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sem.", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - return fr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/gl.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/gl.js deleted file mode 100644 index 721a6a89..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/gl.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.gl = factory())); -}(this, function () { 'use strict'; - - var gl = { - code: "gl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Seg", - today: "Hoxe", - month: "Mes", - week: "Semana", - day: "Día", - list: "Axenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
o día", - eventLimitText: "máis", - noEventsMessage: "Non hai eventos para amosar" - }; - - return gl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/he.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/he.js deleted file mode 100644 index 3521d9e3..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/he.js +++ /dev/null @@ -1,27 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.he = factory())); -}(this, function () { 'use strict'; - - var he = { - code: "he", - dir: 'rtl', - buttonText: { - prev: "הקודם", - next: "הבא", - today: "היום", - month: "חודש", - week: "שבוע", - day: "יום", - list: "סדר יום" - }, - allDayText: "כל היום", - eventLimitText: "אחר", - noEventsMessage: "אין אירועים להצגה", - weekLabel: "שבוע" - }; - - return he; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/hi.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/hi.js deleted file mode 100644 index 15348e69..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/hi.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hi = factory())); -}(this, function () { 'use strict'; - - var hi = { - code: "hi", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "पिछला", - next: "अगला", - today: "आज", - month: "महीना", - week: "सप्ताह", - day: "दिन", - list: "कार्यसूची" - }, - weekLabel: "हफ्ता", - allDayText: "सभी दिन", - eventLimitText: function (n) { - return "+अधिक " + n; - }, - noEventsMessage: "कोई घटनाओं को प्रदर्शित करने के लिए" - }; - - return hi; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/hr.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/hr.js deleted file mode 100644 index 295b4856..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/hr.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hr = factory())); -}(this, function () { 'use strict'; - - var hr = { - code: "hr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prijašnji", - next: "Sljedeći", - today: "Danas", - month: "Mjesec", - week: "Tjedan", - day: "Dan", - list: "Raspored" - }, - weekLabel: "Tje", - allDayText: "Cijeli dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nema događaja za prikaz" - }; - - return hr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/hu.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/hu.js deleted file mode 100644 index 2f0fe8ac..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/hu.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hu = factory())); -}(this, function () { 'use strict'; - - var hu = { - code: "hu", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "vissza", - next: "előre", - today: "ma", - month: "Hónap", - week: "Hét", - day: "Nap", - list: "Napló" - }, - weekLabel: "Hét", - allDayText: "Egész nap", - eventLimitText: "további", - noEventsMessage: "Nincs megjeleníthető esemény" - }; - - return hu; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/id.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/id.js deleted file mode 100644 index b742e80d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/id.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.id = factory())); -}(this, function () { 'use strict'; - - var id = { - code: "id", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "mundur", - next: "maju", - today: "hari ini", - month: "Bulan", - week: "Minggu", - day: "Hari", - list: "Agenda" - }, - weekLabel: "Mg", - allDayHtml: "Sehari
penuh", - eventLimitText: "lebih", - noEventsMessage: "Tidak ada acara untuk ditampilkan" - }; - - return id; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/is.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/is.js deleted file mode 100644 index dd569bce..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/is.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.is = factory())); -}(this, function () { 'use strict'; - - var is = { - code: "is", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Fyrri", - next: "Næsti", - today: "Í dag", - month: "Mánuður", - week: "Vika", - day: "Dagur", - list: "Dagskrá" - }, - weekLabel: "Vika", - allDayHtml: "Allan
daginn", - eventLimitText: "meira", - noEventsMessage: "Engir viðburðir til að sýna" - }; - - return is; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/it.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/it.js deleted file mode 100644 index 39a2829e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/it.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.it = factory())); -}(this, function () { 'use strict'; - - var it = { - code: "it", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Prec", - next: "Succ", - today: "Oggi", - month: "Mese", - week: "Settimana", - day: "Giorno", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Tutto il
giorno", - eventLimitText: function (n) { - return "+altri " + n; - }, - noEventsMessage: "Non ci sono eventi da visualizzare" - }; - - return it; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ja.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ja.js deleted file mode 100644 index eb4245b2..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ja.js +++ /dev/null @@ -1,28 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ja = factory())); -}(this, function () { 'use strict'; - - var ja = { - code: "ja", - buttonText: { - prev: "前", - next: "次", - today: "今日", - month: "月", - week: "週", - day: "日", - list: "予定リスト" - }, - weekLabel: "週", - allDayText: "終日", - eventLimitText: function (n) { - return "他 " + n + " 件"; - }, - noEventsMessage: "表示する予定はありません" - }; - - return ja; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ka.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ka.js deleted file mode 100644 index b971c033..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ka.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ka = factory())); -}(this, function () { 'use strict'; - - var ka = { - code: "ka", - week: { - dow: 1, - doy: 7 - }, - buttonText: { - prev: "წინა", - next: "შემდეგი", - today: "დღეს", - month: "თვე", - week: "კვირა", - day: "დღე", - list: "დღის წესრიგი" - }, - weekLabel: "კვ", - allDayText: "მთელი დღე", - eventLimitText: function (n) { - return "+ კიდევ " + n; - }, - noEventsMessage: "ღონისძიებები არ არის" - }; - - return ka; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/kk.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/kk.js deleted file mode 100644 index 5b19b99d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/kk.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.kk = factory())); -}(this, function () { 'use strict'; - - var kk = { - code: "kk", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Алдыңғы", - next: "Келесі", - today: "Бүгін", - month: "Ай", - week: "Апта", - day: "Күн", - list: "Күн тәртібі" - }, - weekLabel: "Не", - allDayText: "Күні бойы", - eventLimitText: function (n) { - return "+ тағы " + n; - }, - noEventsMessage: "Көрсету үшін оқиғалар жоқ" - }; - - return kk; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ko.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ko.js deleted file mode 100644 index ffe985d6..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ko.js +++ /dev/null @@ -1,26 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ko = factory())); -}(this, function () { 'use strict'; - - var ko = { - code: "ko", - buttonText: { - prev: "이전달", - next: "다음달", - today: "오늘", - month: "월", - week: "주", - day: "일", - list: "일정목록" - }, - weekLabel: "주", - allDayText: "종일", - eventLimitText: "개", - noEventsMessage: "일정이 없습니다" - }; - - return ko; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/lb.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/lb.js deleted file mode 100644 index b9b17e3e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/lb.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.lb = factory())); -}(this, function () { 'use strict'; - - var lb = { - code: "lb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Zréck", - next: "Weider", - today: "Haut", - month: "Mount", - week: "Woch", - day: "Dag", - list: "Terminiwwersiicht" - }, - weekLabel: "W", - allDayText: "Ganzen Dag", - eventLimitText: "méi", - noEventsMessage: "Nee Evenementer ze affichéieren" - }; - - return lb; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/lt.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/lt.js deleted file mode 100644 index ec641b75..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/lt.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.lt = factory())); -}(this, function () { 'use strict'; - - var lt = { - code: "lt", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Atgal", - next: "Pirmyn", - today: "Šiandien", - month: "Mėnuo", - week: "Savaitė", - day: "Diena", - list: "Darbotvarkė" - }, - weekLabel: "SAV", - allDayText: "Visą dieną", - eventLimitText: "daugiau", - noEventsMessage: "Nėra įvykių rodyti" - }; - - return lt; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/lv.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/lv.js deleted file mode 100644 index 5453630d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/lv.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.lv = factory())); -}(this, function () { 'use strict'; - - var lv = { - code: "lv", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Iepr.", - next: "Nāk.", - today: "Šodien", - month: "Mēnesis", - week: "Nedēļa", - day: "Diena", - list: "Dienas kārtība" - }, - weekLabel: "Ned.", - allDayText: "Visu dienu", - eventLimitText: function (n) { - return "+vēl " + n; - }, - noEventsMessage: "Nav notikumu" - }; - - return lv; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/mk.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/mk.js deleted file mode 100644 index 6729fa63..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/mk.js +++ /dev/null @@ -1,28 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.mk = factory())); -}(this, function () { 'use strict'; - - var mk = { - code: "mk", - buttonText: { - prev: "претходно", - next: "следно", - today: "Денес", - month: "Месец", - week: "Недела", - day: "Ден", - list: "График" - }, - weekLabel: "Сед", - allDayText: "Цел ден", - eventLimitText: function (n) { - return "+повеќе " + n; - }, - noEventsMessage: "Нема настани за прикажување" - }; - - return mk; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ms.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ms.js deleted file mode 100644 index 7205ecc7..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ms.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ms = factory())); -}(this, function () { 'use strict'; - - var ms = { - code: "ms", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Sebelum", - next: "Selepas", - today: "hari ini", - month: "Bulan", - week: "Minggu", - day: "Hari", - list: "Agenda" - }, - weekLabel: "Mg", - allDayText: "Sepanjang hari", - eventLimitText: function (n) { - return "masih ada " + n + " acara"; - }, - noEventsMessage: "Tiada peristiwa untuk dipaparkan" - }; - - return ms; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/nb.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/nb.js deleted file mode 100644 index 6464461c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/nb.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.nb = factory())); -}(this, function () { 'use strict'; - - var nb = { - code: "nb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Forrige", - next: "Neste", - today: "I dag", - month: "Måned", - week: "Uke", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Uke", - allDayText: "Hele dagen", - eventLimitText: "til", - noEventsMessage: "Ingen hendelser å vise" - }; - - return nb; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/nl.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/nl.js deleted file mode 100644 index c91b5e55..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/nl.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.nl = factory())); -}(this, function () { 'use strict'; - - var nl = { - code: "nl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Voorgaand", - next: "Volgende", - today: "Vandaag", - year: "Jaar", - month: "Maand", - week: "Week", - day: "Dag", - list: "Agenda" - }, - allDayText: "Hele dag", - eventLimitText: "extra", - noEventsMessage: "Geen evenementen om te laten zien" - }; - - return nl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/nn.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/nn.js deleted file mode 100644 index a5cdd162..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/nn.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.nn = factory())); -}(this, function () { 'use strict'; - - var nn = { - code: "nn", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Førre", - next: "Neste", - today: "I dag", - month: "Månad", - week: "Veke", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Veke", - allDayText: "Heile dagen", - eventLimitText: "til", - noEventsMessage: "Ingen hendelser å vise" - }; - - return nn; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/pl.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/pl.js deleted file mode 100644 index 0a22e69c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/pl.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.pl = factory())); -}(this, function () { 'use strict'; - - var pl = { - code: "pl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Poprzedni", - next: "Następny", - today: "Dziś", - month: "Miesiąc", - week: "Tydzień", - day: "Dzień", - list: "Plan dnia" - }, - weekLabel: "Tydz", - allDayText: "Cały dzień", - eventLimitText: "więcej", - noEventsMessage: "Brak wydarzeń do wyświetlenia" - }; - - return pl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/pt-br.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/pt-br.js deleted file mode 100644 index 0133cd6b..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/pt-br.js +++ /dev/null @@ -1,28 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['pt-br'] = factory())); -}(this, function () { 'use strict'; - - var ptBr = { - code: "pt-br", - buttonText: { - prev: "Anterior", - next: "Próximo", - today: "Hoje", - month: "Mês", - week: "Semana", - day: "Dia", - list: "Compromissos" - }, - weekLabel: "Sm", - allDayText: "dia inteiro", - eventLimitText: function (n) { - return "mais +" + n; - }, - noEventsMessage: "Não há eventos para mostrar" - }; - - return ptBr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/pt.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/pt.js deleted file mode 100644 index 5c54d8d4..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/pt.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.pt = factory())); -}(this, function () { 'use strict'; - - var pt = { - code: "pt", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Anterior", - next: "Seguinte", - today: "Hoje", - month: "Mês", - week: "Semana", - day: "Dia", - list: "Agenda" - }, - weekLabel: "Sem", - allDayText: "Todo o dia", - eventLimitText: "mais", - noEventsMessage: "Não há eventos para mostrar" - }; - - return pt; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ro.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ro.js deleted file mode 100644 index e8992f27..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ro.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ro = factory())); -}(this, function () { 'use strict'; - - var ro = { - code: "ro", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "precedentă", - next: "următoare", - today: "Azi", - month: "Lună", - week: "Săptămână", - day: "Zi", - list: "Agendă" - }, - weekLabel: "Săpt", - allDayText: "Toată ziua", - eventLimitText: function (n) { - return "+alte " + n; - }, - noEventsMessage: "Nu există evenimente de afișat" - }; - - return ro; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ru.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ru.js deleted file mode 100644 index 77e0308e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ru.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ru = factory())); -}(this, function () { 'use strict'; - - var ru = { - code: "ru", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Пред", - next: "След", - today: "Сегодня", - month: "Месяц", - week: "Неделя", - day: "День", - list: "Повестка дня" - }, - weekLabel: "Нед", - allDayText: "Весь день", - eventLimitText: function (n) { - return "+ ещё " + n; - }, - noEventsMessage: "Нет событий для отображения" - }; - - return ru; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sk.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sk.js deleted file mode 100644 index 3513a64a..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sk.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sk = factory())); -}(this, function () { 'use strict'; - - var sk = { - code: "sk", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Predchádzajúci", - next: "Nasledujúci", - today: "Dnes", - month: "Mesiac", - week: "Týždeň", - day: "Deň", - list: "Rozvrh" - }, - weekLabel: "Ty", - allDayText: "Celý deň", - eventLimitText: function (n) { - return "+ďalšie: " + n; - }, - noEventsMessage: "Žiadne akcie na zobrazenie" - }; - - return sk; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sl.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sl.js deleted file mode 100644 index 32335535..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sl.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sl = factory())); -}(this, function () { 'use strict'; - - var sl = { - code: "sl", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prejšnji", - next: "Naslednji", - today: "Trenutni", - month: "Mesec", - week: "Teden", - day: "Dan", - list: "Dnevni red" - }, - weekLabel: "Teden", - allDayText: "Ves dan", - eventLimitText: "več", - noEventsMessage: "Ni dogodkov za prikaz" - }; - - return sl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sq.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sq.js deleted file mode 100644 index 0d43a522..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sq.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sq = factory())); -}(this, function () { 'use strict'; - - var sq = { - code: "sq", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "mbrapa", - next: "Përpara", - today: "sot", - month: "Muaj", - week: "Javë", - day: "Ditë", - list: "Listë" - }, - weekLabel: "Ja", - allDayHtml: "Gjithë
ditën", - eventLimitText: function (n) { - return "+më tepër " + n; - }, - noEventsMessage: "Nuk ka evente për të shfaqur" - }; - - return sq; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sr-cyrl.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sr-cyrl.js deleted file mode 100644 index ba0d0dfa..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sr-cyrl.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['sr-cyrl'] = factory())); -}(this, function () { 'use strict'; - - var srCyrl = { - code: "sr-cyrl", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Претходна", - next: "следећи", - today: "Данас", - month: "Месец", - week: "Недеља", - day: "Дан", - list: "Планер" - }, - weekLabel: "Сед", - allDayText: "Цео дан", - eventLimitText: function (n) { - return "+ још " + n; - }, - noEventsMessage: "Нема догађаја за приказ" - }; - - return srCyrl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sr.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sr.js deleted file mode 100644 index 23e5c9b2..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sr.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sr = factory())); -}(this, function () { 'use strict'; - - var sr = { - code: "sr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prethodna", - next: "Sledeći", - today: "Danas", - month: "Mеsеc", - week: "Nеdеlja", - day: "Dan", - list: "Planеr" - }, - weekLabel: "Sed", - allDayText: "Cеo dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nеma događaja za prikaz" - }; - - return sr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sv.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sv.js deleted file mode 100644 index a887060b..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sv.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sv = factory())); -}(this, function () { 'use strict'; - - var sv = { - code: "sv", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Förra", - next: "Nästa", - today: "Idag", - month: "Månad", - week: "Vecka", - day: "Dag", - list: "Program" - }, - weekLabel: "v.", - allDayText: "Heldag", - eventLimitText: "till", - noEventsMessage: "Inga händelser att visa" - }; - - return sv; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/th.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/th.js deleted file mode 100644 index caa3fe9a..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/th.js +++ /dev/null @@ -1,25 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.th = factory())); -}(this, function () { 'use strict'; - - var th = { - code: "th", - buttonText: { - prev: "ย้อน", - next: "ถัดไป", - today: "วันนี้", - month: "เดือน", - week: "สัปดาห์", - day: "วัน", - list: "แผนงาน" - }, - allDayText: "ตลอดวัน", - eventLimitText: "เพิ่มเติม", - noEventsMessage: "ไม่มีกิจกรรมที่จะแสดง" - }; - - return th; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/tr.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/tr.js deleted file mode 100644 index 48458982..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/tr.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.tr = factory())); -}(this, function () { 'use strict'; - - var tr = { - code: "tr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "geri", - next: "ileri", - today: "bugün", - month: "Ay", - week: "Hafta", - day: "Gün", - list: "Ajanda" - }, - weekLabel: "Hf", - allDayText: "Tüm gün", - eventLimitText: "daha fazla", - noEventsMessage: "Gösterilecek etkinlik yok" - }; - - return tr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/uk.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/uk.js deleted file mode 100644 index de33f250..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/uk.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.uk = factory())); -}(this, function () { 'use strict'; - - var uk = { - code: "uk", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Попередній", - next: "далі", - today: "Сьогодні", - month: "Місяць", - week: "Тиждень", - day: "День", - list: "Порядок денний" - }, - weekLabel: "Тиж", - allDayText: "Увесь день", - eventLimitText: function (n) { - return "+ще " + n + "..."; - }, - noEventsMessage: "Немає подій для відображення" - }; - - return uk; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/vi.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/vi.js deleted file mode 100644 index 167ce11d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/vi.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.vi = factory())); -}(this, function () { 'use strict'; - - var vi = { - code: "vi", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Trước", - next: "Tiếp", - today: "Hôm nay", - month: "Tháng", - week: "Tuần", - day: "Ngày", - list: "Lịch biểu" - }, - weekLabel: "Tu", - allDayText: "Cả ngày", - eventLimitText: function (n) { - return "+ thêm " + n; - }, - noEventsMessage: "Không có sự kiện để hiển thị" - }; - - return vi; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/zh-cn.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/zh-cn.js deleted file mode 100644 index 4debbb9e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/zh-cn.js +++ /dev/null @@ -1,33 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['zh-cn'] = factory())); -}(this, function () { 'use strict'; - - var zhCn = { - code: "zh-cn", - week: { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "上月", - next: "下月", - today: "今天", - month: "月", - week: "周", - day: "日", - list: "日程" - }, - weekLabel: "周", - allDayText: "全天", - eventLimitText: function (n) { - return "另外 " + n + " 个"; - }, - noEventsMessage: "没有事件显示" - }; - - return zhCn; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/zh-tw.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/zh-tw.js deleted file mode 100644 index bc14dcd4..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/zh-tw.js +++ /dev/null @@ -1,26 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['zh-tw'] = factory())); -}(this, function () { 'use strict'; - - var zhTw = { - code: "zh-tw", - buttonText: { - prev: "上月", - next: "下月", - today: "今天", - month: "月", - week: "週", - day: "天", - list: "活動列表" - }, - weekLabel: "周", - allDayText: "整天", - eventLimitText: '顯示更多', - noEventsMessage: "没有任何活動" - }; - - return zhTw; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/main.css b/htdocs/public/high/plugins/fullcalendar/packages/core/main.css deleted file mode 100644 index 4412a185..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/main.css +++ /dev/null @@ -1,1052 +0,0 @@ -@charset "UTF-8"; -.fc { - direction: ltr; - text-align: left; -} - -.fc-rtl { - text-align: right; -} - -body .fc { - /* extra precedence to overcome jqui */ - font-size: 1em; -} - -/* Colors ---------------------------------------------------------------------------------------------------*/ -.fc-highlight { - /* when user is selecting cells */ - background: #bce8f1; - opacity: 0.3; -} - -.fc-bgevent { - /* default look for background events */ - background: #8fdf82; - opacity: 0.3; -} - -.fc-nonbusiness { - /* default look for non-business-hours areas */ - /* will inherit .fc-bgevent's styles */ - background: #d7d7d7; -} - -/* Popover ---------------------------------------------------------------------------------------------------*/ -.fc-popover { - position: absolute; - box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15); -} - -.fc-popover .fc-header { - /* TODO: be more consistent with fc-head/fc-body */ - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - padding: 2px 4px; -} - -.fc-rtl .fc-popover .fc-header { - flex-direction: row-reverse; -} - -.fc-popover .fc-header .fc-title { - margin: 0 2px; -} - -.fc-popover .fc-header .fc-close { - cursor: pointer; - opacity: 0.65; - font-size: 1.1em; -} - -/* Misc Reusable Components ---------------------------------------------------------------------------------------------------*/ -.fc-divider { - border-style: solid; - border-width: 1px; -} - -hr.fc-divider { - height: 0; - margin: 0; - padding: 0 0 2px; - /* height is unreliable across browsers, so use padding */ - border-width: 1px 0; -} - -.fc-bg, -.fc-bgevent-skeleton, -.fc-highlight-skeleton, -.fc-mirror-skeleton { - /* these element should always cling to top-left/right corners */ - position: absolute; - top: 0; - left: 0; - right: 0; -} - -.fc-bg { - bottom: 0; - /* strech bg to bottom edge */ -} - -.fc-bg table { - height: 100%; - /* strech bg to bottom edge */ -} - -/* Tables ---------------------------------------------------------------------------------------------------*/ -.fc table { - width: 100%; - box-sizing: border-box; - /* fix scrollbar issue in firefox */ - table-layout: fixed; - border-collapse: collapse; - border-spacing: 0; - font-size: 1em; - /* normalize cross-browser */ -} - -.fc th { - text-align: center; -} - -.fc th, -.fc td { - border-style: solid; - border-width: 1px; - padding: 0; - vertical-align: top; -} - -.fc td.fc-today { - border-style: double; - /* overcome neighboring borders */ -} - -/* Internal Nav Links ---------------------------------------------------------------------------------------------------*/ -a[data-goto] { - cursor: pointer; -} - -a[data-goto]:hover { - text-decoration: underline; -} - -/* Fake Table Rows ---------------------------------------------------------------------------------------------------*/ -.fc .fc-row { - /* extra precedence to overcome themes forcing a 1px border */ - /* no visible border by default. but make available if need be (scrollbar width compensation) */ - border-style: solid; - border-width: 0; -} - -.fc-row table { - /* don't put left/right border on anything within a fake row. - the outer tbody will worry about this */ - border-left: 0 hidden transparent; - border-right: 0 hidden transparent; - /* no bottom borders on rows */ - border-bottom: 0 hidden transparent; -} - -.fc-row:first-child table { - border-top: 0 hidden transparent; - /* no top border on first row */ -} - -/* Day Row (used within the header and the DayGrid) ---------------------------------------------------------------------------------------------------*/ -.fc-row { - position: relative; -} - -.fc-row .fc-bg { - z-index: 1; -} - -/* highlighting cells & background event skeleton */ -.fc-row .fc-bgevent-skeleton, -.fc-row .fc-highlight-skeleton { - bottom: 0; - /* stretch skeleton to bottom of row */ -} - -.fc-row .fc-bgevent-skeleton table, -.fc-row .fc-highlight-skeleton table { - height: 100%; - /* stretch skeleton to bottom of row */ -} - -.fc-row .fc-highlight-skeleton td, -.fc-row .fc-bgevent-skeleton td { - border-color: transparent; -} - -.fc-row .fc-bgevent-skeleton { - z-index: 2; -} - -.fc-row .fc-highlight-skeleton { - z-index: 3; -} - -/* -row content (which contains day/week numbers and events) as well as "mirror" (which contains -temporary rendered events). -*/ -.fc-row .fc-content-skeleton { - position: relative; - z-index: 4; - padding-bottom: 2px; - /* matches the space above the events */ -} - -.fc-row .fc-mirror-skeleton { - z-index: 5; -} - -.fc .fc-row .fc-content-skeleton table, -.fc .fc-row .fc-content-skeleton td, -.fc .fc-row .fc-mirror-skeleton td { - /* see-through to the background below */ - /* extra precedence to prevent theme-provided backgrounds */ - background: none; - /* in case s are globally styled */ - border-color: transparent; -} - -.fc-row .fc-content-skeleton td, -.fc-row .fc-mirror-skeleton td { - /* don't put a border between events and/or the day number */ - border-bottom: 0; -} - -.fc-row .fc-content-skeleton tbody td, -.fc-row .fc-mirror-skeleton tbody td { - /* don't put a border between event cells */ - border-top: 0; -} - -/* Scrolling Container ---------------------------------------------------------------------------------------------------*/ -.fc-scroller { - -webkit-overflow-scrolling: touch; -} - -/* TODO: move to timegrid/daygrid */ -.fc-scroller > .fc-day-grid, -.fc-scroller > .fc-time-grid { - position: relative; - /* re-scope all positions */ - width: 100%; - /* hack to force re-sizing this inner element when scrollbars appear/disappear */ -} - -/* Global Event Styles ---------------------------------------------------------------------------------------------------*/ -.fc-event { - position: relative; - /* for resize handle and other inner positioning */ - display: block; - /* make the tag block */ - font-size: 0.85em; - line-height: 1.4; - border-radius: 3px; - border: 1px solid #3788d8; -} - -.fc-event, -.fc-event-dot { - background-color: #3788d8; - /* default BACKGROUND color */ -} - -.fc-event, -.fc-event:hover { - color: #fff; - /* default TEXT color */ - text-decoration: none; - /* if has an href */ -} - -.fc-event[href], -.fc-event.fc-draggable { - cursor: pointer; - /* give events with links and draggable events a hand mouse pointer */ -} - -.fc-not-allowed, -.fc-not-allowed .fc-event { - /* to override an event's custom cursor */ - cursor: not-allowed; -} - -.fc-event .fc-content { - position: relative; - z-index: 2; -} - -/* resizer (cursor AND touch devices) */ -.fc-event .fc-resizer { - position: absolute; - z-index: 4; -} - -/* resizer (touch devices) */ -.fc-event .fc-resizer { - display: none; -} - -.fc-event.fc-allow-mouse-resize .fc-resizer, -.fc-event.fc-selected .fc-resizer { - /* only show when hovering or selected (with touch) */ - display: block; -} - -/* hit area */ -.fc-event.fc-selected .fc-resizer:before { - /* 40x40 touch area */ - content: ""; - position: absolute; - z-index: 9999; - /* user of this util can scope within a lower z-index */ - top: 50%; - left: 50%; - width: 40px; - height: 40px; - margin-left: -20px; - margin-top: -20px; -} - -/* Event Selection (only for touch devices) ---------------------------------------------------------------------------------------------------*/ -.fc-event.fc-selected { - z-index: 9999 !important; - /* overcomes inline z-index */ - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); -} - -.fc-event.fc-selected:after { - content: ""; - position: absolute; - z-index: 1; - /* same z-index as fc-bg, behind text */ - /* overcome the borders */ - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; - /* darkening effect */ - background: #000; - opacity: 0.25; -} - -/* Event Dragging ---------------------------------------------------------------------------------------------------*/ -.fc-event.fc-dragging.fc-selected { - box-shadow: 0 2px 7px rgba(0, 0, 0, 0.3); -} - -.fc-event.fc-dragging:not(.fc-selected) { - opacity: 0.75; -} - -/* Horizontal Events ---------------------------------------------------------------------------------------------------*/ -/* bigger touch area when selected */ -.fc-h-event.fc-selected:before { - content: ""; - position: absolute; - z-index: 3; - /* below resizers */ - top: -10px; - bottom: -10px; - left: 0; - right: 0; -} - -/* events that are continuing to/from another week. kill rounded corners and butt up against edge */ -.fc-ltr .fc-h-event.fc-not-start, -.fc-rtl .fc-h-event.fc-not-end { - margin-left: 0; - border-left-width: 0; - padding-left: 1px; - /* replace the border with padding */ - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.fc-ltr .fc-h-event.fc-not-end, -.fc-rtl .fc-h-event.fc-not-start { - margin-right: 0; - border-right-width: 0; - padding-right: 1px; - /* replace the border with padding */ - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -/* resizer (cursor AND touch devices) */ -/* left resizer */ -.fc-ltr .fc-h-event .fc-start-resizer, -.fc-rtl .fc-h-event .fc-end-resizer { - cursor: w-resize; - left: -1px; - /* overcome border */ -} - -/* right resizer */ -.fc-ltr .fc-h-event .fc-end-resizer, -.fc-rtl .fc-h-event .fc-start-resizer { - cursor: e-resize; - right: -1px; - /* overcome border */ -} - -/* resizer (mouse devices) */ -.fc-h-event.fc-allow-mouse-resize .fc-resizer { - width: 7px; - top: -1px; - /* overcome top border */ - bottom: -1px; - /* overcome bottom border */ -} - -/* resizer (touch devices) */ -.fc-h-event.fc-selected .fc-resizer { - /* 8x8 little dot */ - border-radius: 4px; - border-width: 1px; - width: 6px; - height: 6px; - border-style: solid; - border-color: inherit; - background: #fff; - /* vertically center */ - top: 50%; - margin-top: -4px; -} - -/* left resizer */ -.fc-ltr .fc-h-event.fc-selected .fc-start-resizer, -.fc-rtl .fc-h-event.fc-selected .fc-end-resizer { - margin-left: -4px; - /* centers the 8x8 dot on the left edge */ -} - -/* right resizer */ -.fc-ltr .fc-h-event.fc-selected .fc-end-resizer, -.fc-rtl .fc-h-event.fc-selected .fc-start-resizer { - margin-right: -4px; - /* centers the 8x8 dot on the right edge */ -} - -/* DayGrid events ----------------------------------------------------------------------------------------------------- -We use the full "fc-day-grid-event" class instead of using descendants because the event won't -be a descendant of the grid when it is being dragged. -*/ -.fc-day-grid-event { - margin: 1px 2px 0; - /* spacing between events and edges */ - padding: 0 1px; -} - -tr:first-child > td > .fc-day-grid-event { - margin-top: 2px; - /* a little bit more space before the first event */ -} - -.fc-mirror-skeleton tr:first-child > td > .fc-day-grid-event { - margin-top: 0; - /* except for mirror skeleton */ -} - -.fc-day-grid-event .fc-content { - /* force events to be one-line tall */ - white-space: nowrap; - overflow: hidden; -} - -.fc-day-grid-event .fc-time { - font-weight: bold; -} - -/* resizer (cursor devices) */ -/* left resizer */ -.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer, -.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer { - margin-left: -2px; - /* to the day cell's edge */ -} - -/* right resizer */ -.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer, -.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer { - margin-right: -2px; - /* to the day cell's edge */ -} - -/* Event Limiting ---------------------------------------------------------------------------------------------------*/ -/* "more" link that represents hidden events */ -a.fc-more { - margin: 1px 3px; - font-size: 0.85em; - cursor: pointer; - text-decoration: none; -} - -a.fc-more:hover { - text-decoration: underline; -} - -.fc-limited { - /* rows and cells that are hidden because of a "more" link */ - display: none; -} - -/* popover that appears when "more" link is clicked */ -.fc-day-grid .fc-row { - z-index: 1; - /* make the "more" popover one higher than this */ -} - -.fc-more-popover { - z-index: 2; - width: 220px; -} - -.fc-more-popover .fc-event-container { - padding: 10px; -} - -/* Now Indicator ---------------------------------------------------------------------------------------------------*/ -.fc-now-indicator { - position: absolute; - border: 0 solid red; -} - -/* Utilities ---------------------------------------------------------------------------------------------------*/ -.fc-unselectable { - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-touch-callout: none; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} - -/* -TODO: more distinction between this file and common.css -*/ -/* Colors ---------------------------------------------------------------------------------------------------*/ -.fc-unthemed th, -.fc-unthemed td, -.fc-unthemed thead, -.fc-unthemed tbody, -.fc-unthemed .fc-divider, -.fc-unthemed .fc-row, -.fc-unthemed .fc-content, -.fc-unthemed .fc-popover, -.fc-unthemed .fc-list-view, -.fc-unthemed .fc-list-heading td { - border-color: #ddd; -} - -.fc-unthemed .fc-popover { - background-color: #fff; -} - -.fc-unthemed .fc-divider, -.fc-unthemed .fc-popover .fc-header, -.fc-unthemed .fc-list-heading td { - background: #eee; -} - -.fc-unthemed td.fc-today { - background: #fcf8e3; -} - -.fc-unthemed .fc-disabled-day { - background: #d7d7d7; - opacity: 0.3; -} - -/* Icons --------------------------------------------------------------------------------------------------- -from https://feathericons.com/ and built with IcoMoon -*/ -@font-face { - font-family: "fcicons"; - src: url("data:application/x-font-ttf;charset=utf-8;base64,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") format("truetype"); - font-weight: normal; - font-style: normal; -} -.fc-icon { - /* use !important to prevent issues with browser extensions that change fonts */ - font-family: "fcicons" !important; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - /* Better Font Rendering =========== */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.fc-icon-chevron-left:before { - content: ""; -} - -.fc-icon-chevron-right:before { - content: ""; -} - -.fc-icon-chevrons-left:before { - content: ""; -} - -.fc-icon-chevrons-right:before { - content: ""; -} - -.fc-icon-minus-square:before { - content: ""; -} - -.fc-icon-plus-square:before { - content: ""; -} - -.fc-icon-x:before { - content: ""; -} - -.fc-icon { - display: inline-block; - width: 1em; - height: 1em; - text-align: center; -} - -/* Buttons --------------------------------------------------------------------------------------------------- -Lots taken from Flatly (MIT): https://bootswatch.com/4/flatly/bootstrap.css -*/ -/* reset */ -.fc-button { - border-radius: 0; - overflow: visible; - text-transform: none; - margin: 0; - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -.fc-button:focus { - outline: 1px dotted; - outline: 5px auto -webkit-focus-ring-color; -} - -.fc-button { - -webkit-appearance: button; -} - -.fc-button:not(:disabled) { - cursor: pointer; -} - -.fc-button::-moz-focus-inner { - padding: 0; - border-style: none; -} - -/* theme */ -.fc-button { - display: inline-block; - font-weight: 400; - color: #212529; - text-align: center; - vertical-align: middle; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-color: transparent; - border: 1px solid transparent; - padding: 0.4em 0.65em; - font-size: 1em; - line-height: 1.5; - border-radius: 0.25em; -} - -.fc-button:hover { - color: #212529; - text-decoration: none; -} - -.fc-button:focus { - outline: 0; - -webkit-box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.25); - box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.25); -} - -.fc-button:disabled { - opacity: 0.65; -} - -/* "primary" coloring */ -.fc-button-primary { - color: #fff; - background-color: #2C3E50; - border-color: #2C3E50; -} - -.fc-button-primary:hover { - color: #fff; - background-color: #1e2b37; - border-color: #1a252f; -} - -.fc-button-primary:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); - box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); -} - -.fc-button-primary:disabled { - color: #fff; - background-color: #2C3E50; - border-color: #2C3E50; -} - -.fc-button-primary:not(:disabled):active, -.fc-button-primary:not(:disabled).fc-button-active { - color: #fff; - background-color: #1a252f; - border-color: #151e27; -} - -.fc-button-primary:not(:disabled):active:focus, -.fc-button-primary:not(:disabled).fc-button-active:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); - box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); -} - -/* icons within buttons */ -.fc-button .fc-icon { - vertical-align: middle; - font-size: 1.5em; -} - -/* Buttons Groups ---------------------------------------------------------------------------------------------------*/ -.fc-button-group { - position: relative; - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - vertical-align: middle; -} - -.fc-button-group > .fc-button { - position: relative; - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; -} - -.fc-button-group > .fc-button:hover { - z-index: 1; -} - -.fc-button-group > .fc-button:focus, -.fc-button-group > .fc-button:active, -.fc-button-group > .fc-button.fc-button-active { - z-index: 1; -} - -.fc-button-group > .fc-button:not(:first-child) { - margin-left: -1px; -} - -.fc-button-group > .fc-button:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.fc-button-group > .fc-button:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -/* Popover ---------------------------------------------------------------------------------------------------*/ -.fc-unthemed .fc-popover { - border-width: 1px; - border-style: solid; -} - -/* List View ---------------------------------------------------------------------------------------------------*/ -.fc-unthemed .fc-list-item:hover td { - background-color: #f5f5f5; -} - -/* Toolbar ---------------------------------------------------------------------------------------------------*/ -.fc-toolbar { - display: flex; - justify-content: space-between; - align-items: center; -} - -.fc-toolbar.fc-header-toolbar { - margin-bottom: 1.5em; -} - -.fc-toolbar.fc-footer-toolbar { - margin-top: 1.5em; -} - -/* inner content */ -.fc-toolbar > * > :not(:first-child) { - margin-left: 0.75em; -} - -.fc-toolbar h2 { - font-size: 1.75em; - margin: 0; -} - -/* View Structure ---------------------------------------------------------------------------------------------------*/ -.fc-view-container { - position: relative; -} - -/* undo twitter bootstrap's box-sizing rules. normalizes positioning techniques */ -/* don't do this for the toolbar because we'll want bootstrap to style those buttons as some pt */ -.fc-view-container *, -.fc-view-container *:before, -.fc-view-container *:after { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -.fc-view, -.fc-view > table { - /* so dragged elements can be above the view's main element */ - position: relative; - z-index: 1; -} - -@media print { - .fc { - max-width: 100% !important; - } - - /* Global Event Restyling - --------------------------------------------------------------------------------------------------*/ - .fc-event { - background: #fff !important; - color: #000 !important; - page-break-inside: avoid; - } - - .fc-event .fc-resizer { - display: none; - } - - /* Table & Day-Row Restyling - --------------------------------------------------------------------------------------------------*/ - .fc th, -.fc td, -.fc hr, -.fc thead, -.fc tbody, -.fc-row { - border-color: #ccc !important; - background: #fff !important; - } - - /* kill the overlaid, absolutely-positioned components */ - /* common... */ - .fc-bg, -.fc-bgevent-skeleton, -.fc-highlight-skeleton, -.fc-mirror-skeleton, -.fc-bgevent-container, -.fc-business-container, -.fc-highlight-container, -.fc-mirror-container { - display: none; - } - - /* don't force a min-height on rows (for DayGrid) */ - .fc tbody .fc-row { - height: auto !important; - /* undo height that JS set in distributeHeight */ - min-height: 0 !important; - /* undo the min-height from each view's specific stylesheet */ - } - - .fc tbody .fc-row .fc-content-skeleton { - position: static; - /* undo .fc-rigid */ - padding-bottom: 0 !important; - /* use a more border-friendly method for this... */ - } - - .fc tbody .fc-row .fc-content-skeleton tbody tr:last-child td { - /* only works in newer browsers */ - padding-bottom: 1em; - /* ...gives space within the skeleton. also ensures min height in a way */ - } - - .fc tbody .fc-row .fc-content-skeleton table { - /* provides a min-height for the row, but only effective for IE, which exaggerates this value, - making it look more like 3em. for other browers, it will already be this tall */ - height: 1em; - } - - /* Undo month-view event limiting. Display all events and hide the "more" links - --------------------------------------------------------------------------------------------------*/ - .fc-more-cell, -.fc-more { - display: none !important; - } - - .fc tr.fc-limited { - display: table-row !important; - } - - .fc td.fc-limited { - display: table-cell !important; - } - - .fc-popover { - display: none; - /* never display the "more.." popover in print mode */ - } - - /* TimeGrid Restyling - --------------------------------------------------------------------------------------------------*/ - /* undo the min-height 100% trick used to fill the container's height */ - .fc-time-grid { - min-height: 0 !important; - } - - /* don't display the side axis at all ("all-day" and time cells) */ - .fc-timeGrid-view .fc-axis { - display: none; - } - - /* don't display the horizontal lines */ - .fc-slats, -.fc-time-grid hr { - /* this hr is used when height is underused and needs to be filled */ - display: none !important; - /* important overrides inline declaration */ - } - - /* let the container that holds the events be naturally positioned and create real height */ - .fc-time-grid .fc-content-skeleton { - position: static; - } - - /* in case there are no events, we still want some height */ - .fc-time-grid .fc-content-skeleton table { - height: 4em; - } - - /* kill the horizontal spacing made by the event container. event margins will be done below */ - .fc-time-grid .fc-event-container { - margin: 0 !important; - } - - /* TimeGrid *Event* Restyling - --------------------------------------------------------------------------------------------------*/ - /* naturally position events, vertically stacking them */ - .fc-time-grid .fc-event { - position: static !important; - margin: 3px 2px !important; - } - - /* for events that continue to a future day, give the bottom border back */ - .fc-time-grid .fc-event.fc-not-end { - border-bottom-width: 1px !important; - } - - /* indicate the event continues via "..." text */ - .fc-time-grid .fc-event.fc-not-end:after { - content: "..."; - } - - /* for events that are continuations from previous days, give the top border back */ - .fc-time-grid .fc-event.fc-not-start { - border-top-width: 1px !important; - } - - /* indicate the event is a continuation via "..." text */ - .fc-time-grid .fc-event.fc-not-start:before { - content: "..."; - } - - /* time */ - /* undo a previous declaration and let the time text span to a second line */ - .fc-time-grid .fc-event .fc-time { - white-space: normal !important; - } - - /* hide the the time that is normally displayed... */ - .fc-time-grid .fc-event .fc-time span { - display: none; - } - - /* ...replace it with a more verbose version (includes AM/PM) stored in an html attribute */ - .fc-time-grid .fc-event .fc-time:after { - content: attr(data-full); - } - - /* Vertical Scroller & Containers - --------------------------------------------------------------------------------------------------*/ - /* kill the scrollbars and allow natural height */ - .fc-scroller, -.fc-day-grid-container, -.fc-time-grid-container { - /* */ - overflow: visible !important; - height: auto !important; - } - - /* kill the horizontal border/padding used to compensate for scrollbars */ - .fc-row { - border: 0 !important; - margin: 0 !important; - } - - /* Button Controls - --------------------------------------------------------------------------------------------------*/ - .fc-button-group, -.fc button { - display: none; - /* don't display any button-related controls */ - } -} diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/main.d.ts b/htdocs/public/high/plugins/fullcalendar/packages/core/main.d.ts deleted file mode 100644 index cfd23435..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/main.d.ts +++ /dev/null @@ -1,2730 +0,0 @@ -// Generated by dts-bundle v0.7.3-fork.1 -// Dependencies for this module: -// ../../../../../@fullcalendar/core - -declare module '@fullcalendar/core' { - export const version = "<%= version %>"; - export { OptionsInput } from '@fullcalendar/core/types/input-types'; - export { EventInput, EventDef, EventDefHash, EventInstance, EventInstanceHash, parseEventDef, createEventInstance, EventTuple } from '@fullcalendar/core/structs/event'; - export { BusinessHoursInput, parseBusinessHours } from '@fullcalendar/core/structs/business-hours'; - export { applyAll, debounce, padStart, isInt, capitaliseFirstLetter, parseFieldSpecs, compareByFieldSpecs, compareByFieldSpec, flexibleCompare, computeVisibleDayRange, refineProps, matchCellWidths, uncompensateScroll, compensateScroll, subtractInnerElHeight, isMultiDayRange, distributeHeight, undistributeHeight, preventSelection, allowSelection, preventContextMenu, allowContextMenu, compareNumbers, enableCursor, disableCursor, diffDates } from '@fullcalendar/core/util/misc'; - export { htmlEscape, cssToStr } from '@fullcalendar/core/util/html'; - export { removeExact, isArraysEqual } from '@fullcalendar/core/util/array'; - export { memoize, memoizeOutput } from '@fullcalendar/core/util/memoize'; - export { memoizeRendering, MemoizedRendering } from '@fullcalendar/core/component/memoized-rendering'; - export { intersectRects, Rect, pointInsideRect, constrainPoint, getRectCenter, diffPoints, Point, translateRect } from '@fullcalendar/core/util/geom'; - export { mapHash, filterHash, isPropsEqual } from '@fullcalendar/core/util/object'; - export { findElements, findChildren, htmlToElement, createElement, insertAfterElement, prependToElement, removeElement, appendToElement, applyStyle, applyStyleProp, elementMatches, elementClosest, forceClassName } from '@fullcalendar/core/util/dom-manip'; - export { EventStore, filterEventStoreDefs, createEmptyEventStore, mergeEventStores, getRelevantEvents, eventTupleToStore } from '@fullcalendar/core/structs/event-store'; - export { EventUiHash, EventUi, processScopedUiProps, combineEventUis } from '@fullcalendar/core/component/event-ui'; - export { default as Splitter, SplittableProps } from '@fullcalendar/core/component/event-splitting'; - export { buildGotoAnchorHtml, getAllDayHtml, getDayClasses } from '@fullcalendar/core/component/date-rendering'; - export { preventDefault, listenBySelector, whenTransitionDone } from '@fullcalendar/core/util/dom-event'; - export { computeInnerRect, computeEdges, computeHeightAndMargins, getClippingParents, computeClippingRect, computeRect } from '@fullcalendar/core/util/dom-geom'; - export { unpromisify } from '@fullcalendar/core/util/promise'; - export { default as EmitterMixin, EmitterInterface } from '@fullcalendar/core/common/EmitterMixin'; - export { DateRange, rangeContainsMarker, intersectRanges, rangesEqual, rangesIntersect, rangeContainsRange } from '@fullcalendar/core/datelib/date-range'; - export { default as Mixin } from '@fullcalendar/core/common/Mixin'; - export { default as PositionCache } from '@fullcalendar/core/common/PositionCache'; - export { default as ScrollComponent, ScrollbarWidths } from '@fullcalendar/core/common/ScrollComponent'; - export { ScrollController, ElementScrollController, WindowScrollController } from '@fullcalendar/core/common/scroll-controller'; - export { default as Theme } from '@fullcalendar/core/theme/Theme'; - export { default as Component, ComponentContext } from '@fullcalendar/core/component/Component'; - export { default as DateComponent, Seg, EventSegUiInteractionState } from '@fullcalendar/core/component/DateComponent'; - export { default as Calendar, DatePointTransform, DateSpanTransform, DateSelectionApi } from '@fullcalendar/core/Calendar'; - export { default as View, ViewProps } from '@fullcalendar/core/View'; - export { default as FgEventRenderer, buildSegCompareObj } from '@fullcalendar/core/component/renderers/FgEventRenderer'; - export { default as FillRenderer } from '@fullcalendar/core/component/renderers/FillRenderer'; - export { default as DateProfileGenerator, DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - export { ViewDef } from '@fullcalendar/core/structs/view-def'; - export { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - export { DateSpan, DateSpanApi, DatePointApi, isDateSpansEqual } from '@fullcalendar/core/structs/date-span'; - export { DateMarker, addDays, startOfDay, addMs, addWeeks, diffWeeks, diffWholeWeeks, diffWholeDays, diffDayAndTime, diffDays, isValidDate } from '@fullcalendar/core/datelib/marker'; - export { Duration, createDuration, isSingleDay, multiplyDuration, addDurations, asRoughMinutes, asRoughSeconds, asRoughMs, wholeDivideDurations, greatestDurationDenominator } from '@fullcalendar/core/datelib/duration'; - export { DateEnv, DateMarkerMeta } from '@fullcalendar/core/datelib/env'; - export { DateFormatter, createFormatter, VerboseFormattingArg, formatIsoTimeString } from '@fullcalendar/core/datelib/formatting'; - export { NamedTimeZoneImpl } from '@fullcalendar/core/datelib/timezone'; - export { parse as parseMarker } from '@fullcalendar/core/datelib/parsing'; - export { EventSourceDef, EventSource, EventSourceHash } from '@fullcalendar/core/structs/event-source'; - export { Interaction, InteractionSettings, interactionSettingsToStore, interactionSettingsStore, InteractionSettingsStore } from '@fullcalendar/core/interactions/interaction'; - export { PointerDragEvent } from '@fullcalendar/core/interactions/pointer'; - export { Hit } from '@fullcalendar/core/interactions/hit'; - export { dateSelectionJoinTransformer } from '@fullcalendar/core/interactions/date-selecting'; - export { eventDragMutationMassager, EventDropTransformers } from '@fullcalendar/core/interactions/event-dragging'; - export { EventResizeJoinTransforms } from '@fullcalendar/core/interactions/event-resizing'; - export { default as ElementDragging } from '@fullcalendar/core/interactions/ElementDragging'; - export { formatDate, formatRange } from '@fullcalendar/core/formatting-api'; - export { globalDefaults, config } from '@fullcalendar/core/options'; - export { RecurringType, ParsedRecurring } from '@fullcalendar/core/structs/recurring-event'; - export { DragMetaInput, DragMeta, parseDragMeta } from '@fullcalendar/core/structs/drag-meta'; - export { createPlugin, PluginDef, PluginDefInput, ViewPropsTransformer, ViewContainerModifier } from '@fullcalendar/core/plugin-system'; - export { reducerFunc, Action, CalendarState } from '@fullcalendar/core/reducers/types'; - export { CalendarComponentProps } from '@fullcalendar/core/CalendarComponent'; - export { default as DayHeader } from '@fullcalendar/core/common/DayHeader'; - export { computeFallbackHeaderFormat, renderDateCell } from '@fullcalendar/core/common/table-utils'; - export { default as DaySeries } from '@fullcalendar/core/common/DaySeries'; - export { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - export { EventRenderRange, sliceEventStore, hasBgRendering, getElSeg } from '@fullcalendar/core/component/event-rendering'; - export { default as DayTable, DayTableSeg, DayTableCell } from '@fullcalendar/core/common/DayTable'; - export { default as Slicer, SlicedProps } from '@fullcalendar/core/common/slicing-utils'; - export { EventMutation, applyMutationToEventStore } from '@fullcalendar/core/structs/event-mutation'; - export { Constraint, ConstraintInput, AllowFunc, isPropsValid, isInteractionValid } from '@fullcalendar/core/validation'; - export { default as EventApi } from '@fullcalendar/core/api/EventApi'; - export { default as requestJson } from '@fullcalendar/core/util/requestJson'; -} - -declare module '@fullcalendar/core/types/input-types' { - import View from '@fullcalendar/core/View'; - import { EventSourceInput, EventInputTransformer } from '@fullcalendar/core/structs/event-source'; - import { Duration, DurationInput } from '@fullcalendar/core/datelib/duration'; - import { DateInput } from '@fullcalendar/core/datelib/env'; - import { FormatterInput } from '@fullcalendar/core/datelib/formatting'; - import { DateRangeInput } from '@fullcalendar/core/datelib/date-range'; - import { BusinessHoursInput } from '@fullcalendar/core/structs/business-hours'; - import EventApi from '@fullcalendar/core/api/EventApi'; - import { AllowFunc, ConstraintInput, OverlapFunc } from '@fullcalendar/core/validation'; - import { PluginDef } from '@fullcalendar/core/plugin-system'; - import { LocaleSingularArg, RawLocale } from '@fullcalendar/core/datelib/locale'; - export interface ToolbarInput { - left?: string; - center?: string; - right?: string; - } - export interface CustomButtonInput { - text: string; - icon?: string; - themeIcon?: string; - bootstrapFontAwesome?: string; - click(element: HTMLElement): void; - } - export interface ButtonIconsInput { - prev?: string; - next?: string; - prevYear?: string; - nextYear?: string; - } - export interface ButtonTextCompoundInput { - prev?: string; - next?: string; - prevYear?: string; - nextYear?: string; - today?: string; - month?: string; - week?: string; - day?: string; - [viewId: string]: string | undefined; - } - export interface EventSegment { - event: EventApi; - start: Date; - end: Date; - isStart: boolean; - isEnd: boolean; - } - export interface CellInfo { - date: Date; - dayEl: HTMLElement; - moreEl: HTMLElement; - segs: EventSegment[]; - hiddenSegs: EventSegment[]; - } - export interface DropInfo { - start: Date; - end: Date; - } - export type EventHandlerName = '_init' | 'selectAllow' | 'eventAllow' | 'eventDataTransform' | 'datesRender' | 'datesDestroy' | 'dayRender' | 'windowResize' | 'dateClick' | 'eventClick' | 'eventMouseEnter' | 'eventMouseLeave' | 'select' | 'unselect' | 'loading' | 'eventRender' | 'eventPositioned' | '_eventsPositioned' | 'eventDestroy' | 'eventDragStart' | 'eventDragStop' | 'eventDrop' | '_destroyed' | 'drop' | 'eventResizeStart' | 'eventResizeStop' | 'eventResize' | 'eventReceive' | 'eventLeave' | 'viewSkeletonRender' | 'viewSkeletonDestroy' | '_noEventDrop' | '_noEventResize' | 'eventLimitClick' | 'resourceRender'; - export type EventHandlerArgs = Parameters any>>; - export type EventHandlerArg = EventHandlerArgs[0]; - export interface OptionsInputBase { - header?: boolean | ToolbarInput; - footer?: boolean | ToolbarInput; - customButtons?: { - [name: string]: CustomButtonInput; - }; - buttonIcons?: boolean | ButtonIconsInput; - themeSystem?: 'standard' | string; - bootstrapFontAwesome?: boolean | ButtonIconsInput; - firstDay?: number; - dir?: 'ltr' | 'rtl' | 'auto'; - weekends?: boolean; - hiddenDays?: number[]; - fixedWeekCount?: boolean; - weekNumbers?: boolean; - weekNumbersWithinDays?: boolean; - weekNumberCalculation?: 'local' | 'ISO' | ((m: Date) => number); - businessHours?: BusinessHoursInput; - showNonCurrentDates?: boolean; - height?: number | 'auto' | 'parent' | (() => number); - contentHeight?: number | 'auto' | (() => number); - aspectRatio?: number; - handleWindowResize?: boolean; - windowResizeDelay?: number; - eventLimit?: boolean | number; - eventLimitClick?: 'popover' | 'week' | 'day' | 'timeGridWeek' | 'timeGridDay' | string | ((arg: { - date: Date; - allDay: boolean; - dayEl: HTMLElement; - moreEl: HTMLElement; - segs: any[]; - hiddenSegs: any[]; - jsEvent: MouseEvent; - view: View; - }) => void); - timeZone?: string | boolean; - now?: DateInput | (() => DateInput); - defaultView?: string; - allDaySlot?: boolean; - allDayText?: string; - slotDuration?: DurationInput; - slotLabelFormat?: FormatterInput; - slotLabelInterval?: DurationInput; - snapDuration?: DurationInput; - scrollTime?: DurationInput; - minTime?: DurationInput; - maxTime?: DurationInput; - slotEventOverlap?: boolean; - listDayFormat?: FormatterInput | boolean; - listDayAltFormat?: FormatterInput | boolean; - noEventsMessage?: string; - defaultDate?: DateInput; - nowIndicator?: boolean; - visibleRange?: ((currentDate: Date) => DateRangeInput) | DateRangeInput; - validRange?: DateRangeInput; - dateIncrement?: DurationInput; - dateAlignment?: string; - duration?: DurationInput; - dayCount?: number; - locales?: RawLocale[]; - locale?: LocaleSingularArg; - eventTimeFormat?: FormatterInput; - columnHeader?: boolean; - columnHeaderFormat?: FormatterInput; - columnHeaderText?: string | ((date: DateInput) => string); - columnHeaderHtml?: string | ((date: DateInput) => string); - titleFormat?: FormatterInput; - weekLabel?: string; - displayEventTime?: boolean; - displayEventEnd?: boolean; - eventLimitText?: string | ((eventCnt: number) => string); - dayPopoverFormat?: FormatterInput; - navLinks?: boolean; - navLinkDayClick?: string | ((date: Date, jsEvent: Event) => void); - navLinkWeekClick?: string | ((weekStart: any, jsEvent: Event) => void); - selectable?: boolean; - selectMirror?: boolean; - unselectAuto?: boolean; - unselectCancel?: string; - defaultAllDayEventDuration?: DurationInput; - defaultTimedEventDuration?: DurationInput; - cmdFormatter?: string; - defaultRangeSeparator?: string; - selectConstraint?: ConstraintInput; - selectOverlap?: boolean | OverlapFunc; - selectAllow?: AllowFunc; - editable?: boolean; - eventStartEditable?: boolean; - eventDurationEditable?: boolean; - eventConstraint?: ConstraintInput; - eventOverlap?: boolean | OverlapFunc; - eventAllow?: AllowFunc; - eventClassName?: string[] | string; - eventClassNames?: string[] | string; - eventBackgroundColor?: string; - eventBorderColor?: string; - eventTextColor?: string; - eventColor?: string; - events?: EventSourceInput; - eventSources?: EventSourceInput[]; - allDayDefault?: boolean; - startParam?: string; - endParam?: string; - lazyFetching?: boolean; - nextDayThreshold?: DurationInput; - eventOrder?: string | Array<((a: EventApi, b: EventApi) => number) | (string | ((a: EventApi, b: EventApi) => number))>; - rerenderDelay?: number | null; - dragRevertDuration?: number; - dragScroll?: boolean; - longPressDelay?: number; - eventLongPressDelay?: number; - droppable?: boolean; - dropAccept?: string | ((draggable: any) => boolean); - eventDataTransform?: EventInputTransformer; - allDayMaintainDuration?: boolean; - eventResizableFromStart?: boolean; - timeGridEventMinHeight?: number; - allDayHtml?: string; - eventDragMinDistance?: number; - eventSourceFailure?: any; - eventSourceSuccess?: any; - forceEventDuration?: boolean; - progressiveEventRendering?: boolean; - selectLongPressDelay?: number; - selectMinDistance?: number; - timeZoneParam?: string; - titleRangeSeparator?: string; - datesRender?(arg: { - view: View; - el: HTMLElement; - }): void; - datesDestroy?(arg: { - view: View; - el: HTMLElement; - }): void; - dayRender?(arg: { - view: View; - date: Date; - allDay?: boolean; - el: HTMLElement; - }): void; - windowResize?(view: View): void; - dateClick?(arg: { - date: Date; - dateStr: string; - allDay: boolean; - resource?: any; - dayEl: HTMLElement; - jsEvent: MouseEvent; - view: View; - }): void; - eventClick?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): boolean | void; - eventMouseEnter?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): void; - eventMouseLeave?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): void; - select?(arg: { - start: Date; - end: Date; - startStr: string; - endStr: string; - allDay: boolean; - resource?: any; - jsEvent: MouseEvent; - view: View; - }): void; - unselect?(arg: { - view: View; - jsEvent: Event; - }): void; - loading?(isLoading: boolean): void; - eventRender?(arg: { - isMirror: boolean; - isStart: boolean; - isEnd: boolean; - event: EventApi; - el: HTMLElement; - view: View; - }): void; - eventPositioned?(arg: { - isMirror: boolean; - isStart: boolean; - isEnd: boolean; - event: EventApi; - el: HTMLElement; - view: View; - }): void; - _eventsPositioned?(arg: { - view: View; - }): void; - eventDestroy?(arg: { - isMirror: boolean; - event: EventApi; - el: HTMLElement; - view: View; - }): void; - eventDragStart?(arg: { - event: EventApi; - el: HTMLElement; - jsEvent: MouseEvent; - view: View; - }): void; - eventDragStop?(arg: { - event: EventApi; - el: HTMLElement; - jsEvent: MouseEvent; - view: View; - }): void; - eventDrop?(arg: { - el: HTMLElement; - event: EventApi; - oldEvent: EventApi; - delta: Duration; - revert: () => void; - jsEvent: Event; - view: View; - }): void; - eventResizeStart?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): void; - eventResizeStop?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): void; - eventResize?(arg: { - el: HTMLElement; - startDelta: Duration; - endDelta: Duration; - prevEvent: EventApi; - event: EventApi; - revert: () => void; - jsEvent: Event; - view: View; - }): void; - drop?(arg: { - date: Date; - dateStr: string; - allDay: boolean; - draggedEl: HTMLElement; - jsEvent: MouseEvent; - view: View; - }): void; - eventReceive?(arg: { - event: EventApi; - draggedEl: HTMLElement; - view: View; - }): void; - eventLeave?(arg: { - draggedEl: HTMLElement; - event: EventApi; - view: View; - }): void; - viewSkeletonRender?(arg: { - el: HTMLElement; - view: View; - }): void; - viewSkeletonDestroy?(arg: { - el: HTMLElement; - view: View; - }): void; - _destroyed?(): void; - _init?(): void; - _noEventDrop?(): void; - _noEventResize?(): void; - resourceRender?(arg: { - resource: any; - el: HTMLElement; - view: View; - }): void; - } - export interface ViewOptionsInput extends OptionsInputBase { - type?: string; - buttonText?: string; - } - export interface OptionsInput extends OptionsInputBase { - buttonText?: ButtonTextCompoundInput; - views?: { - [viewId: string]: ViewOptionsInput; - }; - plugins?: (PluginDef | string)[]; - } -} - -declare module '@fullcalendar/core/structs/event' { - import { DateInput } from '@fullcalendar/core/datelib/env'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { UnscopedEventUiInput, EventUi } from '@fullcalendar/core/component/event-ui'; - export type EventRenderingChoice = '' | 'background' | 'inverse-background' | 'none'; - export interface EventNonDateInput extends UnscopedEventUiInput { - id?: string | number; - groupId?: string | number; - title?: string; - url?: string; - rendering?: EventRenderingChoice; - extendedProps?: object; - [extendedProp: string]: any; - } - export interface EventDateInput { - start?: DateInput; - end?: DateInput; - date?: DateInput; - allDay?: boolean; - } - export type EventInput = EventNonDateInput & EventDateInput; - export interface EventDef { - defId: string; - sourceId: string; - publicId: string; - groupId: string; - allDay: boolean; - hasEnd: boolean; - recurringDef: { - typeId: number; - typeData: any; - duration: Duration | null; - } | null; - title: string; - url: string; - rendering: EventRenderingChoice; - ui: EventUi; - extendedProps: any; - } - export interface EventInstance { - instanceId: string; - defId: string; - range: DateRange; - forcedStartTzo: number | null; - forcedEndTzo: number | null; - } - export interface EventTuple { - def: EventDef; - instance: EventInstance | null; - } - export type EventInstanceHash = { - [instanceId: string]: EventInstance; - }; - export type EventDefHash = { - [defId: string]: EventDef; - }; - export const NON_DATE_PROPS: { - id: StringConstructor; - groupId: StringConstructor; - title: StringConstructor; - url: StringConstructor; - rendering: StringConstructor; - extendedProps: any; - }; - export const DATE_PROPS: { - start: any; - date: any; - end: any; - allDay: any; - }; - export function parseEvent(raw: EventInput, sourceId: string, calendar: Calendar, allowOpenRange?: boolean): EventTuple | null; - export function parseEventDef(raw: EventNonDateInput, sourceId: string, allDay: boolean, hasEnd: boolean, calendar: Calendar): EventDef; - export type eventDefParserFunc = (def: EventDef, props: any, leftovers: any) => void; - export function createEventInstance(defId: string, range: DateRange, forcedStartTzo?: number, forcedEndTzo?: number): EventInstance; -} - -declare module '@fullcalendar/core/structs/business-hours' { - import Calendar from '@fullcalendar/core/Calendar'; - import { EventInput } from '@fullcalendar/core/structs/event'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - export type BusinessHoursInput = boolean | EventInput | EventInput[]; - export function parseBusinessHours(input: BusinessHoursInput, calendar: Calendar): EventStore; -} - -declare module '@fullcalendar/core/util/misc' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - import { DateRange, OpenDateRange } from '@fullcalendar/core/datelib/date-range'; - export function compensateScroll(rowEl: HTMLElement, scrollbarWidths: any): void; - export function uncompensateScroll(rowEl: HTMLElement): void; - export function disableCursor(): void; - export function enableCursor(): void; - export function distributeHeight(els: HTMLElement[], availableHeight: any, shouldRedistribute: any): void; - export function undistributeHeight(els: HTMLElement[]): void; - export function matchCellWidths(els: HTMLElement[]): number; - export function subtractInnerElHeight(outerEl: HTMLElement, innerEl: HTMLElement): number; - export function preventSelection(el: HTMLElement): void; - export function allowSelection(el: HTMLElement): void; - export function preventContextMenu(el: HTMLElement): void; - export function allowContextMenu(el: HTMLElement): void; - export function parseFieldSpecs(input: any): any[]; - export function compareByFieldSpecs(obj0: any, obj1: any, fieldSpecs: any): any; - export function compareByFieldSpec(obj0: any, obj1: any, fieldSpec: any): any; - export function flexibleCompare(a: any, b: any): number; - export function capitaliseFirstLetter(str: any): any; - export function padStart(val: any, len: any): string; - export function compareNumbers(a: any, b: any): number; - export function isInt(n: any): boolean; - export function applyAll(functions: any, thisObj: any, args: any): any; - export function firstDefined(...args: any[]): any; - export function debounce(func: any, wait: any): () => any; - export type GenericHash = { - [key: string]: any; - }; - export function refineProps(rawProps: GenericHash, processors: GenericHash, defaults?: GenericHash, leftoverProps?: GenericHash): GenericHash; - export function computeAlignedDayRange(timedRange: DateRange): DateRange; - export function computeVisibleDayRange(timedRange: OpenDateRange, nextDayThreshold?: Duration): OpenDateRange; - export function isMultiDayRange(range: DateRange): boolean; - export function diffDates(date0: DateMarker, date1: DateMarker, dateEnv: DateEnv, largeUnit?: string): Duration; -} - -declare module '@fullcalendar/core/util/html' { - export function htmlEscape(s: any): string; - export function cssToStr(cssProps: any): string; - export function attrsToStr(attrs: any): string; - export type ClassNameInput = string | string[]; - export function parseClassName(raw: ClassNameInput): string[]; -} - -declare module '@fullcalendar/core/util/array' { - export function removeMatching(array: any, testFunc: any): number; - export function removeExact(array: any, exactVal: any): number; - export function isArraysEqual(a0: any, a1: any): boolean; -} - -declare module '@fullcalendar/core/util/memoize' { - export function memoize(workerFunc: T): T; - export function memoizeOutput(workerFunc: T, equalityFunc: (output0: any, output1: any) => boolean): T; -} - -declare module '@fullcalendar/core/component/memoized-rendering' { - export interface MemoizedRendering { - (...args: ArgsType): void; - unrender: () => void; - dependents: MemoizedRendering[]; - } - export function memoizeRendering(renderFunc: (...args: ArgsType) => void, unrenderFunc?: (...args: ArgsType) => void, dependencies?: MemoizedRendering[]): MemoizedRendering; -} - -declare module '@fullcalendar/core/util/geom' { - export interface Point { - left: number; - top: number; - } - export interface Rect { - left: number; - right: number; - top: number; - bottom: number; - } - export function pointInsideRect(point: Point, rect: Rect): boolean; - export function intersectRects(rect1: Rect, rect2: Rect): Rect | false; - export function translateRect(rect: Rect, deltaX: number, deltaY: number): Rect; - export function constrainPoint(point: Point, rect: Rect): Point; - export function getRectCenter(rect: Rect): Point; - export function diffPoints(point1: Point, point2: Point): Point; -} - -declare module '@fullcalendar/core/util/object' { - export function mergeProps(propObjs: any, complexProps?: any): any; - export function filterHash(hash: any, func: any): {}; - export function mapHash(hash: { - [key: string]: InputItem; - }, func: (input: InputItem, key: string) => OutputItem): { - [key: string]: OutputItem; - }; - export function arrayToHash(a: any): { - [key: string]: true; - }; - export function hashValuesToArray(obj: any): any[]; - export function isPropsEqual(obj0: any, obj1: any): boolean; -} - -declare module '@fullcalendar/core/util/dom-manip' { - export function createElement(tagName: string, attrs: object | null, content?: ElementContent): HTMLElement; - export function htmlToElement(html: string): HTMLElement; - export function htmlToElements(html: string): HTMLElement[]; - export type ElementContent = string | Node | Node[] | NodeList; - export function appendToElement(el: HTMLElement, content: ElementContent): void; - export function prependToElement(parent: HTMLElement, content: ElementContent): void; - export function insertAfterElement(refEl: HTMLElement, content: ElementContent): void; - export function removeElement(el: HTMLElement): void; - export function elementClosest(el: HTMLElement, selector: string): HTMLElement; - export function elementMatches(el: HTMLElement, selector: string): HTMLElement; - export function findElements(container: HTMLElement[] | HTMLElement | NodeListOf, selector: string): HTMLElement[]; - export function findChildren(parent: HTMLElement[] | HTMLElement, selector?: string): HTMLElement[]; - export function forceClassName(el: HTMLElement, className: string, bool: any): void; - export function applyStyle(el: HTMLElement, props: object): void; - export function applyStyleProp(el: HTMLElement, name: string, val: any): void; -} - -declare module '@fullcalendar/core/structs/event-store' { - import { EventInput, EventDef, EventDefHash, EventInstanceHash, EventTuple } from '@fullcalendar/core/structs/event'; - import { EventSource } from '@fullcalendar/core/structs/event-source'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - export interface EventStore { - defs: EventDefHash; - instances: EventInstanceHash; - } - export function parseEvents(rawEvents: EventInput[], sourceId: string, calendar: Calendar, allowOpenRange?: boolean): EventStore; - export function eventTupleToStore(tuple: EventTuple, eventStore?: EventStore): EventStore; - export function expandRecurring(eventStore: EventStore, framingRange: DateRange, calendar: Calendar): EventStore; - export function getRelevantEvents(eventStore: EventStore, instanceId: string): EventStore; - export function transformRawEvents(rawEvents: any, eventSource: EventSource, calendar: Calendar): any; - export function createEmptyEventStore(): EventStore; - export function mergeEventStores(store0: EventStore, store1: EventStore): EventStore; - export function filterEventStoreDefs(eventStore: EventStore, filterFunc: (eventDef: EventDef) => boolean): EventStore; -} - -declare module '@fullcalendar/core/component/event-ui' { - import { Constraint, AllowFunc, ConstraintInput } from '@fullcalendar/core/validation'; - import { parseClassName } from '@fullcalendar/core/util/html'; - import Calendar from '@fullcalendar/core/Calendar'; - export interface UnscopedEventUiInput { - editable?: boolean; - startEditable?: boolean; - durationEditable?: boolean; - constraint?: ConstraintInput; - overlap?: boolean; - allow?: AllowFunc; - className?: string[] | string; - classNames?: string[] | string; - backgroundColor?: string; - borderColor?: string; - textColor?: string; - color?: string; - } - export interface EventUi { - startEditable: boolean | null; - durationEditable: boolean | null; - constraints: Constraint[]; - overlap: boolean | null; - allows: AllowFunc[]; - backgroundColor: string; - borderColor: string; - textColor: string; - classNames: string[]; - } - export type EventUiHash = { - [defId: string]: EventUi; - }; - export const UNSCOPED_EVENT_UI_PROPS: { - editable: BooleanConstructor; - startEditable: BooleanConstructor; - durationEditable: BooleanConstructor; - constraint: any; - overlap: any; - allow: any; - className: typeof parseClassName; - classNames: typeof parseClassName; - color: StringConstructor; - backgroundColor: StringConstructor; - borderColor: StringConstructor; - textColor: StringConstructor; - }; - export function processUnscopedUiProps(rawProps: UnscopedEventUiInput, calendar: Calendar, leftovers?: any): EventUi; - export function processScopedUiProps(prefix: string, rawScoped: any, calendar: Calendar, leftovers?: any): EventUi; - export function combineEventUis(uis: EventUi[]): EventUi; -} - -declare module '@fullcalendar/core/component/event-splitting' { - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventDef } from '@fullcalendar/core/structs/event'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { EventUiHash, EventUi } from '@fullcalendar/core/component/event-ui'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - export interface SplittableProps { - businessHours: EventStore | null; - dateSelection: DateSpan | null; - eventStore: EventStore; - eventUiBases: EventUiHash; - eventSelection: string; - eventDrag: EventInteractionState | null; - eventResize: EventInteractionState | null; - } - export { Splitter as default, Splitter }; - abstract class Splitter { - abstract getKeyInfo(props: PropsType): { - [key: string]: { - ui?: EventUi; - businessHours?: EventStore; - }; - }; - abstract getKeysForDateSpan(dateSpan: DateSpan): string[]; - abstract getKeysForEventDef(eventDef: EventDef): string[]; - splitProps(props: PropsType): { - [key: string]: SplittableProps; - }; - } -} - -declare module '@fullcalendar/core/component/date-rendering' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - export function buildGotoAnchorHtml(component: Component, gotoOptions: any, attrs: any, innerHtml?: any): string; - export function getAllDayHtml(component: Component): any; - export function getDayClasses(date: DateMarker, dateProfile: DateProfile, context: ComponentContext, noThemeHighlight?: any): any[]; -} - -declare module '@fullcalendar/core/util/dom-event' { - export function preventDefault(ev: any): void; - export function listenBySelector(container: HTMLElement, eventType: string, selector: string, handler: (ev: Event, matchedTarget: HTMLElement) => void): () => void; - export function listenToHoverBySelector(container: HTMLElement, selector: string, onMouseEnter: (ev: Event, matchedTarget: HTMLElement) => void, onMouseLeave: (ev: Event, matchedTarget: HTMLElement) => void): () => void; - export function whenTransitionDone(el: HTMLElement, callback: (ev: Event) => void): void; -} - -declare module '@fullcalendar/core/util/dom-geom' { - import { Rect } from '@fullcalendar/core/util/geom'; - export interface EdgeInfo { - borderLeft: number; - borderRight: number; - borderTop: number; - borderBottom: number; - scrollbarLeft: number; - scrollbarRight: number; - scrollbarBottom: number; - paddingLeft?: number; - paddingRight?: number; - paddingTop?: number; - paddingBottom?: number; - } - export function computeEdges(el: any, getPadding?: boolean): EdgeInfo; - export function computeInnerRect(el: any, goWithinPadding?: boolean): { - left: number; - right: number; - top: number; - bottom: number; - }; - export function computeRect(el: any): Rect; - export function computeHeightAndMargins(el: HTMLElement): number; - export function computeVMargins(el: HTMLElement): number; - export function getClippingParents(el: HTMLElement): HTMLElement[]; - export function computeClippingRect(el: HTMLElement): Rect; -} - -declare module '@fullcalendar/core/util/promise' { - export function unpromisify(func: any, success: any, failure?: any): void; -} - -declare module '@fullcalendar/core/common/EmitterMixin' { - import Mixin from '@fullcalendar/core/common/Mixin'; - export interface EmitterInterface { - on(types: any, handler: any): any; - one(types: any, handler: any): any; - off(types: any, handler: any): any; - trigger(type: any, ...args: any[]): any; - triggerWith(type: any, context: any, args: any): any; - hasHandlers(type: any): any; - } - export { EmitterMixin as default, EmitterMixin }; - class EmitterMixin extends Mixin implements EmitterInterface { - _handlers: any; - _oneHandlers: any; - on(type: any, handler: any): this; - one(type: any, handler: any): this; - off(type: any, handler?: any): this; - trigger(type: any, ...args: any[]): this; - triggerWith(type: any, context: any, args: any): this; - hasHandlers(type: any): any; - } -} - -declare module '@fullcalendar/core/datelib/date-range' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateEnv, DateInput } from '@fullcalendar/core/datelib/env'; - export interface DateRangeInput { - start?: DateInput; - end?: DateInput; - } - export interface OpenDateRange { - start: DateMarker | null; - end: DateMarker | null; - } - export interface DateRange { - start: DateMarker; - end: DateMarker; - } - export function parseRange(input: DateRangeInput, dateEnv: DateEnv): OpenDateRange; - export function invertRanges(ranges: DateRange[], constraintRange: DateRange): DateRange[]; - export function intersectRanges(range0: OpenDateRange, range1: OpenDateRange): OpenDateRange; - export function rangesEqual(range0: OpenDateRange, range1: OpenDateRange): boolean; - export function rangesIntersect(range0: OpenDateRange, range1: OpenDateRange): boolean; - export function rangeContainsRange(outerRange: OpenDateRange, innerRange: OpenDateRange): boolean; - export function rangeContainsMarker(range: OpenDateRange, date: DateMarker | number): boolean; - export function constrainMarkerToRange(date: DateMarker, range: DateRange): DateMarker; -} - -declare module '@fullcalendar/core/common/Mixin' { - export { Mixin as default, Mixin }; - class Mixin { - static mixInto(destClass: any): void; - static mixIntoObj(destObj: any): void; - static mixOver(destClass: any): void; - } -} - -declare module '@fullcalendar/core/common/PositionCache' { - export { PositionCache as default, PositionCache }; - class PositionCache { - originClientRect: ClientRect; - els: HTMLElement[]; - originEl: HTMLElement; - isHorizontal: boolean; - isVertical: boolean; - lefts: any; - rights: any; - tops: any; - bottoms: any; - constructor(originEl: HTMLElement, els: HTMLElement[], isHorizontal: boolean, isVertical: boolean); - build(): void; - buildElHorizontals(originClientLeft: number): void; - buildElVerticals(originClientTop: number): void; - leftToIndex(leftPosition: number): any; - topToIndex(topPosition: number): any; - getWidth(leftIndex: number): number; - getHeight(topIndex: number): number; - } -} - -declare module '@fullcalendar/core/common/ScrollComponent' { - import { ElementScrollController } from '@fullcalendar/core/common/scroll-controller'; - export interface ScrollbarWidths { - left: number; - right: number; - bottom: number; - } - export { ScrollComponent as default, ScrollComponent }; - class ScrollComponent extends ElementScrollController { - overflowX: string; - overflowY: string; - constructor(overflowX: string, overflowY: string); - clear(): void; - destroy(): void; - applyOverflow(): void; - lockOverflow(scrollbarWidths: ScrollbarWidths): void; - setHeight(height: number | string): void; - getScrollbarWidths(): ScrollbarWidths; - } -} - -declare module '@fullcalendar/core/common/scroll-controller' { - export abstract class ScrollController { - abstract getScrollTop(): number; - abstract getScrollLeft(): number; - abstract setScrollTop(top: number): void; - abstract setScrollLeft(left: number): void; - abstract getClientWidth(): number; - abstract getClientHeight(): number; - abstract getScrollWidth(): number; - abstract getScrollHeight(): number; - getMaxScrollTop(): number; - getMaxScrollLeft(): number; - canScrollVertically(): boolean; - canScrollHorizontally(): boolean; - canScrollUp(): boolean; - canScrollDown(): boolean; - canScrollLeft(): boolean; - canScrollRight(): boolean; - } - export class ElementScrollController extends ScrollController { - el: HTMLElement; - constructor(el: HTMLElement); - getScrollTop(): number; - getScrollLeft(): number; - setScrollTop(top: number): void; - setScrollLeft(left: number): void; - getScrollWidth(): number; - getScrollHeight(): number; - getClientHeight(): number; - getClientWidth(): number; - } - export class WindowScrollController extends ScrollController { - getScrollTop(): number; - getScrollLeft(): number; - setScrollTop(n: number): void; - setScrollLeft(n: number): void; - getScrollWidth(): number; - getScrollHeight(): number; - getClientHeight(): number; - getClientWidth(): number; - } -} - -declare module '@fullcalendar/core/theme/Theme' { - export { Theme as default, Theme }; - class Theme { - calendarOptions: any; - classes: any; - iconClasses: any; - baseIconClass: string; - iconOverrideOption: any; - iconOverrideCustomButtonOption: any; - iconOverridePrefix: string; - constructor(calendarOptions: any); - processIconOverride(): void; - setIconOverride(iconOverrideHash: any): void; - applyIconOverridePrefix(className: any): any; - getClass(key: any): any; - getIconClass(buttonName: any): string; - getCustomButtonIconClass(customButtonProps: any): string; - } - export type ThemeClass = { - new (calendarOptions: any): Theme; - }; -} - -declare module '@fullcalendar/core/component/Component' { - import Calendar from '@fullcalendar/core/Calendar'; - import View from '@fullcalendar/core/View'; - import Theme from '@fullcalendar/core/theme/Theme'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - export interface ComponentContext { - options: any; - dateEnv: DateEnv; - theme: Theme; - calendar: Calendar; - view: View; - } - export type EqualityFuncHash = { - [propName: string]: (obj0: any, obj1: any) => boolean; - }; - export { Component as default, Component }; - class Component { - equalityFuncs: EqualityFuncHash; - uid: string; - props: PropsType | null; - context: ComponentContext; - dateEnv: DateEnv; - theme: Theme; - view: View; - calendar: Calendar; - isRtl: boolean; - constructor(context: ComponentContext, isView?: boolean); - static addEqualityFuncs(newFuncs: EqualityFuncHash): void; - opt(name: any): any; - receiveProps(props: PropsType): void; - protected render(props: PropsType): void; - destroy(): void; - } -} - -declare module '@fullcalendar/core/component/DateComponent' { - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - import { EventRenderRange } from '@fullcalendar/core/component/event-rendering'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { EventInstanceHash } from '@fullcalendar/core/structs/event'; - import { Hit } from '@fullcalendar/core/interactions/hit'; - import FgEventRenderer from '@fullcalendar/core/component/renderers/FgEventRenderer'; - import FillRenderer from '@fullcalendar/core/component/renderers/FillRenderer'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { EventHandlerName, EventHandlerArgs } from '@fullcalendar/core/types/input-types'; - export type DateComponentHash = { - [uid: string]: DateComponent; - }; - export interface Seg { - component?: DateComponent; - isStart: boolean; - isEnd: boolean; - eventRange?: EventRenderRange; - el?: HTMLElement; - [otherProp: string]: any; - } - export interface EventSegUiInteractionState { - affectedInstances: EventInstanceHash; - segs: Seg[]; - isEvent: boolean; - sourceSeg: any; - } - export { DateComponent as default, DateComponent }; - class DateComponent extends Component { - fgSegSelector: string; - bgSegSelector: string; - largeUnit: any; - eventRenderer: FgEventRenderer; - mirrorRenderer: FgEventRenderer; - fillRenderer: FillRenderer; - el: HTMLElement; - constructor(context: ComponentContext, el: HTMLElement, isView?: boolean); - destroy(): void; - buildPositionCaches(): void; - queryHit(positionLeft: number, positionTop: number, elWidth: number, elHeight: number): Hit | null; - isInteractionValid(interaction: EventInteractionState): boolean; - isDateSelectionValid(selection: DateSpan): boolean; - publiclyTrigger(name: T, args?: EventHandlerArgs): any; - publiclyTriggerAfterSizing(name: T, args: EventHandlerArgs): void; - hasPublicHandlers(name: T): boolean; - triggerRenderedSegs(segs: Seg[], isMirrors: boolean): void; - triggerWillRemoveSegs(segs: Seg[], isMirrors: boolean): void; - isValidSegDownEl(el: HTMLElement): boolean; - isValidDateDownEl(el: HTMLElement): boolean; - isPopover(): boolean; - isInPopover(el: HTMLElement): boolean; - } -} - -declare module '@fullcalendar/core/Calendar' { - import { EmitterInterface } from '@fullcalendar/core/common/EmitterMixin'; - import OptionsManager from '@fullcalendar/core/OptionsManager'; - import View from '@fullcalendar/core/View'; - import Theme from '@fullcalendar/core/theme/Theme'; - import { OptionsInput, EventHandlerName, EventHandlerArgs } from '@fullcalendar/core/types/input-types'; - import { RawLocaleMap } from '@fullcalendar/core/datelib/locale'; - import { DateEnv, DateInput } from '@fullcalendar/core/datelib/env'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Duration, DurationInput } from '@fullcalendar/core/datelib/duration'; - import { DateSpan, DateSpanApi, DatePointApi } from '@fullcalendar/core/structs/date-span'; - import { DateRangeInput } from '@fullcalendar/core/datelib/date-range'; - import DateProfileGenerator from '@fullcalendar/core/DateProfileGenerator'; - import { EventSourceInput } from '@fullcalendar/core/structs/event-source'; - import { EventInput } from '@fullcalendar/core/structs/event'; - import { CalendarState, Action } from '@fullcalendar/core/reducers/types'; - import EventSourceApi from '@fullcalendar/core/api/EventSourceApi'; - import EventApi from '@fullcalendar/core/api/EventApi'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventUiHash, EventUi } from '@fullcalendar/core/component/event-ui'; - import { ViewSpecHash, ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import { PluginSystem } from '@fullcalendar/core/plugin-system'; - import CalendarComponent from '@fullcalendar/core/CalendarComponent'; - import DateComponent from '@fullcalendar/core/component/DateComponent'; - import { PointerDragEvent } from '@fullcalendar/core/interactions/pointer'; - import { InteractionSettingsInput, Interaction } from '@fullcalendar/core/interactions/interaction'; - export interface DateClickApi extends DatePointApi { - dayEl: HTMLElement; - jsEvent: UIEvent; - view: View; - } - export interface DateSelectionApi extends DateSpanApi { - jsEvent: UIEvent; - view: View; - } - export type DatePointTransform = (dateSpan: DateSpan, calendar: Calendar) => any; - export type DateSpanTransform = (dateSpan: DateSpan, calendar: Calendar) => any; - export type CalendarInteraction = { - destroy(): any; - }; - export type CalendarInteractionClass = { - new (calendar: Calendar): CalendarInteraction; - }; - export type OptionChangeHandler = (propValue: any, calendar: Calendar, deepEqual: any) => void; - export type OptionChangeHandlerMap = { - [propName: string]: OptionChangeHandler; - }; - export { Calendar as default, Calendar }; - class Calendar { - static on: EmitterInterface['on']; - static off: EmitterInterface['off']; - static trigger: EmitterInterface['trigger']; - on: EmitterInterface['on']; - one: EmitterInterface['one']; - off: EmitterInterface['off']; - trigger: EmitterInterface['trigger']; - triggerWith: EmitterInterface['triggerWith']; - hasHandlers: EmitterInterface['hasHandlers']; - eventUiBases: EventUiHash; - selectionConfig: EventUi; - optionsManager: OptionsManager; - viewSpecs: ViewSpecHash; - dateProfileGenerators: { - [viewName: string]: DateProfileGenerator; - }; - theme: Theme; - dateEnv: DateEnv; - availableRawLocales: RawLocaleMap; - pluginSystem: PluginSystem; - defaultAllDayEventDuration: Duration; - defaultTimedEventDuration: Duration; - calendarInteractions: CalendarInteraction[]; - interactionsStore: { - [componentUid: string]: Interaction[]; - }; - removeNavLinkListener: any; - windowResizeProxy: any; - isHandlingWindowResize: boolean; - state: CalendarState; - actionQueue: any[]; - isReducing: boolean; - needsRerender: boolean; - needsFullRerender: boolean; - isRendering: boolean; - renderingPauseDepth: number; - renderableEventStore: EventStore; - buildDelayedRerender: typeof buildDelayedRerender; - delayedRerender: any; - afterSizingTriggers: any; - isViewUpdated: boolean; - isDatesUpdated: boolean; - isEventsUpdated: boolean; - el: HTMLElement; - component: CalendarComponent; - constructor(el: HTMLElement, overrides?: OptionsInput); - addPluginInputs(pluginInputs: any): void; - readonly view: View; - render(): void; - destroy(): void; - bindHandlers(): void; - unbindHandlers(): void; - hydrate(): void; - buildInitialState(): CalendarState; - reduce(state: CalendarState, action: Action, calendar: Calendar): CalendarState; - requestRerender(needsFull?: boolean): void; - tryRerender(): void; - batchRendering(func: any): void; - executeRender(): void; - renderComponent(needsFull: any): void; - setOption(name: string, val: any): void; - getOption(name: string): any; - opt(name: string): any; - viewOpt(name: string): any; - viewOpts(): any; - mutateOptions(updates: any, removals: string[], isDynamic?: boolean, deepEqual?: any): void; - handleOptions(options: any): void; - getAvailableLocaleCodes(): string[]; - _buildSelectionConfig(rawOpts: any): EventUi; - _buildEventUiSingleBase(rawOpts: any): EventUi; - hasPublicHandlers(name: T): boolean; - publiclyTrigger(name: T, args?: EventHandlerArgs): any; - publiclyTriggerAfterSizing(name: T, args: EventHandlerArgs): void; - releaseAfterSizingTriggers(): void; - isValidViewType(viewType: string): boolean; - changeView(viewType: string, dateOrRange?: DateRangeInput | DateInput): void; - zoomTo(dateMarker: DateMarker, viewType?: string): void; - getUnitViewSpec(unit: string): ViewSpec | null; - getInitialDate(): Date; - prev(): void; - next(): void; - prevYear(): void; - nextYear(): void; - today(): void; - gotoDate(zonedDateInput: any): void; - incrementDate(deltaInput: any): void; - getDate(): Date; - formatDate(d: DateInput, formatter: any): string; - formatRange(d0: DateInput, d1: DateInput, settings: any): any; - formatIso(d: DateInput, omitTime?: boolean): string; - windowResize(ev: Event): void; - updateSize(): void; - registerInteractiveComponent(component: DateComponent, settingsInput: InteractionSettingsInput): void; - unregisterInteractiveComponent(component: DateComponent): void; - select(dateOrObj: DateInput | any, endDate?: DateInput): void; - unselect(pev?: PointerDragEvent): void; - triggerDateSelect(selection: DateSpan, pev?: PointerDragEvent): void; - triggerDateUnselect(pev?: PointerDragEvent): void; - triggerDateClick(dateSpan: DateSpan, dayEl: HTMLElement, view: View, ev: UIEvent): void; - buildDatePointApi(dateSpan: DateSpan): import("@fullcalendar/core/structs/date-span").DatePointApi; - buildDateSpanApi(dateSpan: DateSpan): import("@fullcalendar/core/structs/date-span").DateSpanApi; - getNow(): DateMarker; - getDefaultEventEnd(allDay: boolean, marker: DateMarker): DateMarker; - addEvent(eventInput: EventInput, sourceInput?: EventSourceApi | string | number): EventApi | null; - getEventById(id: string): EventApi | null; - getEvents(): EventApi[]; - removeAllEvents(): void; - rerenderEvents(): void; - getEventSources(): EventSourceApi[]; - getEventSourceById(id: string | number): EventSourceApi | null; - addEventSource(sourceInput: EventSourceInput): EventSourceApi; - removeAllEventSources(): void; - refetchEvents(): void; - scrollToTime(timeInput: DurationInput): void; - } - function buildDelayedRerender(this: Calendar, wait: any): any; - export {}; -} - -declare module '@fullcalendar/core/View' { - import DateProfileGenerator, { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { EmitterInterface } from '@fullcalendar/core/common/EmitterMixin'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - import DateComponent from '@fullcalendar/core/component/DateComponent'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventUiHash, EventUi } from '@fullcalendar/core/component/event-ui'; - import { EventRenderRange } from '@fullcalendar/core/component/event-rendering'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { EventDef } from '@fullcalendar/core/structs/event'; - export interface ViewProps { - dateProfile: DateProfile; - businessHours: EventStore; - eventStore: EventStore; - eventUiBases: EventUiHash; - dateSelection: DateSpan | null; - eventSelection: string; - eventDrag: EventInteractionState | null; - eventResize: EventInteractionState | null; - } - export { View as default, View }; - abstract class View extends DateComponent { - usesMinMaxTime: boolean; - dateProfileGeneratorClass: any; - on: EmitterInterface['on']; - one: EmitterInterface['one']; - off: EmitterInterface['off']; - trigger: EmitterInterface['trigger']; - triggerWith: EmitterInterface['triggerWith']; - hasHandlers: EmitterInterface['hasHandlers']; - viewSpec: ViewSpec; - dateProfileGenerator: DateProfileGenerator; - type: string; - title: string; - queuedScroll: any; - eventOrderSpecs: any; - nextDayThreshold: Duration; - isNowIndicatorRendered: boolean; - initialNowDate: DateMarker; - initialNowQueriedMs: number; - nowIndicatorTimeoutID: any; - nowIndicatorIntervalID: any; - constructor(context: ComponentContext, viewSpec: ViewSpec, dateProfileGenerator: DateProfileGenerator, parentEl: HTMLElement); - initialize(): void; - readonly activeStart: Date; - readonly activeEnd: Date; - readonly currentStart: Date; - readonly currentEnd: Date; - render(props: ViewProps): void; - destroy(): void; - updateSize(isResize: boolean, viewHeight: number, isAuto: boolean): void; - updateBaseSize(isResize: boolean, viewHeight: number, isAuto: boolean): void; - renderDatesWrap(dateProfile: DateProfile): void; - unrenderDatesWrap(): void; - renderDates(dateProfile: DateProfile): void; - unrenderDates(): void; - renderBusinessHours(businessHours: EventStore): void; - unrenderBusinessHours(): void; - renderDateSelectionWrap(selection: DateSpan): void; - unrenderDateSelectionWrap(selection: DateSpan): void; - renderDateSelection(selection: DateSpan): void; - unrenderDateSelection(selection: DateSpan): void; - renderEvents(eventStore: EventStore): void; - unrenderEvents(): void; - sliceEvents(eventStore: EventStore, allDay: boolean): EventRenderRange[]; - computeEventDraggable(eventDef: EventDef, eventUi: EventUi): boolean; - computeEventStartResizable(eventDef: EventDef, eventUi: EventUi): any; - computeEventEndResizable(eventDef: EventDef, eventUi: EventUi): boolean; - renderEventSelectionWrap(instanceId: string): void; - unrenderEventSelectionWrap(instanceId: string): void; - renderEventSelection(instanceId: string): void; - unrenderEventSelection(instanceId: string): void; - renderEventDragWrap(state: EventInteractionState): void; - unrenderEventDragWrap(state: EventInteractionState): void; - renderEventDrag(state: EventInteractionState): void; - unrenderEventDrag(state: EventInteractionState): void; - renderEventResizeWrap(state: EventInteractionState): void; - unrenderEventResizeWrap(state: EventInteractionState): void; - renderEventResize(state: EventInteractionState): void; - unrenderEventResize(state: EventInteractionState): void; - startNowIndicator(dateProfile: DateProfile): void; - updateNowIndicator(): void; - stopNowIndicator(): void; - getNowIndicatorUnit(dateProfile: DateProfile): void; - renderNowIndicator(date: any): void; - unrenderNowIndicator(): void; - addScroll(scroll: any): void; - popScroll(isResize: boolean): void; - applyQueuedScroll(isResize: boolean): void; - queryScroll(): any; - applyScroll(scroll: any, isResize: boolean): void; - computeDateScroll(duration: Duration): {}; - queryDateScroll(): {}; - applyDateScroll(scroll: any): void; - scrollToDuration(duration: Duration): void; - } -} - -declare module '@fullcalendar/core/component/renderers/FgEventRenderer' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateFormatter } from '@fullcalendar/core/datelib/formatting'; - import { EventUi } from '@fullcalendar/core/component/event-ui'; - import { EventRenderRange } from '@fullcalendar/core/component/event-rendering'; - import { Seg } from '@fullcalendar/core/component/DateComponent'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - export { FgEventRenderer as default, FgEventRenderer }; - abstract class FgEventRenderer { - context: ComponentContext; - eventTimeFormat: DateFormatter; - displayEventTime: boolean; - displayEventEnd: boolean; - segs: Seg[]; - isSizeDirty: boolean; - constructor(context: ComponentContext); - renderSegs(segs: Seg[], mirrorInfo?: any): void; - unrender(_segs: Seg[], mirrorInfo?: any): void; - abstract renderSegHtml(seg: Seg, mirrorInfo: any): string; - abstract attachSegs(segs: Seg[], mirrorInfo: any): any; - abstract detachSegs(segs: Seg[]): any; - rangeUpdated(): void; - renderSegEls(segs: Seg[], mirrorInfo: any): Seg[]; - getSegClasses(seg: Seg, isDraggable: any, isResizable: any, mirrorInfo: any): string[]; - getTimeText(eventRange: EventRenderRange, formatter?: any, displayEnd?: any): any; - _getTimeText(start: DateMarker, end: DateMarker, allDay: any, formatter?: any, displayEnd?: any, forcedStartTzo?: number, forcedEndTzo?: number): any; - computeEventTimeFormat(): any; - computeDisplayEventTime(): boolean; - computeDisplayEventEnd(): boolean; - getSkinCss(ui: EventUi): { - 'background-color': string; - 'border-color': string; - color: string; - }; - sortEventSegs(segs: any): Seg[]; - computeSizes(force: boolean): void; - assignSizes(force: boolean): void; - computeSegSizes(segs: Seg[]): void; - assignSegSizes(segs: Seg[]): void; - hideByHash(hash: any): void; - showByHash(hash: any): void; - selectByInstanceId(instanceId: string): void; - unselectByInstanceId(instanceId: string): void; - } - export function buildSegCompareObj(seg: Seg): any; -} - -declare module '@fullcalendar/core/component/renderers/FillRenderer' { - import { Seg } from '@fullcalendar/core/component/DateComponent'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - export { FillRenderer as default, FillRenderer }; - abstract class FillRenderer { - context: ComponentContext; - fillSegTag: string; - containerElsByType: any; - segsByType: any; - dirtySizeFlags: any; - constructor(context: ComponentContext); - getSegsByType(type: string): any; - renderSegs(type: any, segs: Seg[]): void; - unrender(type: any): void; - renderSegEls(type: any, segs: Seg[]): Seg[]; - renderSegHtml(type: any, seg: Seg): string; - abstract attachSegs(type: any, segs: Seg[]): HTMLElement[] | void; - detachSegs(type: any, segs: Seg[]): void; - computeSizes(force: boolean): void; - assignSizes(force: boolean): void; - computeSegSizes(segs: Seg[]): void; - assignSegSizes(segs: Seg[]): void; - } -} - -declare module '@fullcalendar/core/DateProfileGenerator' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateRange, OpenDateRange } from '@fullcalendar/core/datelib/date-range'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - import Calendar from '@fullcalendar/core/Calendar'; - export interface DateProfile { - currentRange: DateRange; - currentRangeUnit: string; - isRangeAllDay: boolean; - validRange: OpenDateRange; - activeRange: DateRange; - renderRange: DateRange; - minTime: Duration; - maxTime: Duration; - isValid: boolean; - dateIncrement: Duration; - } - export { DateProfileGenerator as default, DateProfileGenerator }; - class DateProfileGenerator { - viewSpec: ViewSpec; - options: any; - dateEnv: DateEnv; - calendar: Calendar; - isHiddenDayHash: boolean[]; - constructor(viewSpec: ViewSpec, calendar: Calendar); - buildPrev(currentDateProfile: DateProfile, currentDate: DateMarker): DateProfile; - buildNext(currentDateProfile: DateProfile, currentDate: DateMarker): DateProfile; - build(currentDate: DateMarker, direction?: any, forceToValid?: boolean): DateProfile; - buildValidRange(): OpenDateRange; - buildCurrentRangeInfo(date: DateMarker, direction: any): { - duration: any; - unit: any; - range: any; - }; - getFallbackDuration(): Duration; - adjustActiveRange(range: DateRange, minTime: Duration, maxTime: Duration): { - start: Date; - end: Date; - }; - buildRangeFromDuration(date: DateMarker, direction: any, duration: Duration, unit: any): any; - buildRangeFromDayCount(date: DateMarker, direction: any, dayCount: any): { - start: Date; - end: Date; - }; - buildCustomVisibleRange(date: DateMarker): OpenDateRange; - buildRenderRange(currentRange: DateRange, currentRangeUnit: any, isRangeAllDay: any): DateRange; - buildDateIncrement(fallback: any): Duration; - getRangeOption(name: any, ...otherArgs: any[]): OpenDateRange; - initHiddenDays(): void; - trimHiddenDays(range: DateRange): DateRange | null; - isHiddenDay(day: any): boolean; - skipHiddenDays(date: DateMarker, inc?: number, isExclusive?: boolean): Date; - } - export function isDateProfilesEqual(p0: DateProfile, p1: DateProfile): boolean; -} - -declare module '@fullcalendar/core/structs/view-def' { - import { ViewClass, ViewConfigHash } from '@fullcalendar/core/structs/view-config'; - export interface ViewDef { - type: string; - class: ViewClass; - overrides: any; - defaults: any; - } - export type ViewDefHash = { - [viewType: string]: ViewDef; - }; - export function compileViewDefs(defaultConfigs: ViewConfigHash, overrideConfigs: ViewConfigHash): ViewDefHash; -} - -declare module '@fullcalendar/core/structs/view-spec' { - import { Duration } from '@fullcalendar/core/datelib/duration'; - import OptionsManager from '@fullcalendar/core/OptionsManager'; - import { ViewConfigInputHash, ViewClass } from '@fullcalendar/core/structs/view-config'; - export interface ViewSpec { - type: string; - class: ViewClass; - duration: Duration; - durationUnit: string; - singleUnit: string; - options: any; - buttonTextOverride: string; - buttonTextDefault: string; - } - export type ViewSpecHash = { - [viewType: string]: ViewSpec; - }; - export function buildViewSpecs(defaultInputs: ViewConfigInputHash, optionsManager: OptionsManager): ViewSpecHash; -} - -declare module '@fullcalendar/core/structs/date-span' { - import { DateRange, OpenDateRange } from '@fullcalendar/core/datelib/date-range'; - import { DateInput, DateEnv } from '@fullcalendar/core/datelib/env'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { EventRenderRange } from '@fullcalendar/core/component/event-rendering'; - import { EventUiHash } from '@fullcalendar/core/component/event-ui'; - import Calendar from '@fullcalendar/core/Calendar'; - export interface OpenDateSpanInput { - start?: DateInput; - end?: DateInput; - allDay?: boolean; - [otherProp: string]: any; - } - export interface DateSpanInput extends OpenDateSpanInput { - start: DateInput; - end: DateInput; - } - export interface OpenDateSpan { - range: OpenDateRange; - allDay: boolean; - [otherProp: string]: any; - } - export interface DateSpan extends OpenDateSpan { - range: DateRange; - } - export interface DateSpanApi { - start: Date; - end: Date; - startStr: string; - endStr: string; - allDay: boolean; - } - export interface DatePointApi { - date: Date; - dateStr: string; - allDay: boolean; - } - export function parseDateSpan(raw: DateSpanInput, dateEnv: DateEnv, defaultDuration?: Duration): DateSpan | null; - export function parseOpenDateSpan(raw: OpenDateSpanInput, dateEnv: DateEnv): OpenDateSpan | null; - export function isDateSpansEqual(span0: DateSpan, span1: DateSpan): boolean; - export function buildDateSpanApi(span: DateSpan, dateEnv: DateEnv): DateSpanApi; - export function buildDatePointApi(span: DateSpan, dateEnv: DateEnv): DatePointApi; - export function fabricateEventRange(dateSpan: DateSpan, eventUiBases: EventUiHash, calendar: Calendar): EventRenderRange; -} - -declare module '@fullcalendar/core/datelib/marker' { - import { Duration } from '@fullcalendar/core/datelib/duration'; - export type DateMarker = Date; - export const DAY_IDS: string[]; - export function addWeeks(m: DateMarker, n: number): Date; - export function addDays(m: DateMarker, n: number): Date; - export function addMs(m: DateMarker, n: number): Date; - export function diffWeeks(m0: any, m1: any): number; - export function diffDays(m0: any, m1: any): number; - export function diffHours(m0: any, m1: any): number; - export function diffMinutes(m0: any, m1: any): number; - export function diffSeconds(m0: any, m1: any): number; - export function diffDayAndTime(m0: DateMarker, m1: DateMarker): Duration; - export function diffWholeWeeks(m0: DateMarker, m1: DateMarker): number; - export function diffWholeDays(m0: DateMarker, m1: DateMarker): number; - export function startOfDay(m: DateMarker): DateMarker; - export function startOfHour(m: DateMarker): Date; - export function startOfMinute(m: DateMarker): Date; - export function startOfSecond(m: DateMarker): Date; - export function weekOfYear(marker: any, dow: any, doy: any): number; - export function dateToLocalArray(date: any): any[]; - export function arrayToLocalDate(a: any): Date; - export function dateToUtcArray(date: any): any[]; - export function arrayToUtcDate(a: any): Date; - export function isValidDate(m: DateMarker): boolean; - export function timeAsMs(m: DateMarker): number; -} - -declare module '@fullcalendar/core/datelib/duration' { - export type DurationInput = DurationObjectInput | string | number; - export interface DurationObjectInput { - years?: number; - year?: number; - months?: number; - month?: number; - weeks?: number; - week?: number; - days?: number; - day?: number; - hours?: number; - hour?: number; - minutes?: number; - minute?: number; - seconds?: number; - second?: number; - milliseconds?: number; - millisecond?: number; - ms?: number; - } - export interface Duration { - years: number; - months: number; - days: number; - milliseconds: number; - } - export function createDuration(input: DurationInput, unit?: string): Duration | null; - export function getWeeksFromInput(obj: DurationObjectInput): number; - export function durationsEqual(d0: Duration, d1: Duration): boolean; - export function isSingleDay(dur: Duration): boolean; - export function addDurations(d0: Duration, d1: Duration): { - years: number; - months: number; - days: number; - milliseconds: number; - }; - export function subtractDurations(d1: Duration, d0: Duration): Duration; - export function multiplyDuration(d: Duration, n: number): { - years: number; - months: number; - days: number; - milliseconds: number; - }; - export function asRoughYears(dur: Duration): number; - export function asRoughMonths(dur: Duration): number; - export function asRoughDays(dur: Duration): number; - export function asRoughHours(dur: Duration): number; - export function asRoughMinutes(dur: Duration): number; - export function asRoughSeconds(dur: Duration): number; - export function asRoughMs(dur: Duration): number; - export function wholeDivideDurations(numerator: Duration, denominator: Duration): number; - export function greatestDurationDenominator(dur: Duration, dontReturnWeeks?: boolean): { - unit: string; - value: number; - }; -} - -declare module '@fullcalendar/core/datelib/env' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { CalendarSystem } from '@fullcalendar/core/datelib/calendar-system'; - import { Locale } from '@fullcalendar/core/datelib/locale'; - import { NamedTimeZoneImpl, NamedTimeZoneImplClass } from '@fullcalendar/core/datelib/timezone'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateFormatter } from '@fullcalendar/core/datelib/formatting'; - import { CmdFormatterFunc } from '@fullcalendar/core/datelib/formatting-cmd'; - export interface DateEnvSettings { - timeZone: string; - namedTimeZoneImpl?: NamedTimeZoneImplClass; - calendarSystem: string; - locale: Locale; - weekNumberCalculation?: any; - firstDay?: any; - weekLabel?: string; - cmdFormatter?: CmdFormatterFunc; - } - export type DateInput = Date | string | number | number[]; - export interface DateMarkerMeta { - marker: DateMarker; - isTimeUnspecified: boolean; - forcedTzo: number | null; - } - export class DateEnv { - timeZone: string; - namedTimeZoneImpl: NamedTimeZoneImpl; - canComputeOffset: boolean; - calendarSystem: CalendarSystem; - locale: Locale; - weekDow: number; - weekDoy: number; - weekNumberFunc: any; - weekLabel: string; - cmdFormatter?: CmdFormatterFunc; - constructor(settings: DateEnvSettings); - createMarker(input: DateInput): DateMarker; - createNowMarker(): DateMarker; - createMarkerMeta(input: DateInput): DateMarkerMeta; - parse(s: string): { - marker: Date; - isTimeUnspecified: boolean; - forcedTzo: any; - }; - getYear(marker: DateMarker): number; - getMonth(marker: DateMarker): number; - add(marker: DateMarker, dur: Duration): DateMarker; - subtract(marker: DateMarker, dur: Duration): DateMarker; - addYears(marker: DateMarker, n: number): Date; - addMonths(marker: DateMarker, n: number): Date; - diffWholeYears(m0: DateMarker, m1: DateMarker): number; - diffWholeMonths(m0: DateMarker, m1: DateMarker): number; - greatestWholeUnit(m0: DateMarker, m1: DateMarker): { - unit: string; - value: number; - }; - countDurationsBetween(m0: DateMarker, m1: DateMarker, d: Duration): number; - startOf(m: DateMarker, unit: string): Date; - startOfYear(m: DateMarker): DateMarker; - startOfMonth(m: DateMarker): DateMarker; - startOfWeek(m: DateMarker): DateMarker; - computeWeekNumber(marker: DateMarker): number; - format(marker: DateMarker, formatter: DateFormatter, dateOptions?: { - forcedTzo?: number; - }): any; - formatRange(start: DateMarker, end: DateMarker, formatter: DateFormatter, dateOptions?: { - forcedStartTzo?: number; - forcedEndTzo?: number; - isEndExclusive?: boolean; - }): any; - formatIso(marker: DateMarker, extraOptions?: any): string; - timestampToMarker(ms: number): Date; - offsetForMarker(m: DateMarker): number; - toDate(m: DateMarker, forcedTzo?: number): Date; - } -} - -declare module '@fullcalendar/core/datelib/formatting' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { CalendarSystem } from '@fullcalendar/core/datelib/calendar-system'; - import { Locale } from '@fullcalendar/core/datelib/locale'; - import { CmdFormatterFunc } from '@fullcalendar/core/datelib/formatting-cmd'; - import { FuncFormatterFunc } from '@fullcalendar/core/datelib/formatting-func'; - export interface ZonedMarker { - marker: DateMarker; - timeZoneOffset: number; - } - export interface ExpandedZonedMarker extends ZonedMarker { - array: number[]; - year: number; - month: number; - day: number; - hour: number; - minute: number; - second: number; - millisecond: number; - } - export interface VerboseFormattingArg { - date: ExpandedZonedMarker; - start: ExpandedZonedMarker; - end?: ExpandedZonedMarker; - timeZone: string; - localeCodes: string[]; - separator: string; - } - export interface DateFormattingContext { - timeZone: string; - locale: Locale; - calendarSystem: CalendarSystem; - computeWeekNumber: (d: DateMarker) => number; - weekLabel: string; - cmdFormatter?: CmdFormatterFunc; - } - export interface DateFormatter { - format(date: ZonedMarker, context: DateFormattingContext): any; - formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext): any; - } - export type FormatterInput = object | string | FuncFormatterFunc; - export function createFormatter(input: FormatterInput, defaultSeparator?: string): DateFormatter; - export function buildIsoString(marker: DateMarker, timeZoneOffset?: number, stripZeroTime?: boolean): string; - export function formatIsoTimeString(marker: DateMarker): string; - export function formatTimeZoneOffset(minutes: number, doIso?: boolean): string; - export function createVerboseFormattingArg(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext, separator?: string): VerboseFormattingArg; -} - -declare module '@fullcalendar/core/datelib/timezone' { - export abstract class NamedTimeZoneImpl { - timeZoneName: string; - constructor(timeZoneName: string); - abstract offsetForArray(a: number[]): number; - abstract timestampToArray(ms: number): number[]; - } - export type NamedTimeZoneImplClass = { - new (timeZoneName: string): NamedTimeZoneImpl; - }; -} - -declare module '@fullcalendar/core/datelib/parsing' { - export function parse(str: any): { - marker: Date; - isTimeUnspecified: boolean; - timeZoneOffset: any; - }; -} - -declare module '@fullcalendar/core/structs/event-source' { - import { EventInput } from '@fullcalendar/core/structs/event'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { EventSourceFunc } from '@fullcalendar/core/event-sources/func-event-source'; - import { EventUi } from '@fullcalendar/core/component/event-ui'; - import { ConstraintInput, AllowFunc } from '@fullcalendar/core/validation'; - export type EventSourceError = { - message: string; - response?: any; - [otherProp: string]: any; - }; - export type EventInputTransformer = (eventInput: EventInput) => EventInput | null; - export type EventSourceSuccessResponseHandler = (rawData: any, response: any) => EventInput[] | void; - export type EventSourceErrorResponseHandler = (error: EventSourceError) => void; - export interface ExtendedEventSourceInput { - id?: string | number; - allDayDefault?: boolean; - eventDataTransform?: EventInputTransformer; - events?: EventInput[] | EventSourceFunc; - url?: string; - method?: string; - extraParams?: object | (() => object); - startParam?: string; - endParam?: string; - timeZoneParam?: string; - success?: EventSourceSuccessResponseHandler; - failure?: EventSourceErrorResponseHandler; - editable?: boolean; - startEditable?: boolean; - durationEditable?: boolean; - constraint?: ConstraintInput; - overlap?: boolean; - allow?: AllowFunc; - className?: string[] | string; - classNames?: string[] | string; - backgroundColor?: string; - borderColor?: string; - textColor?: string; - color?: string; - [otherProp: string]: any; - } - export type EventSourceInput = ExtendedEventSourceInput | // object in extended form - EventSourceFunc | // just a function - string; - export interface EventSource { - _raw: any; - sourceId: string; - sourceDefId: number; - meta: any; - publicId: string; - isFetching: boolean; - latestFetchId: string; - fetchRange: DateRange | null; - allDayDefault: boolean | null; - eventDataTransform: EventInputTransformer; - ui: EventUi; - success: EventSourceSuccessResponseHandler | null; - failure: EventSourceErrorResponseHandler | null; - extendedProps: any; - } - export type EventSourceHash = { - [sourceId: string]: EventSource; - }; - export type EventSourceFetcher = (arg: { - eventSource: EventSource; - calendar: Calendar; - range: DateRange; - }, success: (res: { - rawEvents: EventInput[]; - xhr?: XMLHttpRequest; - }) => void, failure: (error: EventSourceError) => void) => (void | PromiseLike); - export interface EventSourceDef { - ignoreRange?: boolean; - parseMeta: (raw: EventSourceInput) => object | null; - fetch: EventSourceFetcher; - } - export function doesSourceNeedRange(eventSource: EventSource, calendar: Calendar): boolean; - export function parseEventSource(raw: EventSourceInput, calendar: Calendar): EventSource | null; -} - -declare module '@fullcalendar/core/interactions/interaction' { - import DateComponent from '@fullcalendar/core/component/DateComponent'; - export abstract class Interaction { - component: DateComponent; - constructor(settings: InteractionSettings); - destroy(): void; - } - export type InteractionClass = { - new (settings: InteractionSettings): Interaction; - }; - export interface InteractionSettingsInput { - el: HTMLElement; - useEventCenter?: boolean; - } - export interface InteractionSettings { - component: DateComponent; - el: HTMLElement; - useEventCenter: boolean; - } - export type InteractionSettingsStore = { - [componenUid: string]: InteractionSettings; - }; - export function parseInteractionSettings(component: DateComponent, input: InteractionSettingsInput): InteractionSettings; - export function interactionSettingsToStore(settings: InteractionSettings): { - [x: string]: InteractionSettings; - }; - export let interactionSettingsStore: InteractionSettingsStore; -} - -declare module '@fullcalendar/core/interactions/pointer' { - export interface PointerDragEvent { - origEvent: UIEvent; - isTouch: boolean; - subjectEl: EventTarget; - pageX: number; - pageY: number; - deltaX: number; - deltaY: number; - } -} - -declare module '@fullcalendar/core/interactions/hit' { - import DateComponent from '@fullcalendar/core/component/DateComponent'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { Rect } from '@fullcalendar/core/util/geom'; - export interface Hit { - component: DateComponent; - dateSpan: DateSpan; - dayEl: HTMLElement; - rect: Rect; - layer: number; - } -} - -declare module '@fullcalendar/core/interactions/date-selecting' { - import { Hit } from '@fullcalendar/core/interactions/hit'; - export type dateSelectionJoinTransformer = (hit0: Hit, hit1: Hit) => any; -} - -declare module '@fullcalendar/core/interactions/event-dragging' { - import Calendar from '@fullcalendar/core/Calendar'; - import { EventMutation } from '@fullcalendar/core/structs/event-mutation'; - import { Hit } from '@fullcalendar/core/interactions/hit'; - import { EventDef } from '@fullcalendar/core/structs/event'; - import { EventUi } from '@fullcalendar/core/component/event-ui'; - import { View } from '@fullcalendar/core'; - export type eventDragMutationMassager = (mutation: EventMutation, hit0: Hit, hit1: Hit) => void; - export type EventDropTransformers = (mutation: EventMutation, calendar: Calendar) => any; - export type eventIsDraggableTransformer = (val: boolean, eventDef: EventDef, eventUi: EventUi, view: View) => boolean; -} - -declare module '@fullcalendar/core/interactions/event-resizing' { - import { Hit } from '@fullcalendar/core/interactions/hit'; - export type EventResizeJoinTransforms = (hit0: Hit, hit1: Hit) => false | object; -} - -declare module '@fullcalendar/core/interactions/ElementDragging' { - import EmitterMixin from '@fullcalendar/core/common/EmitterMixin'; - export { ElementDragging as default, ElementDragging }; - abstract class ElementDragging { - emitter: EmitterMixin; - constructor(el: HTMLElement); - destroy(): void; - abstract setIgnoreMove(bool: boolean): void; - setMirrorIsVisible(bool: boolean): void; - setMirrorNeedsRevert(bool: boolean): void; - setAutoScrollEnabled(bool: boolean): void; - } - export type ElementDraggingClass = { - new (el: HTMLElement): ElementDragging; - }; -} - -declare module '@fullcalendar/core/formatting-api' { - import { DateInput } from '@fullcalendar/core/datelib/env'; - export function formatDate(dateInput: DateInput, settings?: {}): any; - export function formatRange(startInput: DateInput, endInput: DateInput, settings: any): any; -} - -declare module '@fullcalendar/core/options' { - import { PluginDef } from '@fullcalendar/core/plugin-system'; - export const config: any; - export const globalDefaults: { - defaultRangeSeparator: string; - titleRangeSeparator: string; - defaultTimedEventDuration: string; - defaultAllDayEventDuration: { - day: number; - }; - forceEventDuration: boolean; - nextDayThreshold: string; - columnHeader: boolean; - defaultView: string; - aspectRatio: number; - header: { - left: string; - center: string; - right: string; - }; - weekends: boolean; - weekNumbers: boolean; - weekNumberCalculation: string; - editable: boolean; - scrollTime: string; - minTime: string; - maxTime: string; - showNonCurrentDates: boolean; - lazyFetching: boolean; - startParam: string; - endParam: string; - timeZoneParam: string; - timeZone: string; - locales: any[]; - locale: string; - timeGridEventMinHeight: number; - themeSystem: string; - dragRevertDuration: number; - dragScroll: boolean; - allDayMaintainDuration: boolean; - unselectAuto: boolean; - dropAccept: string; - eventOrder: string; - eventLimit: boolean; - eventLimitClick: string; - dayPopoverFormat: { - month: string; - day: string; - year: string; - }; - handleWindowResize: boolean; - windowResizeDelay: number; - longPressDelay: number; - eventDragMinDistance: number; - }; - export const rtlDefaults: { - header: { - left: string; - center: string; - right: string; - }; - buttonIcons: { - prev: string; - next: string; - prevYear: string; - nextYear: string; - }; - }; - export function mergeOptions(optionObjs: any): any; - export function refinePluginDefs(pluginInputs: any[]): PluginDef[]; -} - -declare module '@fullcalendar/core/structs/recurring-event' { - import { EventInput, EventDef } from '@fullcalendar/core/structs/event'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - export interface ParsedRecurring { - typeData: any; - allDayGuess: boolean | null; - duration: Duration | null; - } - export interface RecurringType { - parse: (rawEvent: EventInput, leftoverProps: any, dateEnv: DateEnv) => ParsedRecurring | null; - expand: (typeData: any, framingRange: DateRange, dateEnv: DateEnv) => DateMarker[]; - } - export function parseRecurring(eventInput: EventInput, allDayDefault: boolean | null, dateEnv: DateEnv, recurringTypes: RecurringType[], leftovers: any): { - allDay: any; - duration: Duration; - typeData: any; - typeId: number; - }; - export function expandRecurringRanges(eventDef: EventDef, duration: Duration, framingRange: DateRange, dateEnv: DateEnv, recurringTypes: RecurringType[]): DateMarker[]; -} - -declare module '@fullcalendar/core/structs/drag-meta' { - import { Duration, DurationInput } from '@fullcalendar/core/datelib/duration'; - import { EventNonDateInput } from '@fullcalendar/core/structs/event'; - export interface DragMetaInput extends EventNonDateInput { - startTime?: DurationInput; - duration?: DurationInput; - create?: boolean; - sourceId?: string; - } - export interface DragMeta { - startTime: Duration | null; - duration: Duration | null; - create: boolean; - sourceId: string; - leftoverProps: object; - } - export function parseDragMeta(raw: DragMetaInput): DragMeta; -} - -declare module '@fullcalendar/core/plugin-system' { - import { reducerFunc } from '@fullcalendar/core/reducers/types'; - import { eventDefParserFunc } from '@fullcalendar/core/structs/event'; - import { eventDefMutationApplier } from '@fullcalendar/core/structs/event-mutation'; - import Calendar, { DatePointTransform, DateSpanTransform, CalendarInteractionClass, OptionChangeHandlerMap } from '@fullcalendar/core/Calendar'; - import { ViewConfigInputHash } from '@fullcalendar/core/structs/view-config'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import View, { ViewProps } from '@fullcalendar/core/View'; - import { CalendarComponentProps } from '@fullcalendar/core/CalendarComponent'; - import { isPropsValidTester } from '@fullcalendar/core/validation'; - import { eventDragMutationMassager, eventIsDraggableTransformer, EventDropTransformers } from '@fullcalendar/core/interactions/event-dragging'; - import { dateSelectionJoinTransformer } from '@fullcalendar/core/interactions/date-selecting'; - import { EventResizeJoinTransforms } from '@fullcalendar/core/interactions/event-resizing'; - import { ExternalDefTransform } from '@fullcalendar/core/interactions/external-element-dragging'; - import { InteractionClass } from '@fullcalendar/core/interactions/interaction'; - import { ThemeClass } from '@fullcalendar/core/theme/Theme'; - import { EventSourceDef } from '@fullcalendar/core/structs/event-source'; - import { CmdFormatterFunc } from '@fullcalendar/core/datelib/formatting-cmd'; - import { RecurringType } from '@fullcalendar/core/structs/recurring-event'; - import { NamedTimeZoneImplClass } from '@fullcalendar/core/datelib/timezone'; - import { ElementDraggingClass } from '@fullcalendar/core/interactions/ElementDragging'; - export interface PluginDefInput { - deps?: PluginDef[]; - reducers?: reducerFunc[]; - eventDefParsers?: eventDefParserFunc[]; - isDraggableTransformers?: eventIsDraggableTransformer[]; - eventDragMutationMassagers?: eventDragMutationMassager[]; - eventDefMutationAppliers?: eventDefMutationApplier[]; - dateSelectionTransformers?: dateSelectionJoinTransformer[]; - datePointTransforms?: DatePointTransform[]; - dateSpanTransforms?: DateSpanTransform[]; - views?: ViewConfigInputHash; - viewPropsTransformers?: ViewPropsTransformerClass[]; - isPropsValid?: isPropsValidTester; - externalDefTransforms?: ExternalDefTransform[]; - eventResizeJoinTransforms?: EventResizeJoinTransforms[]; - viewContainerModifiers?: ViewContainerModifier[]; - eventDropTransformers?: EventDropTransformers[]; - componentInteractions?: InteractionClass[]; - calendarInteractions?: CalendarInteractionClass[]; - themeClasses?: { - [themeSystemName: string]: ThemeClass; - }; - eventSourceDefs?: EventSourceDef[]; - cmdFormatter?: CmdFormatterFunc; - recurringTypes?: RecurringType[]; - namedTimeZonedImpl?: NamedTimeZoneImplClass; - defaultView?: string; - elementDraggingImpl?: ElementDraggingClass; - optionChangeHandlers?: OptionChangeHandlerMap; - } - export interface PluginHooks { - reducers: reducerFunc[]; - eventDefParsers: eventDefParserFunc[]; - isDraggableTransformers: eventIsDraggableTransformer[]; - eventDragMutationMassagers: eventDragMutationMassager[]; - eventDefMutationAppliers: eventDefMutationApplier[]; - dateSelectionTransformers: dateSelectionJoinTransformer[]; - datePointTransforms: DatePointTransform[]; - dateSpanTransforms: DateSpanTransform[]; - views: ViewConfigInputHash; - viewPropsTransformers: ViewPropsTransformerClass[]; - isPropsValid: isPropsValidTester | null; - externalDefTransforms: ExternalDefTransform[]; - eventResizeJoinTransforms: EventResizeJoinTransforms[]; - viewContainerModifiers: ViewContainerModifier[]; - eventDropTransformers: EventDropTransformers[]; - componentInteractions: InteractionClass[]; - calendarInteractions: CalendarInteractionClass[]; - themeClasses: { - [themeSystemName: string]: ThemeClass; - }; - eventSourceDefs: EventSourceDef[]; - cmdFormatter?: CmdFormatterFunc; - recurringTypes: RecurringType[]; - namedTimeZonedImpl?: NamedTimeZoneImplClass; - defaultView: string; - elementDraggingImpl?: ElementDraggingClass; - optionChangeHandlers: OptionChangeHandlerMap; - } - export interface PluginDef extends PluginHooks { - id: string; - deps: PluginDef[]; - } - export type ViewPropsTransformerClass = new () => ViewPropsTransformer; - export interface ViewPropsTransformer { - transform(viewProps: ViewProps, viewSpec: ViewSpec, calendarProps: CalendarComponentProps, view: View): any; - } - export type ViewContainerModifier = (contentEl: HTMLElement, calendar: Calendar) => void; - export function createPlugin(input: PluginDefInput): PluginDef; - export class PluginSystem { - hooks: PluginHooks; - addedHash: { - [pluginId: string]: true; - }; - constructor(); - add(plugin: PluginDef): void; - } -} - -declare module '@fullcalendar/core/reducers/types' { - import { EventInput, EventInstanceHash } from '@fullcalendar/core/structs/event'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventMutation } from '@fullcalendar/core/structs/event-mutation'; - import { EventSource, EventSourceHash, EventSourceError } from '@fullcalendar/core/structs/event-source'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - export interface CalendarState { - eventSources: EventSourceHash; - eventSourceLoadingLevel: number; - loadingLevel: number; - viewType: string; - currentDate: DateMarker; - dateProfile: DateProfile | null; - eventStore: EventStore; - dateSelection: DateSpan | null; - eventSelection: string; - eventDrag: EventInteractionState | null; - eventResize: EventInteractionState | null; - } - export type reducerFunc = (state: CalendarState, action: Action, calendar: Calendar) => CalendarState; - export type Action = { - type: 'INIT'; - } | // wont it create another rerender? - { - type: 'PREV'; - } | { - type: 'NEXT'; - } | { - type: 'SET_DATE'; - dateMarker: DateMarker; - } | { - type: 'SET_VIEW_TYPE'; - viewType: string; - dateMarker?: DateMarker; - } | { - type: 'SELECT_DATES'; - selection: DateSpan; - } | { - type: 'UNSELECT_DATES'; - } | { - type: 'SELECT_EVENT'; - eventInstanceId: string; - } | { - type: 'UNSELECT_EVENT'; - } | { - type: 'SET_EVENT_DRAG'; - state: EventInteractionState; - } | { - type: 'UNSET_EVENT_DRAG'; - } | { - type: 'SET_EVENT_RESIZE'; - state: EventInteractionState; - } | { - type: 'UNSET_EVENT_RESIZE'; - } | { - type: 'ADD_EVENT_SOURCES'; - sources: EventSource[]; - } | { - type: 'REMOVE_EVENT_SOURCE'; - sourceId: string; - } | { - type: 'REMOVE_ALL_EVENT_SOURCES'; - } | { - type: 'FETCH_EVENT_SOURCES'; - sourceIds?: string[]; - } | // if no sourceIds, fetch all - { - type: 'CHANGE_TIMEZONE'; - oldDateEnv: DateEnv; - } | { - type: 'RECEIVE_EVENTS'; - sourceId: string; - fetchId: string; - fetchRange: DateRange | null; - rawEvents: EventInput[]; - } | { - type: 'RECEIVE_EVENT_ERROR'; - sourceId: string; - fetchId: string; - fetchRange: DateRange | null; - error: EventSourceError; - } | // need all these? - { - type: 'ADD_EVENTS'; - eventStore: EventStore; - } | { - type: 'MERGE_EVENTS'; - eventStore: EventStore; - } | { - type: 'MUTATE_EVENTS'; - instanceId: string; - mutation: EventMutation; - fromApi?: boolean; - } | { - type: 'REMOVE_EVENT_DEF'; - defId: string; - } | { - type: 'REMOVE_EVENT_INSTANCES'; - instances: EventInstanceHash; - } | { - type: 'REMOVE_ALL_EVENTS'; - } | { - type: 'RESET_EVENTS'; - }; -} - -declare module '@fullcalendar/core/CalendarComponent' { - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import View from '@fullcalendar/core/View'; - import Toolbar from '@fullcalendar/core/Toolbar'; - import DateProfileGenerator, { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventUiHash } from '@fullcalendar/core/component/event-ui'; - import { BusinessHoursInput } from '@fullcalendar/core/structs/business-hours'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { CalendarState } from '@fullcalendar/core/reducers/types'; - export interface CalendarComponentProps extends CalendarState { - viewSpec: ViewSpec; - dateProfileGenerator: DateProfileGenerator; - eventUiBases: EventUiHash; - } - export { CalendarComponent as default, CalendarComponent }; - class CalendarComponent extends Component { - view: View; - header: Toolbar; - footer: Toolbar; - computeTitle: (dateProfile: any, viewOptions: any) => string; - parseBusinessHours: (input: BusinessHoursInput) => EventStore; - el: HTMLElement; - contentEl: HTMLElement; - isHeightAuto: boolean; - viewHeight: number; - constructor(context: ComponentContext, el: HTMLElement); - destroy(): void; - toggleElClassNames(bool: boolean): void; - render(props: CalendarComponentProps): void; - renderToolbars(viewSpec: ViewSpec, dateProfile: DateProfile, currentDate: DateMarker, dateProfileGenerator: DateProfileGenerator, title: string): void; - renderView(props: CalendarComponentProps, title: string): void; - updateSize(isResize?: boolean): void; - computeHeightVars(): void; - queryToolbarsHeight(): number; - freezeHeight(): void; - thawHeight(): void; - } -} - -declare module '@fullcalendar/core/common/DayHeader' { - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - export interface DayTableHeaderProps { - dates: DateMarker[]; - dateProfile: DateProfile; - datesRepDistinctDays: boolean; - renderIntroHtml?: () => string; - } - export { DayHeader as default, DayHeader }; - class DayHeader extends Component { - el: HTMLElement; - thead: HTMLElement; - constructor(context: ComponentContext, parentEl: HTMLElement); - destroy(): void; - render(props: DayTableHeaderProps): void; - } -} - -declare module '@fullcalendar/core/common/table-utils' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - export function computeFallbackHeaderFormat(datesRepDistinctDays: boolean, dayCnt: number): { - weekday: string; - month?: undefined; - day?: undefined; - omitCommas?: undefined; - } | { - weekday: string; - month: string; - day: string; - omitCommas: boolean; - }; - export function renderDateCell(dateMarker: DateMarker, dateProfile: DateProfile, datesRepDistinctDays: any, colCnt: any, colHeadFormat: any, context: ComponentContext, colspan?: any, otherAttrs?: any): string; -} - -declare module '@fullcalendar/core/common/DaySeries' { - import DateProfileGenerator from '@fullcalendar/core/DateProfileGenerator'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - export interface DaySeriesSeg { - firstIndex: number; - lastIndex: number; - isStart: boolean; - isEnd: boolean; - } - export { DaySeries as default, DaySeries }; - class DaySeries { - cnt: number; - dates: DateMarker[]; - indices: number[]; - constructor(range: DateRange, dateProfileGenerator: DateProfileGenerator); - sliceRange(range: DateRange): DaySeriesSeg | null; - } -} - -declare module '@fullcalendar/core/interactions/event-interaction-state' { - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { Seg } from '@fullcalendar/core/component/DateComponent'; - export interface EventInteractionState { - affectedEvents: EventStore; - mutatedEvents: EventStore; - isEvent: boolean; - origSeg: Seg | null; - } -} - -declare module '@fullcalendar/core/component/event-rendering' { - import { EventDef, EventTuple, EventDefHash } from '@fullcalendar/core/structs/event'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { Seg } from '@fullcalendar/core/component/DateComponent'; - import View from '@fullcalendar/core/View'; - import { EventUi, EventUiHash } from '@fullcalendar/core/component/event-ui'; - export interface EventRenderRange extends EventTuple { - ui: EventUi; - range: DateRange; - isStart: boolean; - isEnd: boolean; - } - export function sliceEventStore(eventStore: EventStore, eventUiBases: EventUiHash, framingRange: DateRange, nextDayThreshold?: Duration): { - bg: EventRenderRange[]; - fg: EventRenderRange[]; - }; - export function hasBgRendering(def: EventDef): boolean; - export function filterSegsViaEls(view: View, segs: Seg[], isMirror: boolean): Seg[]; - export function getElSeg(el: HTMLElement): Seg | null; - export function compileEventUis(eventDefs: EventDefHash, eventUiBases: EventUiHash): { - [key: string]: EventUi; - }; - export function compileEventUi(eventDef: EventDef, eventUiBases: EventUiHash): EventUi; -} - -declare module '@fullcalendar/core/common/DayTable' { - import DaySeries from '@fullcalendar/core/common/DaySeries'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Seg } from '@fullcalendar/core/component/DateComponent'; - export interface DayTableSeg extends Seg { - row: number; - firstCol: number; - lastCol: number; - } - export interface DayTableCell { - date: DateMarker; - htmlAttrs?: string; - } - export { DayTable as default, DayTable }; - class DayTable { - rowCnt: number; - colCnt: number; - cells: DayTableCell[][]; - headerDates: DateMarker[]; - constructor(daySeries: DaySeries, breakOnWeeks: boolean); - sliceRange(range: DateRange): DayTableSeg[]; - } -} - -declare module '@fullcalendar/core/common/slicing-utils' { - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventUiHash } from '@fullcalendar/core/component/event-ui'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import DateComponent, { Seg, EventSegUiInteractionState } from '@fullcalendar/core/component/DateComponent'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - export interface SliceableProps { - dateSelection: DateSpan; - businessHours: EventStore; - eventStore: EventStore; - eventDrag: EventInteractionState | null; - eventResize: EventInteractionState | null; - eventSelection: string; - eventUiBases: EventUiHash; - } - export interface SlicedProps { - dateSelectionSegs: SegType[]; - businessHourSegs: SegType[]; - fgEventSegs: SegType[]; - bgEventSegs: SegType[]; - eventDrag: EventSegUiInteractionState | null; - eventResize: EventSegUiInteractionState | null; - eventSelection: string; - } - export { Slicer as default, Slicer }; - abstract class Slicer { - abstract sliceRange(dateRange: DateRange, ...extraArgs: ExtraArgs): SegType[]; - sliceProps(props: SliceableProps, dateProfile: DateProfile, nextDayThreshold: Duration | null, component: DateComponent, // TODO: kill - ...extraArgs: ExtraArgs): SlicedProps; - sliceNowDate(// does not memoize - date: DateMarker, component: DateComponent, // TODO: kill - ...extraArgs: ExtraArgs): SegType[]; - } -} - -declare module '@fullcalendar/core/structs/event-mutation' { - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventDef } from '@fullcalendar/core/structs/event'; - import Calendar from '@fullcalendar/core/Calendar'; - import { EventUiHash } from '@fullcalendar/core/component/event-ui'; - export interface EventMutation { - datesDelta?: Duration; - startDelta?: Duration; - endDelta?: Duration; - standardProps?: any; - extendedProps?: any; - } - export function applyMutationToEventStore(eventStore: EventStore, eventConfigBase: EventUiHash, mutation: EventMutation, calendar: Calendar): EventStore; - export type eventDefMutationApplier = (eventDef: EventDef, mutation: EventMutation, calendar: Calendar) => void; -} - -declare module '@fullcalendar/core/validation' { - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateSpan, DateSpanApi } from '@fullcalendar/core/structs/date-span'; - import EventApi from '@fullcalendar/core/api/EventApi'; - import { EventInput } from '@fullcalendar/core/structs/event'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { SplittableProps } from '@fullcalendar/core/component/event-splitting'; - export type ConstraintInput = 'businessHours' | string | EventInput | EventInput[]; - export type Constraint = 'businessHours' | string | EventStore | false; - export type OverlapFunc = ((stillEvent: EventApi, movingEvent: EventApi | null) => boolean); - export type AllowFunc = (span: DateSpanApi, movingEvent: EventApi | null) => boolean; - export type isPropsValidTester = (props: SplittableProps, calendar: Calendar) => boolean; - export function isInteractionValid(interaction: EventInteractionState, calendar: Calendar): boolean; - export function isDateSelectionValid(dateSelection: DateSpan, calendar: Calendar): boolean; - export function isPropsValid(state: SplittableProps, calendar: Calendar, dateSpanMeta?: {}, filterConfig?: any): boolean; - export function normalizeConstraint(input: ConstraintInput, calendar: Calendar): Constraint | null; -} - -declare module '@fullcalendar/core/api/EventApi' { - import Calendar from '@fullcalendar/core/Calendar'; - import { EventDef, EventInstance } from '@fullcalendar/core/structs/event'; - import { EventMutation } from '@fullcalendar/core/structs/event-mutation'; - import { DateInput } from '@fullcalendar/core/datelib/env'; - import { DurationInput } from '@fullcalendar/core/datelib/duration'; - import { FormatterInput } from '@fullcalendar/core/datelib/formatting'; - import EventSourceApi from '@fullcalendar/core/api/EventSourceApi'; - export { EventApi as default, EventApi }; - class EventApi { - _calendar: Calendar; - _def: EventDef; - _instance: EventInstance | null; - constructor(calendar: Calendar, def: EventDef, instance?: EventInstance); - setProp(name: string, val: string): void; - setExtendedProp(name: string, val: any): void; - setStart(startInput: DateInput, options?: { - granularity?: string; - maintainDuration?: boolean; - }): void; - setEnd(endInput: DateInput | null, options?: { - granularity?: string; - }): void; - setDates(startInput: DateInput, endInput: DateInput | null, options?: { - allDay?: boolean; - granularity?: string; - }): void; - moveStart(deltaInput: DurationInput): void; - moveEnd(deltaInput: DurationInput): void; - moveDates(deltaInput: DurationInput): void; - setAllDay(allDay: boolean, options?: { - maintainDuration?: boolean; - }): void; - formatRange(formatInput: FormatterInput): any; - mutate(mutation: EventMutation): void; - remove(): void; - readonly source: EventSourceApi | null; - readonly start: Date | null; - readonly end: Date | null; - readonly id: string; - readonly groupId: string; - readonly allDay: boolean; - readonly title: string; - readonly url: string; - readonly rendering: string; - readonly startEditable: boolean; - readonly durationEditable: boolean; - readonly constraint: any; - readonly overlap: any; - readonly allow: any; - readonly backgroundColor: string; - readonly borderColor: string; - readonly textColor: string; - readonly classNames: string[]; - readonly extendedProps: any; - } -} - -declare module '@fullcalendar/core/util/requestJson' { - export default function requestJson(method: string, url: string, params: object, successCallback: any, failureCallback: any): void; -} - -declare module '@fullcalendar/core/datelib/locale' { - export type LocaleCodeArg = string | string[]; - export type LocaleSingularArg = LocaleCodeArg | RawLocale; - export interface Locale { - codeArg: LocaleCodeArg; - codes: string[]; - week: { - dow: number; - doy: number; - }; - simpleNumberFormat: Intl.NumberFormat; - options: any; - } - export interface RawLocale { - code: string; - [otherProp: string]: any; - } - export type RawLocaleMap = { - [code: string]: RawLocale; - }; - export interface RawLocaleInfo { - map: RawLocaleMap; - defaultCode: string; - } - export function parseRawLocales(explicitRawLocales: RawLocale[]): RawLocaleInfo; - export function buildLocale(inputSingular: LocaleSingularArg, available: RawLocaleMap): Locale; -} - -declare module '@fullcalendar/core/OptionsManager' { - export { OptionsManager as default, OptionsManager }; - class OptionsManager { - dirDefaults: any; - localeDefaults: any; - overrides: any; - dynamicOverrides: any; - computed: any; - constructor(overrides: any); - mutate(updates: any, removals: string[], isDynamic?: boolean): void; - compute(): void; - } -} - -declare module '@fullcalendar/core/api/EventSourceApi' { - import Calendar from '@fullcalendar/core/Calendar'; - import { EventSource } from '@fullcalendar/core/structs/event-source'; - export { EventSourceApi as default, EventSourceApi }; - class EventSourceApi { - calendar: Calendar; - internalEventSource: EventSource; - constructor(calendar: Calendar, internalEventSource: EventSource); - remove(): void; - refetch(): void; - readonly id: string; - readonly url: string; - } -} - -declare module '@fullcalendar/core/structs/view-config' { - import View from '@fullcalendar/core/View'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - import DateProfileGenerator from '@fullcalendar/core/DateProfileGenerator'; - export type ViewClass = new (context: ComponentContext, viewSpec: ViewSpec, dateProfileGenerator: DateProfileGenerator, parentEl: HTMLElement) => View; - export interface ViewConfigObjectInput { - type?: string; - class?: ViewClass; - [optionName: string]: any; - } - export type ViewConfigInput = ViewClass | ViewConfigObjectInput; - export type ViewConfigInputHash = { - [viewType: string]: ViewConfigInput; - }; - export interface ViewConfig { - superType: string; - class: ViewClass | null; - options: any; - } - export type ViewConfigHash = { - [viewType: string]: ViewConfig; - }; - export function parseViewConfigs(inputs: ViewConfigInputHash): ViewConfigHash; -} - -declare module '@fullcalendar/core/datelib/calendar-system' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - export interface CalendarSystem { - getMarkerYear(d: DateMarker): number; - getMarkerMonth(d: DateMarker): number; - getMarkerDay(d: DateMarker): number; - arrayToMarker(arr: number[]): DateMarker; - markerToArray(d: DateMarker): number[]; - } - export function registerCalendarSystem(name: any, theClass: any): void; - export function createCalendarSystem(name: any): any; -} - -declare module '@fullcalendar/core/datelib/formatting-cmd' { - import { DateFormatter, DateFormattingContext, ZonedMarker, VerboseFormattingArg } from '@fullcalendar/core/datelib/formatting'; - export type CmdFormatterFunc = (cmd: string, arg: VerboseFormattingArg) => string; - export class CmdFormatter implements DateFormatter { - cmdStr: string; - separator: string; - constructor(cmdStr: string, separator?: string); - format(date: ZonedMarker, context: DateFormattingContext): string; - formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext): string; - } -} - -declare module '@fullcalendar/core/datelib/formatting-func' { - import { DateFormatter, DateFormattingContext, ZonedMarker, VerboseFormattingArg } from '@fullcalendar/core/datelib/formatting'; - export type FuncFormatterFunc = (arg: VerboseFormattingArg) => string; - export class FuncFormatter implements DateFormatter { - func: FuncFormatterFunc; - constructor(func: FuncFormatterFunc); - format(date: ZonedMarker, context: DateFormattingContext): string; - formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext): string; - } -} - -declare module '@fullcalendar/core/event-sources/func-event-source' { - import { EventSourceError } from '@fullcalendar/core/structs/event-source'; - import { EventInput } from '@fullcalendar/core/structs/event'; - export type EventSourceFunc = (arg: { - start: Date; - end: Date; - timeZone: string; - }, successCallback: (events: EventInput[]) => void, failureCallback: (error: EventSourceError) => void) => (void | PromiseLike); - const _default: import("@fullcalendar/core/plugin-system").PluginDef; - export default _default; -} - -declare module '@fullcalendar/core/interactions/external-element-dragging' { - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { DragMeta } from '@fullcalendar/core/structs/drag-meta'; - export type ExternalDefTransform = (dateSpan: DateSpan, dragMeta: DragMeta) => any; -} - -declare module '@fullcalendar/core/Toolbar' { - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - export interface ToolbarRenderProps { - layout: any; - title: string; - activeButton: string; - isTodayEnabled: boolean; - isPrevEnabled: boolean; - isNextEnabled: boolean; - } - export { Toolbar as default, Toolbar }; - class Toolbar extends Component { - el: HTMLElement; - viewsWithButtons: any; - constructor(context: ComponentContext, extraClassName: any); - destroy(): void; - render(props: ToolbarRenderProps): void; - renderLayout(layout: any): void; - unrenderLayout(): void; - renderSection(position: any, buttonStr: any): HTMLElement; - updateToday(isTodayEnabled: any): void; - updatePrev(isPrevEnabled: any): void; - updateNext(isNextEnabled: any): void; - updateTitle(text: any): void; - updateActiveButton(buttonName?: any): void; - toggleButtonEnabled(buttonName: any, bool: any): void; - } -} - diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/main.esm.js b/htdocs/public/high/plugins/fullcalendar/packages/core/main.esm.js deleted file mode 100644 index b3d27d75..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/main.esm.js +++ /dev/null @@ -1,8558 +0,0 @@ -/*! -FullCalendar Core Package v4.3.1 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -// Creating -// ---------------------------------------------------------------------------------------------------------------- -var elementPropHash = { - className: true, - colSpan: true, - rowSpan: true -}; -var containerTagHash = { - '= rect.left && - point.left < rect.right && - point.top >= rect.top && - point.top < rect.bottom; -} -// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false -function intersectRects(rect1, rect2) { - var res = { - left: Math.max(rect1.left, rect2.left), - right: Math.min(rect1.right, rect2.right), - top: Math.max(rect1.top, rect2.top), - bottom: Math.min(rect1.bottom, rect2.bottom) - }; - if (res.left < res.right && res.top < res.bottom) { - return res; - } - return false; -} -function translateRect(rect, deltaX, deltaY) { - return { - left: rect.left + deltaX, - right: rect.right + deltaX, - top: rect.top + deltaY, - bottom: rect.bottom + deltaY - }; -} -// Returns a new point that will have been moved to reside within the given rectangle -function constrainPoint(point, rect) { - return { - left: Math.min(Math.max(point.left, rect.left), rect.right), - top: Math.min(Math.max(point.top, rect.top), rect.bottom) - }; -} -// Returns a point that is the center of the given rectangle -function getRectCenter(rect) { - return { - left: (rect.left + rect.right) / 2, - top: (rect.top + rect.bottom) / 2 - }; -} -// Subtracts point2's coordinates from point1's coordinates, returning a delta -function diffPoints(point1, point2) { - return { - left: point1.left - point2.left, - top: point1.top - point2.top - }; -} - -// Logic for determining if, when the element is right-to-left, the scrollbar appears on the left side -var isRtlScrollbarOnLeft = null; -function getIsRtlScrollbarOnLeft() { - if (isRtlScrollbarOnLeft === null) { - isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft(); - } - return isRtlScrollbarOnLeft; -} -function computeIsRtlScrollbarOnLeft() { - var outerEl = createElement('div', { - style: { - position: 'absolute', - top: -1000, - left: 0, - border: 0, - padding: 0, - overflow: 'scroll', - direction: 'rtl' - } - }, '
'); - document.body.appendChild(outerEl); - var innerEl = outerEl.firstChild; - var res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left; - removeElement(outerEl); - return res; -} -// The scrollbar width computations in computeEdges are sometimes flawed when it comes to -// retina displays, rounding, and IE11. Massage them into a usable value. -function sanitizeScrollbarWidth(width) { - width = Math.max(0, width); // no negatives - width = Math.round(width); - return width; -} - -function computeEdges(el, getPadding) { - if (getPadding === void 0) { getPadding = false; } - var computedStyle = window.getComputedStyle(el); - var borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0; - var borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0; - var borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0; - var borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0; - // must use offset(Width|Height) because compatible with client(Width|Height) - var scrollbarLeftRight = sanitizeScrollbarWidth(el.offsetWidth - el.clientWidth - borderLeft - borderRight); - var scrollbarBottom = sanitizeScrollbarWidth(el.offsetHeight - el.clientHeight - borderTop - borderBottom); - var res = { - borderLeft: borderLeft, - borderRight: borderRight, - borderTop: borderTop, - borderBottom: borderBottom, - scrollbarBottom: scrollbarBottom, - scrollbarLeft: 0, - scrollbarRight: 0 - }; - if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') { // is the scrollbar on the left side? - res.scrollbarLeft = scrollbarLeftRight; - } - else { - res.scrollbarRight = scrollbarLeftRight; - } - if (getPadding) { - res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0; - res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0; - res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0; - res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0; - } - return res; -} -function computeInnerRect(el, goWithinPadding) { - if (goWithinPadding === void 0) { goWithinPadding = false; } - var outerRect = computeRect(el); - var edges = computeEdges(el, goWithinPadding); - var res = { - left: outerRect.left + edges.borderLeft + edges.scrollbarLeft, - right: outerRect.right - edges.borderRight - edges.scrollbarRight, - top: outerRect.top + edges.borderTop, - bottom: outerRect.bottom - edges.borderBottom - edges.scrollbarBottom - }; - if (goWithinPadding) { - res.left += edges.paddingLeft; - res.right -= edges.paddingRight; - res.top += edges.paddingTop; - res.bottom -= edges.paddingBottom; - } - return res; -} -function computeRect(el) { - var rect = el.getBoundingClientRect(); - return { - left: rect.left + window.pageXOffset, - top: rect.top + window.pageYOffset, - right: rect.right + window.pageXOffset, - bottom: rect.bottom + window.pageYOffset - }; -} -function computeViewportRect() { - return { - left: window.pageXOffset, - right: window.pageXOffset + document.documentElement.clientWidth, - top: window.pageYOffset, - bottom: window.pageYOffset + document.documentElement.clientHeight - }; -} -function computeHeightAndMargins(el) { - return el.getBoundingClientRect().height + computeVMargins(el); -} -function computeVMargins(el) { - var computed = window.getComputedStyle(el); - return parseInt(computed.marginTop, 10) + - parseInt(computed.marginBottom, 10); -} -// does not return window -function getClippingParents(el) { - var parents = []; - while (el instanceof HTMLElement) { // will stop when gets to document or null - var computedStyle = window.getComputedStyle(el); - if (computedStyle.position === 'fixed') { - break; - } - if ((/(auto|scroll)/).test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) { - parents.push(el); - } - el = el.parentNode; - } - return parents; -} -function computeClippingRect(el) { - return getClippingParents(el) - .map(function (el) { - return computeInnerRect(el); - }) - .concat(computeViewportRect()) - .reduce(function (rect0, rect1) { - return intersectRects(rect0, rect1) || rect1; // should always intersect - }); -} - -// Stops a mouse/touch event from doing it's native browser action -function preventDefault(ev) { - ev.preventDefault(); -} -// Event Delegation -// ---------------------------------------------------------------------------------------------------------------- -function listenBySelector(container, eventType, selector, handler) { - function realHandler(ev) { - var matchedChild = elementClosest(ev.target, selector); - if (matchedChild) { - handler.call(matchedChild, ev, matchedChild); - } - } - container.addEventListener(eventType, realHandler); - return function () { - container.removeEventListener(eventType, realHandler); - }; -} -function listenToHoverBySelector(container, selector, onMouseEnter, onMouseLeave) { - var currentMatchedChild; - return listenBySelector(container, 'mouseover', selector, function (ev, matchedChild) { - if (matchedChild !== currentMatchedChild) { - currentMatchedChild = matchedChild; - onMouseEnter(ev, matchedChild); - var realOnMouseLeave_1 = function (ev) { - currentMatchedChild = null; - onMouseLeave(ev, matchedChild); - matchedChild.removeEventListener('mouseleave', realOnMouseLeave_1); - }; - // listen to the next mouseleave, and then unattach - matchedChild.addEventListener('mouseleave', realOnMouseLeave_1); - } - }); -} -// Animation -// ---------------------------------------------------------------------------------------------------------------- -var transitionEventNames = [ - 'webkitTransitionEnd', - 'otransitionend', - 'oTransitionEnd', - 'msTransitionEnd', - 'transitionend' -]; -// triggered only when the next single subsequent transition finishes -function whenTransitionDone(el, callback) { - var realCallback = function (ev) { - callback(ev); - transitionEventNames.forEach(function (eventName) { - el.removeEventListener(eventName, realCallback); - }); - }; - transitionEventNames.forEach(function (eventName) { - el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes - }); -} - -var DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']; -// Adding -function addWeeks(m, n) { - var a = dateToUtcArray(m); - a[2] += n * 7; - return arrayToUtcDate(a); -} -function addDays(m, n) { - var a = dateToUtcArray(m); - a[2] += n; - return arrayToUtcDate(a); -} -function addMs(m, n) { - var a = dateToUtcArray(m); - a[6] += n; - return arrayToUtcDate(a); -} -// Diffing (all return floats) -function diffWeeks(m0, m1) { - return diffDays(m0, m1) / 7; -} -function diffDays(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24); -} -function diffHours(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60); -} -function diffMinutes(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60); -} -function diffSeconds(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / 1000; -} -function diffDayAndTime(m0, m1) { - var m0day = startOfDay(m0); - var m1day = startOfDay(m1); - return { - years: 0, - months: 0, - days: Math.round(diffDays(m0day, m1day)), - milliseconds: (m1.valueOf() - m1day.valueOf()) - (m0.valueOf() - m0day.valueOf()) - }; -} -// Diffing Whole Units -function diffWholeWeeks(m0, m1) { - var d = diffWholeDays(m0, m1); - if (d !== null && d % 7 === 0) { - return d / 7; - } - return null; -} -function diffWholeDays(m0, m1) { - if (timeAsMs(m0) === timeAsMs(m1)) { - return Math.round(diffDays(m0, m1)); - } - return null; -} -// Start-Of -function startOfDay(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate() - ]); -} -function startOfHour(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours() - ]); -} -function startOfMinute(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours(), - m.getUTCMinutes() - ]); -} -function startOfSecond(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours(), - m.getUTCMinutes(), - m.getUTCSeconds() - ]); -} -// Week Computation -function weekOfYear(marker, dow, doy) { - var y = marker.getUTCFullYear(); - var w = weekOfGivenYear(marker, y, dow, doy); - if (w < 1) { - return weekOfGivenYear(marker, y - 1, dow, doy); - } - var nextW = weekOfGivenYear(marker, y + 1, dow, doy); - if (nextW >= 1) { - return Math.min(w, nextW); - } - return w; -} -function weekOfGivenYear(marker, year, dow, doy) { - var firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)]); - var dayStart = startOfDay(marker); - var days = Math.round(diffDays(firstWeekStart, dayStart)); - return Math.floor(days / 7) + 1; // zero-indexed -} -// start-of-first-week - start-of-year -function firstWeekOffset(year, dow, doy) { - // first-week day -- which january is always in the first week (4 for iso, 1 for other) - var fwd = 7 + dow - doy; - // first-week day local weekday -- which local weekday is fwd - var fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7; - return -fwdlw + fwd - 1; -} -// Array Conversion -function dateToLocalArray(date) { - return [ - date.getFullYear(), - date.getMonth(), - date.getDate(), - date.getHours(), - date.getMinutes(), - date.getSeconds(), - date.getMilliseconds() - ]; -} -function arrayToLocalDate(a) { - return new Date(a[0], a[1] || 0, a[2] == null ? 1 : a[2], // day of month - a[3] || 0, a[4] || 0, a[5] || 0); -} -function dateToUtcArray(date) { - return [ - date.getUTCFullYear(), - date.getUTCMonth(), - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds(), - date.getUTCMilliseconds() - ]; -} -function arrayToUtcDate(a) { - // according to web standards (and Safari), a month index is required. - // massage if only given a year. - if (a.length === 1) { - a = a.concat([0]); - } - return new Date(Date.UTC.apply(Date, a)); -} -// Other Utils -function isValidDate(m) { - return !isNaN(m.valueOf()); -} -function timeAsMs(m) { - return m.getUTCHours() * 1000 * 60 * 60 + - m.getUTCMinutes() * 1000 * 60 + - m.getUTCSeconds() * 1000 + - m.getUTCMilliseconds(); -} - -var INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds']; -var PARSE_RE = /^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/; -// Parsing and Creation -function createDuration(input, unit) { - var _a; - if (typeof input === 'string') { - return parseString(input); - } - else if (typeof input === 'object' && input) { // non-null object - return normalizeObject(input); - } - else if (typeof input === 'number') { - return normalizeObject((_a = {}, _a[unit || 'milliseconds'] = input, _a)); - } - else { - return null; - } -} -function parseString(s) { - var m = PARSE_RE.exec(s); - if (m) { - var sign = m[1] ? -1 : 1; - return { - years: 0, - months: 0, - days: sign * (m[2] ? parseInt(m[2], 10) : 0), - milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours - (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes - (m[5] ? parseInt(m[5], 10) : 0) * 1000 + // seconds - (m[6] ? parseInt(m[6], 10) : 0) // ms - ) - }; - } - return null; -} -function normalizeObject(obj) { - return { - years: obj.years || obj.year || 0, - months: obj.months || obj.month || 0, - days: (obj.days || obj.day || 0) + - getWeeksFromInput(obj) * 7, - milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours - (obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes - (obj.seconds || obj.second || 0) * 1000 + // seconds - (obj.milliseconds || obj.millisecond || obj.ms || 0) // ms - }; -} -function getWeeksFromInput(obj) { - return obj.weeks || obj.week || 0; -} -// Equality -function durationsEqual(d0, d1) { - return d0.years === d1.years && - d0.months === d1.months && - d0.days === d1.days && - d0.milliseconds === d1.milliseconds; -} -function isSingleDay(dur) { - return dur.years === 0 && dur.months === 0 && dur.days === 1 && dur.milliseconds === 0; -} -// Simple Math -function addDurations(d0, d1) { - return { - years: d0.years + d1.years, - months: d0.months + d1.months, - days: d0.days + d1.days, - milliseconds: d0.milliseconds + d1.milliseconds - }; -} -function subtractDurations(d1, d0) { - return { - years: d1.years - d0.years, - months: d1.months - d0.months, - days: d1.days - d0.days, - milliseconds: d1.milliseconds - d0.milliseconds - }; -} -function multiplyDuration(d, n) { - return { - years: d.years * n, - months: d.months * n, - days: d.days * n, - milliseconds: d.milliseconds * n - }; -} -// Conversions -// "Rough" because they are based on average-case Gregorian months/years -function asRoughYears(dur) { - return asRoughDays(dur) / 365; -} -function asRoughMonths(dur) { - return asRoughDays(dur) / 30; -} -function asRoughDays(dur) { - return asRoughMs(dur) / 864e5; -} -function asRoughMinutes(dur) { - return asRoughMs(dur) / (1000 * 60); -} -function asRoughSeconds(dur) { - return asRoughMs(dur) / 1000; -} -function asRoughMs(dur) { - return dur.years * (365 * 864e5) + - dur.months * (30 * 864e5) + - dur.days * 864e5 + - dur.milliseconds; -} -// Advanced Math -function wholeDivideDurations(numerator, denominator) { - var res = null; - for (var i = 0; i < INTERNAL_UNITS.length; i++) { - var unit = INTERNAL_UNITS[i]; - if (denominator[unit]) { - var localRes = numerator[unit] / denominator[unit]; - if (!isInt(localRes) || (res !== null && res !== localRes)) { - return null; - } - res = localRes; - } - else if (numerator[unit]) { - // needs to divide by something but can't! - return null; - } - } - return res; -} -function greatestDurationDenominator(dur, dontReturnWeeks) { - var ms = dur.milliseconds; - if (ms) { - if (ms % 1000 !== 0) { - return { unit: 'millisecond', value: ms }; - } - if (ms % (1000 * 60) !== 0) { - return { unit: 'second', value: ms / 1000 }; - } - if (ms % (1000 * 60 * 60) !== 0) { - return { unit: 'minute', value: ms / (1000 * 60) }; - } - if (ms) { - return { unit: 'hour', value: ms / (1000 * 60 * 60) }; - } - } - if (dur.days) { - if (!dontReturnWeeks && dur.days % 7 === 0) { - return { unit: 'week', value: dur.days / 7 }; - } - return { unit: 'day', value: dur.days }; - } - if (dur.months) { - return { unit: 'month', value: dur.months }; - } - if (dur.years) { - return { unit: 'year', value: dur.years }; - } - return { unit: 'millisecond', value: 0 }; -} - -/* FullCalendar-specific DOM Utilities -----------------------------------------------------------------------------------------------------------------------*/ -// Given the scrollbar widths of some other container, create borders/margins on rowEls in order to match the left -// and right space that was offset by the scrollbars. A 1-pixel border first, then margin beyond that. -function compensateScroll(rowEl, scrollbarWidths) { - if (scrollbarWidths.left) { - applyStyle(rowEl, { - borderLeftWidth: 1, - marginLeft: scrollbarWidths.left - 1 - }); - } - if (scrollbarWidths.right) { - applyStyle(rowEl, { - borderRightWidth: 1, - marginRight: scrollbarWidths.right - 1 - }); - } -} -// Undoes compensateScroll and restores all borders/margins -function uncompensateScroll(rowEl) { - applyStyle(rowEl, { - marginLeft: '', - marginRight: '', - borderLeftWidth: '', - borderRightWidth: '' - }); -} -// Make the mouse cursor express that an event is not allowed in the current area -function disableCursor() { - document.body.classList.add('fc-not-allowed'); -} -// Returns the mouse cursor to its original look -function enableCursor() { - document.body.classList.remove('fc-not-allowed'); -} -// Given a total available height to fill, have `els` (essentially child rows) expand to accomodate. -// By default, all elements that are shorter than the recommended height are expanded uniformly, not considering -// any other els that are already too tall. if `shouldRedistribute` is on, it considers these tall rows and -// reduces the available height. -function distributeHeight(els, availableHeight, shouldRedistribute) { - // *FLOORING NOTE*: we floor in certain places because zoom can give inaccurate floating-point dimensions, - // and it is better to be shorter than taller, to avoid creating unnecessary scrollbars. - var minOffset1 = Math.floor(availableHeight / els.length); // for non-last element - var minOffset2 = Math.floor(availableHeight - minOffset1 * (els.length - 1)); // for last element *FLOORING NOTE* - var flexEls = []; // elements that are allowed to expand. array of DOM nodes - var flexOffsets = []; // amount of vertical space it takes up - var flexHeights = []; // actual css height - var usedHeight = 0; - undistributeHeight(els); // give all elements their natural height - // find elements that are below the recommended height (expandable). - // important to query for heights in a single first pass (to avoid reflow oscillation). - els.forEach(function (el, i) { - var minOffset = i === els.length - 1 ? minOffset2 : minOffset1; - var naturalHeight = el.getBoundingClientRect().height; - var naturalOffset = naturalHeight + computeVMargins(el); - if (naturalOffset < minOffset) { - flexEls.push(el); - flexOffsets.push(naturalOffset); - flexHeights.push(naturalHeight); - } - else { - // this element stretches past recommended height (non-expandable). mark the space as occupied. - usedHeight += naturalOffset; - } - }); - // readjust the recommended height to only consider the height available to non-maxed-out rows. - if (shouldRedistribute) { - availableHeight -= usedHeight; - minOffset1 = Math.floor(availableHeight / flexEls.length); - minOffset2 = Math.floor(availableHeight - minOffset1 * (flexEls.length - 1)); // *FLOORING NOTE* - } - // assign heights to all expandable elements - flexEls.forEach(function (el, i) { - var minOffset = i === flexEls.length - 1 ? minOffset2 : minOffset1; - var naturalOffset = flexOffsets[i]; - var naturalHeight = flexHeights[i]; - var newHeight = minOffset - (naturalOffset - naturalHeight); // subtract the margin/padding - if (naturalOffset < minOffset) { // we check this again because redistribution might have changed things - el.style.height = newHeight + 'px'; - } - }); -} -// Undoes distrubuteHeight, restoring all els to their natural height -function undistributeHeight(els) { - els.forEach(function (el) { - el.style.height = ''; - }); -} -// Given `els`, a set of cells, find the cell with the largest natural width and set the widths of all the -// cells to be that width. -// PREREQUISITE: if you want a cell to take up width, it needs to have a single inner element w/ display:inline -function matchCellWidths(els) { - var maxInnerWidth = 0; - els.forEach(function (el) { - var innerEl = el.firstChild; // hopefully an element - if (innerEl instanceof HTMLElement) { - var innerWidth_1 = innerEl.getBoundingClientRect().width; - if (innerWidth_1 > maxInnerWidth) { - maxInnerWidth = innerWidth_1; - } - } - }); - maxInnerWidth++; // sometimes not accurate of width the text needs to stay on one line. insurance - els.forEach(function (el) { - el.style.width = maxInnerWidth + 'px'; - }); - return maxInnerWidth; -} -// Given one element that resides inside another, -// Subtracts the height of the inner element from the outer element. -function subtractInnerElHeight(outerEl, innerEl) { - // effin' IE8/9/10/11 sometimes returns 0 for dimensions. this weird hack was the only thing that worked - var reflowStyleProps = { - position: 'relative', - left: -1 // ensure reflow in case the el was already relative. negative is less likely to cause new scroll - }; - applyStyle(outerEl, reflowStyleProps); - applyStyle(innerEl, reflowStyleProps); - var diff = // grab the dimensions - outerEl.getBoundingClientRect().height - - innerEl.getBoundingClientRect().height; - // undo hack - var resetStyleProps = { position: '', left: '' }; - applyStyle(outerEl, resetStyleProps); - applyStyle(innerEl, resetStyleProps); - return diff; -} -/* Selection -----------------------------------------------------------------------------------------------------------------------*/ -function preventSelection(el) { - el.classList.add('fc-unselectable'); - el.addEventListener('selectstart', preventDefault); -} -function allowSelection(el) { - el.classList.remove('fc-unselectable'); - el.removeEventListener('selectstart', preventDefault); -} -/* Context Menu -----------------------------------------------------------------------------------------------------------------------*/ -function preventContextMenu(el) { - el.addEventListener('contextmenu', preventDefault); -} -function allowContextMenu(el) { - el.removeEventListener('contextmenu', preventDefault); -} -/* Object Ordering by Field -----------------------------------------------------------------------------------------------------------------------*/ -function parseFieldSpecs(input) { - var specs = []; - var tokens = []; - var i; - var token; - if (typeof input === 'string') { - tokens = input.split(/\s*,\s*/); - } - else if (typeof input === 'function') { - tokens = [input]; - } - else if (Array.isArray(input)) { - tokens = input; - } - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - if (typeof token === 'string') { - specs.push(token.charAt(0) === '-' ? - { field: token.substring(1), order: -1 } : - { field: token, order: 1 }); - } - else if (typeof token === 'function') { - specs.push({ func: token }); - } - } - return specs; -} -function compareByFieldSpecs(obj0, obj1, fieldSpecs) { - var i; - var cmp; - for (i = 0; i < fieldSpecs.length; i++) { - cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]); - if (cmp) { - return cmp; - } - } - return 0; -} -function compareByFieldSpec(obj0, obj1, fieldSpec) { - if (fieldSpec.func) { - return fieldSpec.func(obj0, obj1); - } - return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field]) - * (fieldSpec.order || 1); -} -function flexibleCompare(a, b) { - if (!a && !b) { - return 0; - } - if (b == null) { - return -1; - } - if (a == null) { - return 1; - } - if (typeof a === 'string' || typeof b === 'string') { - return String(a).localeCompare(String(b)); - } - return a - b; -} -/* String Utilities -----------------------------------------------------------------------------------------------------------------------*/ -function capitaliseFirstLetter(str) { - return str.charAt(0).toUpperCase() + str.slice(1); -} -function padStart(val, len) { - var s = String(val); - return '000'.substr(0, len - s.length) + s; -} -/* Number Utilities -----------------------------------------------------------------------------------------------------------------------*/ -function compareNumbers(a, b) { - return a - b; -} -function isInt(n) { - return n % 1 === 0; -} -/* Weird Utilities -----------------------------------------------------------------------------------------------------------------------*/ -function applyAll(functions, thisObj, args) { - if (typeof functions === 'function') { // supplied a single function - functions = [functions]; - } - if (functions) { - var i = void 0; - var ret = void 0; - for (i = 0; i < functions.length; i++) { - ret = functions[i].apply(thisObj, args) || ret; - } - return ret; - } -} -function firstDefined() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - for (var i = 0; i < args.length; i++) { - if (args[i] !== undefined) { - return args[i]; - } - } -} -// Returns a function, that, as long as it continues to be invoked, will not -// be triggered. The function will be called after it stops being called for -// N milliseconds. If `immediate` is passed, trigger the function on the -// leading edge, instead of the trailing. -// https://github.com/jashkenas/underscore/blob/1.6.0/underscore.js#L714 -function debounce(func, wait) { - var timeout; - var args; - var context; - var timestamp; - var result; - var later = function () { - var last = new Date().valueOf() - timestamp; - if (last < wait) { - timeout = setTimeout(later, wait - last); - } - else { - timeout = null; - result = func.apply(context, args); - context = args = null; - } - }; - return function () { - context = this; - args = arguments; - timestamp = new Date().valueOf(); - if (!timeout) { - timeout = setTimeout(later, wait); - } - return result; - }; -} -// Number and Boolean are only types that defaults or not computed for -// TODO: write more comments -function refineProps(rawProps, processors, defaults, leftoverProps) { - if (defaults === void 0) { defaults = {}; } - var refined = {}; - for (var key in processors) { - var processor = processors[key]; - if (rawProps[key] !== undefined) { - // found - if (processor === Function) { - refined[key] = typeof rawProps[key] === 'function' ? rawProps[key] : null; - } - else if (processor) { // a refining function? - refined[key] = processor(rawProps[key]); - } - else { - refined[key] = rawProps[key]; - } - } - else if (defaults[key] !== undefined) { - // there's an explicit default - refined[key] = defaults[key]; - } - else { - // must compute a default - if (processor === String) { - refined[key] = ''; // empty string is default for String - } - else if (!processor || processor === Number || processor === Boolean || processor === Function) { - refined[key] = null; // assign null for other non-custom processor funcs - } - else { - refined[key] = processor(null); // run the custom processor func - } - } - } - if (leftoverProps) { - for (var key in rawProps) { - if (processors[key] === undefined) { - leftoverProps[key] = rawProps[key]; - } - } - } - return refined; -} -/* Date stuff that doesn't belong in datelib core -----------------------------------------------------------------------------------------------------------------------*/ -// given a timed range, computes an all-day range that has the same exact duration, -// but whose start time is aligned with the start of the day. -function computeAlignedDayRange(timedRange) { - var dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1; - var start = startOfDay(timedRange.start); - var end = addDays(start, dayCnt); - return { start: start, end: end }; -} -// given a timed range, computes an all-day range based on how for the end date bleeds into the next day -// TODO: give nextDayThreshold a default arg -function computeVisibleDayRange(timedRange, nextDayThreshold) { - if (nextDayThreshold === void 0) { nextDayThreshold = createDuration(0); } - var startDay = null; - var endDay = null; - if (timedRange.end) { - endDay = startOfDay(timedRange.end); - var endTimeMS = timedRange.end.valueOf() - endDay.valueOf(); // # of milliseconds into `endDay` - // If the end time is actually inclusively part of the next day and is equal to or - // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`. - // Otherwise, leaving it as inclusive will cause it to exclude `endDay`. - if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) { - endDay = addDays(endDay, 1); - } - } - if (timedRange.start) { - startDay = startOfDay(timedRange.start); // the beginning of the day the range starts - // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day. - if (endDay && endDay <= startDay) { - endDay = addDays(startDay, 1); - } - } - return { start: startDay, end: endDay }; -} -// spans from one day into another? -function isMultiDayRange(range) { - var visibleRange = computeVisibleDayRange(range); - return diffDays(visibleRange.start, visibleRange.end) > 1; -} -function diffDates(date0, date1, dateEnv, largeUnit) { - if (largeUnit === 'year') { - return createDuration(dateEnv.diffWholeYears(date0, date1), 'year'); - } - else if (largeUnit === 'month') { - return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month'); - } - else { - return diffDayAndTime(date0, date1); // returns a duration - } -} - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; - -function parseRecurring(eventInput, allDayDefault, dateEnv, recurringTypes, leftovers) { - for (var i = 0; i < recurringTypes.length; i++) { - var localLeftovers = {}; - var parsed = recurringTypes[i].parse(eventInput, localLeftovers, dateEnv); - if (parsed) { - var allDay = localLeftovers.allDay; - delete localLeftovers.allDay; // remove from leftovers - if (allDay == null) { - allDay = allDayDefault; - if (allDay == null) { - allDay = parsed.allDayGuess; - if (allDay == null) { - allDay = false; - } - } - } - __assign(leftovers, localLeftovers); - return { - allDay: allDay, - duration: parsed.duration, - typeData: parsed.typeData, - typeId: i - }; - } - } - return null; -} -/* -Event MUST have a recurringDef -*/ -function expandRecurringRanges(eventDef, duration, framingRange, dateEnv, recurringTypes) { - var typeDef = recurringTypes[eventDef.recurringDef.typeId]; - var markers = typeDef.expand(eventDef.recurringDef.typeData, { - start: dateEnv.subtract(framingRange.start, duration), - end: framingRange.end - }, dateEnv); - // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to - if (eventDef.allDay) { - markers = markers.map(startOfDay); - } - return markers; -} - -var hasOwnProperty = Object.prototype.hasOwnProperty; -// Merges an array of objects into a single object. -// The second argument allows for an array of property names who's object values will be merged together. -function mergeProps(propObjs, complexProps) { - var dest = {}; - var i; - var name; - var complexObjs; - var j; - var val; - var props; - if (complexProps) { - for (i = 0; i < complexProps.length; i++) { - name = complexProps[i]; - complexObjs = []; - // collect the trailing object values, stopping when a non-object is discovered - for (j = propObjs.length - 1; j >= 0; j--) { - val = propObjs[j][name]; - if (typeof val === 'object' && val) { // non-null object - complexObjs.unshift(val); - } - else if (val !== undefined) { - dest[name] = val; // if there were no objects, this value will be used - break; - } - } - // if the trailing values were objects, use the merged value - if (complexObjs.length) { - dest[name] = mergeProps(complexObjs); - } - } - } - // copy values into the destination, going from last to first - for (i = propObjs.length - 1; i >= 0; i--) { - props = propObjs[i]; - for (name in props) { - if (!(name in dest)) { // if already assigned by previous props or complex props, don't reassign - dest[name] = props[name]; - } - } - } - return dest; -} -function filterHash(hash, func) { - var filtered = {}; - for (var key in hash) { - if (func(hash[key], key)) { - filtered[key] = hash[key]; - } - } - return filtered; -} -function mapHash(hash, func) { - var newHash = {}; - for (var key in hash) { - newHash[key] = func(hash[key], key); - } - return newHash; -} -function arrayToHash(a) { - var hash = {}; - for (var _i = 0, a_1 = a; _i < a_1.length; _i++) { - var item = a_1[_i]; - hash[item] = true; - } - return hash; -} -function hashValuesToArray(obj) { - var a = []; - for (var key in obj) { - a.push(obj[key]); - } - return a; -} -function isPropsEqual(obj0, obj1) { - for (var key in obj0) { - if (hasOwnProperty.call(obj0, key)) { - if (!(key in obj1)) { - return false; - } - } - } - for (var key in obj1) { - if (hasOwnProperty.call(obj1, key)) { - if (obj0[key] !== obj1[key]) { - return false; - } - } - } - return true; -} - -function parseEvents(rawEvents, sourceId, calendar, allowOpenRange) { - var eventStore = createEmptyEventStore(); - for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) { - var rawEvent = rawEvents_1[_i]; - var tuple = parseEvent(rawEvent, sourceId, calendar, allowOpenRange); - if (tuple) { - eventTupleToStore(tuple, eventStore); - } - } - return eventStore; -} -function eventTupleToStore(tuple, eventStore) { - if (eventStore === void 0) { eventStore = createEmptyEventStore(); } - eventStore.defs[tuple.def.defId] = tuple.def; - if (tuple.instance) { - eventStore.instances[tuple.instance.instanceId] = tuple.instance; - } - return eventStore; -} -function expandRecurring(eventStore, framingRange, calendar) { - var dateEnv = calendar.dateEnv; - var defs = eventStore.defs, instances = eventStore.instances; - // remove existing recurring instances - instances = filterHash(instances, function (instance) { - return !defs[instance.defId].recurringDef; - }); - for (var defId in defs) { - var def = defs[defId]; - if (def.recurringDef) { - var duration = def.recurringDef.duration; - if (!duration) { - duration = def.allDay ? - calendar.defaultAllDayEventDuration : - calendar.defaultTimedEventDuration; - } - var starts = expandRecurringRanges(def, duration, framingRange, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes); - for (var _i = 0, starts_1 = starts; _i < starts_1.length; _i++) { - var start = starts_1[_i]; - var instance = createEventInstance(defId, { - start: start, - end: dateEnv.add(start, duration) - }); - instances[instance.instanceId] = instance; - } - } - } - return { defs: defs, instances: instances }; -} -// retrieves events that have the same groupId as the instance specified by `instanceId` -// or they are the same as the instance. -// why might instanceId not be in the store? an event from another calendar? -function getRelevantEvents(eventStore, instanceId) { - var instance = eventStore.instances[instanceId]; - if (instance) { - var def_1 = eventStore.defs[instance.defId]; - // get events/instances with same group - var newStore = filterEventStoreDefs(eventStore, function (lookDef) { - return isEventDefsGrouped(def_1, lookDef); - }); - // add the original - // TODO: wish we could use eventTupleToStore or something like it - newStore.defs[def_1.defId] = def_1; - newStore.instances[instance.instanceId] = instance; - return newStore; - } - return createEmptyEventStore(); -} -function isEventDefsGrouped(def0, def1) { - return Boolean(def0.groupId && def0.groupId === def1.groupId); -} -function transformRawEvents(rawEvents, eventSource, calendar) { - var calEachTransform = calendar.opt('eventDataTransform'); - var sourceEachTransform = eventSource ? eventSource.eventDataTransform : null; - if (sourceEachTransform) { - rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform); - } - if (calEachTransform) { - rawEvents = transformEachRawEvent(rawEvents, calEachTransform); - } - return rawEvents; -} -function transformEachRawEvent(rawEvents, func) { - var refinedEvents; - if (!func) { - refinedEvents = rawEvents; - } - else { - refinedEvents = []; - for (var _i = 0, rawEvents_2 = rawEvents; _i < rawEvents_2.length; _i++) { - var rawEvent = rawEvents_2[_i]; - var refinedEvent = func(rawEvent); - if (refinedEvent) { - refinedEvents.push(refinedEvent); - } - else if (refinedEvent == null) { - refinedEvents.push(rawEvent); - } // if a different falsy value, do nothing - } - } - return refinedEvents; -} -function createEmptyEventStore() { - return { defs: {}, instances: {} }; -} -function mergeEventStores(store0, store1) { - return { - defs: __assign({}, store0.defs, store1.defs), - instances: __assign({}, store0.instances, store1.instances) - }; -} -function filterEventStoreDefs(eventStore, filterFunc) { - var defs = filterHash(eventStore.defs, filterFunc); - var instances = filterHash(eventStore.instances, function (instance) { - return defs[instance.defId]; // still exists? - }); - return { defs: defs, instances: instances }; -} - -function parseRange(input, dateEnv) { - var start = null; - var end = null; - if (input.start) { - start = dateEnv.createMarker(input.start); - } - if (input.end) { - end = dateEnv.createMarker(input.end); - } - if (!start && !end) { - return null; - } - if (start && end && end < start) { - return null; - } - return { start: start, end: end }; -} -// SIDE-EFFECT: will mutate ranges. -// Will return a new array result. -function invertRanges(ranges, constraintRange) { - var invertedRanges = []; - var start = constraintRange.start; // the end of the previous range. the start of the new range - var i; - var dateRange; - // ranges need to be in order. required for our date-walking algorithm - ranges.sort(compareRanges); - for (i = 0; i < ranges.length; i++) { - dateRange = ranges[i]; - // add the span of time before the event (if there is any) - if (dateRange.start > start) { // compare millisecond time (skip any ambig logic) - invertedRanges.push({ start: start, end: dateRange.start }); - } - if (dateRange.end > start) { - start = dateRange.end; - } - } - // add the span of time after the last event (if there is any) - if (start < constraintRange.end) { // compare millisecond time (skip any ambig logic) - invertedRanges.push({ start: start, end: constraintRange.end }); - } - return invertedRanges; -} -function compareRanges(range0, range1) { - return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first -} -function intersectRanges(range0, range1) { - var start = range0.start; - var end = range0.end; - var newRange = null; - if (range1.start !== null) { - if (start === null) { - start = range1.start; - } - else { - start = new Date(Math.max(start.valueOf(), range1.start.valueOf())); - } - } - if (range1.end != null) { - if (end === null) { - end = range1.end; - } - else { - end = new Date(Math.min(end.valueOf(), range1.end.valueOf())); - } - } - if (start === null || end === null || start < end) { - newRange = { start: start, end: end }; - } - return newRange; -} -function rangesEqual(range0, range1) { - return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) && - (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf()); -} -function rangesIntersect(range0, range1) { - return (range0.end === null || range1.start === null || range0.end > range1.start) && - (range0.start === null || range1.end === null || range0.start < range1.end); -} -function rangeContainsRange(outerRange, innerRange) { - return (outerRange.start === null || (innerRange.start !== null && innerRange.start >= outerRange.start)) && - (outerRange.end === null || (innerRange.end !== null && innerRange.end <= outerRange.end)); -} -function rangeContainsMarker(range, date) { - return (range.start === null || date >= range.start) && - (range.end === null || date < range.end); -} -// If the given date is not within the given range, move it inside. -// (If it's past the end, make it one millisecond before the end). -function constrainMarkerToRange(date, range) { - if (range.start != null && date < range.start) { - return range.start; - } - if (range.end != null && date >= range.end) { - return new Date(range.end.valueOf() - 1); - } - return date; -} - -function removeExact(array, exactVal) { - var removeCnt = 0; - var i = 0; - while (i < array.length) { - if (array[i] === exactVal) { - array.splice(i, 1); - removeCnt++; - } - else { - i++; - } - } - return removeCnt; -} -function isArraysEqual(a0, a1) { - var len = a0.length; - var i; - if (len !== a1.length) { // not array? or not same length? - return false; - } - for (i = 0; i < len; i++) { - if (a0[i] !== a1[i]) { - return false; - } - } - return true; -} - -function memoize(workerFunc) { - var args; - var res; - return function () { - if (!args || !isArraysEqual(args, arguments)) { - args = arguments; - res = workerFunc.apply(this, arguments); - } - return res; - }; -} -/* -always executes the workerFunc, but if the result is equal to the previous result, -return the previous result instead. -*/ -function memoizeOutput(workerFunc, equalityFunc) { - var cachedRes = null; - return function () { - var newRes = workerFunc.apply(this, arguments); - if (cachedRes === null || !(cachedRes === newRes || equalityFunc(cachedRes, newRes))) { - cachedRes = newRes; - } - return cachedRes; - }; -} - -var EXTENDED_SETTINGS_AND_SEVERITIES = { - week: 3, - separator: 0, - omitZeroMinute: 0, - meridiem: 0, - omitCommas: 0 -}; -var STANDARD_DATE_PROP_SEVERITIES = { - timeZoneName: 7, - era: 6, - year: 5, - month: 4, - day: 2, - weekday: 2, - hour: 1, - minute: 1, - second: 1 -}; -var MERIDIEM_RE = /\s*([ap])\.?m\.?/i; // eats up leading spaces too -var COMMA_RE = /,/g; // we need re for globalness -var MULTI_SPACE_RE = /\s+/g; -var LTR_RE = /\u200e/g; // control character -var UTC_RE = /UTC|GMT/; -var NativeFormatter = /** @class */ (function () { - function NativeFormatter(formatSettings) { - var standardDateProps = {}; - var extendedSettings = {}; - var severity = 0; - for (var name_1 in formatSettings) { - if (name_1 in EXTENDED_SETTINGS_AND_SEVERITIES) { - extendedSettings[name_1] = formatSettings[name_1]; - severity = Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name_1], severity); - } - else { - standardDateProps[name_1] = formatSettings[name_1]; - if (name_1 in STANDARD_DATE_PROP_SEVERITIES) { - severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name_1], severity); - } - } - } - this.standardDateProps = standardDateProps; - this.extendedSettings = extendedSettings; - this.severity = severity; - this.buildFormattingFunc = memoize(buildFormattingFunc); - } - NativeFormatter.prototype.format = function (date, context) { - return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date); - }; - NativeFormatter.prototype.formatRange = function (start, end, context) { - var _a = this, standardDateProps = _a.standardDateProps, extendedSettings = _a.extendedSettings; - var diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem); - if (!diffSeverity) { - return this.format(start, context); - } - var biggestUnitForPartial = diffSeverity; - if (biggestUnitForPartial > 1 && // the two dates are different in a way that's larger scale than time - (standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') && - (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') && - (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')) { - biggestUnitForPartial = 1; // make it look like the dates are only different in terms of time - } - var full0 = this.format(start, context); - var full1 = this.format(end, context); - if (full0 === full1) { - return full0; - } - var partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial); - var partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context); - var partial0 = partialFormattingFunc(start); - var partial1 = partialFormattingFunc(end); - var insertion = findCommonInsertion(full0, partial0, full1, partial1); - var separator = extendedSettings.separator || ''; - if (insertion) { - return insertion.before + partial0 + separator + partial1 + insertion.after; - } - return full0 + separator + full1; - }; - NativeFormatter.prototype.getLargestUnit = function () { - switch (this.severity) { - case 7: - case 6: - case 5: - return 'year'; - case 4: - return 'month'; - case 3: - return 'week'; - default: - return 'day'; - } - }; - return NativeFormatter; -}()); -function buildFormattingFunc(standardDateProps, extendedSettings, context) { - var standardDatePropCnt = Object.keys(standardDateProps).length; - if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') { - return function (date) { - return formatTimeZoneOffset(date.timeZoneOffset); - }; - } - if (standardDatePropCnt === 0 && extendedSettings.week) { - return function (date) { - return formatWeekNumber(context.computeWeekNumber(date.marker), context.weekLabel, context.locale, extendedSettings.week); - }; - } - return buildNativeFormattingFunc(standardDateProps, extendedSettings, context); -} -function buildNativeFormattingFunc(standardDateProps, extendedSettings, context) { - standardDateProps = __assign({}, standardDateProps); // copy - extendedSettings = __assign({}, extendedSettings); // copy - sanitizeSettings(standardDateProps, extendedSettings); - standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers - var normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps); - var zeroFormat; // needed? - if (extendedSettings.omitZeroMinute) { - var zeroProps = __assign({}, standardDateProps); - delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings - zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps); - } - return function (date) { - var marker = date.marker; - var format; - if (zeroFormat && !marker.getUTCMinutes()) { - format = zeroFormat; - } - else { - format = normalFormat; - } - var s = format.format(marker); - return postProcess(s, date, standardDateProps, extendedSettings, context); - }; -} -function sanitizeSettings(standardDateProps, extendedSettings) { - // deal with a browser inconsistency where formatting the timezone - // requires that the hour/minute be present. - if (standardDateProps.timeZoneName) { - if (!standardDateProps.hour) { - standardDateProps.hour = '2-digit'; - } - if (!standardDateProps.minute) { - standardDateProps.minute = '2-digit'; - } - } - // only support short timezone names - if (standardDateProps.timeZoneName === 'long') { - standardDateProps.timeZoneName = 'short'; - } - // if requesting to display seconds, MUST display minutes - if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) { - delete extendedSettings.omitZeroMinute; - } -} -function postProcess(s, date, standardDateProps, extendedSettings, context) { - s = s.replace(LTR_RE, ''); // remove left-to-right control chars. do first. good for other regexes - if (standardDateProps.timeZoneName === 'short') { - s = injectTzoStr(s, (context.timeZone === 'UTC' || date.timeZoneOffset == null) ? - 'UTC' : // important to normalize for IE, which does "GMT" - formatTimeZoneOffset(date.timeZoneOffset)); - } - if (extendedSettings.omitCommas) { - s = s.replace(COMMA_RE, '').trim(); - } - if (extendedSettings.omitZeroMinute) { - s = s.replace(':00', ''); // zeroFormat doesn't always achieve this - } - // ^ do anything that might create adjacent spaces before this point, - // because MERIDIEM_RE likes to eat up loading spaces - if (extendedSettings.meridiem === false) { - s = s.replace(MERIDIEM_RE, '').trim(); - } - else if (extendedSettings.meridiem === 'narrow') { // a/p - s = s.replace(MERIDIEM_RE, function (m0, m1) { - return m1.toLocaleLowerCase(); - }); - } - else if (extendedSettings.meridiem === 'short') { // am/pm - s = s.replace(MERIDIEM_RE, function (m0, m1) { - return m1.toLocaleLowerCase() + 'm'; - }); - } - else if (extendedSettings.meridiem === 'lowercase') { // other meridiem transformers already converted to lowercase - s = s.replace(MERIDIEM_RE, function (m0) { - return m0.toLocaleLowerCase(); - }); - } - s = s.replace(MULTI_SPACE_RE, ' '); - s = s.trim(); - return s; -} -function injectTzoStr(s, tzoStr) { - var replaced = false; - s = s.replace(UTC_RE, function () { - replaced = true; - return tzoStr; - }); - // IE11 doesn't include UTC/GMT in the original string, so append to end - if (!replaced) { - s += ' ' + tzoStr; - } - return s; -} -function formatWeekNumber(num, weekLabel, locale, display) { - var parts = []; - if (display === 'narrow') { - parts.push(weekLabel); - } - else if (display === 'short') { - parts.push(weekLabel, ' '); - } - // otherwise, considered 'numeric' - parts.push(locale.simpleNumberFormat.format(num)); - if (locale.options.isRtl) { // TODO: use control characters instead? - parts.reverse(); - } - return parts.join(''); -} -// Range Formatting Utils -// 0 = exactly the same -// 1 = different by time -// and bigger -function computeMarkerDiffSeverity(d0, d1, ca) { - if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) { - return 5; - } - if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) { - return 4; - } - if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) { - return 2; - } - if (timeAsMs(d0) !== timeAsMs(d1)) { - return 1; - } - return 0; -} -function computePartialFormattingOptions(options, biggestUnit) { - var partialOptions = {}; - for (var name_2 in options) { - if (!(name_2 in STANDARD_DATE_PROP_SEVERITIES) || // not a date part prop (like timeZone) - STANDARD_DATE_PROP_SEVERITIES[name_2] <= biggestUnit) { - partialOptions[name_2] = options[name_2]; - } - } - return partialOptions; -} -function findCommonInsertion(full0, partial0, full1, partial1) { - var i0 = 0; - while (i0 < full0.length) { - var found0 = full0.indexOf(partial0, i0); - if (found0 === -1) { - break; - } - var before0 = full0.substr(0, found0); - i0 = found0 + partial0.length; - var after0 = full0.substr(i0); - var i1 = 0; - while (i1 < full1.length) { - var found1 = full1.indexOf(partial1, i1); - if (found1 === -1) { - break; - } - var before1 = full1.substr(0, found1); - i1 = found1 + partial1.length; - var after1 = full1.substr(i1); - if (before0 === before1 && after0 === after1) { - return { - before: before0, - after: after0 - }; - } - } - } - return null; -} - -/* -TODO: fix the terminology of "formatter" vs "formatting func" -*/ -/* -At the time of instantiation, this object does not know which cmd-formatting system it will use. -It receives this at the time of formatting, as a setting. -*/ -var CmdFormatter = /** @class */ (function () { - function CmdFormatter(cmdStr, separator) { - this.cmdStr = cmdStr; - this.separator = separator; - } - CmdFormatter.prototype.format = function (date, context) { - return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, this.separator)); - }; - CmdFormatter.prototype.formatRange = function (start, end, context) { - return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, this.separator)); - }; - return CmdFormatter; -}()); - -var FuncFormatter = /** @class */ (function () { - function FuncFormatter(func) { - this.func = func; - } - FuncFormatter.prototype.format = function (date, context) { - return this.func(createVerboseFormattingArg(date, null, context)); - }; - FuncFormatter.prototype.formatRange = function (start, end, context) { - return this.func(createVerboseFormattingArg(start, end, context)); - }; - return FuncFormatter; -}()); - -// Formatter Object Creation -function createFormatter(input, defaultSeparator) { - if (typeof input === 'object' && input) { // non-null object - if (typeof defaultSeparator === 'string') { - input = __assign({ separator: defaultSeparator }, input); - } - return new NativeFormatter(input); - } - else if (typeof input === 'string') { - return new CmdFormatter(input, defaultSeparator); - } - else if (typeof input === 'function') { - return new FuncFormatter(input); - } -} -// String Utils -// timeZoneOffset is in minutes -function buildIsoString(marker, timeZoneOffset, stripZeroTime) { - if (stripZeroTime === void 0) { stripZeroTime = false; } - var s = marker.toISOString(); - s = s.replace('.000', ''); - if (stripZeroTime) { - s = s.replace('T00:00:00Z', ''); - } - if (s.length > 10) { // time part wasn't stripped, can add timezone info - if (timeZoneOffset == null) { - s = s.replace('Z', ''); - } - else if (timeZoneOffset !== 0) { - s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true)); - } - // otherwise, its UTC-0 and we want to keep the Z - } - return s; -} -function formatIsoTimeString(marker) { - return padStart(marker.getUTCHours(), 2) + ':' + - padStart(marker.getUTCMinutes(), 2) + ':' + - padStart(marker.getUTCSeconds(), 2); -} -function formatTimeZoneOffset(minutes, doIso) { - if (doIso === void 0) { doIso = false; } - var sign = minutes < 0 ? '-' : '+'; - var abs = Math.abs(minutes); - var hours = Math.floor(abs / 60); - var mins = Math.round(abs % 60); - if (doIso) { - return sign + padStart(hours, 2) + ':' + padStart(mins, 2); - } - else { - return 'GMT' + sign + hours + (mins ? ':' + padStart(mins, 2) : ''); - } -} -// Arg Utils -function createVerboseFormattingArg(start, end, context, separator) { - var startInfo = expandZonedMarker(start, context.calendarSystem); - var endInfo = end ? expandZonedMarker(end, context.calendarSystem) : null; - return { - date: startInfo, - start: startInfo, - end: endInfo, - timeZone: context.timeZone, - localeCodes: context.locale.codes, - separator: separator - }; -} -function expandZonedMarker(dateInfo, calendarSystem) { - var a = calendarSystem.markerToArray(dateInfo.marker); - return { - marker: dateInfo.marker, - timeZoneOffset: dateInfo.timeZoneOffset, - array: a, - year: a[0], - month: a[1], - day: a[2], - hour: a[3], - minute: a[4], - second: a[5], - millisecond: a[6] - }; -} - -var EventSourceApi = /** @class */ (function () { - function EventSourceApi(calendar, internalEventSource) { - this.calendar = calendar; - this.internalEventSource = internalEventSource; - } - EventSourceApi.prototype.remove = function () { - this.calendar.dispatch({ - type: 'REMOVE_EVENT_SOURCE', - sourceId: this.internalEventSource.sourceId - }); - }; - EventSourceApi.prototype.refetch = function () { - this.calendar.dispatch({ - type: 'FETCH_EVENT_SOURCES', - sourceIds: [this.internalEventSource.sourceId] - }); - }; - Object.defineProperty(EventSourceApi.prototype, "id", { - get: function () { - return this.internalEventSource.publicId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventSourceApi.prototype, "url", { - // only relevant to json-feed event sources - get: function () { - return this.internalEventSource.meta.url; - }, - enumerable: true, - configurable: true - }); - return EventSourceApi; -}()); - -var EventApi = /** @class */ (function () { - function EventApi(calendar, def, instance) { - this._calendar = calendar; - this._def = def; - this._instance = instance || null; - } - /* - TODO: make event struct more responsible for this - */ - EventApi.prototype.setProp = function (name, val) { - var _a, _b; - if (name in DATE_PROPS) ; - else if (name in NON_DATE_PROPS) { - if (typeof NON_DATE_PROPS[name] === 'function') { - val = NON_DATE_PROPS[name](val); - } - this.mutate({ - standardProps: (_a = {}, _a[name] = val, _a) - }); - } - else if (name in UNSCOPED_EVENT_UI_PROPS) { - var ui = void 0; - if (typeof UNSCOPED_EVENT_UI_PROPS[name] === 'function') { - val = UNSCOPED_EVENT_UI_PROPS[name](val); - } - if (name === 'color') { - ui = { backgroundColor: val, borderColor: val }; - } - else if (name === 'editable') { - ui = { startEditable: val, durationEditable: val }; - } - else { - ui = (_b = {}, _b[name] = val, _b); - } - this.mutate({ - standardProps: { ui: ui } - }); - } - }; - EventApi.prototype.setExtendedProp = function (name, val) { - var _a; - this.mutate({ - extendedProps: (_a = {}, _a[name] = val, _a) - }); - }; - EventApi.prototype.setStart = function (startInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var start = dateEnv.createMarker(startInput); - if (start && this._instance) { // TODO: warning if parsed bad - var instanceRange = this._instance.range; - var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); // what if parsed bad!? - if (options.maintainDuration) { - this.mutate({ datesDelta: startDelta }); - } - else { - this.mutate({ startDelta: startDelta }); - } - } - }; - EventApi.prototype.setEnd = function (endInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var end; - if (endInput != null) { - end = dateEnv.createMarker(endInput); - if (!end) { - return; // TODO: warning if parsed bad - } - } - if (this._instance) { - if (end) { - var endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity); - this.mutate({ endDelta: endDelta }); - } - else { - this.mutate({ standardProps: { hasEnd: false } }); - } - } - }; - EventApi.prototype.setDates = function (startInput, endInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var standardProps = { allDay: options.allDay }; - var start = dateEnv.createMarker(startInput); - var end; - if (!start) { - return; // TODO: warning if parsed bad - } - if (endInput != null) { - end = dateEnv.createMarker(endInput); - if (!end) { // TODO: warning if parsed bad - return; - } - } - if (this._instance) { - var instanceRange = this._instance.range; - // when computing the diff for an event being converted to all-day, - // compute diff off of the all-day values the way event-mutation does. - if (options.allDay === true) { - instanceRange = computeAlignedDayRange(instanceRange); - } - var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); - if (end) { - var endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity); - if (durationsEqual(startDelta, endDelta)) { - this.mutate({ datesDelta: startDelta, standardProps: standardProps }); - } - else { - this.mutate({ startDelta: startDelta, endDelta: endDelta, standardProps: standardProps }); - } - } - else { // means "clear the end" - standardProps.hasEnd = false; - this.mutate({ datesDelta: startDelta, standardProps: standardProps }); - } - } - }; - EventApi.prototype.moveStart = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ startDelta: delta }); - } - }; - EventApi.prototype.moveEnd = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ endDelta: delta }); - } - }; - EventApi.prototype.moveDates = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ datesDelta: delta }); - } - }; - EventApi.prototype.setAllDay = function (allDay, options) { - if (options === void 0) { options = {}; } - var standardProps = { allDay: allDay }; - var maintainDuration = options.maintainDuration; - if (maintainDuration == null) { - maintainDuration = this._calendar.opt('allDayMaintainDuration'); - } - if (this._def.allDay !== allDay) { - standardProps.hasEnd = maintainDuration; - } - this.mutate({ standardProps: standardProps }); - }; - EventApi.prototype.formatRange = function (formatInput) { - var dateEnv = this._calendar.dateEnv; - var instance = this._instance; - var formatter = createFormatter(formatInput, this._calendar.opt('defaultRangeSeparator')); - if (this._def.hasEnd) { - return dateEnv.formatRange(instance.range.start, instance.range.end, formatter, { - forcedStartTzo: instance.forcedStartTzo, - forcedEndTzo: instance.forcedEndTzo - }); - } - else { - return dateEnv.format(instance.range.start, formatter, { - forcedTzo: instance.forcedStartTzo - }); - } - }; - EventApi.prototype.mutate = function (mutation) { - var def = this._def; - var instance = this._instance; - if (instance) { - this._calendar.dispatch({ - type: 'MUTATE_EVENTS', - instanceId: instance.instanceId, - mutation: mutation, - fromApi: true - }); - var eventStore = this._calendar.state.eventStore; - this._def = eventStore.defs[def.defId]; - this._instance = eventStore.instances[instance.instanceId]; - } - }; - EventApi.prototype.remove = function () { - this._calendar.dispatch({ - type: 'REMOVE_EVENT_DEF', - defId: this._def.defId - }); - }; - Object.defineProperty(EventApi.prototype, "source", { - get: function () { - var sourceId = this._def.sourceId; - if (sourceId) { - return new EventSourceApi(this._calendar, this._calendar.state.eventSources[sourceId]); - } - return null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "start", { - get: function () { - return this._instance ? - this._calendar.dateEnv.toDate(this._instance.range.start) : - null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "end", { - get: function () { - return (this._instance && this._def.hasEnd) ? - this._calendar.dateEnv.toDate(this._instance.range.end) : - null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "id", { - // computable props that all access the def - // TODO: find a TypeScript-compatible way to do this at scale - get: function () { return this._def.publicId; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "groupId", { - get: function () { return this._def.groupId; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "allDay", { - get: function () { return this._def.allDay; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "title", { - get: function () { return this._def.title; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "url", { - get: function () { return this._def.url; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "rendering", { - get: function () { return this._def.rendering; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "startEditable", { - get: function () { return this._def.ui.startEditable; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "durationEditable", { - get: function () { return this._def.ui.durationEditable; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "constraint", { - get: function () { return this._def.ui.constraints[0] || null; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "overlap", { - get: function () { return this._def.ui.overlap; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "allow", { - get: function () { return this._def.ui.allows[0] || null; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "backgroundColor", { - get: function () { return this._def.ui.backgroundColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "borderColor", { - get: function () { return this._def.ui.borderColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "textColor", { - get: function () { return this._def.ui.textColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "classNames", { - // NOTE: user can't modify these because Object.freeze was called in event-def parsing - get: function () { return this._def.ui.classNames; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "extendedProps", { - get: function () { return this._def.extendedProps; }, - enumerable: true, - configurable: true - }); - return EventApi; -}()); - -/* -Specifying nextDayThreshold signals that all-day ranges should be sliced. -*/ -function sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshold) { - var inverseBgByGroupId = {}; - var inverseBgByDefId = {}; - var defByGroupId = {}; - var bgRanges = []; - var fgRanges = []; - var eventUis = compileEventUis(eventStore.defs, eventUiBases); - for (var defId in eventStore.defs) { - var def = eventStore.defs[defId]; - if (def.rendering === 'inverse-background') { - if (def.groupId) { - inverseBgByGroupId[def.groupId] = []; - if (!defByGroupId[def.groupId]) { - defByGroupId[def.groupId] = def; - } - } - else { - inverseBgByDefId[defId] = []; - } - } - } - for (var instanceId in eventStore.instances) { - var instance = eventStore.instances[instanceId]; - var def = eventStore.defs[instance.defId]; - var ui = eventUis[def.defId]; - var origRange = instance.range; - var normalRange = (!def.allDay && nextDayThreshold) ? - computeVisibleDayRange(origRange, nextDayThreshold) : - origRange; - var slicedRange = intersectRanges(normalRange, framingRange); - if (slicedRange) { - if (def.rendering === 'inverse-background') { - if (def.groupId) { - inverseBgByGroupId[def.groupId].push(slicedRange); - } - else { - inverseBgByDefId[instance.defId].push(slicedRange); - } - } - else { - (def.rendering === 'background' ? bgRanges : fgRanges).push({ - def: def, - ui: ui, - instance: instance, - range: slicedRange, - isStart: normalRange.start && normalRange.start.valueOf() === slicedRange.start.valueOf(), - isEnd: normalRange.end && normalRange.end.valueOf() === slicedRange.end.valueOf() - }); - } - } - } - for (var groupId in inverseBgByGroupId) { // BY GROUP - var ranges = inverseBgByGroupId[groupId]; - var invertedRanges = invertRanges(ranges, framingRange); - for (var _i = 0, invertedRanges_1 = invertedRanges; _i < invertedRanges_1.length; _i++) { - var invertedRange = invertedRanges_1[_i]; - var def = defByGroupId[groupId]; - var ui = eventUis[def.defId]; - bgRanges.push({ - def: def, - ui: ui, - instance: null, - range: invertedRange, - isStart: false, - isEnd: false - }); - } - } - for (var defId in inverseBgByDefId) { - var ranges = inverseBgByDefId[defId]; - var invertedRanges = invertRanges(ranges, framingRange); - for (var _a = 0, invertedRanges_2 = invertedRanges; _a < invertedRanges_2.length; _a++) { - var invertedRange = invertedRanges_2[_a]; - bgRanges.push({ - def: eventStore.defs[defId], - ui: eventUis[defId], - instance: null, - range: invertedRange, - isStart: false, - isEnd: false - }); - } - } - return { bg: bgRanges, fg: fgRanges }; -} -function hasBgRendering(def) { - return def.rendering === 'background' || def.rendering === 'inverse-background'; -} -function filterSegsViaEls(view, segs, isMirror) { - if (view.hasPublicHandlers('eventRender')) { - segs = segs.filter(function (seg) { - var custom = view.publiclyTrigger('eventRender', [ - { - event: new EventApi(view.calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirror, - isStart: seg.isStart, - isEnd: seg.isEnd, - // TODO: include seg.range once all components consistently generate it - el: seg.el, - view: view - } - ]); - if (custom === false) { // means don't render at all - return false; - } - else if (custom && custom !== true) { - seg.el = custom; - } - return true; - }); - } - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - setElSeg(seg.el, seg); - } - return segs; -} -function setElSeg(el, seg) { - el.fcSeg = seg; -} -function getElSeg(el) { - return el.fcSeg || null; -} -// event ui computation -function compileEventUis(eventDefs, eventUiBases) { - return mapHash(eventDefs, function (eventDef) { - return compileEventUi(eventDef, eventUiBases); - }); -} -function compileEventUi(eventDef, eventUiBases) { - var uis = []; - if (eventUiBases['']) { - uis.push(eventUiBases['']); - } - if (eventUiBases[eventDef.defId]) { - uis.push(eventUiBases[eventDef.defId]); - } - uis.push(eventDef.ui); - return combineEventUis(uis); -} - -// applies the mutation to ALL defs/instances within the event store -function applyMutationToEventStore(eventStore, eventConfigBase, mutation, calendar) { - var eventConfigs = compileEventUis(eventStore.defs, eventConfigBase); - var dest = createEmptyEventStore(); - for (var defId in eventStore.defs) { - var def = eventStore.defs[defId]; - dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, calendar.pluginSystem.hooks.eventDefMutationAppliers, calendar); - } - for (var instanceId in eventStore.instances) { - var instance = eventStore.instances[instanceId]; - var def = dest.defs[instance.defId]; // important to grab the newly modified def - dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, calendar); - } - return dest; -} -function applyMutationToEventDef(eventDef, eventConfig, mutation, appliers, calendar) { - var standardProps = mutation.standardProps || {}; - // if hasEnd has not been specified, guess a good value based on deltas. - // if duration will change, there's no way the default duration will persist, - // and thus, we need to mark the event as having a real end - if (standardProps.hasEnd == null && - eventConfig.durationEditable && - (mutation.startDelta || mutation.endDelta)) { - standardProps.hasEnd = true; // TODO: is this mutation okay? - } - var copy = __assign({}, eventDef, standardProps, { ui: __assign({}, eventDef.ui, standardProps.ui) }); - if (mutation.extendedProps) { - copy.extendedProps = __assign({}, copy.extendedProps, mutation.extendedProps); - } - for (var _i = 0, appliers_1 = appliers; _i < appliers_1.length; _i++) { - var applier = appliers_1[_i]; - applier(copy, mutation, calendar); - } - if (!copy.hasEnd && calendar.opt('forceEventDuration')) { - copy.hasEnd = true; - } - return copy; -} -function applyMutationToEventInstance(eventInstance, eventDef, // must first be modified by applyMutationToEventDef -eventConfig, mutation, calendar) { - var dateEnv = calendar.dateEnv; - var forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true; - var clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false; - var copy = __assign({}, eventInstance); - if (forceAllDay) { - copy.range = computeAlignedDayRange(copy.range); - } - if (mutation.datesDelta && eventConfig.startEditable) { - copy.range = { - start: dateEnv.add(copy.range.start, mutation.datesDelta), - end: dateEnv.add(copy.range.end, mutation.datesDelta) - }; - } - if (mutation.startDelta && eventConfig.durationEditable) { - copy.range = { - start: dateEnv.add(copy.range.start, mutation.startDelta), - end: copy.range.end - }; - } - if (mutation.endDelta && eventConfig.durationEditable) { - copy.range = { - start: copy.range.start, - end: dateEnv.add(copy.range.end, mutation.endDelta) - }; - } - if (clearEnd) { - copy.range = { - start: copy.range.start, - end: calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start) - }; - } - // in case event was all-day but the supplied deltas were not - // better util for this? - if (eventDef.allDay) { - copy.range = { - start: startOfDay(copy.range.start), - end: startOfDay(copy.range.end) - }; - } - // handle invalid durations - if (copy.range.end < copy.range.start) { - copy.range.end = calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start); - } - return copy; -} - -function reduceEventStore (eventStore, action, eventSources, dateProfile, calendar) { - switch (action.type) { - case 'RECEIVE_EVENTS': // raw - return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, calendar); - case 'ADD_EVENTS': // already parsed, but not expanded - return addEvent(eventStore, action.eventStore, // new ones - dateProfile ? dateProfile.activeRange : null, calendar); - case 'MERGE_EVENTS': // already parsed and expanded - return mergeEventStores(eventStore, action.eventStore); - case 'PREV': // TODO: how do we track all actions that affect dateProfile :( - case 'NEXT': - case 'SET_DATE': - case 'SET_VIEW_TYPE': - if (dateProfile) { - return expandRecurring(eventStore, dateProfile.activeRange, calendar); - } - else { - return eventStore; - } - case 'CHANGE_TIMEZONE': - return rezoneDates(eventStore, action.oldDateEnv, calendar.dateEnv); - case 'MUTATE_EVENTS': - return applyMutationToRelated(eventStore, action.instanceId, action.mutation, action.fromApi, calendar); - case 'REMOVE_EVENT_INSTANCES': - return excludeInstances(eventStore, action.instances); - case 'REMOVE_EVENT_DEF': - return filterEventStoreDefs(eventStore, function (eventDef) { - return eventDef.defId !== action.defId; - }); - case 'REMOVE_EVENT_SOURCE': - return excludeEventsBySourceId(eventStore, action.sourceId); - case 'REMOVE_ALL_EVENT_SOURCES': - return filterEventStoreDefs(eventStore, function (eventDef) { - return !eventDef.sourceId; // only keep events with no source id - }); - case 'REMOVE_ALL_EVENTS': - return createEmptyEventStore(); - case 'RESET_EVENTS': - return { - defs: eventStore.defs, - instances: eventStore.instances - }; - default: - return eventStore; - } -} -function receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, calendar) { - if (eventSource && // not already removed - fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources - ) { - var subset = parseEvents(transformRawEvents(rawEvents, eventSource, calendar), eventSource.sourceId, calendar); - if (fetchRange) { - subset = expandRecurring(subset, fetchRange, calendar); - } - return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset); - } - return eventStore; -} -function addEvent(eventStore, subset, expandRange, calendar) { - if (expandRange) { - subset = expandRecurring(subset, expandRange, calendar); - } - return mergeEventStores(eventStore, subset); -} -function rezoneDates(eventStore, oldDateEnv, newDateEnv) { - var defs = eventStore.defs; - var instances = mapHash(eventStore.instances, function (instance) { - var def = defs[instance.defId]; - if (def.allDay || def.recurringDef) { - return instance; // isn't dependent on timezone - } - else { - return __assign({}, instance, { range: { - start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)), - end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo)) - }, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo }); - } - }); - return { defs: defs, instances: instances }; -} -function applyMutationToRelated(eventStore, instanceId, mutation, fromApi, calendar) { - var relevant = getRelevantEvents(eventStore, instanceId); - var eventConfigBase = fromApi ? - { '': { - startEditable: true, - durationEditable: true, - constraints: [], - overlap: null, - allows: [], - backgroundColor: '', - borderColor: '', - textColor: '', - classNames: [] - } } : - calendar.eventUiBases; - relevant = applyMutationToEventStore(relevant, eventConfigBase, mutation, calendar); - return mergeEventStores(eventStore, relevant); -} -function excludeEventsBySourceId(eventStore, sourceId) { - return filterEventStoreDefs(eventStore, function (eventDef) { - return eventDef.sourceId !== sourceId; - }); -} -// QUESTION: why not just return instances? do a general object-property-exclusion util -function excludeInstances(eventStore, removals) { - return { - defs: eventStore.defs, - instances: filterHash(eventStore.instances, function (instance) { - return !removals[instance.instanceId]; - }) - }; -} - -// high-level segmenting-aware tester functions -// ------------------------------------------------------------------------------------------------------------------------ -function isInteractionValid(interaction, calendar) { - return isNewPropsValid({ eventDrag: interaction }, calendar); // HACK: the eventDrag props is used for ALL interactions -} -function isDateSelectionValid(dateSelection, calendar) { - return isNewPropsValid({ dateSelection: dateSelection }, calendar); -} -function isNewPropsValid(newProps, calendar) { - var view = calendar.view; - var props = __assign({ businessHours: view ? view.props.businessHours : createEmptyEventStore(), dateSelection: '', eventStore: calendar.state.eventStore, eventUiBases: calendar.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps); - return (calendar.pluginSystem.hooks.isPropsValid || isPropsValid)(props, calendar); -} -function isPropsValid(state, calendar, dateSpanMeta, filterConfig) { - if (dateSpanMeta === void 0) { dateSpanMeta = {}; } - if (state.eventDrag && !isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig)) { - return false; - } - if (state.dateSelection && !isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig)) { - return false; - } - return true; -} -// Moving Event Validation -// ------------------------------------------------------------------------------------------------------------------------ -function isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig) { - var interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions - var subjectEventStore = interaction.mutatedEvents; - var subjectDefs = subjectEventStore.defs; - var subjectInstances = subjectEventStore.instances; - var subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ? - state.eventUiBases : - { '': calendar.selectionConfig } // if not a real event, validate as a selection - ); - if (filterConfig) { - subjectConfigs = mapHash(subjectConfigs, filterConfig); - } - var otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances); // exclude the subject events. TODO: exclude defs too? - var otherDefs = otherEventStore.defs; - var otherInstances = otherEventStore.instances; - var otherConfigs = compileEventUis(otherDefs, state.eventUiBases); - for (var subjectInstanceId in subjectInstances) { - var subjectInstance = subjectInstances[subjectInstanceId]; - var subjectRange = subjectInstance.range; - var subjectConfig = subjectConfigs[subjectInstance.defId]; - var subjectDef = subjectDefs[subjectInstance.defId]; - // constraint - if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, calendar)) { - return false; - } - // overlap - var overlapFunc = calendar.opt('eventOverlap'); - if (typeof overlapFunc !== 'function') { - overlapFunc = null; - } - for (var otherInstanceId in otherInstances) { - var otherInstance = otherInstances[otherInstanceId]; - // intersect! evaluate - if (rangesIntersect(subjectRange, otherInstance.range)) { - var otherOverlap = otherConfigs[otherInstance.defId].overlap; - // consider the other event's overlap. only do this if the subject event is a "real" event - if (otherOverlap === false && interaction.isEvent) { - return false; - } - if (subjectConfig.overlap === false) { - return false; - } - if (overlapFunc && !overlapFunc(new EventApi(calendar, otherDefs[otherInstance.defId], otherInstance), // still event - new EventApi(calendar, subjectDef, subjectInstance) // moving event - )) { - return false; - } - } - } - // allow (a function) - var calendarEventStore = calendar.state.eventStore; // need global-to-calendar, not local to component (splittable)state - for (var _i = 0, _a = subjectConfig.allows; _i < _a.length; _i++) { - var subjectAllow = _a[_i]; - var subjectDateSpan = __assign({}, dateSpanMeta, { range: subjectInstance.range, allDay: subjectDef.allDay }); - var origDef = calendarEventStore.defs[subjectDef.defId]; - var origInstance = calendarEventStore.instances[subjectInstanceId]; - var eventApi = void 0; - if (origDef) { // was previously in the calendar - eventApi = new EventApi(calendar, origDef, origInstance); - } - else { // was an external event - eventApi = new EventApi(calendar, subjectDef); // no instance, because had no dates - } - if (!subjectAllow(calendar.buildDateSpanApi(subjectDateSpan), eventApi)) { - return false; - } - } - } - return true; -} -// Date Selection Validation -// ------------------------------------------------------------------------------------------------------------------------ -function isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig) { - var relevantEventStore = state.eventStore; - var relevantDefs = relevantEventStore.defs; - var relevantInstances = relevantEventStore.instances; - var selection = state.dateSelection; - var selectionRange = selection.range; - var selectionConfig = calendar.selectionConfig; - if (filterConfig) { - selectionConfig = filterConfig(selectionConfig); - } - // constraint - if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, calendar)) { - return false; - } - // overlap - var overlapFunc = calendar.opt('selectOverlap'); - if (typeof overlapFunc !== 'function') { - overlapFunc = null; - } - for (var relevantInstanceId in relevantInstances) { - var relevantInstance = relevantInstances[relevantInstanceId]; - // intersect! evaluate - if (rangesIntersect(selectionRange, relevantInstance.range)) { - if (selectionConfig.overlap === false) { - return false; - } - if (overlapFunc && !overlapFunc(new EventApi(calendar, relevantDefs[relevantInstance.defId], relevantInstance))) { - return false; - } - } - } - // allow (a function) - for (var _i = 0, _a = selectionConfig.allows; _i < _a.length; _i++) { - var selectionAllow = _a[_i]; - var fullDateSpan = __assign({}, dateSpanMeta, selection); - if (!selectionAllow(calendar.buildDateSpanApi(fullDateSpan), null)) { - return false; - } - } - return true; -} -// Constraint Utils -// ------------------------------------------------------------------------------------------------------------------------ -function allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, calendar) { - for (var _i = 0, constraints_1 = constraints; _i < constraints_1.length; _i++) { - var constraint = constraints_1[_i]; - if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, calendar), subjectRange)) { - return false; - } - } - return true; -} -function constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours -otherEventStore, // for if constraint is an even group ID -businessHoursUnexpanded, // for if constraint is 'businessHours' -calendar // for expanding businesshours -) { - if (constraint === 'businessHours') { - return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, calendar)); - } - else if (typeof constraint === 'string') { // an group ID - return eventStoreToRanges(filterEventStoreDefs(otherEventStore, function (eventDef) { - return eventDef.groupId === constraint; - })); - } - else if (typeof constraint === 'object' && constraint) { // non-null object - return eventStoreToRanges(expandRecurring(constraint, subjectRange, calendar)); - } - return []; // if it's false -} -// TODO: move to event-store file? -function eventStoreToRanges(eventStore) { - var instances = eventStore.instances; - var ranges = []; - for (var instanceId in instances) { - ranges.push(instances[instanceId].range); - } - return ranges; -} -// TODO: move to geom file? -function anyRangesContainRange(outerRanges, innerRange) { - for (var _i = 0, outerRanges_1 = outerRanges; _i < outerRanges_1.length; _i++) { - var outerRange = outerRanges_1[_i]; - if (rangeContainsRange(outerRange, innerRange)) { - return true; - } - } - return false; -} -// Parsing -// ------------------------------------------------------------------------------------------------------------------------ -function normalizeConstraint(input, calendar) { - if (Array.isArray(input)) { - return parseEvents(input, '', calendar, true); // allowOpenRange=true - } - else if (typeof input === 'object' && input) { // non-null object - return parseEvents([input], '', calendar, true); // allowOpenRange=true - } - else if (input != null) { - return String(input); - } - else { - return null; - } -} - -function htmlEscape(s) { - return (s + '').replace(/&/g, '&') - .replace(//g, '>') - .replace(/'/g, ''') - .replace(/"/g, '"') - .replace(/\n/g, '
'); -} -// Given a hash of CSS properties, returns a string of CSS. -// Uses property names as-is (no camel-case conversion). Will not make statements for null/undefined values. -function cssToStr(cssProps) { - var statements = []; - for (var name_1 in cssProps) { - var val = cssProps[name_1]; - if (val != null && val !== '') { - statements.push(name_1 + ':' + val); - } - } - return statements.join(';'); -} -// Given an object hash of HTML attribute names to values, -// generates a string that can be injected between < > in HTML -function attrsToStr(attrs) { - var parts = []; - for (var name_2 in attrs) { - var val = attrs[name_2]; - if (val != null) { - parts.push(name_2 + '="' + htmlEscape(val) + '"'); - } - } - return parts.join(' '); -} -function parseClassName(raw) { - if (Array.isArray(raw)) { - return raw; - } - else if (typeof raw === 'string') { - return raw.split(/\s+/); - } - else { - return []; - } -} - -var UNSCOPED_EVENT_UI_PROPS = { - editable: Boolean, - startEditable: Boolean, - durationEditable: Boolean, - constraint: null, - overlap: null, - allow: null, - className: parseClassName, - classNames: parseClassName, - color: String, - backgroundColor: String, - borderColor: String, - textColor: String -}; -function processUnscopedUiProps(rawProps, calendar, leftovers) { - var props = refineProps(rawProps, UNSCOPED_EVENT_UI_PROPS, {}, leftovers); - var constraint = normalizeConstraint(props.constraint, calendar); - return { - startEditable: props.startEditable != null ? props.startEditable : props.editable, - durationEditable: props.durationEditable != null ? props.durationEditable : props.editable, - constraints: constraint != null ? [constraint] : [], - overlap: props.overlap, - allows: props.allow != null ? [props.allow] : [], - backgroundColor: props.backgroundColor || props.color, - borderColor: props.borderColor || props.color, - textColor: props.textColor, - classNames: props.classNames.concat(props.className) - }; -} -function processScopedUiProps(prefix, rawScoped, calendar, leftovers) { - var rawUnscoped = {}; - var wasFound = {}; - for (var key in UNSCOPED_EVENT_UI_PROPS) { - var scopedKey = prefix + capitaliseFirstLetter(key); - rawUnscoped[key] = rawScoped[scopedKey]; - wasFound[scopedKey] = true; - } - if (prefix === 'event') { - rawUnscoped.editable = rawScoped.editable; // special case. there is no 'eventEditable', just 'editable' - } - if (leftovers) { - for (var key in rawScoped) { - if (!wasFound[key]) { - leftovers[key] = rawScoped[key]; - } - } - } - return processUnscopedUiProps(rawUnscoped, calendar); -} -var EMPTY_EVENT_UI = { - startEditable: null, - durationEditable: null, - constraints: [], - overlap: null, - allows: [], - backgroundColor: '', - borderColor: '', - textColor: '', - classNames: [] -}; -// prevent against problems with <2 args! -function combineEventUis(uis) { - return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI); -} -function combineTwoEventUis(item0, item1) { - return { - startEditable: item1.startEditable != null ? item1.startEditable : item0.startEditable, - durationEditable: item1.durationEditable != null ? item1.durationEditable : item0.durationEditable, - constraints: item0.constraints.concat(item1.constraints), - overlap: typeof item1.overlap === 'boolean' ? item1.overlap : item0.overlap, - allows: item0.allows.concat(item1.allows), - backgroundColor: item1.backgroundColor || item0.backgroundColor, - borderColor: item1.borderColor || item0.borderColor, - textColor: item1.textColor || item0.textColor, - classNames: item0.classNames.concat(item1.classNames) - }; -} - -var NON_DATE_PROPS = { - id: String, - groupId: String, - title: String, - url: String, - rendering: String, - extendedProps: null -}; -var DATE_PROPS = { - start: null, - date: null, - end: null, - allDay: null -}; -var uid = 0; -function parseEvent(raw, sourceId, calendar, allowOpenRange) { - var allDayDefault = computeIsAllDayDefault(sourceId, calendar); - var leftovers0 = {}; - var recurringRes = parseRecurring(raw, // raw, but with single-event stuff stripped out - allDayDefault, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes, leftovers0 // will populate with non-recurring props - ); - if (recurringRes) { - var def = parseEventDef(leftovers0, sourceId, recurringRes.allDay, Boolean(recurringRes.duration), calendar); - def.recurringDef = { - typeId: recurringRes.typeId, - typeData: recurringRes.typeData, - duration: recurringRes.duration - }; - return { def: def, instance: null }; - } - else { - var leftovers1 = {}; - var singleRes = parseSingle(raw, allDayDefault, calendar, leftovers1, allowOpenRange); - if (singleRes) { - var def = parseEventDef(leftovers1, sourceId, singleRes.allDay, singleRes.hasEnd, calendar); - var instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo); - return { def: def, instance: instance }; - } - } - return null; -} -/* -Will NOT populate extendedProps with the leftover properties. -Will NOT populate date-related props. -The EventNonDateInput has been normalized (id => publicId, etc). -*/ -function parseEventDef(raw, sourceId, allDay, hasEnd, calendar) { - var leftovers = {}; - var def = pluckNonDateProps(raw, calendar, leftovers); - def.defId = String(uid++); - def.sourceId = sourceId; - def.allDay = allDay; - def.hasEnd = hasEnd; - for (var _i = 0, _a = calendar.pluginSystem.hooks.eventDefParsers; _i < _a.length; _i++) { - var eventDefParser = _a[_i]; - var newLeftovers = {}; - eventDefParser(def, leftovers, newLeftovers); - leftovers = newLeftovers; - } - def.extendedProps = __assign(leftovers, def.extendedProps || {}); - // help out EventApi from having user modify props - Object.freeze(def.ui.classNames); - Object.freeze(def.extendedProps); - return def; -} -function createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) { - return { - instanceId: String(uid++), - defId: defId, - range: range, - forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo, - forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo - }; -} -function parseSingle(raw, allDayDefault, calendar, leftovers, allowOpenRange) { - var props = pluckDateProps(raw, leftovers); - var allDay = props.allDay; - var startMeta; - var startMarker = null; - var hasEnd = false; - var endMeta; - var endMarker = null; - startMeta = calendar.dateEnv.createMarkerMeta(props.start); - if (startMeta) { - startMarker = startMeta.marker; - } - else if (!allowOpenRange) { - return null; - } - if (props.end != null) { - endMeta = calendar.dateEnv.createMarkerMeta(props.end); - } - if (allDay == null) { - if (allDayDefault != null) { - allDay = allDayDefault; - } - else { - // fall back to the date props LAST - allDay = (!startMeta || startMeta.isTimeUnspecified) && - (!endMeta || endMeta.isTimeUnspecified); - } - } - if (allDay && startMarker) { - startMarker = startOfDay(startMarker); - } - if (endMeta) { - endMarker = endMeta.marker; - if (allDay) { - endMarker = startOfDay(endMarker); - } - if (startMarker && endMarker <= startMarker) { - endMarker = null; - } - } - if (endMarker) { - hasEnd = true; - } - else if (!allowOpenRange) { - hasEnd = calendar.opt('forceEventDuration') || false; - endMarker = calendar.dateEnv.add(startMarker, allDay ? - calendar.defaultAllDayEventDuration : - calendar.defaultTimedEventDuration); - } - return { - allDay: allDay, - hasEnd: hasEnd, - range: { start: startMarker, end: endMarker }, - forcedStartTzo: startMeta ? startMeta.forcedTzo : null, - forcedEndTzo: endMeta ? endMeta.forcedTzo : null - }; -} -function pluckDateProps(raw, leftovers) { - var props = refineProps(raw, DATE_PROPS, {}, leftovers); - props.start = (props.start !== null) ? props.start : props.date; - delete props.date; - return props; -} -function pluckNonDateProps(raw, calendar, leftovers) { - var preLeftovers = {}; - var props = refineProps(raw, NON_DATE_PROPS, {}, preLeftovers); - var ui = processUnscopedUiProps(preLeftovers, calendar, leftovers); - props.publicId = props.id; - delete props.id; - props.ui = ui; - return props; -} -function computeIsAllDayDefault(sourceId, calendar) { - var res = null; - if (sourceId) { - var source = calendar.state.eventSources[sourceId]; - res = source.allDayDefault; - } - if (res == null) { - res = calendar.opt('allDayDefault'); - } - return res; -} - -var DEF_DEFAULTS = { - startTime: '09:00', - endTime: '17:00', - daysOfWeek: [1, 2, 3, 4, 5], - rendering: 'inverse-background', - classNames: 'fc-nonbusiness', - groupId: '_businessHours' // so multiple defs get grouped -}; -/* -TODO: pass around as EventDefHash!!! -*/ -function parseBusinessHours(input, calendar) { - return parseEvents(refineInputs(input), '', calendar); -} -function refineInputs(input) { - var rawDefs; - if (input === true) { - rawDefs = [{}]; // will get DEF_DEFAULTS verbatim - } - else if (Array.isArray(input)) { - // if specifying an array, every sub-definition NEEDS a day-of-week - rawDefs = input.filter(function (rawDef) { - return rawDef.daysOfWeek; - }); - } - else if (typeof input === 'object' && input) { // non-null object - rawDefs = [input]; - } - else { // is probably false - rawDefs = []; - } - rawDefs = rawDefs.map(function (rawDef) { - return __assign({}, DEF_DEFAULTS, rawDef); - }); - return rawDefs; -} - -function memoizeRendering(renderFunc, unrenderFunc, dependencies) { - if (dependencies === void 0) { dependencies = []; } - var dependents = []; - var thisContext; - var prevArgs; - function unrender() { - if (prevArgs) { - for (var _i = 0, dependents_1 = dependents; _i < dependents_1.length; _i++) { - var dependent = dependents_1[_i]; - dependent.unrender(); - } - if (unrenderFunc) { - unrenderFunc.apply(thisContext, prevArgs); - } - prevArgs = null; - } - } - function res() { - if (!prevArgs || !isArraysEqual(prevArgs, arguments)) { - unrender(); - thisContext = this; - prevArgs = arguments; - renderFunc.apply(this, arguments); - } - } - res.dependents = dependents; - res.unrender = unrender; - for (var _i = 0, dependencies_1 = dependencies; _i < dependencies_1.length; _i++) { - var dependency = dependencies_1[_i]; - dependency.dependents.push(res); - } - return res; -} - -var EMPTY_EVENT_STORE = createEmptyEventStore(); // for purecomponents. TODO: keep elsewhere -var Splitter = /** @class */ (function () { - function Splitter() { - this.getKeysForEventDefs = memoize(this._getKeysForEventDefs); - this.splitDateSelection = memoize(this._splitDateSpan); - this.splitEventStore = memoize(this._splitEventStore); - this.splitIndividualUi = memoize(this._splitIndividualUi); - this.splitEventDrag = memoize(this._splitInteraction); - this.splitEventResize = memoize(this._splitInteraction); - this.eventUiBuilders = {}; // TODO: typescript protection - } - Splitter.prototype.splitProps = function (props) { - var _this = this; - var keyInfos = this.getKeyInfo(props); - var defKeys = this.getKeysForEventDefs(props.eventStore); - var dateSelections = this.splitDateSelection(props.dateSelection); - var individualUi = this.splitIndividualUi(props.eventUiBases, defKeys); // the individual *bases* - var eventStores = this.splitEventStore(props.eventStore, defKeys); - var eventDrags = this.splitEventDrag(props.eventDrag); - var eventResizes = this.splitEventResize(props.eventResize); - var splitProps = {}; - this.eventUiBuilders = mapHash(keyInfos, function (info, key) { - return _this.eventUiBuilders[key] || memoize(buildEventUiForKey); - }); - for (var key in keyInfos) { - var keyInfo = keyInfos[key]; - var eventStore = eventStores[key] || EMPTY_EVENT_STORE; - var buildEventUi = this.eventUiBuilders[key]; - splitProps[key] = { - businessHours: keyInfo.businessHours || props.businessHours, - dateSelection: dateSelections[key] || null, - eventStore: eventStore, - eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]), - eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '', - eventDrag: eventDrags[key] || null, - eventResize: eventResizes[key] || null - }; - } - return splitProps; - }; - Splitter.prototype._splitDateSpan = function (dateSpan) { - var dateSpans = {}; - if (dateSpan) { - var keys = this.getKeysForDateSpan(dateSpan); - for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { - var key = keys_1[_i]; - dateSpans[key] = dateSpan; - } - } - return dateSpans; - }; - Splitter.prototype._getKeysForEventDefs = function (eventStore) { - var _this = this; - return mapHash(eventStore.defs, function (eventDef) { - return _this.getKeysForEventDef(eventDef); - }); - }; - Splitter.prototype._splitEventStore = function (eventStore, defKeys) { - var defs = eventStore.defs, instances = eventStore.instances; - var splitStores = {}; - for (var defId in defs) { - for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) { - var key = _a[_i]; - if (!splitStores[key]) { - splitStores[key] = createEmptyEventStore(); - } - splitStores[key].defs[defId] = defs[defId]; - } - } - for (var instanceId in instances) { - var instance = instances[instanceId]; - for (var _b = 0, _c = defKeys[instance.defId]; _b < _c.length; _b++) { - var key = _c[_b]; - if (splitStores[key]) { // must have already been created - splitStores[key].instances[instanceId] = instance; - } - } - } - return splitStores; - }; - Splitter.prototype._splitIndividualUi = function (eventUiBases, defKeys) { - var splitHashes = {}; - for (var defId in eventUiBases) { - if (defId) { // not the '' key - for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) { - var key = _a[_i]; - if (!splitHashes[key]) { - splitHashes[key] = {}; - } - splitHashes[key][defId] = eventUiBases[defId]; - } - } - } - return splitHashes; - }; - Splitter.prototype._splitInteraction = function (interaction) { - var splitStates = {}; - if (interaction) { - var affectedStores_1 = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents) // can't use cached. might be events from other calendar - ); - // can't rely on defKeys because event data is mutated - var mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents); - var mutatedStores_1 = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId); - var populate = function (key) { - if (!splitStates[key]) { - splitStates[key] = { - affectedEvents: affectedStores_1[key] || EMPTY_EVENT_STORE, - mutatedEvents: mutatedStores_1[key] || EMPTY_EVENT_STORE, - isEvent: interaction.isEvent, - origSeg: interaction.origSeg - }; - } - }; - for (var key in affectedStores_1) { - populate(key); - } - for (var key in mutatedStores_1) { - populate(key); - } - } - return splitStates; - }; - return Splitter; -}()); -function buildEventUiForKey(allUi, eventUiForKey, individualUi) { - var baseParts = []; - if (allUi) { - baseParts.push(allUi); - } - if (eventUiForKey) { - baseParts.push(eventUiForKey); - } - var stuff = { - '': combineEventUis(baseParts) - }; - if (individualUi) { - __assign(stuff, individualUi); - } - return stuff; -} - -// Generates HTML for an anchor to another view into the calendar. -// Will either generate an
tag or a non-clickable tag, depending on enabled settings. -// `gotoOptions` can either be a DateMarker, or an object with the form: -// { date, type, forceOff } -// `type` is a view-type like "day" or "week". default value is "day". -// `attrs` and `innerHtml` are use to generate the rest of the HTML tag. -function buildGotoAnchorHtml(component, gotoOptions, attrs, innerHtml) { - var dateEnv = component.dateEnv; - var date; - var type; - var forceOff; - var finalOptions; - if (gotoOptions instanceof Date) { - date = gotoOptions; // a single date-like input - } - else { - date = gotoOptions.date; - type = gotoOptions.type; - forceOff = gotoOptions.forceOff; - } - finalOptions = { - date: dateEnv.formatIso(date, { omitTime: true }), - type: type || 'day' - }; - if (typeof attrs === 'string') { - innerHtml = attrs; - attrs = null; - } - attrs = attrs ? ' ' + attrsToStr(attrs) : ''; // will have a leading space - innerHtml = innerHtml || ''; - if (!forceOff && component.opt('navLinks')) { - return '' + - innerHtml + - ''; - } - else { - return '' + - innerHtml + - ''; - } -} -function getAllDayHtml(component) { - return component.opt('allDayHtml') || htmlEscape(component.opt('allDayText')); -} -// Computes HTML classNames for a single-day element -function getDayClasses(date, dateProfile, context, noThemeHighlight) { - var calendar = context.calendar, view = context.view, theme = context.theme, dateEnv = context.dateEnv; - var classes = []; - var todayStart; - var todayEnd; - if (!rangeContainsMarker(dateProfile.activeRange, date)) { - classes.push('fc-disabled-day'); - } - else { - classes.push('fc-' + DAY_IDS[date.getUTCDay()]); - if (view.opt('monthMode') && - dateEnv.getMonth(date) !== dateEnv.getMonth(dateProfile.currentRange.start)) { - classes.push('fc-other-month'); - } - todayStart = startOfDay(calendar.getNow()); - todayEnd = addDays(todayStart, 1); - if (date < todayStart) { - classes.push('fc-past'); - } - else if (date >= todayEnd) { - classes.push('fc-future'); - } - else { - classes.push('fc-today'); - if (noThemeHighlight !== true) { - classes.push(theme.getClass('today')); - } - } - } - return classes; -} - -// given a function that resolves a result asynchronously. -// the function can either call passed-in success and failure callbacks, -// or it can return a promise. -// if you need to pass additional params to func, bind them first. -function unpromisify(func, success, failure) { - // guard against success/failure callbacks being called more than once - // and guard against a promise AND callback being used together. - var isResolved = false; - var wrappedSuccess = function () { - if (!isResolved) { - isResolved = true; - success.apply(this, arguments); - } - }; - var wrappedFailure = function () { - if (!isResolved) { - isResolved = true; - if (failure) { - failure.apply(this, arguments); - } - } - }; - var res = func(wrappedSuccess, wrappedFailure); - if (res && typeof res.then === 'function') { - res.then(wrappedSuccess, wrappedFailure); - } -} - -var Mixin = /** @class */ (function () { - function Mixin() { - } - // mix into a CLASS - Mixin.mixInto = function (destClass) { - this.mixIntoObj(destClass.prototype); - }; - // mix into ANY object - Mixin.mixIntoObj = function (destObj) { - var _this = this; - Object.getOwnPropertyNames(this.prototype).forEach(function (name) { - if (!destObj[name]) { // if destination doesn't already define it - destObj[name] = _this.prototype[name]; - } - }); - }; - /* - will override existing methods - TODO: remove! not used anymore - */ - Mixin.mixOver = function (destClass) { - var _this = this; - Object.getOwnPropertyNames(this.prototype).forEach(function (name) { - destClass.prototype[name] = _this.prototype[name]; - }); - }; - return Mixin; -}()); - -/* -USAGE: - import { default as EmitterMixin, EmitterInterface } from './EmitterMixin' -in class: - on: EmitterInterface['on'] - one: EmitterInterface['one'] - off: EmitterInterface['off'] - trigger: EmitterInterface['trigger'] - triggerWith: EmitterInterface['triggerWith'] - hasHandlers: EmitterInterface['hasHandlers'] -after class: - EmitterMixin.mixInto(TheClass) -*/ -var EmitterMixin = /** @class */ (function (_super) { - __extends(EmitterMixin, _super); - function EmitterMixin() { - return _super !== null && _super.apply(this, arguments) || this; - } - EmitterMixin.prototype.on = function (type, handler) { - addToHash(this._handlers || (this._handlers = {}), type, handler); - return this; // for chaining - }; - // todo: add comments - EmitterMixin.prototype.one = function (type, handler) { - addToHash(this._oneHandlers || (this._oneHandlers = {}), type, handler); - return this; // for chaining - }; - EmitterMixin.prototype.off = function (type, handler) { - if (this._handlers) { - removeFromHash(this._handlers, type, handler); - } - if (this._oneHandlers) { - removeFromHash(this._oneHandlers, type, handler); - } - return this; // for chaining - }; - EmitterMixin.prototype.trigger = function (type) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - this.triggerWith(type, this, args); - return this; // for chaining - }; - EmitterMixin.prototype.triggerWith = function (type, context, args) { - if (this._handlers) { - applyAll(this._handlers[type], context, args); - } - if (this._oneHandlers) { - applyAll(this._oneHandlers[type], context, args); - delete this._oneHandlers[type]; // will never fire again - } - return this; // for chaining - }; - EmitterMixin.prototype.hasHandlers = function (type) { - return (this._handlers && this._handlers[type] && this._handlers[type].length) || - (this._oneHandlers && this._oneHandlers[type] && this._oneHandlers[type].length); - }; - return EmitterMixin; -}(Mixin)); -function addToHash(hash, type, handler) { - (hash[type] || (hash[type] = [])) - .push(handler); -} -function removeFromHash(hash, type, handler) { - if (handler) { - if (hash[type]) { - hash[type] = hash[type].filter(function (func) { - return func !== handler; - }); - } - } - else { - delete hash[type]; // remove all handler funcs for this type - } -} - -/* -Records offset information for a set of elements, relative to an origin element. -Can record the left/right OR the top/bottom OR both. -Provides methods for querying the cache by position. -*/ -var PositionCache = /** @class */ (function () { - function PositionCache(originEl, els, isHorizontal, isVertical) { - this.originEl = originEl; - this.els = els; - this.isHorizontal = isHorizontal; - this.isVertical = isVertical; - } - // Queries the els for coordinates and stores them. - // Call this method before using and of the get* methods below. - PositionCache.prototype.build = function () { - var originEl = this.originEl; - var originClientRect = this.originClientRect = - originEl.getBoundingClientRect(); // relative to viewport top-left - if (this.isHorizontal) { - this.buildElHorizontals(originClientRect.left); - } - if (this.isVertical) { - this.buildElVerticals(originClientRect.top); - } - }; - // Populates the left/right internal coordinate arrays - PositionCache.prototype.buildElHorizontals = function (originClientLeft) { - var lefts = []; - var rights = []; - for (var _i = 0, _a = this.els; _i < _a.length; _i++) { - var el = _a[_i]; - var rect = el.getBoundingClientRect(); - lefts.push(rect.left - originClientLeft); - rights.push(rect.right - originClientLeft); - } - this.lefts = lefts; - this.rights = rights; - }; - // Populates the top/bottom internal coordinate arrays - PositionCache.prototype.buildElVerticals = function (originClientTop) { - var tops = []; - var bottoms = []; - for (var _i = 0, _a = this.els; _i < _a.length; _i++) { - var el = _a[_i]; - var rect = el.getBoundingClientRect(); - tops.push(rect.top - originClientTop); - bottoms.push(rect.bottom - originClientTop); - } - this.tops = tops; - this.bottoms = bottoms; - }; - // Given a left offset (from document left), returns the index of the el that it horizontally intersects. - // If no intersection is made, returns undefined. - PositionCache.prototype.leftToIndex = function (leftPosition) { - var lefts = this.lefts; - var rights = this.rights; - var len = lefts.length; - var i; - for (i = 0; i < len; i++) { - if (leftPosition >= lefts[i] && leftPosition < rights[i]) { - return i; - } - } - }; - // Given a top offset (from document top), returns the index of the el that it vertically intersects. - // If no intersection is made, returns undefined. - PositionCache.prototype.topToIndex = function (topPosition) { - var tops = this.tops; - var bottoms = this.bottoms; - var len = tops.length; - var i; - for (i = 0; i < len; i++) { - if (topPosition >= tops[i] && topPosition < bottoms[i]) { - return i; - } - } - }; - // Gets the width of the element at the given index - PositionCache.prototype.getWidth = function (leftIndex) { - return this.rights[leftIndex] - this.lefts[leftIndex]; - }; - // Gets the height of the element at the given index - PositionCache.prototype.getHeight = function (topIndex) { - return this.bottoms[topIndex] - this.tops[topIndex]; - }; - return PositionCache; -}()); - -/* -An object for getting/setting scroll-related information for an element. -Internally, this is done very differently for window versus DOM element, -so this object serves as a common interface. -*/ -var ScrollController = /** @class */ (function () { - function ScrollController() { - } - ScrollController.prototype.getMaxScrollTop = function () { - return this.getScrollHeight() - this.getClientHeight(); - }; - ScrollController.prototype.getMaxScrollLeft = function () { - return this.getScrollWidth() - this.getClientWidth(); - }; - ScrollController.prototype.canScrollVertically = function () { - return this.getMaxScrollTop() > 0; - }; - ScrollController.prototype.canScrollHorizontally = function () { - return this.getMaxScrollLeft() > 0; - }; - ScrollController.prototype.canScrollUp = function () { - return this.getScrollTop() > 0; - }; - ScrollController.prototype.canScrollDown = function () { - return this.getScrollTop() < this.getMaxScrollTop(); - }; - ScrollController.prototype.canScrollLeft = function () { - return this.getScrollLeft() > 0; - }; - ScrollController.prototype.canScrollRight = function () { - return this.getScrollLeft() < this.getMaxScrollLeft(); - }; - return ScrollController; -}()); -var ElementScrollController = /** @class */ (function (_super) { - __extends(ElementScrollController, _super); - function ElementScrollController(el) { - var _this = _super.call(this) || this; - _this.el = el; - return _this; - } - ElementScrollController.prototype.getScrollTop = function () { - return this.el.scrollTop; - }; - ElementScrollController.prototype.getScrollLeft = function () { - return this.el.scrollLeft; - }; - ElementScrollController.prototype.setScrollTop = function (top) { - this.el.scrollTop = top; - }; - ElementScrollController.prototype.setScrollLeft = function (left) { - this.el.scrollLeft = left; - }; - ElementScrollController.prototype.getScrollWidth = function () { - return this.el.scrollWidth; - }; - ElementScrollController.prototype.getScrollHeight = function () { - return this.el.scrollHeight; - }; - ElementScrollController.prototype.getClientHeight = function () { - return this.el.clientHeight; - }; - ElementScrollController.prototype.getClientWidth = function () { - return this.el.clientWidth; - }; - return ElementScrollController; -}(ScrollController)); -var WindowScrollController = /** @class */ (function (_super) { - __extends(WindowScrollController, _super); - function WindowScrollController() { - return _super !== null && _super.apply(this, arguments) || this; - } - WindowScrollController.prototype.getScrollTop = function () { - return window.pageYOffset; - }; - WindowScrollController.prototype.getScrollLeft = function () { - return window.pageXOffset; - }; - WindowScrollController.prototype.setScrollTop = function (n) { - window.scroll(window.pageXOffset, n); - }; - WindowScrollController.prototype.setScrollLeft = function (n) { - window.scroll(n, window.pageYOffset); - }; - WindowScrollController.prototype.getScrollWidth = function () { - return document.documentElement.scrollWidth; - }; - WindowScrollController.prototype.getScrollHeight = function () { - return document.documentElement.scrollHeight; - }; - WindowScrollController.prototype.getClientHeight = function () { - return document.documentElement.clientHeight; - }; - WindowScrollController.prototype.getClientWidth = function () { - return document.documentElement.clientWidth; - }; - return WindowScrollController; -}(ScrollController)); - -/* -Embodies a div that has potential scrollbars -*/ -var ScrollComponent = /** @class */ (function (_super) { - __extends(ScrollComponent, _super); - function ScrollComponent(overflowX, overflowY) { - var _this = _super.call(this, createElement('div', { - className: 'fc-scroller' - })) || this; - _this.overflowX = overflowX; - _this.overflowY = overflowY; - _this.applyOverflow(); - return _this; - } - // sets to natural height, unlocks overflow - ScrollComponent.prototype.clear = function () { - this.setHeight('auto'); - this.applyOverflow(); - }; - ScrollComponent.prototype.destroy = function () { - removeElement(this.el); - }; - // Overflow - // ----------------------------------------------------------------------------------------------------------------- - ScrollComponent.prototype.applyOverflow = function () { - applyStyle(this.el, { - overflowX: this.overflowX, - overflowY: this.overflowY - }); - }; - // Causes any 'auto' overflow values to resolves to 'scroll' or 'hidden'. - // Useful for preserving scrollbar widths regardless of future resizes. - // Can pass in scrollbarWidths for optimization. - ScrollComponent.prototype.lockOverflow = function (scrollbarWidths) { - var overflowX = this.overflowX; - var overflowY = this.overflowY; - scrollbarWidths = scrollbarWidths || this.getScrollbarWidths(); - if (overflowX === 'auto') { - overflowX = (scrollbarWidths.bottom || // horizontal scrollbars? - this.canScrollHorizontally() // OR scrolling pane with massless scrollbars? - ) ? 'scroll' : 'hidden'; - } - if (overflowY === 'auto') { - overflowY = (scrollbarWidths.left || scrollbarWidths.right || // horizontal scrollbars? - this.canScrollVertically() // OR scrolling pane with massless scrollbars? - ) ? 'scroll' : 'hidden'; - } - applyStyle(this.el, { overflowX: overflowX, overflowY: overflowY }); - }; - ScrollComponent.prototype.setHeight = function (height) { - applyStyleProp(this.el, 'height', height); - }; - ScrollComponent.prototype.getScrollbarWidths = function () { - var edges = computeEdges(this.el); - return { - left: edges.scrollbarLeft, - right: edges.scrollbarRight, - bottom: edges.scrollbarBottom - }; - }; - return ScrollComponent; -}(ElementScrollController)); - -var Theme = /** @class */ (function () { - function Theme(calendarOptions) { - this.calendarOptions = calendarOptions; - this.processIconOverride(); - } - Theme.prototype.processIconOverride = function () { - if (this.iconOverrideOption) { - this.setIconOverride(this.calendarOptions[this.iconOverrideOption]); - } - }; - Theme.prototype.setIconOverride = function (iconOverrideHash) { - var iconClassesCopy; - var buttonName; - if (typeof iconOverrideHash === 'object' && iconOverrideHash) { // non-null object - iconClassesCopy = __assign({}, this.iconClasses); - for (buttonName in iconOverrideHash) { - iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]); - } - this.iconClasses = iconClassesCopy; - } - else if (iconOverrideHash === false) { - this.iconClasses = {}; - } - }; - Theme.prototype.applyIconOverridePrefix = function (className) { - var prefix = this.iconOverridePrefix; - if (prefix && className.indexOf(prefix) !== 0) { // if not already present - className = prefix + className; - } - return className; - }; - Theme.prototype.getClass = function (key) { - return this.classes[key] || ''; - }; - Theme.prototype.getIconClass = function (buttonName) { - var className = this.iconClasses[buttonName]; - if (className) { - return this.baseIconClass + ' ' + className; - } - return ''; - }; - Theme.prototype.getCustomButtonIconClass = function (customButtonProps) { - var className; - if (this.iconOverrideCustomButtonOption) { - className = customButtonProps[this.iconOverrideCustomButtonOption]; - if (className) { - return this.baseIconClass + ' ' + this.applyIconOverridePrefix(className); - } - } - return ''; - }; - return Theme; -}()); -Theme.prototype.classes = {}; -Theme.prototype.iconClasses = {}; -Theme.prototype.baseIconClass = ''; -Theme.prototype.iconOverridePrefix = ''; - -var guid = 0; -var Component = /** @class */ (function () { - function Component(context, isView) { - // HACK to populate view at top of component instantiation call chain - if (isView) { - context.view = this; - } - this.uid = String(guid++); - this.context = context; - this.dateEnv = context.dateEnv; - this.theme = context.theme; - this.view = context.view; - this.calendar = context.calendar; - this.isRtl = this.opt('dir') === 'rtl'; - } - Component.addEqualityFuncs = function (newFuncs) { - this.prototype.equalityFuncs = __assign({}, this.prototype.equalityFuncs, newFuncs); - }; - Component.prototype.opt = function (name) { - return this.context.options[name]; - }; - Component.prototype.receiveProps = function (props) { - var _a = recycleProps(this.props || {}, props, this.equalityFuncs), anyChanges = _a.anyChanges, comboProps = _a.comboProps; - this.props = comboProps; - if (anyChanges) { - this.render(comboProps); - } - }; - Component.prototype.render = function (props) { - }; - // after destroy is called, this component won't ever be used again - Component.prototype.destroy = function () { - }; - return Component; -}()); -Component.prototype.equalityFuncs = {}; -/* -Reuses old values when equal. If anything is unequal, returns newProps as-is. -Great for PureComponent, but won't be feasible with React, so just eliminate and use React's DOM diffing. -*/ -function recycleProps(oldProps, newProps, equalityFuncs) { - var comboProps = {}; // some old, some new - var anyChanges = false; - for (var key in newProps) { - if (key in oldProps && (oldProps[key] === newProps[key] || - (equalityFuncs[key] && equalityFuncs[key](oldProps[key], newProps[key])))) { - // equal to old? use old prop - comboProps[key] = oldProps[key]; - } - else { - comboProps[key] = newProps[key]; - anyChanges = true; - } - } - for (var key in oldProps) { - if (!(key in newProps)) { - anyChanges = true; - break; - } - } - return { anyChanges: anyChanges, comboProps: comboProps }; -} - -/* -PURPOSES: -- hook up to fg, fill, and mirror renderers -- interface for dragging and hits -*/ -var DateComponent = /** @class */ (function (_super) { - __extends(DateComponent, _super); - function DateComponent(context, el, isView) { - var _this = _super.call(this, context, isView) || this; - _this.el = el; - return _this; - } - DateComponent.prototype.destroy = function () { - _super.prototype.destroy.call(this); - removeElement(this.el); - }; - // TODO: WHAT ABOUT (sourceSeg && sourceSeg.component.doesDragMirror) - // - // Event Drag-n-Drop Rendering (for both events and external elements) - // --------------------------------------------------------------------------------------------------------------- - /* - renderEventDragSegs(state: EventSegUiInteractionState) { - if (state) { - let { isEvent, segs, sourceSeg } = state - - if (this.eventRenderer) { - this.eventRenderer.hideByHash(state.affectedInstances) - } - - // if the user is dragging something that is considered an event with real event data, - // and this component likes to do drag mirrors OR the component where the seg came from - // likes to do drag mirrors, then render a drag mirror. - if (isEvent && (this.doesDragMirror || sourceSeg && sourceSeg.component.doesDragMirror)) { - if (this.mirrorRenderer) { - this.mirrorRenderer.renderSegs(segs, { isDragging: true, sourceSeg }) - } - } - - // if it would be impossible to render a drag mirror OR this component likes to render - // highlights, then render a highlight. - if (!isEvent || this.doesDragHighlight) { - if (this.fillRenderer) { - this.fillRenderer.renderSegs('highlight', segs) - } - } - } - } - */ - // Hit System - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.buildPositionCaches = function () { - }; - DateComponent.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) { - return null; // this should be abstract - }; - // Validation - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.isInteractionValid = function (interaction) { - var calendar = this.calendar; - var dateProfile = this.props.dateProfile; // HACK - var instances = interaction.mutatedEvents.instances; - if (dateProfile) { // HACK for DayTile - for (var instanceId in instances) { - if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) { - return false; - } - } - } - return isInteractionValid(interaction, calendar); - }; - DateComponent.prototype.isDateSelectionValid = function (selection) { - var dateProfile = this.props.dateProfile; // HACK - if (dateProfile && // HACK for DayTile - !rangeContainsRange(dateProfile.validRange, selection.range)) { - return false; - } - return isDateSelectionValid(selection, this.calendar); - }; - // Triggering - // ----------------------------------------------------------------------------------------------------------------- - // TODO: move to Calendar - DateComponent.prototype.publiclyTrigger = function (name, args) { - var calendar = this.calendar; - return calendar.publiclyTrigger(name, args); - }; - DateComponent.prototype.publiclyTriggerAfterSizing = function (name, args) { - var calendar = this.calendar; - return calendar.publiclyTriggerAfterSizing(name, args); - }; - DateComponent.prototype.hasPublicHandlers = function (name) { - var calendar = this.calendar; - return calendar.hasPublicHandlers(name); - }; - DateComponent.prototype.triggerRenderedSegs = function (segs, isMirrors) { - var calendar = this.calendar; - if (this.hasPublicHandlers('eventPositioned')) { - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - this.publiclyTriggerAfterSizing('eventPositioned', [ - { - event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirrors, - isStart: seg.isStart, - isEnd: seg.isEnd, - el: seg.el, - view: this // safe to cast because this method is only called on context.view - } - ]); - } - } - if (!calendar.state.loadingLevel) { // avoid initial empty state while pending - calendar.afterSizingTriggers._eventsPositioned = [null]; // fire once - } - }; - DateComponent.prototype.triggerWillRemoveSegs = function (segs, isMirrors) { - var calendar = this.calendar; - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - calendar.trigger('eventElRemove', seg.el); - } - if (this.hasPublicHandlers('eventDestroy')) { - for (var _a = 0, segs_3 = segs; _a < segs_3.length; _a++) { - var seg = segs_3[_a]; - this.publiclyTrigger('eventDestroy', [ - { - event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirrors, - el: seg.el, - view: this // safe to cast because this method is only called on context.view - } - ]); - } - } - }; - // Pointer Interaction Utils - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.isValidSegDownEl = function (el) { - return !this.props.eventDrag && // HACK - !this.props.eventResize && // HACK - !elementClosest(el, '.fc-mirror') && - (this.isPopover() || !this.isInPopover(el)); - // ^above line ensures we don't detect a seg interaction within a nested component. - // it's a HACK because it only supports a popover as the nested component. - }; - DateComponent.prototype.isValidDateDownEl = function (el) { - var segEl = elementClosest(el, this.fgSegSelector); - return (!segEl || segEl.classList.contains('fc-mirror')) && - !elementClosest(el, '.fc-more') && // a "more.." link - !elementClosest(el, 'a[data-goto]') && // a clickable nav link - !this.isInPopover(el); - }; - DateComponent.prototype.isPopover = function () { - return this.el.classList.contains('fc-popover'); - }; - DateComponent.prototype.isInPopover = function (el) { - return Boolean(elementClosest(el, '.fc-popover')); - }; - return DateComponent; -}(Component)); -DateComponent.prototype.fgSegSelector = '.fc-event-container > *'; -DateComponent.prototype.bgSegSelector = '.fc-bgevent:not(.fc-nonbusiness)'; - -var uid$1 = 0; -function createPlugin(input) { - return { - id: String(uid$1++), - deps: input.deps || [], - reducers: input.reducers || [], - eventDefParsers: input.eventDefParsers || [], - isDraggableTransformers: input.isDraggableTransformers || [], - eventDragMutationMassagers: input.eventDragMutationMassagers || [], - eventDefMutationAppliers: input.eventDefMutationAppliers || [], - dateSelectionTransformers: input.dateSelectionTransformers || [], - datePointTransforms: input.datePointTransforms || [], - dateSpanTransforms: input.dateSpanTransforms || [], - views: input.views || {}, - viewPropsTransformers: input.viewPropsTransformers || [], - isPropsValid: input.isPropsValid || null, - externalDefTransforms: input.externalDefTransforms || [], - eventResizeJoinTransforms: input.eventResizeJoinTransforms || [], - viewContainerModifiers: input.viewContainerModifiers || [], - eventDropTransformers: input.eventDropTransformers || [], - componentInteractions: input.componentInteractions || [], - calendarInteractions: input.calendarInteractions || [], - themeClasses: input.themeClasses || {}, - eventSourceDefs: input.eventSourceDefs || [], - cmdFormatter: input.cmdFormatter, - recurringTypes: input.recurringTypes || [], - namedTimeZonedImpl: input.namedTimeZonedImpl, - defaultView: input.defaultView || '', - elementDraggingImpl: input.elementDraggingImpl, - optionChangeHandlers: input.optionChangeHandlers || {} - }; -} -var PluginSystem = /** @class */ (function () { - function PluginSystem() { - this.hooks = { - reducers: [], - eventDefParsers: [], - isDraggableTransformers: [], - eventDragMutationMassagers: [], - eventDefMutationAppliers: [], - dateSelectionTransformers: [], - datePointTransforms: [], - dateSpanTransforms: [], - views: {}, - viewPropsTransformers: [], - isPropsValid: null, - externalDefTransforms: [], - eventResizeJoinTransforms: [], - viewContainerModifiers: [], - eventDropTransformers: [], - componentInteractions: [], - calendarInteractions: [], - themeClasses: {}, - eventSourceDefs: [], - cmdFormatter: null, - recurringTypes: [], - namedTimeZonedImpl: null, - defaultView: '', - elementDraggingImpl: null, - optionChangeHandlers: {} - }; - this.addedHash = {}; - } - PluginSystem.prototype.add = function (plugin) { - if (!this.addedHash[plugin.id]) { - this.addedHash[plugin.id] = true; - for (var _i = 0, _a = plugin.deps; _i < _a.length; _i++) { - var dep = _a[_i]; - this.add(dep); - } - this.hooks = combineHooks(this.hooks, plugin); - } - }; - return PluginSystem; -}()); -function combineHooks(hooks0, hooks1) { - return { - reducers: hooks0.reducers.concat(hooks1.reducers), - eventDefParsers: hooks0.eventDefParsers.concat(hooks1.eventDefParsers), - isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers), - eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers), - eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers), - dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers), - datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms), - dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms), - views: __assign({}, hooks0.views, hooks1.views), - viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers), - isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid, - externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms), - eventResizeJoinTransforms: hooks0.eventResizeJoinTransforms.concat(hooks1.eventResizeJoinTransforms), - viewContainerModifiers: hooks0.viewContainerModifiers.concat(hooks1.viewContainerModifiers), - eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers), - calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions), - componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions), - themeClasses: __assign({}, hooks0.themeClasses, hooks1.themeClasses), - eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs), - cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter, - recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes), - namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl, - defaultView: hooks0.defaultView || hooks1.defaultView, - elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl, - optionChangeHandlers: __assign({}, hooks0.optionChangeHandlers, hooks1.optionChangeHandlers) - }; -} - -var eventSourceDef = { - ignoreRange: true, - parseMeta: function (raw) { - if (Array.isArray(raw)) { // short form - return raw; - } - else if (Array.isArray(raw.events)) { - return raw.events; - } - return null; - }, - fetch: function (arg, success) { - success({ - rawEvents: arg.eventSource.meta - }); - } -}; -var ArrayEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef] -}); - -var eventSourceDef$1 = { - parseMeta: function (raw) { - if (typeof raw === 'function') { // short form - return raw; - } - else if (typeof raw.events === 'function') { - return raw.events; - } - return null; - }, - fetch: function (arg, success, failure) { - var dateEnv = arg.calendar.dateEnv; - var func = arg.eventSource.meta; - unpromisify(func.bind(null, { - start: dateEnv.toDate(arg.range.start), - end: dateEnv.toDate(arg.range.end), - startStr: dateEnv.formatIso(arg.range.start), - endStr: dateEnv.formatIso(arg.range.end), - timeZone: dateEnv.timeZone - }), function (rawEvents) { - success({ rawEvents: rawEvents }); // needs an object response - }, failure // send errorObj directly to failure callback - ); - } -}; -var FuncEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef$1] -}); - -function requestJson(method, url, params, successCallback, failureCallback) { - method = method.toUpperCase(); - var body = null; - if (method === 'GET') { - url = injectQueryStringParams(url, params); - } - else { - body = encodeParams(params); - } - var xhr = new XMLHttpRequest(); - xhr.open(method, url, true); - if (method !== 'GET') { - xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - } - xhr.onload = function () { - if (xhr.status >= 200 && xhr.status < 400) { - try { - var res = JSON.parse(xhr.responseText); - successCallback(res, xhr); - } - catch (err) { - failureCallback('Failure parsing JSON', xhr); - } - } - else { - failureCallback('Request failed', xhr); - } - }; - xhr.onerror = function () { - failureCallback('Request failed', xhr); - }; - xhr.send(body); -} -function injectQueryStringParams(url, params) { - return url + - (url.indexOf('?') === -1 ? '?' : '&') + - encodeParams(params); -} -function encodeParams(params) { - var parts = []; - for (var key in params) { - parts.push(encodeURIComponent(key) + '=' + encodeURIComponent(params[key])); - } - return parts.join('&'); -} - -var eventSourceDef$2 = { - parseMeta: function (raw) { - if (typeof raw === 'string') { // short form - raw = { url: raw }; - } - else if (!raw || typeof raw !== 'object' || !raw.url) { - return null; - } - return { - url: raw.url, - method: (raw.method || 'GET').toUpperCase(), - extraParams: raw.extraParams, - startParam: raw.startParam, - endParam: raw.endParam, - timeZoneParam: raw.timeZoneParam - }; - }, - fetch: function (arg, success, failure) { - var meta = arg.eventSource.meta; - var requestParams = buildRequestParams(meta, arg.range, arg.calendar); - requestJson(meta.method, meta.url, requestParams, function (rawEvents, xhr) { - success({ rawEvents: rawEvents, xhr: xhr }); - }, function (errorMessage, xhr) { - failure({ message: errorMessage, xhr: xhr }); - }); - } -}; -var JsonFeedEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef$2] -}); -function buildRequestParams(meta, range, calendar) { - var dateEnv = calendar.dateEnv; - var startParam; - var endParam; - var timeZoneParam; - var customRequestParams; - var params = {}; - startParam = meta.startParam; - if (startParam == null) { - startParam = calendar.opt('startParam'); - } - endParam = meta.endParam; - if (endParam == null) { - endParam = calendar.opt('endParam'); - } - timeZoneParam = meta.timeZoneParam; - if (timeZoneParam == null) { - timeZoneParam = calendar.opt('timeZoneParam'); - } - // retrieve any outbound GET/POST data from the options - if (typeof meta.extraParams === 'function') { - // supplied as a function that returns a key/value object - customRequestParams = meta.extraParams(); - } - else { - // probably supplied as a straight key/value object - customRequestParams = meta.extraParams || {}; - } - __assign(params, customRequestParams); - params[startParam] = dateEnv.formatIso(range.start); - params[endParam] = dateEnv.formatIso(range.end); - if (dateEnv.timeZone !== 'local') { - params[timeZoneParam] = dateEnv.timeZone; - } - return params; -} - -var recurring = { - parse: function (rawEvent, leftoverProps, dateEnv) { - var createMarker = dateEnv.createMarker.bind(dateEnv); - var processors = { - daysOfWeek: null, - startTime: createDuration, - endTime: createDuration, - startRecur: createMarker, - endRecur: createMarker - }; - var props = refineProps(rawEvent, processors, {}, leftoverProps); - var anyValid = false; - for (var propName in props) { - if (props[propName] != null) { - anyValid = true; - break; - } - } - if (anyValid) { - var duration = null; - if ('duration' in leftoverProps) { - duration = createDuration(leftoverProps.duration); - delete leftoverProps.duration; - } - if (!duration && props.startTime && props.endTime) { - duration = subtractDurations(props.endTime, props.startTime); - } - return { - allDayGuess: Boolean(!props.startTime && !props.endTime), - duration: duration, - typeData: props // doesn't need endTime anymore but oh well - }; - } - return null; - }, - expand: function (typeData, framingRange, dateEnv) { - var clippedFramingRange = intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur }); - if (clippedFramingRange) { - return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv); - } - else { - return []; - } - } -}; -var SimpleRecurrencePlugin = createPlugin({ - recurringTypes: [recurring] -}); -function expandRanges(daysOfWeek, startTime, framingRange, dateEnv) { - var dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null; - var dayMarker = startOfDay(framingRange.start); - var endMarker = framingRange.end; - var instanceStarts = []; - while (dayMarker < endMarker) { - var instanceStart - // if everyday, or this particular day-of-week - = void 0; - // if everyday, or this particular day-of-week - if (!dowHash || dowHash[dayMarker.getUTCDay()]) { - if (startTime) { - instanceStart = dateEnv.add(dayMarker, startTime); - } - else { - instanceStart = dayMarker; - } - instanceStarts.push(instanceStart); - } - dayMarker = addDays(dayMarker, 1); - } - return instanceStarts; -} - -var DefaultOptionChangeHandlers = createPlugin({ - optionChangeHandlers: { - events: function (events, calendar, deepEqual) { - handleEventSources([events], calendar, deepEqual); - }, - eventSources: handleEventSources, - plugins: handlePlugins - } -}); -function handleEventSources(inputs, calendar, deepEqual) { - var unfoundSources = hashValuesToArray(calendar.state.eventSources); - var newInputs = []; - for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) { - var input = inputs_1[_i]; - var inputFound = false; - for (var i = 0; i < unfoundSources.length; i++) { - if (deepEqual(unfoundSources[i]._raw, input)) { - unfoundSources.splice(i, 1); // delete - inputFound = true; - break; - } - } - if (!inputFound) { - newInputs.push(input); - } - } - for (var _a = 0, unfoundSources_1 = unfoundSources; _a < unfoundSources_1.length; _a++) { - var unfoundSource = unfoundSources_1[_a]; - calendar.dispatch({ - type: 'REMOVE_EVENT_SOURCE', - sourceId: unfoundSource.sourceId - }); - } - for (var _b = 0, newInputs_1 = newInputs; _b < newInputs_1.length; _b++) { - var newInput = newInputs_1[_b]; - calendar.addEventSource(newInput); - } -} -// shortcoming: won't remove plugins -function handlePlugins(inputs, calendar) { - calendar.addPluginInputs(inputs); // will gracefully handle duplicates -} - -var config = {}; // TODO: make these options -var globalDefaults = { - defaultRangeSeparator: ' - ', - titleRangeSeparator: ' \u2013 ', - defaultTimedEventDuration: '01:00:00', - defaultAllDayEventDuration: { day: 1 }, - forceEventDuration: false, - nextDayThreshold: '00:00:00', - // display - columnHeader: true, - defaultView: '', - aspectRatio: 1.35, - header: { - left: 'title', - center: '', - right: 'today prev,next' - }, - weekends: true, - weekNumbers: false, - weekNumberCalculation: 'local', - editable: false, - // nowIndicator: false, - scrollTime: '06:00:00', - minTime: '00:00:00', - maxTime: '24:00:00', - showNonCurrentDates: true, - // event ajax - lazyFetching: true, - startParam: 'start', - endParam: 'end', - timeZoneParam: 'timeZone', - timeZone: 'local', - // allDayDefault: undefined, - // locale - locales: [], - locale: '', - // dir: will get this from the default locale - // buttonIcons: null, - // allows setting a min-height to the event segment to prevent short events overlapping each other - timeGridEventMinHeight: 0, - themeSystem: 'standard', - // eventResizableFromStart: false, - dragRevertDuration: 500, - dragScroll: true, - allDayMaintainDuration: false, - // selectable: false, - unselectAuto: true, - // selectMinDistance: 0, - dropAccept: '*', - eventOrder: 'start,-duration,allDay,title', - // ^ if start tie, longer events go before shorter. final tie-breaker is title text - // rerenderDelay: null, - eventLimit: false, - eventLimitClick: 'popover', - dayPopoverFormat: { month: 'long', day: 'numeric', year: 'numeric' }, - handleWindowResize: true, - windowResizeDelay: 100, - longPressDelay: 1000, - eventDragMinDistance: 5 // only applies to mouse -}; -var rtlDefaults = { - header: { - left: 'next,prev today', - center: '', - right: 'title' - }, - buttonIcons: { - // TODO: make RTL support the responibility of the theme - prev: 'fc-icon-chevron-right', - next: 'fc-icon-chevron-left', - prevYear: 'fc-icon-chevrons-right', - nextYear: 'fc-icon-chevrons-left' - } -}; -var complexOptions = [ - 'header', - 'footer', - 'buttonText', - 'buttonIcons' -]; -// Merges an array of option objects into a single object -function mergeOptions(optionObjs) { - return mergeProps(optionObjs, complexOptions); -} -// TODO: move this stuff to a "plugin"-related file... -var INTERNAL_PLUGINS = [ - ArrayEventSourcePlugin, - FuncEventSourcePlugin, - JsonFeedEventSourcePlugin, - SimpleRecurrencePlugin, - DefaultOptionChangeHandlers -]; -function refinePluginDefs(pluginInputs) { - var plugins = []; - for (var _i = 0, pluginInputs_1 = pluginInputs; _i < pluginInputs_1.length; _i++) { - var pluginInput = pluginInputs_1[_i]; - if (typeof pluginInput === 'string') { - var globalName = 'FullCalendar' + capitaliseFirstLetter(pluginInput); - if (!window[globalName]) { - console.warn('Plugin file not loaded for ' + pluginInput); - } - else { - plugins.push(window[globalName].default); // is an ES6 module - } - } - else { - plugins.push(pluginInput); - } - } - return INTERNAL_PLUGINS.concat(plugins); -} - -var RAW_EN_LOCALE = { - code: 'en', - week: { - dow: 0, - doy: 4 // 4 days need to be within the year to be considered the first week - }, - dir: 'ltr', - buttonText: { - prev: 'prev', - next: 'next', - prevYear: 'prev year', - nextYear: 'next year', - year: 'year', - today: 'today', - month: 'month', - week: 'week', - day: 'day', - list: 'list' - }, - weekLabel: 'W', - allDayText: 'all-day', - eventLimitText: 'more', - noEventsMessage: 'No events to display' -}; -function parseRawLocales(explicitRawLocales) { - var defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en'; - var globalArray = window['FullCalendarLocalesAll'] || []; // from locales-all.js - var globalObject = window['FullCalendarLocales'] || {}; // from locales/*.js. keys are meaningless - var allRawLocales = globalArray.concat(// globalArray is low prio - hashValuesToArray(globalObject), // medium prio - explicitRawLocales // highest prio - ); - var rawLocaleMap = { - en: RAW_EN_LOCALE // necessary? - }; - for (var _i = 0, allRawLocales_1 = allRawLocales; _i < allRawLocales_1.length; _i++) { - var rawLocale = allRawLocales_1[_i]; - rawLocaleMap[rawLocale.code] = rawLocale; - } - return { - map: rawLocaleMap, - defaultCode: defaultCode - }; -} -function buildLocale(inputSingular, available) { - if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) { - return parseLocale(inputSingular.code, [inputSingular.code], inputSingular); - } - else { - return queryLocale(inputSingular, available); - } -} -function queryLocale(codeArg, available) { - var codes = [].concat(codeArg || []); // will convert to array - var raw = queryRawLocale(codes, available) || RAW_EN_LOCALE; - return parseLocale(codeArg, codes, raw); -} -function queryRawLocale(codes, available) { - for (var i = 0; i < codes.length; i++) { - var parts = codes[i].toLocaleLowerCase().split('-'); - for (var j = parts.length; j > 0; j--) { - var simpleId = parts.slice(0, j).join('-'); - if (available[simpleId]) { - return available[simpleId]; - } - } - } - return null; -} -function parseLocale(codeArg, codes, raw) { - var merged = mergeProps([RAW_EN_LOCALE, raw], ['buttonText']); - delete merged.code; // don't want this part of the options - var week = merged.week; - delete merged.week; - return { - codeArg: codeArg, - codes: codes, - week: week, - simpleNumberFormat: new Intl.NumberFormat(codeArg), - options: merged - }; -} - -var OptionsManager = /** @class */ (function () { - function OptionsManager(overrides) { - this.overrides = __assign({}, overrides); // make a copy - this.dynamicOverrides = {}; - this.compute(); - } - OptionsManager.prototype.mutate = function (updates, removals, isDynamic) { - var overrideHash = isDynamic ? this.dynamicOverrides : this.overrides; - __assign(overrideHash, updates); - for (var _i = 0, removals_1 = removals; _i < removals_1.length; _i++) { - var propName = removals_1[_i]; - delete overrideHash[propName]; - } - this.compute(); - }; - // Computes the flattened options hash for the calendar and assigns to `this.options`. - // Assumes this.overrides and this.dynamicOverrides have already been initialized. - OptionsManager.prototype.compute = function () { - // TODO: not a very efficient system - var locales = firstDefined(// explicit locale option given? - this.dynamicOverrides.locales, this.overrides.locales, globalDefaults.locales); - var locale = firstDefined(// explicit locales option given? - this.dynamicOverrides.locale, this.overrides.locale, globalDefaults.locale); - var available = parseRawLocales(locales); - var localeDefaults = buildLocale(locale || available.defaultCode, available.map).options; - var dir = firstDefined(// based on options computed so far, is direction RTL? - this.dynamicOverrides.dir, this.overrides.dir, localeDefaults.dir); - var dirDefaults = dir === 'rtl' ? rtlDefaults : {}; - this.dirDefaults = dirDefaults; - this.localeDefaults = localeDefaults; - this.computed = mergeOptions([ - globalDefaults, - dirDefaults, - localeDefaults, - this.overrides, - this.dynamicOverrides - ]); - }; - return OptionsManager; -}()); - -var calendarSystemClassMap = {}; -function registerCalendarSystem(name, theClass) { - calendarSystemClassMap[name] = theClass; -} -function createCalendarSystem(name) { - return new calendarSystemClassMap[name](); -} -var GregorianCalendarSystem = /** @class */ (function () { - function GregorianCalendarSystem() { - } - GregorianCalendarSystem.prototype.getMarkerYear = function (d) { - return d.getUTCFullYear(); - }; - GregorianCalendarSystem.prototype.getMarkerMonth = function (d) { - return d.getUTCMonth(); - }; - GregorianCalendarSystem.prototype.getMarkerDay = function (d) { - return d.getUTCDate(); - }; - GregorianCalendarSystem.prototype.arrayToMarker = function (arr) { - return arrayToUtcDate(arr); - }; - GregorianCalendarSystem.prototype.markerToArray = function (marker) { - return dateToUtcArray(marker); - }; - return GregorianCalendarSystem; -}()); -registerCalendarSystem('gregory', GregorianCalendarSystem); - -var ISO_RE = /^\s*(\d{4})(-(\d{2})(-(\d{2})([T ](\d{2}):(\d{2})(:(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/; -function parse(str) { - var m = ISO_RE.exec(str); - if (m) { - var marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number('0.' + m[12]) * 1000 : 0)); - if (isValidDate(marker)) { - var timeZoneOffset = null; - if (m[13]) { - timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 + - Number(m[18] || 0)); - } - return { - marker: marker, - isTimeUnspecified: !m[6], - timeZoneOffset: timeZoneOffset - }; - } - } - return null; -} - -var DateEnv = /** @class */ (function () { - function DateEnv(settings) { - var timeZone = this.timeZone = settings.timeZone; - var isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC'; - if (settings.namedTimeZoneImpl && isNamedTimeZone) { - this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone); - } - this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl); - this.calendarSystem = createCalendarSystem(settings.calendarSystem); - this.locale = settings.locale; - this.weekDow = settings.locale.week.dow; - this.weekDoy = settings.locale.week.doy; - if (settings.weekNumberCalculation === 'ISO') { - this.weekDow = 1; - this.weekDoy = 4; - } - if (typeof settings.firstDay === 'number') { - this.weekDow = settings.firstDay; - } - if (typeof settings.weekNumberCalculation === 'function') { - this.weekNumberFunc = settings.weekNumberCalculation; - } - this.weekLabel = settings.weekLabel != null ? settings.weekLabel : settings.locale.options.weekLabel; - this.cmdFormatter = settings.cmdFormatter; - } - // Creating / Parsing - DateEnv.prototype.createMarker = function (input) { - var meta = this.createMarkerMeta(input); - if (meta === null) { - return null; - } - return meta.marker; - }; - DateEnv.prototype.createNowMarker = function () { - if (this.canComputeOffset) { - return this.timestampToMarker(new Date().valueOf()); - } - else { - // if we can't compute the current date val for a timezone, - // better to give the current local date vals than UTC - return arrayToUtcDate(dateToLocalArray(new Date())); - } - }; - DateEnv.prototype.createMarkerMeta = function (input) { - if (typeof input === 'string') { - return this.parse(input); - } - var marker = null; - if (typeof input === 'number') { - marker = this.timestampToMarker(input); - } - else if (input instanceof Date) { - input = input.valueOf(); - if (!isNaN(input)) { - marker = this.timestampToMarker(input); - } - } - else if (Array.isArray(input)) { - marker = arrayToUtcDate(input); - } - if (marker === null || !isValidDate(marker)) { - return null; - } - return { marker: marker, isTimeUnspecified: false, forcedTzo: null }; - }; - DateEnv.prototype.parse = function (s) { - var parts = parse(s); - if (parts === null) { - return null; - } - var marker = parts.marker; - var forcedTzo = null; - if (parts.timeZoneOffset !== null) { - if (this.canComputeOffset) { - marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000); - } - else { - forcedTzo = parts.timeZoneOffset; - } - } - return { marker: marker, isTimeUnspecified: parts.isTimeUnspecified, forcedTzo: forcedTzo }; - }; - // Accessors - DateEnv.prototype.getYear = function (marker) { - return this.calendarSystem.getMarkerYear(marker); - }; - DateEnv.prototype.getMonth = function (marker) { - return this.calendarSystem.getMarkerMonth(marker); - }; - // Adding / Subtracting - DateEnv.prototype.add = function (marker, dur) { - var a = this.calendarSystem.markerToArray(marker); - a[0] += dur.years; - a[1] += dur.months; - a[2] += dur.days; - a[6] += dur.milliseconds; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.subtract = function (marker, dur) { - var a = this.calendarSystem.markerToArray(marker); - a[0] -= dur.years; - a[1] -= dur.months; - a[2] -= dur.days; - a[6] -= dur.milliseconds; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.addYears = function (marker, n) { - var a = this.calendarSystem.markerToArray(marker); - a[0] += n; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.addMonths = function (marker, n) { - var a = this.calendarSystem.markerToArray(marker); - a[1] += n; - return this.calendarSystem.arrayToMarker(a); - }; - // Diffing Whole Units - DateEnv.prototype.diffWholeYears = function (m0, m1) { - var calendarSystem = this.calendarSystem; - if (timeAsMs(m0) === timeAsMs(m1) && - calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) && - calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) { - return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0); - } - return null; - }; - DateEnv.prototype.diffWholeMonths = function (m0, m1) { - var calendarSystem = this.calendarSystem; - if (timeAsMs(m0) === timeAsMs(m1) && - calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) { - return (calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0)) + - (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12; - } - return null; - }; - // Range / Duration - DateEnv.prototype.greatestWholeUnit = function (m0, m1) { - var n = this.diffWholeYears(m0, m1); - if (n !== null) { - return { unit: 'year', value: n }; - } - n = this.diffWholeMonths(m0, m1); - if (n !== null) { - return { unit: 'month', value: n }; - } - n = diffWholeWeeks(m0, m1); - if (n !== null) { - return { unit: 'week', value: n }; - } - n = diffWholeDays(m0, m1); - if (n !== null) { - return { unit: 'day', value: n }; - } - n = diffHours(m0, m1); - if (isInt(n)) { - return { unit: 'hour', value: n }; - } - n = diffMinutes(m0, m1); - if (isInt(n)) { - return { unit: 'minute', value: n }; - } - n = diffSeconds(m0, m1); - if (isInt(n)) { - return { unit: 'second', value: n }; - } - return { unit: 'millisecond', value: m1.valueOf() - m0.valueOf() }; - }; - DateEnv.prototype.countDurationsBetween = function (m0, m1, d) { - // TODO: can use greatestWholeUnit - var diff; - if (d.years) { - diff = this.diffWholeYears(m0, m1); - if (diff !== null) { - return diff / asRoughYears(d); - } - } - if (d.months) { - diff = this.diffWholeMonths(m0, m1); - if (diff !== null) { - return diff / asRoughMonths(d); - } - } - if (d.days) { - diff = diffWholeDays(m0, m1); - if (diff !== null) { - return diff / asRoughDays(d); - } - } - return (m1.valueOf() - m0.valueOf()) / asRoughMs(d); - }; - // Start-Of - DateEnv.prototype.startOf = function (m, unit) { - if (unit === 'year') { - return this.startOfYear(m); - } - else if (unit === 'month') { - return this.startOfMonth(m); - } - else if (unit === 'week') { - return this.startOfWeek(m); - } - else if (unit === 'day') { - return startOfDay(m); - } - else if (unit === 'hour') { - return startOfHour(m); - } - else if (unit === 'minute') { - return startOfMinute(m); - } - else if (unit === 'second') { - return startOfSecond(m); - } - }; - DateEnv.prototype.startOfYear = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m) - ]); - }; - DateEnv.prototype.startOfMonth = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m), - this.calendarSystem.getMarkerMonth(m) - ]); - }; - DateEnv.prototype.startOfWeek = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m), - this.calendarSystem.getMarkerMonth(m), - m.getUTCDate() - ((m.getUTCDay() - this.weekDow + 7) % 7) - ]); - }; - // Week Number - DateEnv.prototype.computeWeekNumber = function (marker) { - if (this.weekNumberFunc) { - return this.weekNumberFunc(this.toDate(marker)); - } - else { - return weekOfYear(marker, this.weekDow, this.weekDoy); - } - }; - // TODO: choke on timeZoneName: long - DateEnv.prototype.format = function (marker, formatter, dateOptions) { - if (dateOptions === void 0) { dateOptions = {}; } - return formatter.format({ - marker: marker, - timeZoneOffset: dateOptions.forcedTzo != null ? - dateOptions.forcedTzo : - this.offsetForMarker(marker) - }, this); - }; - DateEnv.prototype.formatRange = function (start, end, formatter, dateOptions) { - if (dateOptions === void 0) { dateOptions = {}; } - if (dateOptions.isEndExclusive) { - end = addMs(end, -1); - } - return formatter.formatRange({ - marker: start, - timeZoneOffset: dateOptions.forcedStartTzo != null ? - dateOptions.forcedStartTzo : - this.offsetForMarker(start) - }, { - marker: end, - timeZoneOffset: dateOptions.forcedEndTzo != null ? - dateOptions.forcedEndTzo : - this.offsetForMarker(end) - }, this); - }; - DateEnv.prototype.formatIso = function (marker, extraOptions) { - if (extraOptions === void 0) { extraOptions = {}; } - var timeZoneOffset = null; - if (!extraOptions.omitTimeZoneOffset) { - if (extraOptions.forcedTzo != null) { - timeZoneOffset = extraOptions.forcedTzo; - } - else { - timeZoneOffset = this.offsetForMarker(marker); - } - } - return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime); - }; - // TimeZone - DateEnv.prototype.timestampToMarker = function (ms) { - if (this.timeZone === 'local') { - return arrayToUtcDate(dateToLocalArray(new Date(ms))); - } - else if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) { - return new Date(ms); - } - else { - return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms)); - } - }; - DateEnv.prototype.offsetForMarker = function (m) { - if (this.timeZone === 'local') { - return -arrayToLocalDate(dateToUtcArray(m)).getTimezoneOffset(); // convert "inverse" offset to "normal" offset - } - else if (this.timeZone === 'UTC') { - return 0; - } - else if (this.namedTimeZoneImpl) { - return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)); - } - return null; - }; - // Conversion - DateEnv.prototype.toDate = function (m, forcedTzo) { - if (this.timeZone === 'local') { - return arrayToLocalDate(dateToUtcArray(m)); - } - else if (this.timeZone === 'UTC') { - return new Date(m.valueOf()); // make sure it's a copy - } - else if (!this.namedTimeZoneImpl) { - return new Date(m.valueOf() - (forcedTzo || 0)); - } - else { - return new Date(m.valueOf() - - this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60 // convert minutes -> ms - ); - } - }; - return DateEnv; -}()); - -var SIMPLE_SOURCE_PROPS = { - id: String, - allDayDefault: Boolean, - eventDataTransform: Function, - success: Function, - failure: Function -}; -var uid$2 = 0; -function doesSourceNeedRange(eventSource, calendar) { - var defs = calendar.pluginSystem.hooks.eventSourceDefs; - return !defs[eventSource.sourceDefId].ignoreRange; -} -function parseEventSource(raw, calendar) { - var defs = calendar.pluginSystem.hooks.eventSourceDefs; - for (var i = defs.length - 1; i >= 0; i--) { // later-added plugins take precedence - var def = defs[i]; - var meta = def.parseMeta(raw); - if (meta) { - var res = parseEventSourceProps(typeof raw === 'object' ? raw : {}, meta, i, calendar); - res._raw = raw; - return res; - } - } - return null; -} -function parseEventSourceProps(raw, meta, sourceDefId, calendar) { - var leftovers0 = {}; - var props = refineProps(raw, SIMPLE_SOURCE_PROPS, {}, leftovers0); - var leftovers1 = {}; - var ui = processUnscopedUiProps(leftovers0, calendar, leftovers1); - props.isFetching = false; - props.latestFetchId = ''; - props.fetchRange = null; - props.publicId = String(raw.id || ''); - props.sourceId = String(uid$2++); - props.sourceDefId = sourceDefId; - props.meta = meta; - props.ui = ui; - props.extendedProps = leftovers1; - return props; -} - -function reduceEventSources (eventSources, action, dateProfile, calendar) { - switch (action.type) { - case 'ADD_EVENT_SOURCES': // already parsed - return addSources(eventSources, action.sources, dateProfile ? dateProfile.activeRange : null, calendar); - case 'REMOVE_EVENT_SOURCE': - return removeSource(eventSources, action.sourceId); - case 'PREV': // TODO: how do we track all actions that affect dateProfile :( - case 'NEXT': - case 'SET_DATE': - case 'SET_VIEW_TYPE': - if (dateProfile) { - return fetchDirtySources(eventSources, dateProfile.activeRange, calendar); - } - else { - return eventSources; - } - case 'FETCH_EVENT_SOURCES': - case 'CHANGE_TIMEZONE': - return fetchSourcesByIds(eventSources, action.sourceIds ? - arrayToHash(action.sourceIds) : - excludeStaticSources(eventSources, calendar), dateProfile ? dateProfile.activeRange : null, calendar); - case 'RECEIVE_EVENTS': - case 'RECEIVE_EVENT_ERROR': - return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange); - case 'REMOVE_ALL_EVENT_SOURCES': - return {}; - default: - return eventSources; - } -} -var uid$3 = 0; -function addSources(eventSourceHash, sources, fetchRange, calendar) { - var hash = {}; - for (var _i = 0, sources_1 = sources; _i < sources_1.length; _i++) { - var source = sources_1[_i]; - hash[source.sourceId] = source; - } - if (fetchRange) { - hash = fetchDirtySources(hash, fetchRange, calendar); - } - return __assign({}, eventSourceHash, hash); -} -function removeSource(eventSourceHash, sourceId) { - return filterHash(eventSourceHash, function (eventSource) { - return eventSource.sourceId !== sourceId; - }); -} -function fetchDirtySources(sourceHash, fetchRange, calendar) { - return fetchSourcesByIds(sourceHash, filterHash(sourceHash, function (eventSource) { - return isSourceDirty(eventSource, fetchRange, calendar); - }), fetchRange, calendar); -} -function isSourceDirty(eventSource, fetchRange, calendar) { - if (!doesSourceNeedRange(eventSource, calendar)) { - return !eventSource.latestFetchId; - } - else { - return !calendar.opt('lazyFetching') || - !eventSource.fetchRange || - fetchRange.start < eventSource.fetchRange.start || - fetchRange.end > eventSource.fetchRange.end; - } -} -function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, calendar) { - var nextSources = {}; - for (var sourceId in prevSources) { - var source = prevSources[sourceId]; - if (sourceIdHash[sourceId]) { - nextSources[sourceId] = fetchSource(source, fetchRange, calendar); - } - else { - nextSources[sourceId] = source; - } - } - return nextSources; -} -function fetchSource(eventSource, fetchRange, calendar) { - var sourceDef = calendar.pluginSystem.hooks.eventSourceDefs[eventSource.sourceDefId]; - var fetchId = String(uid$3++); - sourceDef.fetch({ - eventSource: eventSource, - calendar: calendar, - range: fetchRange - }, function (res) { - var rawEvents = res.rawEvents; - var calSuccess = calendar.opt('eventSourceSuccess'); - var calSuccessRes; - var sourceSuccessRes; - if (eventSource.success) { - sourceSuccessRes = eventSource.success(rawEvents, res.xhr); - } - if (calSuccess) { - calSuccessRes = calSuccess(rawEvents, res.xhr); - } - rawEvents = sourceSuccessRes || calSuccessRes || rawEvents; - calendar.dispatch({ - type: 'RECEIVE_EVENTS', - sourceId: eventSource.sourceId, - fetchId: fetchId, - fetchRange: fetchRange, - rawEvents: rawEvents - }); - }, function (error) { - var callFailure = calendar.opt('eventSourceFailure'); - console.warn(error.message, error); - if (eventSource.failure) { - eventSource.failure(error); - } - if (callFailure) { - callFailure(error); - } - calendar.dispatch({ - type: 'RECEIVE_EVENT_ERROR', - sourceId: eventSource.sourceId, - fetchId: fetchId, - fetchRange: fetchRange, - error: error - }); - }); - return __assign({}, eventSource, { isFetching: true, latestFetchId: fetchId }); -} -function receiveResponse(sourceHash, sourceId, fetchId, fetchRange) { - var _a; - var eventSource = sourceHash[sourceId]; - if (eventSource && // not already removed - fetchId === eventSource.latestFetchId) { - return __assign({}, sourceHash, (_a = {}, _a[sourceId] = __assign({}, eventSource, { isFetching: false, fetchRange: fetchRange }), _a)); - } - return sourceHash; -} -function excludeStaticSources(eventSources, calendar) { - return filterHash(eventSources, function (eventSource) { - return doesSourceNeedRange(eventSource, calendar); - }); -} - -var DateProfileGenerator = /** @class */ (function () { - function DateProfileGenerator(viewSpec, calendar) { - this.viewSpec = viewSpec; - this.options = viewSpec.options; - this.dateEnv = calendar.dateEnv; - this.calendar = calendar; - this.initHiddenDays(); - } - /* Date Range Computation - ------------------------------------------------------------------------------------------------------------------*/ - // Builds a structure with info about what the dates/ranges will be for the "prev" view. - DateProfileGenerator.prototype.buildPrev = function (currentDateProfile, currentDate) { - var dateEnv = this.dateEnv; - var prevDate = dateEnv.subtract(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month - currentDateProfile.dateIncrement); - return this.build(prevDate, -1); - }; - // Builds a structure with info about what the dates/ranges will be for the "next" view. - DateProfileGenerator.prototype.buildNext = function (currentDateProfile, currentDate) { - var dateEnv = this.dateEnv; - var nextDate = dateEnv.add(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month - currentDateProfile.dateIncrement); - return this.build(nextDate, 1); - }; - // Builds a structure holding dates/ranges for rendering around the given date. - // Optional direction param indicates whether the date is being incremented/decremented - // from its previous value. decremented = -1, incremented = 1 (default). - DateProfileGenerator.prototype.build = function (currentDate, direction, forceToValid) { - if (forceToValid === void 0) { forceToValid = false; } - var validRange; - var minTime = null; - var maxTime = null; - var currentInfo; - var isRangeAllDay; - var renderRange; - var activeRange; - var isValid; - validRange = this.buildValidRange(); - validRange = this.trimHiddenDays(validRange); - if (forceToValid) { - currentDate = constrainMarkerToRange(currentDate, validRange); - } - currentInfo = this.buildCurrentRangeInfo(currentDate, direction); - isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit); - renderRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.range), currentInfo.unit, isRangeAllDay); - renderRange = this.trimHiddenDays(renderRange); - activeRange = renderRange; - if (!this.options.showNonCurrentDates) { - activeRange = intersectRanges(activeRange, currentInfo.range); - } - minTime = createDuration(this.options.minTime); - maxTime = createDuration(this.options.maxTime); - activeRange = this.adjustActiveRange(activeRange, minTime, maxTime); - activeRange = intersectRanges(activeRange, validRange); // might return null - // it's invalid if the originally requested date is not contained, - // or if the range is completely outside of the valid range. - isValid = rangesIntersect(currentInfo.range, validRange); - return { - // constraint for where prev/next operations can go and where events can be dragged/resized to. - // an object with optional start and end properties. - validRange: validRange, - // range the view is formally responsible for. - // for example, a month view might have 1st-31st, excluding padded dates - currentRange: currentInfo.range, - // name of largest unit being displayed, like "month" or "week" - currentRangeUnit: currentInfo.unit, - isRangeAllDay: isRangeAllDay, - // dates that display events and accept drag-n-drop - // will be `null` if no dates accept events - activeRange: activeRange, - // date range with a rendered skeleton - // includes not-active days that need some sort of DOM - renderRange: renderRange, - // Duration object that denotes the first visible time of any given day - minTime: minTime, - // Duration object that denotes the exclusive visible end time of any given day - maxTime: maxTime, - isValid: isValid, - // how far the current date will move for a prev/next operation - dateIncrement: this.buildDateIncrement(currentInfo.duration) - // pass a fallback (might be null) ^ - }; - }; - // Builds an object with optional start/end properties. - // Indicates the minimum/maximum dates to display. - // not responsible for trimming hidden days. - DateProfileGenerator.prototype.buildValidRange = function () { - return this.getRangeOption('validRange', this.calendar.getNow()) || - { start: null, end: null }; // completely open-ended - }; - // Builds a structure with info about the "current" range, the range that is - // highlighted as being the current month for example. - // See build() for a description of `direction`. - // Guaranteed to have `range` and `unit` properties. `duration` is optional. - DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) { - var _a = this, viewSpec = _a.viewSpec, dateEnv = _a.dateEnv; - var duration = null; - var unit = null; - var range = null; - var dayCount; - if (viewSpec.duration) { - duration = viewSpec.duration; - unit = viewSpec.durationUnit; - range = this.buildRangeFromDuration(date, direction, duration, unit); - } - else if ((dayCount = this.options.dayCount)) { - unit = 'day'; - range = this.buildRangeFromDayCount(date, direction, dayCount); - } - else if ((range = this.buildCustomVisibleRange(date))) { - unit = dateEnv.greatestWholeUnit(range.start, range.end).unit; - } - else { - duration = this.getFallbackDuration(); - unit = greatestDurationDenominator(duration).unit; - range = this.buildRangeFromDuration(date, direction, duration, unit); - } - return { duration: duration, unit: unit, range: range }; - }; - DateProfileGenerator.prototype.getFallbackDuration = function () { - return createDuration({ day: 1 }); - }; - // Returns a new activeRange to have time values (un-ambiguate) - // minTime or maxTime causes the range to expand. - DateProfileGenerator.prototype.adjustActiveRange = function (range, minTime, maxTime) { - var dateEnv = this.dateEnv; - var start = range.start; - var end = range.end; - if (this.viewSpec.class.prototype.usesMinMaxTime) { - // expand active range if minTime is negative (why not when positive?) - if (asRoughDays(minTime) < 0) { - start = startOfDay(start); // necessary? - start = dateEnv.add(start, minTime); - } - // expand active range if maxTime is beyond one day (why not when positive?) - if (asRoughDays(maxTime) > 1) { - end = startOfDay(end); // necessary? - end = addDays(end, -1); - end = dateEnv.add(end, maxTime); - } - } - return { start: start, end: end }; - }; - // Builds the "current" range when it is specified as an explicit duration. - // `unit` is the already-computed greatestDurationDenominator unit of duration. - DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) { - var dateEnv = this.dateEnv; - var alignment = this.options.dateAlignment; - var dateIncrementInput; - var dateIncrementDuration; - var start; - var end; - var res; - // compute what the alignment should be - if (!alignment) { - dateIncrementInput = this.options.dateIncrement; - if (dateIncrementInput) { - dateIncrementDuration = createDuration(dateIncrementInput); - // use the smaller of the two units - if (asRoughMs(dateIncrementDuration) < asRoughMs(duration)) { - alignment = greatestDurationDenominator(dateIncrementDuration, !getWeeksFromInput(dateIncrementInput)).unit; - } - else { - alignment = unit; - } - } - else { - alignment = unit; - } - } - // if the view displays a single day or smaller - if (asRoughDays(duration) <= 1) { - if (this.isHiddenDay(start)) { - start = this.skipHiddenDays(start, direction); - start = startOfDay(start); - } - } - function computeRes() { - start = dateEnv.startOf(date, alignment); - end = dateEnv.add(start, duration); - res = { start: start, end: end }; - } - computeRes(); - // if range is completely enveloped by hidden days, go past the hidden days - if (!this.trimHiddenDays(res)) { - date = this.skipHiddenDays(date, direction); - computeRes(); - } - return res; - }; - // Builds the "current" range when a dayCount is specified. - DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) { - var dateEnv = this.dateEnv; - var customAlignment = this.options.dateAlignment; - var runningCount = 0; - var start = date; - var end; - if (customAlignment) { - start = dateEnv.startOf(start, customAlignment); - } - start = startOfDay(start); - start = this.skipHiddenDays(start, direction); - end = start; - do { - end = addDays(end, 1); - if (!this.isHiddenDay(end)) { - runningCount++; - } - } while (runningCount < dayCount); - return { start: start, end: end }; - }; - // Builds a normalized range object for the "visible" range, - // which is a way to define the currentRange and activeRange at the same time. - DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) { - var dateEnv = this.dateEnv; - var visibleRange = this.getRangeOption('visibleRange', dateEnv.toDate(date)); - if (visibleRange && (visibleRange.start == null || visibleRange.end == null)) { - return null; - } - return visibleRange; - }; - // Computes the range that will represent the element/cells for *rendering*, - // but which may have voided days/times. - // not responsible for trimming hidden days. - DateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) { - return currentRange; - }; - // Compute the duration value that should be added/substracted to the current date - // when a prev/next operation happens. - DateProfileGenerator.prototype.buildDateIncrement = function (fallback) { - var dateIncrementInput = this.options.dateIncrement; - var customAlignment; - if (dateIncrementInput) { - return createDuration(dateIncrementInput); - } - else if ((customAlignment = this.options.dateAlignment)) { - return createDuration(1, customAlignment); - } - else if (fallback) { - return fallback; - } - else { - return createDuration({ days: 1 }); - } - }; - // Arguments after name will be forwarded to a hypothetical function value - // WARNING: passed-in arguments will be given to generator functions as-is and can cause side-effects. - // Always clone your objects if you fear mutation. - DateProfileGenerator.prototype.getRangeOption = function (name) { - var otherArgs = []; - for (var _i = 1; _i < arguments.length; _i++) { - otherArgs[_i - 1] = arguments[_i]; - } - var val = this.options[name]; - if (typeof val === 'function') { - val = val.apply(null, otherArgs); - } - if (val) { - val = parseRange(val, this.dateEnv); - } - if (val) { - val = computeVisibleDayRange(val); - } - return val; - }; - /* Hidden Days - ------------------------------------------------------------------------------------------------------------------*/ - // Initializes internal variables related to calculating hidden days-of-week - DateProfileGenerator.prototype.initHiddenDays = function () { - var hiddenDays = this.options.hiddenDays || []; // array of day-of-week indices that are hidden - var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool) - var dayCnt = 0; - var i; - if (this.options.weekends === false) { - hiddenDays.push(0, 6); // 0=sunday, 6=saturday - } - for (i = 0; i < 7; i++) { - if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) { - dayCnt++; - } - } - if (!dayCnt) { - throw new Error('invalid hiddenDays'); // all days were hidden? bad. - } - this.isHiddenDayHash = isHiddenDayHash; - }; - // Remove days from the beginning and end of the range that are computed as hidden. - // If the whole range is trimmed off, returns null - DateProfileGenerator.prototype.trimHiddenDays = function (range) { - var start = range.start; - var end = range.end; - if (start) { - start = this.skipHiddenDays(start); - } - if (end) { - end = this.skipHiddenDays(end, -1, true); - } - if (start == null || end == null || start < end) { - return { start: start, end: end }; - } - return null; - }; - // Is the current day hidden? - // `day` is a day-of-week index (0-6), or a Date (used for UTC) - DateProfileGenerator.prototype.isHiddenDay = function (day) { - if (day instanceof Date) { - day = day.getUTCDay(); - } - return this.isHiddenDayHash[day]; - }; - // Incrementing the current day until it is no longer a hidden day, returning a copy. - // DOES NOT CONSIDER validRange! - // If the initial value of `date` is not a hidden day, don't do anything. - // Pass `isExclusive` as `true` if you are dealing with an end date. - // `inc` defaults to `1` (increment one day forward each time) - DateProfileGenerator.prototype.skipHiddenDays = function (date, inc, isExclusive) { - if (inc === void 0) { inc = 1; } - if (isExclusive === void 0) { isExclusive = false; } - while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) { - date = addDays(date, inc); - } - return date; - }; - return DateProfileGenerator; -}()); -// TODO: find a way to avoid comparing DateProfiles. it's tedious -function isDateProfilesEqual(p0, p1) { - return rangesEqual(p0.validRange, p1.validRange) && - rangesEqual(p0.activeRange, p1.activeRange) && - rangesEqual(p0.renderRange, p1.renderRange) && - durationsEqual(p0.minTime, p1.minTime) && - durationsEqual(p0.maxTime, p1.maxTime); - /* - TODO: compare more? - currentRange: DateRange - currentRangeUnit: string - isRangeAllDay: boolean - isValid: boolean - dateIncrement: Duration - */ -} - -function reduce (state, action, calendar) { - var viewType = reduceViewType(state.viewType, action); - var dateProfile = reduceDateProfile(state.dateProfile, action, state.currentDate, viewType, calendar); - var eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendar); - var nextState = __assign({}, state, { viewType: viewType, - dateProfile: dateProfile, currentDate: reduceCurrentDate(state.currentDate, action, dateProfile), eventSources: eventSources, eventStore: reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendar), dateSelection: reduceDateSelection(state.dateSelection, action, calendar), eventSelection: reduceSelectedEvent(state.eventSelection, action), eventDrag: reduceEventDrag(state.eventDrag, action, eventSources, calendar), eventResize: reduceEventResize(state.eventResize, action, eventSources, calendar), eventSourceLoadingLevel: computeLoadingLevel(eventSources), loadingLevel: computeLoadingLevel(eventSources) }); - for (var _i = 0, _a = calendar.pluginSystem.hooks.reducers; _i < _a.length; _i++) { - var reducerFunc = _a[_i]; - nextState = reducerFunc(nextState, action, calendar); - } - // console.log(action.type, nextState) - return nextState; -} -function reduceViewType(currentViewType, action) { - switch (action.type) { - case 'SET_VIEW_TYPE': - return action.viewType; - default: - return currentViewType; - } -} -function reduceDateProfile(currentDateProfile, action, currentDate, viewType, calendar) { - var newDateProfile; - switch (action.type) { - case 'PREV': - newDateProfile = calendar.dateProfileGenerators[viewType].buildPrev(currentDateProfile, currentDate); - break; - case 'NEXT': - newDateProfile = calendar.dateProfileGenerators[viewType].buildNext(currentDateProfile, currentDate); - break; - case 'SET_DATE': - if (!currentDateProfile.activeRange || - !rangeContainsMarker(currentDateProfile.currentRange, action.dateMarker)) { - newDateProfile = calendar.dateProfileGenerators[viewType].build(action.dateMarker, undefined, true // forceToValid - ); - } - break; - case 'SET_VIEW_TYPE': - var generator = calendar.dateProfileGenerators[viewType]; - if (!generator) { - throw new Error(viewType ? - 'The FullCalendar view "' + viewType + '" does not exist. Make sure your plugins are loaded correctly.' : - 'No available FullCalendar view plugins.'); - } - newDateProfile = generator.build(action.dateMarker || currentDate, undefined, true // forceToValid - ); - break; - } - if (newDateProfile && - newDateProfile.isValid && - !(currentDateProfile && isDateProfilesEqual(currentDateProfile, newDateProfile))) { - return newDateProfile; - } - else { - return currentDateProfile; - } -} -function reduceCurrentDate(currentDate, action, dateProfile) { - switch (action.type) { - case 'PREV': - case 'NEXT': - if (!rangeContainsMarker(dateProfile.currentRange, currentDate)) { - return dateProfile.currentRange.start; - } - else { - return currentDate; - } - case 'SET_DATE': - case 'SET_VIEW_TYPE': - var newDate = action.dateMarker || currentDate; - if (dateProfile.activeRange && !rangeContainsMarker(dateProfile.activeRange, newDate)) { - return dateProfile.currentRange.start; - } - else { - return newDate; - } - default: - return currentDate; - } -} -function reduceDateSelection(currentSelection, action, calendar) { - switch (action.type) { - case 'SELECT_DATES': - return action.selection; - case 'UNSELECT_DATES': - return null; - default: - return currentSelection; - } -} -function reduceSelectedEvent(currentInstanceId, action) { - switch (action.type) { - case 'SELECT_EVENT': - return action.eventInstanceId; - case 'UNSELECT_EVENT': - return ''; - default: - return currentInstanceId; - } -} -function reduceEventDrag(currentDrag, action, sources, calendar) { - switch (action.type) { - case 'SET_EVENT_DRAG': - var newDrag = action.state; - return { - affectedEvents: newDrag.affectedEvents, - mutatedEvents: newDrag.mutatedEvents, - isEvent: newDrag.isEvent, - origSeg: newDrag.origSeg - }; - case 'UNSET_EVENT_DRAG': - return null; - default: - return currentDrag; - } -} -function reduceEventResize(currentResize, action, sources, calendar) { - switch (action.type) { - case 'SET_EVENT_RESIZE': - var newResize = action.state; - return { - affectedEvents: newResize.affectedEvents, - mutatedEvents: newResize.mutatedEvents, - isEvent: newResize.isEvent, - origSeg: newResize.origSeg - }; - case 'UNSET_EVENT_RESIZE': - return null; - default: - return currentResize; - } -} -function computeLoadingLevel(eventSources) { - var cnt = 0; - for (var sourceId in eventSources) { - if (eventSources[sourceId].isFetching) { - cnt++; - } - } - return cnt; -} - -var STANDARD_PROPS = { - start: null, - end: null, - allDay: Boolean -}; -function parseDateSpan(raw, dateEnv, defaultDuration) { - var span = parseOpenDateSpan(raw, dateEnv); - var range = span.range; - if (!range.start) { - return null; - } - if (!range.end) { - if (defaultDuration == null) { - return null; - } - else { - range.end = dateEnv.add(range.start, defaultDuration); - } - } - return span; -} -/* -TODO: somehow combine with parseRange? -Will return null if the start/end props were present but parsed invalidly. -*/ -function parseOpenDateSpan(raw, dateEnv) { - var leftovers = {}; - var standardProps = refineProps(raw, STANDARD_PROPS, {}, leftovers); - var startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null; - var endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null; - var allDay = standardProps.allDay; - if (allDay == null) { - allDay = (startMeta && startMeta.isTimeUnspecified) && - (!endMeta || endMeta.isTimeUnspecified); - } - // use this leftover object as the selection object - leftovers.range = { - start: startMeta ? startMeta.marker : null, - end: endMeta ? endMeta.marker : null - }; - leftovers.allDay = allDay; - return leftovers; -} -function isDateSpansEqual(span0, span1) { - return rangesEqual(span0.range, span1.range) && - span0.allDay === span1.allDay && - isSpanPropsEqual(span0, span1); -} -// the NON-DATE-RELATED props -function isSpanPropsEqual(span0, span1) { - for (var propName in span1) { - if (propName !== 'range' && propName !== 'allDay') { - if (span0[propName] !== span1[propName]) { - return false; - } - } - } - // are there any props that span0 has that span1 DOESN'T have? - // both have range/allDay, so no need to special-case. - for (var propName in span0) { - if (!(propName in span1)) { - return false; - } - } - return true; -} -function buildDateSpanApi(span, dateEnv) { - return { - start: dateEnv.toDate(span.range.start), - end: dateEnv.toDate(span.range.end), - startStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }), - endStr: dateEnv.formatIso(span.range.end, { omitTime: span.allDay }), - allDay: span.allDay - }; -} -function buildDatePointApi(span, dateEnv) { - return { - date: dateEnv.toDate(span.range.start), - dateStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }), - allDay: span.allDay - }; -} -function fabricateEventRange(dateSpan, eventUiBases, calendar) { - var def = parseEventDef({ editable: false }, '', // sourceId - dateSpan.allDay, true, // hasEnd - calendar); - return { - def: def, - ui: compileEventUi(def, eventUiBases), - instance: createEventInstance(def.defId, dateSpan.range), - range: dateSpan.range, - isStart: true, - isEnd: true - }; -} - -function compileViewDefs(defaultConfigs, overrideConfigs) { - var hash = {}; - var viewType; - for (viewType in defaultConfigs) { - ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs); - } - for (viewType in overrideConfigs) { - ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs); - } - return hash; -} -function ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) { - if (hash[viewType]) { - return hash[viewType]; - } - var viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs); - if (viewDef) { - hash[viewType] = viewDef; - } - return viewDef; -} -function buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) { - var defaultConfig = defaultConfigs[viewType]; - var overrideConfig = overrideConfigs[viewType]; - var queryProp = function (name) { - return (defaultConfig && defaultConfig[name] !== null) ? defaultConfig[name] : - ((overrideConfig && overrideConfig[name] !== null) ? overrideConfig[name] : null); - }; - var theClass = queryProp('class'); - var superType = queryProp('superType'); - if (!superType && theClass) { - superType = - findViewNameBySubclass(theClass, overrideConfigs) || - findViewNameBySubclass(theClass, defaultConfigs); - } - var superDef = null; - if (superType) { - if (superType === viewType) { - throw new Error('Can\'t have a custom view type that references itself'); - } - superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs); - } - if (!theClass && superDef) { - theClass = superDef.class; - } - if (!theClass) { - return null; // don't throw a warning, might be settings for a single-unit view - } - return { - type: viewType, - class: theClass, - defaults: __assign({}, (superDef ? superDef.defaults : {}), (defaultConfig ? defaultConfig.options : {})), - overrides: __assign({}, (superDef ? superDef.overrides : {}), (overrideConfig ? overrideConfig.options : {})) - }; -} -function findViewNameBySubclass(viewSubclass, configs) { - var superProto = Object.getPrototypeOf(viewSubclass.prototype); - for (var viewType in configs) { - var parsed = configs[viewType]; - // need DIRECT subclass, so instanceof won't do it - if (parsed.class && parsed.class.prototype === superProto) { - return viewType; - } - } - return ''; -} - -function parseViewConfigs(inputs) { - return mapHash(inputs, parseViewConfig); -} -var VIEW_DEF_PROPS = { - type: String, - class: null -}; -function parseViewConfig(input) { - if (typeof input === 'function') { - input = { class: input }; - } - var options = {}; - var props = refineProps(input, VIEW_DEF_PROPS, {}, options); - return { - superType: props.type, - class: props.class, - options: options - }; -} - -function buildViewSpecs(defaultInputs, optionsManager) { - var defaultConfigs = parseViewConfigs(defaultInputs); - var overrideConfigs = parseViewConfigs(optionsManager.overrides.views); - var viewDefs = compileViewDefs(defaultConfigs, overrideConfigs); - return mapHash(viewDefs, function (viewDef) { - return buildViewSpec(viewDef, overrideConfigs, optionsManager); - }); -} -function buildViewSpec(viewDef, overrideConfigs, optionsManager) { - var durationInput = viewDef.overrides.duration || - viewDef.defaults.duration || - optionsManager.dynamicOverrides.duration || - optionsManager.overrides.duration; - var duration = null; - var durationUnit = ''; - var singleUnit = ''; - var singleUnitOverrides = {}; - if (durationInput) { - duration = createDuration(durationInput); - if (duration) { // valid? - var denom = greatestDurationDenominator(duration, !getWeeksFromInput(durationInput)); - durationUnit = denom.unit; - if (denom.value === 1) { - singleUnit = durationUnit; - singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].options : {}; - } - } - } - var queryButtonText = function (options) { - var buttonTextMap = options.buttonText || {}; - var buttonTextKey = viewDef.defaults.buttonTextKey; - if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) { - return buttonTextMap[buttonTextKey]; - } - if (buttonTextMap[viewDef.type] != null) { - return buttonTextMap[viewDef.type]; - } - if (buttonTextMap[singleUnit] != null) { - return buttonTextMap[singleUnit]; - } - }; - return { - type: viewDef.type, - class: viewDef.class, - duration: duration, - durationUnit: durationUnit, - singleUnit: singleUnit, - options: __assign({}, globalDefaults, viewDef.defaults, optionsManager.dirDefaults, optionsManager.localeDefaults, optionsManager.overrides, singleUnitOverrides, viewDef.overrides, optionsManager.dynamicOverrides), - buttonTextOverride: queryButtonText(optionsManager.dynamicOverrides) || - queryButtonText(optionsManager.overrides) || // constructor-specified buttonText lookup hash takes precedence - viewDef.overrides.buttonText, - buttonTextDefault: queryButtonText(optionsManager.localeDefaults) || - queryButtonText(optionsManager.dirDefaults) || - viewDef.defaults.buttonText || - queryButtonText(globalDefaults) || - viewDef.type // fall back to given view name - }; -} - -var Toolbar = /** @class */ (function (_super) { - __extends(Toolbar, _super); - function Toolbar(context, extraClassName) { - var _this = _super.call(this, context) || this; - _this._renderLayout = memoizeRendering(_this.renderLayout, _this.unrenderLayout); - _this._updateTitle = memoizeRendering(_this.updateTitle, null, [_this._renderLayout]); - _this._updateActiveButton = memoizeRendering(_this.updateActiveButton, null, [_this._renderLayout]); - _this._updateToday = memoizeRendering(_this.updateToday, null, [_this._renderLayout]); - _this._updatePrev = memoizeRendering(_this.updatePrev, null, [_this._renderLayout]); - _this._updateNext = memoizeRendering(_this.updateNext, null, [_this._renderLayout]); - _this.el = createElement('div', { className: 'fc-toolbar ' + extraClassName }); - return _this; - } - Toolbar.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this._renderLayout.unrender(); // should unrender everything else - removeElement(this.el); - }; - Toolbar.prototype.render = function (props) { - this._renderLayout(props.layout); - this._updateTitle(props.title); - this._updateActiveButton(props.activeButton); - this._updateToday(props.isTodayEnabled); - this._updatePrev(props.isPrevEnabled); - this._updateNext(props.isNextEnabled); - }; - Toolbar.prototype.renderLayout = function (layout) { - var el = this.el; - this.viewsWithButtons = []; - appendToElement(el, this.renderSection('left', layout.left)); - appendToElement(el, this.renderSection('center', layout.center)); - appendToElement(el, this.renderSection('right', layout.right)); - }; - Toolbar.prototype.unrenderLayout = function () { - this.el.innerHTML = ''; - }; - Toolbar.prototype.renderSection = function (position, buttonStr) { - var _this = this; - var _a = this, theme = _a.theme, calendar = _a.calendar; - var optionsManager = calendar.optionsManager; - var viewSpecs = calendar.viewSpecs; - var sectionEl = createElement('div', { className: 'fc-' + position }); - var calendarCustomButtons = optionsManager.computed.customButtons || {}; - var calendarButtonTextOverrides = optionsManager.overrides.buttonText || {}; - var calendarButtonText = optionsManager.computed.buttonText || {}; - if (buttonStr) { - buttonStr.split(' ').forEach(function (buttonGroupStr, i) { - var groupChildren = []; - var isOnlyButtons = true; - var groupEl; - buttonGroupStr.split(',').forEach(function (buttonName, j) { - var customButtonProps; - var viewSpec; - var buttonClick; - var buttonIcon; // only one of these will be set - var buttonText; // " - var buttonInnerHtml; - var buttonClasses; - var buttonEl; - var buttonAriaAttr; - if (buttonName === 'title') { - groupChildren.push(htmlToElement('

 

')); // we always want it to take up height - isOnlyButtons = false; - } - else { - if ((customButtonProps = calendarCustomButtons[buttonName])) { - buttonClick = function (ev) { - if (customButtonProps.click) { - customButtonProps.click.call(buttonEl, ev); - } - }; - (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = customButtonProps.text); - } - else if ((viewSpec = viewSpecs[buttonName])) { - _this.viewsWithButtons.push(buttonName); - buttonClick = function () { - calendar.changeView(buttonName); - }; - (buttonText = viewSpec.buttonTextOverride) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = viewSpec.buttonTextDefault); - } - else if (calendar[buttonName]) { // a calendar method - buttonClick = function () { - calendar[buttonName](); - }; - (buttonText = calendarButtonTextOverrides[buttonName]) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = calendarButtonText[buttonName]); - // ^ everything else is considered default - } - if (buttonClick) { - buttonClasses = [ - 'fc-' + buttonName + '-button', - theme.getClass('button') - ]; - if (buttonText) { - buttonInnerHtml = htmlEscape(buttonText); - buttonAriaAttr = ''; - } - else if (buttonIcon) { - buttonInnerHtml = ""; - buttonAriaAttr = ' aria-label="' + buttonName + '"'; - } - buttonEl = htmlToElement(// type="button" so that it doesn't submit a form - ''); - buttonEl.addEventListener('click', buttonClick); - groupChildren.push(buttonEl); - } - } - }); - if (groupChildren.length > 1) { - groupEl = document.createElement('div'); - var buttonGroupClassName = theme.getClass('buttonGroup'); - if (isOnlyButtons && buttonGroupClassName) { - groupEl.classList.add(buttonGroupClassName); - } - appendToElement(groupEl, groupChildren); - sectionEl.appendChild(groupEl); - } - else { - appendToElement(sectionEl, groupChildren); // 1 or 0 children - } - }); - } - return sectionEl; - }; - Toolbar.prototype.updateToday = function (isTodayEnabled) { - this.toggleButtonEnabled('today', isTodayEnabled); - }; - Toolbar.prototype.updatePrev = function (isPrevEnabled) { - this.toggleButtonEnabled('prev', isPrevEnabled); - }; - Toolbar.prototype.updateNext = function (isNextEnabled) { - this.toggleButtonEnabled('next', isNextEnabled); - }; - Toolbar.prototype.updateTitle = function (text) { - findElements(this.el, 'h2').forEach(function (titleEl) { - titleEl.innerText = text; - }); - }; - Toolbar.prototype.updateActiveButton = function (buttonName) { - var className = this.theme.getClass('buttonActive'); - findElements(this.el, 'button').forEach(function (buttonEl) { - if (buttonName && buttonEl.classList.contains('fc-' + buttonName + '-button')) { - buttonEl.classList.add(className); - } - else { - buttonEl.classList.remove(className); - } - }); - }; - Toolbar.prototype.toggleButtonEnabled = function (buttonName, bool) { - findElements(this.el, '.fc-' + buttonName + '-button').forEach(function (buttonEl) { - buttonEl.disabled = !bool; - }); - }; - return Toolbar; -}(Component)); - -var CalendarComponent = /** @class */ (function (_super) { - __extends(CalendarComponent, _super); - function CalendarComponent(context, el) { - var _this = _super.call(this, context) || this; - _this._renderToolbars = memoizeRendering(_this.renderToolbars); - _this.buildViewPropTransformers = memoize(buildViewPropTransformers); - _this.el = el; - prependToElement(el, _this.contentEl = createElement('div', { className: 'fc-view-container' })); - var calendar = _this.calendar; - for (var _i = 0, _a = calendar.pluginSystem.hooks.viewContainerModifiers; _i < _a.length; _i++) { - var modifyViewContainer = _a[_i]; - modifyViewContainer(_this.contentEl, calendar); - } - _this.toggleElClassNames(true); - _this.computeTitle = memoize(computeTitle); - _this.parseBusinessHours = memoize(function (input) { - return parseBusinessHours(input, _this.calendar); - }); - return _this; - } - CalendarComponent.prototype.destroy = function () { - if (this.header) { - this.header.destroy(); - } - if (this.footer) { - this.footer.destroy(); - } - if (this.view) { - this.view.destroy(); - } - removeElement(this.contentEl); - this.toggleElClassNames(false); - _super.prototype.destroy.call(this); - }; - CalendarComponent.prototype.toggleElClassNames = function (bool) { - var classList = this.el.classList; - var dirClassName = 'fc-' + this.opt('dir'); - var themeClassName = this.theme.getClass('widget'); - if (bool) { - classList.add('fc'); - classList.add(dirClassName); - classList.add(themeClassName); - } - else { - classList.remove('fc'); - classList.remove(dirClassName); - classList.remove(themeClassName); - } - }; - CalendarComponent.prototype.render = function (props) { - this.freezeHeight(); - var title = this.computeTitle(props.dateProfile, props.viewSpec.options); - this._renderToolbars(props.viewSpec, props.dateProfile, props.currentDate, props.dateProfileGenerator, title); - this.renderView(props, title); - this.updateSize(); - this.thawHeight(); - }; - CalendarComponent.prototype.renderToolbars = function (viewSpec, dateProfile, currentDate, dateProfileGenerator, title) { - var headerLayout = this.opt('header'); - var footerLayout = this.opt('footer'); - var now = this.calendar.getNow(); - var todayInfo = dateProfileGenerator.build(now); - var prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate); - var nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate); - var toolbarProps = { - title: title, - activeButton: viewSpec.type, - isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now), - isPrevEnabled: prevInfo.isValid, - isNextEnabled: nextInfo.isValid - }; - if (headerLayout) { - if (!this.header) { - this.header = new Toolbar(this.context, 'fc-header-toolbar'); - prependToElement(this.el, this.header.el); - } - this.header.receiveProps(__assign({ layout: headerLayout }, toolbarProps)); - } - else if (this.header) { - this.header.destroy(); - this.header = null; - } - if (footerLayout) { - if (!this.footer) { - this.footer = new Toolbar(this.context, 'fc-footer-toolbar'); - appendToElement(this.el, this.footer.el); - } - this.footer.receiveProps(__assign({ layout: footerLayout }, toolbarProps)); - } - else if (this.footer) { - this.footer.destroy(); - this.footer = null; - } - }; - CalendarComponent.prototype.renderView = function (props, title) { - var view = this.view; - var viewSpec = props.viewSpec, dateProfileGenerator = props.dateProfileGenerator; - if (!view || view.viewSpec !== viewSpec) { - if (view) { - view.destroy(); - } - view = this.view = new viewSpec['class']({ - calendar: this.calendar, - view: null, - dateEnv: this.dateEnv, - theme: this.theme, - options: viewSpec.options - }, viewSpec, dateProfileGenerator, this.contentEl); - } - else { - view.addScroll(view.queryScroll()); - } - view.title = title; // for the API - var viewProps = { - dateProfile: props.dateProfile, - businessHours: this.parseBusinessHours(viewSpec.options.businessHours), - eventStore: props.eventStore, - eventUiBases: props.eventUiBases, - dateSelection: props.dateSelection, - eventSelection: props.eventSelection, - eventDrag: props.eventDrag, - eventResize: props.eventResize - }; - var transformers = this.buildViewPropTransformers(this.calendar.pluginSystem.hooks.viewPropsTransformers); - for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) { - var transformer = transformers_1[_i]; - __assign(viewProps, transformer.transform(viewProps, viewSpec, props, view)); - } - view.receiveProps(viewProps); - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - CalendarComponent.prototype.updateSize = function (isResize) { - if (isResize === void 0) { isResize = false; } - var view = this.view; - if (isResize) { - view.addScroll(view.queryScroll()); - } - if (isResize || this.isHeightAuto == null) { - this.computeHeightVars(); - } - view.updateSize(isResize, this.viewHeight, this.isHeightAuto); - view.updateNowIndicator(); // we need to guarantee this will run after updateSize - view.popScroll(isResize); - }; - CalendarComponent.prototype.computeHeightVars = function () { - var calendar = this.calendar; // yuck. need to handle dynamic options - var heightInput = calendar.opt('height'); - var contentHeightInput = calendar.opt('contentHeight'); - this.isHeightAuto = heightInput === 'auto' || contentHeightInput === 'auto'; - if (typeof contentHeightInput === 'number') { // exists and not 'auto' - this.viewHeight = contentHeightInput; - } - else if (typeof contentHeightInput === 'function') { // exists and is a function - this.viewHeight = contentHeightInput(); - } - else if (typeof heightInput === 'number') { // exists and not 'auto' - this.viewHeight = heightInput - this.queryToolbarsHeight(); - } - else if (typeof heightInput === 'function') { // exists and is a function - this.viewHeight = heightInput() - this.queryToolbarsHeight(); - } - else if (heightInput === 'parent') { // set to height of parent element - var parentEl = this.el.parentNode; - this.viewHeight = parentEl.getBoundingClientRect().height - this.queryToolbarsHeight(); - } - else { - this.viewHeight = Math.round(this.contentEl.getBoundingClientRect().width / - Math.max(calendar.opt('aspectRatio'), .5)); - } - }; - CalendarComponent.prototype.queryToolbarsHeight = function () { - var height = 0; - if (this.header) { - height += computeHeightAndMargins(this.header.el); - } - if (this.footer) { - height += computeHeightAndMargins(this.footer.el); - } - return height; - }; - // Height "Freezing" - // ----------------------------------------------------------------------------------------------------------------- - CalendarComponent.prototype.freezeHeight = function () { - applyStyle(this.el, { - height: this.el.getBoundingClientRect().height, - overflow: 'hidden' - }); - }; - CalendarComponent.prototype.thawHeight = function () { - applyStyle(this.el, { - height: '', - overflow: '' - }); - }; - return CalendarComponent; -}(Component)); -// Title and Date Formatting -// ----------------------------------------------------------------------------------------------------------------- -// Computes what the title at the top of the calendar should be for this view -function computeTitle(dateProfile, viewOptions) { - var range; - // for views that span a large unit of time, show the proper interval, ignoring stray days before and after - if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) { - range = dateProfile.currentRange; - } - else { // for day units or smaller, use the actual day range - range = dateProfile.activeRange; - } - return this.dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || computeTitleFormat(dateProfile), viewOptions.titleRangeSeparator), { isEndExclusive: dateProfile.isRangeAllDay }); -} -// Generates the format string that should be used to generate the title for the current date range. -// Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`. -function computeTitleFormat(dateProfile) { - var currentRangeUnit = dateProfile.currentRangeUnit; - if (currentRangeUnit === 'year') { - return { year: 'numeric' }; - } - else if (currentRangeUnit === 'month') { - return { year: 'numeric', month: 'long' }; // like "September 2014" - } - else { - var days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end); - if (days !== null && days > 1) { - // multi-day range. shorter, like "Sep 9 - 10 2014" - return { year: 'numeric', month: 'short', day: 'numeric' }; - } - else { - // one day. longer, like "September 9 2014" - return { year: 'numeric', month: 'long', day: 'numeric' }; - } - } -} -// Plugin -// ----------------------------------------------------------------------------------------------------------------- -function buildViewPropTransformers(theClasses) { - return theClasses.map(function (theClass) { - return new theClass(); - }); -} - -var Interaction = /** @class */ (function () { - function Interaction(settings) { - this.component = settings.component; - } - Interaction.prototype.destroy = function () { - }; - return Interaction; -}()); -function parseInteractionSettings(component, input) { - return { - component: component, - el: input.el, - useEventCenter: input.useEventCenter != null ? input.useEventCenter : true - }; -} -function interactionSettingsToStore(settings) { - var _a; - return _a = {}, - _a[settings.component.uid] = settings, - _a; -} -// global state -var interactionSettingsStore = {}; - -/* -Detects when the user clicks on an event within a DateComponent -*/ -var EventClicking = /** @class */ (function (_super) { - __extends(EventClicking, _super); - function EventClicking(settings) { - var _this = _super.call(this, settings) || this; - _this.handleSegClick = function (ev, segEl) { - var component = _this.component; - var seg = getElSeg(segEl); - if (seg && // might be the
surrounding the more link - component.isValidSegDownEl(ev.target)) { - // our way to simulate a link click for elements that can't be tags - // grab before trigger fired in case trigger trashes DOM thru rerendering - var hasUrlContainer = elementClosest(ev.target, '.fc-has-url'); - var url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : ''; - component.publiclyTrigger('eventClick', [ - { - el: segEl, - event: new EventApi(component.calendar, seg.eventRange.def, seg.eventRange.instance), - jsEvent: ev, - view: component.view - } - ]); - if (url && !ev.defaultPrevented) { - window.location.href = url; - } - } - }; - var component = settings.component; - _this.destroy = listenBySelector(component.el, 'click', component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegClick); - return _this; - } - return EventClicking; -}(Interaction)); - -/* -Triggers events and adds/removes core classNames when the user's pointer -enters/leaves event-elements of a component. -*/ -var EventHovering = /** @class */ (function (_super) { - __extends(EventHovering, _super); - function EventHovering(settings) { - var _this = _super.call(this, settings) || this; - // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it - _this.handleEventElRemove = function (el) { - if (el === _this.currentSegEl) { - _this.handleSegLeave(null, _this.currentSegEl); - } - }; - _this.handleSegEnter = function (ev, segEl) { - if (getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper - segEl.classList.add('fc-allow-mouse-resize'); - _this.currentSegEl = segEl; - _this.triggerEvent('eventMouseEnter', ev, segEl); - } - }; - _this.handleSegLeave = function (ev, segEl) { - if (_this.currentSegEl) { - segEl.classList.remove('fc-allow-mouse-resize'); - _this.currentSegEl = null; - _this.triggerEvent('eventMouseLeave', ev, segEl); - } - }; - var component = settings.component; - _this.removeHoverListeners = listenToHoverBySelector(component.el, component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegEnter, _this.handleSegLeave); - component.calendar.on('eventElRemove', _this.handleEventElRemove); - return _this; - } - EventHovering.prototype.destroy = function () { - this.removeHoverListeners(); - this.component.calendar.off('eventElRemove', this.handleEventElRemove); - }; - EventHovering.prototype.triggerEvent = function (publicEvName, ev, segEl) { - var component = this.component; - var seg = getElSeg(segEl); - if (!ev || component.isValidSegDownEl(ev.target)) { - component.publiclyTrigger(publicEvName, [ - { - el: segEl, - event: new EventApi(this.component.calendar, seg.eventRange.def, seg.eventRange.instance), - jsEvent: ev, - view: component.view - } - ]); - } - }; - return EventHovering; -}(Interaction)); - -var StandardTheme = /** @class */ (function (_super) { - __extends(StandardTheme, _super); - function StandardTheme() { - return _super !== null && _super.apply(this, arguments) || this; - } - return StandardTheme; -}(Theme)); -StandardTheme.prototype.classes = { - widget: 'fc-unthemed', - widgetHeader: 'fc-widget-header', - widgetContent: 'fc-widget-content', - buttonGroup: 'fc-button-group', - button: 'fc-button fc-button-primary', - buttonActive: 'fc-button-active', - popoverHeader: 'fc-widget-header', - popoverContent: 'fc-widget-content', - // day grid - headerRow: 'fc-widget-header', - dayRow: 'fc-widget-content', - // list view - listView: 'fc-widget-content' -}; -StandardTheme.prototype.baseIconClass = 'fc-icon'; -StandardTheme.prototype.iconClasses = { - close: 'fc-icon-x', - prev: 'fc-icon-chevron-left', - next: 'fc-icon-chevron-right', - prevYear: 'fc-icon-chevrons-left', - nextYear: 'fc-icon-chevrons-right' -}; -StandardTheme.prototype.iconOverrideOption = 'buttonIcons'; -StandardTheme.prototype.iconOverrideCustomButtonOption = 'icon'; -StandardTheme.prototype.iconOverridePrefix = 'fc-icon-'; - -var Calendar = /** @class */ (function () { - function Calendar(el, overrides) { - var _this = this; - this.parseRawLocales = memoize(parseRawLocales); - this.buildLocale = memoize(buildLocale); - this.buildDateEnv = memoize(buildDateEnv); - this.buildTheme = memoize(buildTheme); - this.buildEventUiSingleBase = memoize(this._buildEventUiSingleBase); - this.buildSelectionConfig = memoize(this._buildSelectionConfig); - this.buildEventUiBySource = memoizeOutput(buildEventUiBySource, isPropsEqual); - this.buildEventUiBases = memoize(buildEventUiBases); - this.interactionsStore = {}; - this.actionQueue = []; - this.isReducing = false; - // isDisplaying: boolean = false // installed in DOM? accepting renders? - this.needsRerender = false; // needs a render? - this.needsFullRerender = false; - this.isRendering = false; // currently in the executeRender function? - this.renderingPauseDepth = 0; - this.buildDelayedRerender = memoize(buildDelayedRerender); - this.afterSizingTriggers = {}; - this.isViewUpdated = false; - this.isDatesUpdated = false; - this.isEventsUpdated = false; - this.el = el; - this.optionsManager = new OptionsManager(overrides || {}); - this.pluginSystem = new PluginSystem(); - // only do once. don't do in handleOptions. because can't remove plugins - this.addPluginInputs(this.optionsManager.computed.plugins || []); - this.handleOptions(this.optionsManager.computed); - this.publiclyTrigger('_init'); // for tests - this.hydrate(); - this.calendarInteractions = this.pluginSystem.hooks.calendarInteractions - .map(function (calendarInteractionClass) { - return new calendarInteractionClass(_this); - }); - } - Calendar.prototype.addPluginInputs = function (pluginInputs) { - var pluginDefs = refinePluginDefs(pluginInputs); - for (var _i = 0, pluginDefs_1 = pluginDefs; _i < pluginDefs_1.length; _i++) { - var pluginDef = pluginDefs_1[_i]; - this.pluginSystem.add(pluginDef); - } - }; - Object.defineProperty(Calendar.prototype, "view", { - // public API - get: function () { - return this.component ? this.component.view : null; - }, - enumerable: true, - configurable: true - }); - // Public API for rendering - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.render = function () { - if (!this.component) { - this.renderableEventStore = createEmptyEventStore(); - this.bindHandlers(); - this.executeRender(); - } - else { - this.requestRerender(true); - } - }; - Calendar.prototype.destroy = function () { - if (this.component) { - this.unbindHandlers(); - this.component.destroy(); // don't null-out. in case API needs access - this.component = null; // umm ??? - for (var _i = 0, _a = this.calendarInteractions; _i < _a.length; _i++) { - var interaction = _a[_i]; - interaction.destroy(); - } - this.publiclyTrigger('_destroyed'); - } - }; - // Handlers - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.bindHandlers = function () { - var _this = this; - // event delegation for nav links - this.removeNavLinkListener = listenBySelector(this.el, 'click', 'a[data-goto]', function (ev, anchorEl) { - var gotoOptions = anchorEl.getAttribute('data-goto'); - gotoOptions = gotoOptions ? JSON.parse(gotoOptions) : {}; - var dateEnv = _this.dateEnv; - var dateMarker = dateEnv.createMarker(gotoOptions.date); - var viewType = gotoOptions.type; - // property like "navLinkDayClick". might be a string or a function - var customAction = _this.viewOpt('navLink' + capitaliseFirstLetter(viewType) + 'Click'); - if (typeof customAction === 'function') { - customAction(dateEnv.toDate(dateMarker), ev); - } - else { - if (typeof customAction === 'string') { - viewType = customAction; - } - _this.zoomTo(dateMarker, viewType); - } - }); - if (this.opt('handleWindowResize')) { - window.addEventListener('resize', this.windowResizeProxy = debounce(// prevents rapid calls - this.windowResize.bind(this), this.opt('windowResizeDelay'))); - } - }; - Calendar.prototype.unbindHandlers = function () { - this.removeNavLinkListener(); - if (this.windowResizeProxy) { - window.removeEventListener('resize', this.windowResizeProxy); - this.windowResizeProxy = null; - } - }; - // Dispatcher - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.hydrate = function () { - var _this = this; - this.state = this.buildInitialState(); - var rawSources = this.opt('eventSources') || []; - var singleRawSource = this.opt('events'); - var sources = []; // parsed - if (singleRawSource) { - rawSources.unshift(singleRawSource); - } - for (var _i = 0, rawSources_1 = rawSources; _i < rawSources_1.length; _i++) { - var rawSource = rawSources_1[_i]; - var source = parseEventSource(rawSource, this); - if (source) { - sources.push(source); - } - } - this.batchRendering(function () { - _this.dispatch({ type: 'INIT' }); // pass in sources here? - _this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: sources }); - _this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: _this.opt('defaultView') || _this.pluginSystem.hooks.defaultView - }); - }); - }; - Calendar.prototype.buildInitialState = function () { - return { - viewType: null, - loadingLevel: 0, - eventSourceLoadingLevel: 0, - currentDate: this.getInitialDate(), - dateProfile: null, - eventSources: {}, - eventStore: createEmptyEventStore(), - dateSelection: null, - eventSelection: '', - eventDrag: null, - eventResize: null - }; - }; - Calendar.prototype.dispatch = function (action) { - this.actionQueue.push(action); - if (!this.isReducing) { - this.isReducing = true; - var oldState = this.state; - while (this.actionQueue.length) { - this.state = this.reduce(this.state, this.actionQueue.shift(), this); - } - var newState = this.state; - this.isReducing = false; - if (!oldState.loadingLevel && newState.loadingLevel) { - this.publiclyTrigger('loading', [true]); - } - else if (oldState.loadingLevel && !newState.loadingLevel) { - this.publiclyTrigger('loading', [false]); - } - var view = this.component && this.component.view; - if (oldState.eventStore !== newState.eventStore || this.needsFullRerender) { - if (oldState.eventStore) { - this.isEventsUpdated = true; - } - } - if (oldState.dateProfile !== newState.dateProfile || this.needsFullRerender) { - if (oldState.dateProfile && view) { // why would view be null!? - this.publiclyTrigger('datesDestroy', [ - { - view: view, - el: view.el - } - ]); - } - this.isDatesUpdated = true; - } - if (oldState.viewType !== newState.viewType || this.needsFullRerender) { - if (oldState.viewType && view) { // why would view be null!? - this.publiclyTrigger('viewSkeletonDestroy', [ - { - view: view, - el: view.el - } - ]); - } - this.isViewUpdated = true; - } - this.requestRerender(); - } - }; - Calendar.prototype.reduce = function (state, action, calendar) { - return reduce(state, action, calendar); - }; - // Render Queue - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.requestRerender = function (needsFull) { - if (needsFull === void 0) { needsFull = false; } - this.needsRerender = true; - this.needsFullRerender = this.needsFullRerender || needsFull; - this.delayedRerender(); // will call a debounced-version of tryRerender - }; - Calendar.prototype.tryRerender = function () { - if (this.component && // must be accepting renders - this.needsRerender && // indicates that a rerender was requested - !this.renderingPauseDepth && // not paused - !this.isRendering // not currently in the render loop - ) { - this.executeRender(); - } - }; - Calendar.prototype.batchRendering = function (func) { - this.renderingPauseDepth++; - func(); - this.renderingPauseDepth--; - if (this.needsRerender) { - this.requestRerender(); - } - }; - // Rendering - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.executeRender = function () { - var needsFullRerender = this.needsFullRerender; // save before clearing - // clear these BEFORE the render so that new values will accumulate during render - this.needsRerender = false; - this.needsFullRerender = false; - this.isRendering = true; - this.renderComponent(needsFullRerender); - this.isRendering = false; - // received a rerender request while rendering - if (this.needsRerender) { - this.delayedRerender(); - } - }; - /* - don't call this directly. use executeRender instead - */ - Calendar.prototype.renderComponent = function (needsFull) { - var _a = this, state = _a.state, component = _a.component; - var viewType = state.viewType; - var viewSpec = this.viewSpecs[viewType]; - var savedScroll = (needsFull && component) ? component.view.queryScroll() : null; - if (!viewSpec) { - throw new Error("View type \"" + viewType + "\" is not valid"); - } - // if event sources are still loading and progressive rendering hasn't been enabled, - // keep rendering the last fully loaded set of events - var renderableEventStore = this.renderableEventStore = - (state.eventSourceLoadingLevel && !this.opt('progressiveEventRendering')) ? - this.renderableEventStore : - state.eventStore; - var eventUiSingleBase = this.buildEventUiSingleBase(viewSpec.options); - var eventUiBySource = this.buildEventUiBySource(state.eventSources); - var eventUiBases = this.eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource); - if (needsFull || !component) { - if (component) { - component.freezeHeight(); // next component will unfreeze it - component.destroy(); - } - component = this.component = new CalendarComponent({ - calendar: this, - view: null, - dateEnv: this.dateEnv, - theme: this.theme, - options: this.optionsManager.computed - }, this.el); - this.isViewUpdated = true; - this.isDatesUpdated = true; - this.isEventsUpdated = true; - } - component.receiveProps(__assign({}, state, { viewSpec: viewSpec, dateProfile: state.dateProfile, dateProfileGenerator: this.dateProfileGenerators[viewType], eventStore: renderableEventStore, eventUiBases: eventUiBases, dateSelection: state.dateSelection, eventSelection: state.eventSelection, eventDrag: state.eventDrag, eventResize: state.eventResize })); - if (savedScroll) { - component.view.applyScroll(savedScroll, false); - } - if (this.isViewUpdated) { - this.isViewUpdated = false; - this.publiclyTrigger('viewSkeletonRender', [ - { - view: component.view, - el: component.view.el - } - ]); - } - if (this.isDatesUpdated) { - this.isDatesUpdated = false; - this.publiclyTrigger('datesRender', [ - { - view: component.view, - el: component.view.el - } - ]); - } - if (this.isEventsUpdated) { - this.isEventsUpdated = false; - } - this.releaseAfterSizingTriggers(); - }; - // Options - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.setOption = function (name, val) { - var _a; - this.mutateOptions((_a = {}, _a[name] = val, _a), [], true); - }; - Calendar.prototype.getOption = function (name) { - return this.optionsManager.computed[name]; - }; - Calendar.prototype.opt = function (name) { - return this.optionsManager.computed[name]; - }; - Calendar.prototype.viewOpt = function (name) { - return this.viewOpts()[name]; - }; - Calendar.prototype.viewOpts = function () { - return this.viewSpecs[this.state.viewType].options; - }; - /* - handles option changes (like a diff) - */ - Calendar.prototype.mutateOptions = function (updates, removals, isDynamic, deepEqual) { - var _this = this; - var changeHandlers = this.pluginSystem.hooks.optionChangeHandlers; - var normalUpdates = {}; - var specialUpdates = {}; - var oldDateEnv = this.dateEnv; // do this before handleOptions - var isTimeZoneDirty = false; - var isSizeDirty = false; - var anyDifficultOptions = Boolean(removals.length); - for (var name_1 in updates) { - if (changeHandlers[name_1]) { - specialUpdates[name_1] = updates[name_1]; - } - else { - normalUpdates[name_1] = updates[name_1]; - } - } - for (var name_2 in normalUpdates) { - if (/^(height|contentHeight|aspectRatio)$/.test(name_2)) { - isSizeDirty = true; - } - else if (/^(defaultDate|defaultView)$/.test(name_2)) ; - else { - anyDifficultOptions = true; - if (name_2 === 'timeZone') { - isTimeZoneDirty = true; - } - } - } - this.optionsManager.mutate(normalUpdates, removals, isDynamic); - if (anyDifficultOptions) { - this.handleOptions(this.optionsManager.computed); - this.needsFullRerender = true; - } - this.batchRendering(function () { - if (anyDifficultOptions) { - if (isTimeZoneDirty) { - _this.dispatch({ - type: 'CHANGE_TIMEZONE', - oldDateEnv: oldDateEnv - }); - } - /* HACK - has the same effect as calling this.requestRerender(true) - but recomputes the state's dateProfile - */ - _this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: _this.state.viewType - }); - } - else if (isSizeDirty) { - _this.updateSize(); - } - // special updates - if (deepEqual) { - for (var name_3 in specialUpdates) { - changeHandlers[name_3](specialUpdates[name_3], _this, deepEqual); - } - } - }); - }; - /* - rebuilds things based off of a complete set of refined options - */ - Calendar.prototype.handleOptions = function (options) { - var _this = this; - var pluginHooks = this.pluginSystem.hooks; - this.defaultAllDayEventDuration = createDuration(options.defaultAllDayEventDuration); - this.defaultTimedEventDuration = createDuration(options.defaultTimedEventDuration); - this.delayedRerender = this.buildDelayedRerender(options.rerenderDelay); - this.theme = this.buildTheme(options); - var available = this.parseRawLocales(options.locales); - this.availableRawLocales = available.map; - var locale = this.buildLocale(options.locale || available.defaultCode, available.map); - this.dateEnv = this.buildDateEnv(locale, options.timeZone, pluginHooks.namedTimeZonedImpl, options.firstDay, options.weekNumberCalculation, options.weekLabel, pluginHooks.cmdFormatter); - this.selectionConfig = this.buildSelectionConfig(options); // needs dateEnv. do after :( - // ineffecient to do every time? - this.viewSpecs = buildViewSpecs(pluginHooks.views, this.optionsManager); - // ineffecient to do every time? - this.dateProfileGenerators = mapHash(this.viewSpecs, function (viewSpec) { - return new viewSpec.class.prototype.dateProfileGeneratorClass(viewSpec, _this); - }); - }; - Calendar.prototype.getAvailableLocaleCodes = function () { - return Object.keys(this.availableRawLocales); - }; - Calendar.prototype._buildSelectionConfig = function (rawOpts) { - return processScopedUiProps('select', rawOpts, this); - }; - Calendar.prototype._buildEventUiSingleBase = function (rawOpts) { - if (rawOpts.editable) { // so 'editable' affected events - rawOpts = __assign({}, rawOpts, { eventEditable: true }); - } - return processScopedUiProps('event', rawOpts, this); - }; - // Trigger - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.hasPublicHandlers = function (name) { - return this.hasHandlers(name) || - this.opt(name); // handler specified in options - }; - Calendar.prototype.publiclyTrigger = function (name, args) { - var optHandler = this.opt(name); - this.triggerWith(name, this, args); - if (optHandler) { - return optHandler.apply(this, args); - } - }; - Calendar.prototype.publiclyTriggerAfterSizing = function (name, args) { - var afterSizingTriggers = this.afterSizingTriggers; - (afterSizingTriggers[name] || (afterSizingTriggers[name] = [])).push(args); - }; - Calendar.prototype.releaseAfterSizingTriggers = function () { - var afterSizingTriggers = this.afterSizingTriggers; - for (var name_4 in afterSizingTriggers) { - for (var _i = 0, _a = afterSizingTriggers[name_4]; _i < _a.length; _i++) { - var args = _a[_i]; - this.publiclyTrigger(name_4, args); - } - } - this.afterSizingTriggers = {}; - }; - // View - // ----------------------------------------------------------------------------------------------------------------- - // Returns a boolean about whether the view is okay to instantiate at some point - Calendar.prototype.isValidViewType = function (viewType) { - return Boolean(this.viewSpecs[viewType]); - }; - Calendar.prototype.changeView = function (viewType, dateOrRange) { - var dateMarker = null; - if (dateOrRange) { - if (dateOrRange.start && dateOrRange.end) { // a range - this.optionsManager.mutate({ visibleRange: dateOrRange }, []); // will not rerender - this.handleOptions(this.optionsManager.computed); // ...but yuck - } - else { // a date - dateMarker = this.dateEnv.createMarker(dateOrRange); // just like gotoDate - } - } - this.unselect(); - this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: viewType, - dateMarker: dateMarker - }); - }; - // Forces navigation to a view for the given date. - // `viewType` can be a specific view name or a generic one like "week" or "day". - // needs to change - Calendar.prototype.zoomTo = function (dateMarker, viewType) { - var spec; - viewType = viewType || 'day'; // day is default zoom - spec = this.viewSpecs[viewType] || - this.getUnitViewSpec(viewType); - this.unselect(); - if (spec) { - this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: spec.type, - dateMarker: dateMarker - }); - } - else { - this.dispatch({ - type: 'SET_DATE', - dateMarker: dateMarker - }); - } - }; - // Given a duration singular unit, like "week" or "day", finds a matching view spec. - // Preference is given to views that have corresponding buttons. - Calendar.prototype.getUnitViewSpec = function (unit) { - var component = this.component; - var viewTypes = []; - var i; - var spec; - // put views that have buttons first. there will be duplicates, but oh - if (component.header) { - viewTypes.push.apply(viewTypes, component.header.viewsWithButtons); - } - if (component.footer) { - viewTypes.push.apply(viewTypes, component.footer.viewsWithButtons); - } - for (var viewType in this.viewSpecs) { - viewTypes.push(viewType); - } - for (i = 0; i < viewTypes.length; i++) { - spec = this.viewSpecs[viewTypes[i]]; - if (spec) { - if (spec.singleUnit === unit) { - return spec; - } - } - } - }; - // Current Date - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.getInitialDate = function () { - var defaultDateInput = this.opt('defaultDate'); - // compute the initial ambig-timezone date - if (defaultDateInput != null) { - return this.dateEnv.createMarker(defaultDateInput); - } - else { - return this.getNow(); // getNow already returns unzoned - } - }; - Calendar.prototype.prev = function () { - this.unselect(); - this.dispatch({ type: 'PREV' }); - }; - Calendar.prototype.next = function () { - this.unselect(); - this.dispatch({ type: 'NEXT' }); - }; - Calendar.prototype.prevYear = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.addYears(this.state.currentDate, -1) - }); - }; - Calendar.prototype.nextYear = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.addYears(this.state.currentDate, 1) - }); - }; - Calendar.prototype.today = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.getNow() - }); - }; - Calendar.prototype.gotoDate = function (zonedDateInput) { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.createMarker(zonedDateInput) - }); - }; - Calendar.prototype.incrementDate = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // else, warn about invalid input? - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.add(this.state.currentDate, delta) - }); - } - }; - // for external API - Calendar.prototype.getDate = function () { - return this.dateEnv.toDate(this.state.currentDate); - }; - // Date Formatting Utils - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.formatDate = function (d, formatter) { - var dateEnv = this.dateEnv; - return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter)); - }; - // `settings` is for formatter AND isEndExclusive - Calendar.prototype.formatRange = function (d0, d1, settings) { - var dateEnv = this.dateEnv; - return dateEnv.formatRange(dateEnv.createMarker(d0), dateEnv.createMarker(d1), createFormatter(settings, this.opt('defaultRangeSeparator')), settings); - }; - Calendar.prototype.formatIso = function (d, omitTime) { - var dateEnv = this.dateEnv; - return dateEnv.formatIso(dateEnv.createMarker(d), { omitTime: omitTime }); - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.windowResize = function (ev) { - if (!this.isHandlingWindowResize && - this.component && // why? - ev.target === window // not a jqui resize event - ) { - this.isHandlingWindowResize = true; - this.updateSize(); - this.publiclyTrigger('windowResize', [this.view]); - this.isHandlingWindowResize = false; - } - }; - Calendar.prototype.updateSize = function () { - if (this.component) { // when? - this.component.updateSize(true); - } - }; - // Component Registration - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.registerInteractiveComponent = function (component, settingsInput) { - var settings = parseInteractionSettings(component, settingsInput); - var DEFAULT_INTERACTIONS = [ - EventClicking, - EventHovering - ]; - var interactionClasses = DEFAULT_INTERACTIONS.concat(this.pluginSystem.hooks.componentInteractions); - var interactions = interactionClasses.map(function (interactionClass) { - return new interactionClass(settings); - }); - this.interactionsStore[component.uid] = interactions; - interactionSettingsStore[component.uid] = settings; - }; - Calendar.prototype.unregisterInteractiveComponent = function (component) { - for (var _i = 0, _a = this.interactionsStore[component.uid]; _i < _a.length; _i++) { - var listener = _a[_i]; - listener.destroy(); - } - delete this.interactionsStore[component.uid]; - delete interactionSettingsStore[component.uid]; - }; - // Date Selection / Event Selection / DayClick - // ----------------------------------------------------------------------------------------------------------------- - // this public method receives start/end dates in any format, with any timezone - // NOTE: args were changed from v3 - Calendar.prototype.select = function (dateOrObj, endDate) { - var selectionInput; - if (endDate == null) { - if (dateOrObj.start != null) { - selectionInput = dateOrObj; - } - else { - selectionInput = { - start: dateOrObj, - end: null - }; - } - } - else { - selectionInput = { - start: dateOrObj, - end: endDate - }; - } - var selection = parseDateSpan(selectionInput, this.dateEnv, createDuration({ days: 1 }) // TODO: cache this? - ); - if (selection) { // throw parse error otherwise? - this.dispatch({ type: 'SELECT_DATES', selection: selection }); - this.triggerDateSelect(selection); - } - }; - // public method - Calendar.prototype.unselect = function (pev) { - if (this.state.dateSelection) { - this.dispatch({ type: 'UNSELECT_DATES' }); - this.triggerDateUnselect(pev); - } - }; - Calendar.prototype.triggerDateSelect = function (selection, pev) { - var arg = __assign({}, this.buildDateSpanApi(selection), { jsEvent: pev ? pev.origEvent : null, view: this.view }); - this.publiclyTrigger('select', [arg]); - }; - Calendar.prototype.triggerDateUnselect = function (pev) { - this.publiclyTrigger('unselect', [ - { - jsEvent: pev ? pev.origEvent : null, - view: this.view - } - ]); - }; - // TODO: receive pev? - Calendar.prototype.triggerDateClick = function (dateSpan, dayEl, view, ev) { - var arg = __assign({}, this.buildDatePointApi(dateSpan), { dayEl: dayEl, jsEvent: ev, // Is this always a mouse event? See #4655 - view: view }); - this.publiclyTrigger('dateClick', [arg]); - }; - Calendar.prototype.buildDatePointApi = function (dateSpan) { - var props = {}; - for (var _i = 0, _a = this.pluginSystem.hooks.datePointTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(props, transform(dateSpan, this)); - } - __assign(props, buildDatePointApi(dateSpan, this.dateEnv)); - return props; - }; - Calendar.prototype.buildDateSpanApi = function (dateSpan) { - var props = {}; - for (var _i = 0, _a = this.pluginSystem.hooks.dateSpanTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(props, transform(dateSpan, this)); - } - __assign(props, buildDateSpanApi(dateSpan, this.dateEnv)); - return props; - }; - // Date Utils - // ----------------------------------------------------------------------------------------------------------------- - // Returns a DateMarker for the current date, as defined by the client's computer or from the `now` option - Calendar.prototype.getNow = function () { - var now = this.opt('now'); - if (typeof now === 'function') { - now = now(); - } - if (now == null) { - return this.dateEnv.createNowMarker(); - } - return this.dateEnv.createMarker(now); - }; - // Event-Date Utilities - // ----------------------------------------------------------------------------------------------------------------- - // Given an event's allDay status and start date, return what its fallback end date should be. - // TODO: rename to computeDefaultEventEnd - Calendar.prototype.getDefaultEventEnd = function (allDay, marker) { - var end = marker; - if (allDay) { - end = startOfDay(end); - end = this.dateEnv.add(end, this.defaultAllDayEventDuration); - } - else { - end = this.dateEnv.add(end, this.defaultTimedEventDuration); - } - return end; - }; - // Public Events API - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.addEvent = function (eventInput, sourceInput) { - if (eventInput instanceof EventApi) { - var def = eventInput._def; - var instance = eventInput._instance; - // not already present? don't want to add an old snapshot - if (!this.state.eventStore.defs[def.defId]) { - this.dispatch({ - type: 'ADD_EVENTS', - eventStore: eventTupleToStore({ def: def, instance: instance }) // TODO: better util for two args? - }); - } - return eventInput; - } - var sourceId; - if (sourceInput instanceof EventSourceApi) { - sourceId = sourceInput.internalEventSource.sourceId; - } - else if (sourceInput != null) { - var sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function - if (!sourceApi) { - console.warn('Could not find an event source with ID "' + sourceInput + '"'); // TODO: test - return null; - } - else { - sourceId = sourceApi.internalEventSource.sourceId; - } - } - var tuple = parseEvent(eventInput, sourceId, this); - if (tuple) { - this.dispatch({ - type: 'ADD_EVENTS', - eventStore: eventTupleToStore(tuple) - }); - return new EventApi(this, tuple.def, tuple.def.recurringDef ? null : tuple.instance); - } - return null; - }; - // TODO: optimize - Calendar.prototype.getEventById = function (id) { - var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances; - id = String(id); - for (var defId in defs) { - var def = defs[defId]; - if (def.publicId === id) { - if (def.recurringDef) { - return new EventApi(this, def, null); - } - else { - for (var instanceId in instances) { - var instance = instances[instanceId]; - if (instance.defId === def.defId) { - return new EventApi(this, def, instance); - } - } - } - } - } - return null; - }; - Calendar.prototype.getEvents = function () { - var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances; - var eventApis = []; - for (var id in instances) { - var instance = instances[id]; - var def = defs[instance.defId]; - eventApis.push(new EventApi(this, def, instance)); - } - return eventApis; - }; - Calendar.prototype.removeAllEvents = function () { - this.dispatch({ type: 'REMOVE_ALL_EVENTS' }); - }; - Calendar.prototype.rerenderEvents = function () { - this.dispatch({ type: 'RESET_EVENTS' }); - }; - // Public Event Sources API - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.getEventSources = function () { - var sourceHash = this.state.eventSources; - var sourceApis = []; - for (var internalId in sourceHash) { - sourceApis.push(new EventSourceApi(this, sourceHash[internalId])); - } - return sourceApis; - }; - Calendar.prototype.getEventSourceById = function (id) { - var sourceHash = this.state.eventSources; - id = String(id); - for (var sourceId in sourceHash) { - if (sourceHash[sourceId].publicId === id) { - return new EventSourceApi(this, sourceHash[sourceId]); - } - } - return null; - }; - Calendar.prototype.addEventSource = function (sourceInput) { - if (sourceInput instanceof EventSourceApi) { - // not already present? don't want to add an old snapshot - if (!this.state.eventSources[sourceInput.internalEventSource.sourceId]) { - this.dispatch({ - type: 'ADD_EVENT_SOURCES', - sources: [sourceInput.internalEventSource] - }); - } - return sourceInput; - } - var eventSource = parseEventSource(sourceInput, this); - if (eventSource) { // TODO: error otherwise? - this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: [eventSource] }); - return new EventSourceApi(this, eventSource); - } - return null; - }; - Calendar.prototype.removeAllEventSources = function () { - this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' }); - }; - Calendar.prototype.refetchEvents = function () { - this.dispatch({ type: 'FETCH_EVENT_SOURCES' }); - }; - // Scroll - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.scrollToTime = function (timeInput) { - var duration = createDuration(timeInput); - if (duration) { - this.component.view.scrollToDuration(duration); - } - }; - return Calendar; -}()); -EmitterMixin.mixInto(Calendar); -// for memoizers -// ----------------------------------------------------------------------------------------------------------------- -function buildDateEnv(locale, timeZone, namedTimeZoneImpl, firstDay, weekNumberCalculation, weekLabel, cmdFormatter) { - return new DateEnv({ - calendarSystem: 'gregory', - timeZone: timeZone, - namedTimeZoneImpl: namedTimeZoneImpl, - locale: locale, - weekNumberCalculation: weekNumberCalculation, - firstDay: firstDay, - weekLabel: weekLabel, - cmdFormatter: cmdFormatter - }); -} -function buildTheme(calendarOptions) { - var themeClass = this.pluginSystem.hooks.themeClasses[calendarOptions.themeSystem] || StandardTheme; - return new themeClass(calendarOptions); -} -function buildDelayedRerender(wait) { - var func = this.tryRerender.bind(this); - if (wait != null) { - func = debounce(func, wait); - } - return func; -} -function buildEventUiBySource(eventSources) { - return mapHash(eventSources, function (eventSource) { - return eventSource.ui; - }); -} -function buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) { - var eventUiBases = { '': eventUiSingleBase }; - for (var defId in eventDefs) { - var def = eventDefs[defId]; - if (def.sourceId && eventUiBySource[def.sourceId]) { - eventUiBases[defId] = eventUiBySource[def.sourceId]; - } - } - return eventUiBases; -} - -var View = /** @class */ (function (_super) { - __extends(View, _super); - function View(context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, context, createElement('div', { className: 'fc-view fc-' + viewSpec.type + '-view' }), true // isView (HACK) - ) || this; - _this.renderDatesMem = memoizeRendering(_this.renderDatesWrap, _this.unrenderDatesWrap); - _this.renderBusinessHoursMem = memoizeRendering(_this.renderBusinessHours, _this.unrenderBusinessHours, [_this.renderDatesMem]); - _this.renderDateSelectionMem = memoizeRendering(_this.renderDateSelectionWrap, _this.unrenderDateSelectionWrap, [_this.renderDatesMem]); - _this.renderEventsMem = memoizeRendering(_this.renderEvents, _this.unrenderEvents, [_this.renderDatesMem]); - _this.renderEventSelectionMem = memoizeRendering(_this.renderEventSelectionWrap, _this.unrenderEventSelectionWrap, [_this.renderEventsMem]); - _this.renderEventDragMem = memoizeRendering(_this.renderEventDragWrap, _this.unrenderEventDragWrap, [_this.renderDatesMem]); - _this.renderEventResizeMem = memoizeRendering(_this.renderEventResizeWrap, _this.unrenderEventResizeWrap, [_this.renderDatesMem]); - _this.viewSpec = viewSpec; - _this.dateProfileGenerator = dateProfileGenerator; - _this.type = viewSpec.type; - _this.eventOrderSpecs = parseFieldSpecs(_this.opt('eventOrder')); - _this.nextDayThreshold = createDuration(_this.opt('nextDayThreshold')); - parentEl.appendChild(_this.el); - _this.initialize(); - return _this; - } - View.prototype.initialize = function () { - }; - Object.defineProperty(View.prototype, "activeStart", { - // Date Setting/Unsetting - // ----------------------------------------------------------------------------------------------------------------- - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.activeRange.start); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "activeEnd", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.activeRange.end); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "currentStart", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.currentRange.start); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "currentEnd", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.currentRange.end); - }, - enumerable: true, - configurable: true - }); - // General Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.render = function (props) { - this.renderDatesMem(props.dateProfile); - this.renderBusinessHoursMem(props.businessHours); - this.renderDateSelectionMem(props.dateSelection); - this.renderEventsMem(props.eventStore); - this.renderEventSelectionMem(props.eventSelection); - this.renderEventDragMem(props.eventDrag); - this.renderEventResizeMem(props.eventResize); - }; - View.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderDatesMem.unrender(); // should unrender everything else - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.updateSize = function (isResize, viewHeight, isAuto) { - var calendar = this.calendar; - if (isResize || // HACKS... - calendar.isViewUpdated || - calendar.isDatesUpdated || - calendar.isEventsUpdated) { - // sort of the catch-all sizing - // anything that might cause dimension changes - this.updateBaseSize(isResize, viewHeight, isAuto); - } - }; - View.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) { - }; - // Date Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderDatesWrap = function (dateProfile) { - this.renderDates(dateProfile); - this.addScroll({ - duration: createDuration(this.opt('scrollTime')) - }); - this.startNowIndicator(dateProfile); // shouldn't render yet because updateSize will be called soon - }; - View.prototype.unrenderDatesWrap = function () { - this.stopNowIndicator(); - this.unrenderDates(); - }; - View.prototype.renderDates = function (dateProfile) { }; - View.prototype.unrenderDates = function () { }; - // Business Hours - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderBusinessHours = function (businessHours) { }; - View.prototype.unrenderBusinessHours = function () { }; - // Date Selection - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderDateSelectionWrap = function (selection) { - if (selection) { - this.renderDateSelection(selection); - } - }; - View.prototype.unrenderDateSelectionWrap = function (selection) { - if (selection) { - this.unrenderDateSelection(selection); - } - }; - View.prototype.renderDateSelection = function (selection) { }; - View.prototype.unrenderDateSelection = function (selection) { }; - // Event Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEvents = function (eventStore) { }; - View.prototype.unrenderEvents = function () { }; - // util for subclasses - View.prototype.sliceEvents = function (eventStore, allDay) { - var props = this.props; - return sliceEventStore(eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? this.nextDayThreshold : null).fg; - }; - View.prototype.computeEventDraggable = function (eventDef, eventUi) { - var transformers = this.calendar.pluginSystem.hooks.isDraggableTransformers; - var val = eventUi.startEditable; - for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) { - var transformer = transformers_1[_i]; - val = transformer(val, eventDef, eventUi, this); - } - return val; - }; - View.prototype.computeEventStartResizable = function (eventDef, eventUi) { - return eventUi.durationEditable && this.opt('eventResizableFromStart'); - }; - View.prototype.computeEventEndResizable = function (eventDef, eventUi) { - return eventUi.durationEditable; - }; - // Event Selection - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventSelectionWrap = function (instanceId) { - if (instanceId) { - this.renderEventSelection(instanceId); - } - }; - View.prototype.unrenderEventSelectionWrap = function (instanceId) { - if (instanceId) { - this.unrenderEventSelection(instanceId); - } - }; - View.prototype.renderEventSelection = function (instanceId) { }; - View.prototype.unrenderEventSelection = function (instanceId) { }; - // Event Drag - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventDragWrap = function (state) { - if (state) { - this.renderEventDrag(state); - } - }; - View.prototype.unrenderEventDragWrap = function (state) { - if (state) { - this.unrenderEventDrag(state); - } - }; - View.prototype.renderEventDrag = function (state) { }; - View.prototype.unrenderEventDrag = function (state) { }; - // Event Resize - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventResizeWrap = function (state) { - if (state) { - this.renderEventResize(state); - } - }; - View.prototype.unrenderEventResizeWrap = function (state) { - if (state) { - this.unrenderEventResize(state); - } - }; - View.prototype.renderEventResize = function (state) { }; - View.prototype.unrenderEventResize = function (state) { }; - /* Now Indicator - ------------------------------------------------------------------------------------------------------------------*/ - // Immediately render the current time indicator and begins re-rendering it at an interval, - // which is defined by this.getNowIndicatorUnit(). - // TODO: somehow do this for the current whole day's background too - View.prototype.startNowIndicator = function (dateProfile) { - var _this = this; - var dateEnv = this.dateEnv; - var unit; - var update; - var delay; // ms wait value - if (this.opt('nowIndicator')) { - unit = this.getNowIndicatorUnit(dateProfile); - if (unit) { - update = this.updateNowIndicator.bind(this); - this.initialNowDate = this.calendar.getNow(); - this.initialNowQueriedMs = new Date().valueOf(); - // wait until the beginning of the next interval - delay = dateEnv.add(dateEnv.startOf(this.initialNowDate, unit), createDuration(1, unit)).valueOf() - this.initialNowDate.valueOf(); - // TODO: maybe always use setTimeout, waiting until start of next unit - this.nowIndicatorTimeoutID = setTimeout(function () { - _this.nowIndicatorTimeoutID = null; - update(); - if (unit === 'second') { - delay = 1000; // every second - } - else { - delay = 1000 * 60; // otherwise, every minute - } - _this.nowIndicatorIntervalID = setInterval(update, delay); // update every interval - }, delay); - } - // rendering will be initiated in updateSize - } - }; - // rerenders the now indicator, computing the new current time from the amount of time that has passed - // since the initial getNow call. - View.prototype.updateNowIndicator = function () { - if (this.props.dateProfile && // a way to determine if dates were rendered yet - this.initialNowDate // activated before? - ) { - this.unrenderNowIndicator(); // won't unrender if unnecessary - this.renderNowIndicator(addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs)); - this.isNowIndicatorRendered = true; - } - }; - // Immediately unrenders the view's current time indicator and stops any re-rendering timers. - // Won't cause side effects if indicator isn't rendered. - View.prototype.stopNowIndicator = function () { - if (this.isNowIndicatorRendered) { - if (this.nowIndicatorTimeoutID) { - clearTimeout(this.nowIndicatorTimeoutID); - this.nowIndicatorTimeoutID = null; - } - if (this.nowIndicatorIntervalID) { - clearInterval(this.nowIndicatorIntervalID); - this.nowIndicatorIntervalID = null; - } - this.unrenderNowIndicator(); - this.isNowIndicatorRendered = false; - } - }; - View.prototype.getNowIndicatorUnit = function (dateProfile) { - // subclasses should implement - }; - // Renders a current time indicator at the given datetime - View.prototype.renderNowIndicator = function (date) { - // SUBCLASSES MUST PASS TO CHILDREN! - }; - // Undoes the rendering actions from renderNowIndicator - View.prototype.unrenderNowIndicator = function () { - // SUBCLASSES MUST PASS TO CHILDREN! - }; - /* Scroller - ------------------------------------------------------------------------------------------------------------------*/ - View.prototype.addScroll = function (scroll) { - var queuedScroll = this.queuedScroll || (this.queuedScroll = {}); - __assign(queuedScroll, scroll); - }; - View.prototype.popScroll = function (isResize) { - this.applyQueuedScroll(isResize); - this.queuedScroll = null; - }; - View.prototype.applyQueuedScroll = function (isResize) { - this.applyScroll(this.queuedScroll || {}, isResize); - }; - View.prototype.queryScroll = function () { - var scroll = {}; - if (this.props.dateProfile) { // dates rendered yet? - __assign(scroll, this.queryDateScroll()); - } - return scroll; - }; - View.prototype.applyScroll = function (scroll, isResize) { - var duration = scroll.duration; - if (duration != null) { - delete scroll.duration; - if (this.props.dateProfile) { // dates rendered yet? - __assign(scroll, this.computeDateScroll(duration)); - } - } - if (this.props.dateProfile) { // dates rendered yet? - this.applyDateScroll(scroll); - } - }; - View.prototype.computeDateScroll = function (duration) { - return {}; // subclasses must implement - }; - View.prototype.queryDateScroll = function () { - return {}; // subclasses must implement - }; - View.prototype.applyDateScroll = function (scroll) { - // subclasses must implement - }; - // for API - View.prototype.scrollToDuration = function (duration) { - this.applyScroll({ duration: duration }, false); - }; - return View; -}(DateComponent)); -EmitterMixin.mixInto(View); -View.prototype.usesMinMaxTime = false; -View.prototype.dateProfileGeneratorClass = DateProfileGenerator; - -var FgEventRenderer = /** @class */ (function () { - function FgEventRenderer(context) { - this.segs = []; - this.isSizeDirty = false; - this.context = context; - } - FgEventRenderer.prototype.renderSegs = function (segs, mirrorInfo) { - this.rangeUpdated(); // called too frequently :( - // render an `.el` on each seg - // returns a subset of the segs. segs that were actually rendered - segs = this.renderSegEls(segs, mirrorInfo); - this.segs = segs; - this.attachSegs(segs, mirrorInfo); - this.isSizeDirty = true; - this.context.view.triggerRenderedSegs(this.segs, Boolean(mirrorInfo)); - }; - FgEventRenderer.prototype.unrender = function (_segs, mirrorInfo) { - this.context.view.triggerWillRemoveSegs(this.segs, Boolean(mirrorInfo)); - this.detachSegs(this.segs); - this.segs = []; - }; - // Updates values that rely on options and also relate to range - FgEventRenderer.prototype.rangeUpdated = function () { - var options = this.context.options; - var displayEventTime; - var displayEventEnd; - this.eventTimeFormat = createFormatter(options.eventTimeFormat || this.computeEventTimeFormat(), options.defaultRangeSeparator); - displayEventTime = options.displayEventTime; - if (displayEventTime == null) { - displayEventTime = this.computeDisplayEventTime(); // might be based off of range - } - displayEventEnd = options.displayEventEnd; - if (displayEventEnd == null) { - displayEventEnd = this.computeDisplayEventEnd(); // might be based off of range - } - this.displayEventTime = displayEventTime; - this.displayEventEnd = displayEventEnd; - }; - // Renders and assigns an `el` property for each foreground event segment. - // Only returns segments that successfully rendered. - FgEventRenderer.prototype.renderSegEls = function (segs, mirrorInfo) { - var html = ''; - var i; - if (segs.length) { // don't build an empty html string - // build a large concatenation of event segment HTML - for (i = 0; i < segs.length; i++) { - html += this.renderSegHtml(segs[i], mirrorInfo); - } - // Grab individual elements from the combined HTML string. Use each as the default rendering. - // Then, compute the 'el' for each segment. An el might be null if the eventRender callback returned false. - htmlToElements(html).forEach(function (el, i) { - var seg = segs[i]; - if (el) { - seg.el = el; - } - }); - segs = filterSegsViaEls(this.context.view, segs, Boolean(mirrorInfo)); - } - return segs; - }; - // Generic utility for generating the HTML classNames for an event segment's element - FgEventRenderer.prototype.getSegClasses = function (seg, isDraggable, isResizable, mirrorInfo) { - var classes = [ - 'fc-event', - seg.isStart ? 'fc-start' : 'fc-not-start', - seg.isEnd ? 'fc-end' : 'fc-not-end' - ].concat(seg.eventRange.ui.classNames); - if (isDraggable) { - classes.push('fc-draggable'); - } - if (isResizable) { - classes.push('fc-resizable'); - } - if (mirrorInfo) { - classes.push('fc-mirror'); - if (mirrorInfo.isDragging) { - classes.push('fc-dragging'); - } - if (mirrorInfo.isResizing) { - classes.push('fc-resizing'); - } - } - return classes; - }; - // Compute the text that should be displayed on an event's element. - // `range` can be the Event object itself, or something range-like, with at least a `start`. - // If event times are disabled, or the event has no time, will return a blank string. - // If not specified, formatter will default to the eventTimeFormat setting, - // and displayEnd will default to the displayEventEnd setting. - FgEventRenderer.prototype.getTimeText = function (eventRange, formatter, displayEnd) { - var def = eventRange.def, instance = eventRange.instance; - return this._getTimeText(instance.range.start, def.hasEnd ? instance.range.end : null, def.allDay, formatter, displayEnd, instance.forcedStartTzo, instance.forcedEndTzo); - }; - FgEventRenderer.prototype._getTimeText = function (start, end, allDay, formatter, displayEnd, forcedStartTzo, forcedEndTzo) { - var dateEnv = this.context.dateEnv; - if (formatter == null) { - formatter = this.eventTimeFormat; - } - if (displayEnd == null) { - displayEnd = this.displayEventEnd; - } - if (this.displayEventTime && !allDay) { - if (displayEnd && end) { - return dateEnv.formatRange(start, end, formatter, { - forcedStartTzo: forcedStartTzo, - forcedEndTzo: forcedEndTzo - }); - } - else { - return dateEnv.format(start, formatter, { - forcedTzo: forcedStartTzo - }); - } - } - return ''; - }; - FgEventRenderer.prototype.computeEventTimeFormat = function () { - return { - hour: 'numeric', - minute: '2-digit', - omitZeroMinute: true - }; - }; - FgEventRenderer.prototype.computeDisplayEventTime = function () { - return true; - }; - FgEventRenderer.prototype.computeDisplayEventEnd = function () { - return true; - }; - // Utility for generating event skin-related CSS properties - FgEventRenderer.prototype.getSkinCss = function (ui) { - return { - 'background-color': ui.backgroundColor, - 'border-color': ui.borderColor, - color: ui.textColor - }; - }; - FgEventRenderer.prototype.sortEventSegs = function (segs) { - var specs = this.context.view.eventOrderSpecs; - var objs = segs.map(buildSegCompareObj); - objs.sort(function (obj0, obj1) { - return compareByFieldSpecs(obj0, obj1, specs); - }); - return objs.map(function (c) { - return c._seg; - }); - }; - FgEventRenderer.prototype.computeSizes = function (force) { - if (force || this.isSizeDirty) { - this.computeSegSizes(this.segs); - } - }; - FgEventRenderer.prototype.assignSizes = function (force) { - if (force || this.isSizeDirty) { - this.assignSegSizes(this.segs); - this.isSizeDirty = false; - } - }; - FgEventRenderer.prototype.computeSegSizes = function (segs) { - }; - FgEventRenderer.prototype.assignSegSizes = function (segs) { - }; - // Manipulation on rendered segs - FgEventRenderer.prototype.hideByHash = function (hash) { - if (hash) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (hash[seg.eventRange.instance.instanceId]) { - seg.el.style.visibility = 'hidden'; - } - } - } - }; - FgEventRenderer.prototype.showByHash = function (hash) { - if (hash) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (hash[seg.eventRange.instance.instanceId]) { - seg.el.style.visibility = ''; - } - } - } - }; - FgEventRenderer.prototype.selectByInstanceId = function (instanceId) { - if (instanceId) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - var eventInstance = seg.eventRange.instance; - if (eventInstance && eventInstance.instanceId === instanceId && - seg.el // necessary? - ) { - seg.el.classList.add('fc-selected'); - } - } - } - }; - FgEventRenderer.prototype.unselectByInstanceId = function (instanceId) { - if (instanceId) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (seg.el) { // necessary? - seg.el.classList.remove('fc-selected'); - } - } - } - }; - return FgEventRenderer; -}()); -// returns a object with all primitive props that can be compared -function buildSegCompareObj(seg) { - var eventDef = seg.eventRange.def; - var range = seg.eventRange.instance.range; - var start = range.start ? range.start.valueOf() : 0; // TODO: better support for open-range events - var end = range.end ? range.end.valueOf() : 0; // " - return __assign({}, eventDef.extendedProps, eventDef, { id: eventDef.publicId, start: start, - end: end, duration: end - start, allDay: Number(eventDef.allDay), _seg: seg // for later retrieval - }); -} - -var FillRenderer = /** @class */ (function () { - function FillRenderer(context) { - this.fillSegTag = 'div'; - this.dirtySizeFlags = {}; - this.context = context; - this.containerElsByType = {}; - this.segsByType = {}; - } - FillRenderer.prototype.getSegsByType = function (type) { - return this.segsByType[type] || []; - }; - FillRenderer.prototype.renderSegs = function (type, segs) { - var _a; - var renderedSegs = this.renderSegEls(type, segs); // assignes `.el` to each seg. returns successfully rendered segs - var containerEls = this.attachSegs(type, renderedSegs); - if (containerEls) { - (_a = (this.containerElsByType[type] || (this.containerElsByType[type] = []))).push.apply(_a, containerEls); - } - this.segsByType[type] = renderedSegs; - if (type === 'bgEvent') { - this.context.view.triggerRenderedSegs(renderedSegs, false); // isMirror=false - } - this.dirtySizeFlags[type] = true; - }; - // Unrenders a specific type of fill that is currently rendered on the grid - FillRenderer.prototype.unrender = function (type) { - var segs = this.segsByType[type]; - if (segs) { - if (type === 'bgEvent') { - this.context.view.triggerWillRemoveSegs(segs, false); // isMirror=false - } - this.detachSegs(type, segs); - } - }; - // Renders and assigns an `el` property for each fill segment. Generic enough to work with different types. - // Only returns segments that successfully rendered. - FillRenderer.prototype.renderSegEls = function (type, segs) { - var _this = this; - var html = ''; - var i; - if (segs.length) { - // build a large concatenation of segment HTML - for (i = 0; i < segs.length; i++) { - html += this.renderSegHtml(type, segs[i]); - } - // Grab individual elements from the combined HTML string. Use each as the default rendering. - // Then, compute the 'el' for each segment. - htmlToElements(html).forEach(function (el, i) { - var seg = segs[i]; - if (el) { - seg.el = el; - } - }); - if (type === 'bgEvent') { - segs = filterSegsViaEls(this.context.view, segs, false // isMirror. background events can never be mirror elements - ); - } - // correct element type? (would be bad if a non-TD were inserted into a table for example) - segs = segs.filter(function (seg) { - return elementMatches(seg.el, _this.fillSegTag); - }); - } - return segs; - }; - // Builds the HTML needed for one fill segment. Generic enough to work with different types. - FillRenderer.prototype.renderSegHtml = function (type, seg) { - var css = null; - var classNames = []; - if (type !== 'highlight' && type !== 'businessHours') { - css = { - 'background-color': seg.eventRange.ui.backgroundColor - }; - } - if (type !== 'highlight') { - classNames = classNames.concat(seg.eventRange.ui.classNames); - } - if (type === 'businessHours') { - classNames.push('fc-bgevent'); - } - else { - classNames.push('fc-' + type.toLowerCase()); - } - return '<' + this.fillSegTag + - (classNames.length ? ' class="' + classNames.join(' ') + '"' : '') + - (css ? ' style="' + cssToStr(css) + '"' : '') + - '>'; - }; - FillRenderer.prototype.detachSegs = function (type, segs) { - var containerEls = this.containerElsByType[type]; - if (containerEls) { - containerEls.forEach(removeElement); - delete this.containerElsByType[type]; - } - }; - FillRenderer.prototype.computeSizes = function (force) { - for (var type in this.segsByType) { - if (force || this.dirtySizeFlags[type]) { - this.computeSegSizes(this.segsByType[type]); - } - } - }; - FillRenderer.prototype.assignSizes = function (force) { - for (var type in this.segsByType) { - if (force || this.dirtySizeFlags[type]) { - this.assignSegSizes(this.segsByType[type]); - } - } - this.dirtySizeFlags = {}; - }; - FillRenderer.prototype.computeSegSizes = function (segs) { - }; - FillRenderer.prototype.assignSegSizes = function (segs) { - }; - return FillRenderer; -}()); - -var NamedTimeZoneImpl = /** @class */ (function () { - function NamedTimeZoneImpl(timeZoneName) { - this.timeZoneName = timeZoneName; - } - return NamedTimeZoneImpl; -}()); - -/* -An abstraction for a dragging interaction originating on an event. -Does higher-level things than PointerDragger, such as possibly: -- a "mirror" that moves with the pointer -- a minimum number of pixels or other criteria for a true drag to begin - -subclasses must emit: -- pointerdown -- dragstart -- dragmove -- pointerup -- dragend -*/ -var ElementDragging = /** @class */ (function () { - function ElementDragging(el) { - this.emitter = new EmitterMixin(); - } - ElementDragging.prototype.destroy = function () { - }; - ElementDragging.prototype.setMirrorIsVisible = function (bool) { - // optional if subclass doesn't want to support a mirror - }; - ElementDragging.prototype.setMirrorNeedsRevert = function (bool) { - // optional if subclass doesn't want to support a mirror - }; - ElementDragging.prototype.setAutoScrollEnabled = function (bool) { - // optional - }; - return ElementDragging; -}()); - -function formatDate(dateInput, settings) { - if (settings === void 0) { settings = {}; } - var dateEnv = buildDateEnv$1(settings); - var formatter = createFormatter(settings); - var dateMeta = dateEnv.createMarkerMeta(dateInput); - if (!dateMeta) { // TODO: warning? - return ''; - } - return dateEnv.format(dateMeta.marker, formatter, { - forcedTzo: dateMeta.forcedTzo - }); -} -function formatRange(startInput, endInput, settings // mixture of env and formatter settings -) { - var dateEnv = buildDateEnv$1(typeof settings === 'object' && settings ? settings : {}); // pass in if non-null object - var formatter = createFormatter(settings, globalDefaults.defaultRangeSeparator); - var startMeta = dateEnv.createMarkerMeta(startInput); - var endMeta = dateEnv.createMarkerMeta(endInput); - if (!startMeta || !endMeta) { // TODO: warning? - return ''; - } - return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, { - forcedStartTzo: startMeta.forcedTzo, - forcedEndTzo: endMeta.forcedTzo, - isEndExclusive: settings.isEndExclusive - }); -} -// TODO: more DRY and optimized -function buildDateEnv$1(settings) { - var locale = buildLocale(settings.locale || 'en', parseRawLocales([]).map); // TODO: don't hardcode 'en' everywhere - // ensure required settings - settings = __assign({ timeZone: globalDefaults.timeZone, calendarSystem: 'gregory' }, settings, { locale: locale }); - return new DateEnv(settings); -} - -var DRAG_META_PROPS = { - startTime: createDuration, - duration: createDuration, - create: Boolean, - sourceId: String -}; -var DRAG_META_DEFAULTS = { - create: true -}; -function parseDragMeta(raw) { - var leftoverProps = {}; - var refined = refineProps(raw, DRAG_META_PROPS, DRAG_META_DEFAULTS, leftoverProps); - refined.leftoverProps = leftoverProps; - return refined; -} - -// Computes a default column header formatting string if `colFormat` is not explicitly defined -function computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) { - // if more than one week row, or if there are a lot of columns with not much space, - // put just the day numbers will be in each cell - if (!datesRepDistinctDays || dayCnt > 10) { - return { weekday: 'short' }; // "Sat" - } - else if (dayCnt > 1) { - return { weekday: 'short', month: 'numeric', day: 'numeric', omitCommas: true }; // "Sat 11/12" - } - else { - return { weekday: 'long' }; // "Saturday" - } -} -function renderDateCell(dateMarker, dateProfile, datesRepDistinctDays, colCnt, colHeadFormat, context, colspan, otherAttrs) { - var view = context.view, dateEnv = context.dateEnv, theme = context.theme, options = context.options; - var isDateValid = rangeContainsMarker(dateProfile.activeRange, dateMarker); // TODO: called too frequently. cache somehow. - var classNames = [ - 'fc-day-header', - theme.getClass('widgetHeader') - ]; - var innerHtml; - if (typeof options.columnHeaderHtml === 'function') { - innerHtml = options.columnHeaderHtml(dateEnv.toDate(dateMarker)); - } - else if (typeof options.columnHeaderText === 'function') { - innerHtml = htmlEscape(options.columnHeaderText(dateEnv.toDate(dateMarker))); - } - else { - innerHtml = htmlEscape(dateEnv.format(dateMarker, colHeadFormat)); - } - // if only one row of days, the classNames on the header can represent the specific days beneath - if (datesRepDistinctDays) { - classNames = classNames.concat( - // includes the day-of-week class - // noThemeHighlight=true (don't highlight the header) - getDayClasses(dateMarker, dateProfile, context, true)); - } - else { - classNames.push('fc-' + DAY_IDS[dateMarker.getUTCDay()]); // only add the day-of-week class - } - return '' + - ' 1 ? - ' colspan="' + colspan + '"' : - '') + - (otherAttrs ? - ' ' + otherAttrs : - '') + - '>' + - (isDateValid ? - // don't make a link if the heading could represent multiple days, or if there's only one day (forceOff) - buildGotoAnchorHtml(view, { date: dateMarker, forceOff: !datesRepDistinctDays || colCnt === 1 }, innerHtml) : - // if not valid, display text, but no link - innerHtml) + - ''; -} - -var DayHeader = /** @class */ (function (_super) { - __extends(DayHeader, _super); - function DayHeader(context, parentEl) { - var _this = _super.call(this, context) || this; - parentEl.innerHTML = ''; // because might be nbsp - parentEl.appendChild(_this.el = htmlToElement('
' + - '' + - '' + - '
' + - '
')); - _this.thead = _this.el.querySelector('thead'); - return _this; - } - DayHeader.prototype.destroy = function () { - removeElement(this.el); - }; - DayHeader.prototype.render = function (props) { - var dates = props.dates, datesRepDistinctDays = props.datesRepDistinctDays; - var parts = []; - if (props.renderIntroHtml) { - parts.push(props.renderIntroHtml()); - } - var colHeadFormat = createFormatter(this.opt('columnHeaderFormat') || - computeFallbackHeaderFormat(datesRepDistinctDays, dates.length)); - for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) { - var date = dates_1[_i]; - parts.push(renderDateCell(date, props.dateProfile, datesRepDistinctDays, dates.length, colHeadFormat, this.context)); - } - if (this.isRtl) { - parts.reverse(); - } - this.thead.innerHTML = '' + parts.join('') + ''; - }; - return DayHeader; -}(Component)); - -var DaySeries = /** @class */ (function () { - function DaySeries(range, dateProfileGenerator) { - var date = range.start; - var end = range.end; - var indices = []; - var dates = []; - var dayIndex = -1; - while (date < end) { // loop each day from start to end - if (dateProfileGenerator.isHiddenDay(date)) { - indices.push(dayIndex + 0.5); // mark that it's between indices - } - else { - dayIndex++; - indices.push(dayIndex); - dates.push(date); - } - date = addDays(date, 1); - } - this.dates = dates; - this.indices = indices; - this.cnt = dates.length; - } - DaySeries.prototype.sliceRange = function (range) { - var firstIndex = this.getDateDayIndex(range.start); // inclusive first index - var lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index - var clippedFirstIndex = Math.max(0, firstIndex); - var clippedLastIndex = Math.min(this.cnt - 1, lastIndex); - // deal with in-between indices - clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell - clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell - if (clippedFirstIndex <= clippedLastIndex) { - return { - firstIndex: clippedFirstIndex, - lastIndex: clippedLastIndex, - isStart: firstIndex === clippedFirstIndex, - isEnd: lastIndex === clippedLastIndex - }; - } - else { - return null; - } - }; - // Given a date, returns its chronolocial cell-index from the first cell of the grid. - // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets. - // If before the first offset, returns a negative number. - // If after the last offset, returns an offset past the last cell offset. - // Only works for *start* dates of cells. Will not work for exclusive end dates for cells. - DaySeries.prototype.getDateDayIndex = function (date) { - var indices = this.indices; - var dayOffset = Math.floor(diffDays(this.dates[0], date)); - if (dayOffset < 0) { - return indices[0] - 1; - } - else if (dayOffset >= indices.length) { - return indices[indices.length - 1] + 1; - } - else { - return indices[dayOffset]; - } - }; - return DaySeries; -}()); - -var DayTable = /** @class */ (function () { - function DayTable(daySeries, breakOnWeeks) { - var dates = daySeries.dates; - var daysPerRow; - var firstDay; - var rowCnt; - if (breakOnWeeks) { - // count columns until the day-of-week repeats - firstDay = dates[0].getUTCDay(); - for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow++) { - if (dates[daysPerRow].getUTCDay() === firstDay) { - break; - } - } - rowCnt = Math.ceil(dates.length / daysPerRow); - } - else { - rowCnt = 1; - daysPerRow = dates.length; - } - this.rowCnt = rowCnt; - this.colCnt = daysPerRow; - this.daySeries = daySeries; - this.cells = this.buildCells(); - this.headerDates = this.buildHeaderDates(); - } - DayTable.prototype.buildCells = function () { - var rows = []; - for (var row = 0; row < this.rowCnt; row++) { - var cells = []; - for (var col = 0; col < this.colCnt; col++) { - cells.push(this.buildCell(row, col)); - } - rows.push(cells); - } - return rows; - }; - DayTable.prototype.buildCell = function (row, col) { - return { - date: this.daySeries.dates[row * this.colCnt + col] - }; - }; - DayTable.prototype.buildHeaderDates = function () { - var dates = []; - for (var col = 0; col < this.colCnt; col++) { - dates.push(this.cells[0][col].date); - } - return dates; - }; - DayTable.prototype.sliceRange = function (range) { - var colCnt = this.colCnt; - var seriesSeg = this.daySeries.sliceRange(range); - var segs = []; - if (seriesSeg) { - var firstIndex = seriesSeg.firstIndex, lastIndex = seriesSeg.lastIndex; - var index = firstIndex; - while (index <= lastIndex) { - var row = Math.floor(index / colCnt); - var nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1); - segs.push({ - row: row, - firstCol: index % colCnt, - lastCol: (nextIndex - 1) % colCnt, - isStart: seriesSeg.isStart && index === firstIndex, - isEnd: seriesSeg.isEnd && (nextIndex - 1) === lastIndex - }); - index = nextIndex; - } - } - return segs; - }; - return DayTable; -}()); - -var Slicer = /** @class */ (function () { - function Slicer() { - this.sliceBusinessHours = memoize(this._sliceBusinessHours); - this.sliceDateSelection = memoize(this._sliceDateSpan); - this.sliceEventStore = memoize(this._sliceEventStore); - this.sliceEventDrag = memoize(this._sliceInteraction); - this.sliceEventResize = memoize(this._sliceInteraction); - } - Slicer.prototype.sliceProps = function (props, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 4; _i < arguments.length; _i++) { - extraArgs[_i - 4] = arguments[_i]; - } - var eventUiBases = props.eventUiBases; - var eventSegs = this.sliceEventStore.apply(this, [props.eventStore, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)); - return { - dateSelectionSegs: this.sliceDateSelection.apply(this, [props.dateSelection, eventUiBases, component].concat(extraArgs)), - businessHourSegs: this.sliceBusinessHours.apply(this, [props.businessHours, dateProfile, nextDayThreshold, component].concat(extraArgs)), - fgEventSegs: eventSegs.fg, - bgEventSegs: eventSegs.bg, - eventDrag: this.sliceEventDrag.apply(this, [props.eventDrag, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)), - eventResize: this.sliceEventResize.apply(this, [props.eventResize, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)), - eventSelection: props.eventSelection - }; // TODO: give interactionSegs? - }; - Slicer.prototype.sliceNowDate = function (// does not memoize - date, component) { - var extraArgs = []; - for (var _i = 2; _i < arguments.length; _i++) { - extraArgs[_i - 2] = arguments[_i]; - } - return this._sliceDateSpan.apply(this, [{ range: { start: date, end: addMs(date, 1) }, allDay: false }, - {}, - component].concat(extraArgs)); - }; - Slicer.prototype._sliceBusinessHours = function (businessHours, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 4; _i < arguments.length; _i++) { - extraArgs[_i - 4] = arguments[_i]; - } - if (!businessHours) { - return []; - } - return this._sliceEventStore.apply(this, [expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), component.calendar), - {}, - dateProfile, - nextDayThreshold, - component].concat(extraArgs)).bg; - }; - Slicer.prototype._sliceEventStore = function (eventStore, eventUiBases, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 5; _i < arguments.length; _i++) { - extraArgs[_i - 5] = arguments[_i]; - } - if (eventStore) { - var rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold); - return { - bg: this.sliceEventRanges(rangeRes.bg, component, extraArgs), - fg: this.sliceEventRanges(rangeRes.fg, component, extraArgs) - }; - } - else { - return { bg: [], fg: [] }; - } - }; - Slicer.prototype._sliceInteraction = function (interaction, eventUiBases, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 5; _i < arguments.length; _i++) { - extraArgs[_i - 5] = arguments[_i]; - } - if (!interaction) { - return null; - } - var rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold); - return { - segs: this.sliceEventRanges(rangeRes.fg, component, extraArgs), - affectedInstances: interaction.affectedEvents.instances, - isEvent: interaction.isEvent, - sourceSeg: interaction.origSeg - }; - }; - Slicer.prototype._sliceDateSpan = function (dateSpan, eventUiBases, component) { - var extraArgs = []; - for (var _i = 3; _i < arguments.length; _i++) { - extraArgs[_i - 3] = arguments[_i]; - } - if (!dateSpan) { - return []; - } - var eventRange = fabricateEventRange(dateSpan, eventUiBases, component.calendar); - var segs = this.sliceRange.apply(this, [dateSpan.range].concat(extraArgs)); - for (var _a = 0, segs_1 = segs; _a < segs_1.length; _a++) { - var seg = segs_1[_a]; - seg.component = component; - seg.eventRange = eventRange; - } - return segs; - }; - /* - "complete" seg means it has component and eventRange - */ - Slicer.prototype.sliceEventRanges = function (eventRanges, component, // TODO: kill - extraArgs) { - var segs = []; - for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) { - var eventRange = eventRanges_1[_i]; - segs.push.apply(segs, this.sliceEventRange(eventRange, component, extraArgs)); - } - return segs; - }; - /* - "complete" seg means it has component and eventRange - */ - Slicer.prototype.sliceEventRange = function (eventRange, component, // TODO: kill - extraArgs) { - var segs = this.sliceRange.apply(this, [eventRange.range].concat(extraArgs)); - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - seg.component = component; - seg.eventRange = eventRange; - seg.isStart = eventRange.isStart && seg.isStart; - seg.isEnd = eventRange.isEnd && seg.isEnd; - } - return segs; - }; - return Slicer; -}()); -/* -for incorporating minTime/maxTime if appropriate -TODO: should be part of DateProfile! -TimelineDateProfile already does this btw -*/ -function computeActiveRange(dateProfile, isComponentAllDay) { - var range = dateProfile.activeRange; - if (isComponentAllDay) { - return range; - } - return { - start: addMs(range.start, dateProfile.minTime.milliseconds), - end: addMs(range.end, dateProfile.maxTime.milliseconds - 864e5) // 864e5 = ms in a day - }; -} - -// exports -// -------------------------------------------------------------------------------------------------- -var version = '4.3.1'; - -export { Calendar, Component, DateComponent, DateEnv, DateProfileGenerator, DayHeader, DaySeries, DayTable, ElementDragging, ElementScrollController, EmitterMixin, EventApi, FgEventRenderer, FillRenderer, Interaction, Mixin, NamedTimeZoneImpl, PositionCache, ScrollComponent, ScrollController, Slicer, Splitter, Theme, View, WindowScrollController, addDays, addDurations, addMs, addWeeks, allowContextMenu, allowSelection, appendToElement, applyAll, applyMutationToEventStore, applyStyle, applyStyleProp, asRoughMinutes, asRoughMs, asRoughSeconds, buildGotoAnchorHtml, buildSegCompareObj, capitaliseFirstLetter, combineEventUis, compareByFieldSpec, compareByFieldSpecs, compareNumbers, compensateScroll, computeClippingRect, computeEdges, computeFallbackHeaderFormat, computeHeightAndMargins, computeInnerRect, computeRect, computeVisibleDayRange, config, constrainPoint, createDuration, createElement, createEmptyEventStore, createEventInstance, createFormatter, createPlugin, cssToStr, debounce, diffDates, diffDayAndTime, diffDays, diffPoints, diffWeeks, diffWholeDays, diffWholeWeeks, disableCursor, distributeHeight, elementClosest, elementMatches, enableCursor, eventTupleToStore, filterEventStoreDefs, filterHash, findChildren, findElements, flexibleCompare, forceClassName, formatDate, formatIsoTimeString, formatRange, getAllDayHtml, getClippingParents, getDayClasses, getElSeg, getRectCenter, getRelevantEvents, globalDefaults, greatestDurationDenominator, hasBgRendering, htmlEscape, htmlToElement, insertAfterElement, interactionSettingsStore, interactionSettingsToStore, intersectRanges, intersectRects, isArraysEqual, isDateSpansEqual, isInt, isInteractionValid, isMultiDayRange, isPropsEqual, isPropsValid, isSingleDay, isValidDate, listenBySelector, mapHash, matchCellWidths, memoize, memoizeOutput, memoizeRendering, mergeEventStores, multiplyDuration, padStart, parseBusinessHours, parseDragMeta, parseEventDef, parseFieldSpecs, parse as parseMarker, pointInsideRect, prependToElement, preventContextMenu, preventDefault, preventSelection, processScopedUiProps, rangeContainsMarker, rangeContainsRange, rangesEqual, rangesIntersect, refineProps, removeElement, removeExact, renderDateCell, requestJson, sliceEventStore, startOfDay, subtractInnerElHeight, translateRect, uncompensateScroll, undistributeHeight, unpromisify, version, whenTransitionDone, wholeDivideDurations }; diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/main.js b/htdocs/public/high/plugins/fullcalendar/packages/core/main.js deleted file mode 100644 index ec0808d0..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/main.js +++ /dev/null @@ -1,8717 +0,0 @@ -/*! -FullCalendar Core Package v4.3.1 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (global = global || self, factory(global.FullCalendar = {})); -}(this, function (exports) { 'use strict'; - - // Creating - // ---------------------------------------------------------------------------------------------------------------- - var elementPropHash = { - className: true, - colSpan: true, - rowSpan: true - }; - var containerTagHash = { - '= rect.left && - point.left < rect.right && - point.top >= rect.top && - point.top < rect.bottom; - } - // Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false - function intersectRects(rect1, rect2) { - var res = { - left: Math.max(rect1.left, rect2.left), - right: Math.min(rect1.right, rect2.right), - top: Math.max(rect1.top, rect2.top), - bottom: Math.min(rect1.bottom, rect2.bottom) - }; - if (res.left < res.right && res.top < res.bottom) { - return res; - } - return false; - } - function translateRect(rect, deltaX, deltaY) { - return { - left: rect.left + deltaX, - right: rect.right + deltaX, - top: rect.top + deltaY, - bottom: rect.bottom + deltaY - }; - } - // Returns a new point that will have been moved to reside within the given rectangle - function constrainPoint(point, rect) { - return { - left: Math.min(Math.max(point.left, rect.left), rect.right), - top: Math.min(Math.max(point.top, rect.top), rect.bottom) - }; - } - // Returns a point that is the center of the given rectangle - function getRectCenter(rect) { - return { - left: (rect.left + rect.right) / 2, - top: (rect.top + rect.bottom) / 2 - }; - } - // Subtracts point2's coordinates from point1's coordinates, returning a delta - function diffPoints(point1, point2) { - return { - left: point1.left - point2.left, - top: point1.top - point2.top - }; - } - - // Logic for determining if, when the element is right-to-left, the scrollbar appears on the left side - var isRtlScrollbarOnLeft = null; - function getIsRtlScrollbarOnLeft() { - if (isRtlScrollbarOnLeft === null) { - isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft(); - } - return isRtlScrollbarOnLeft; - } - function computeIsRtlScrollbarOnLeft() { - var outerEl = createElement('div', { - style: { - position: 'absolute', - top: -1000, - left: 0, - border: 0, - padding: 0, - overflow: 'scroll', - direction: 'rtl' - } - }, '
'); - document.body.appendChild(outerEl); - var innerEl = outerEl.firstChild; - var res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left; - removeElement(outerEl); - return res; - } - // The scrollbar width computations in computeEdges are sometimes flawed when it comes to - // retina displays, rounding, and IE11. Massage them into a usable value. - function sanitizeScrollbarWidth(width) { - width = Math.max(0, width); // no negatives - width = Math.round(width); - return width; - } - - function computeEdges(el, getPadding) { - if (getPadding === void 0) { getPadding = false; } - var computedStyle = window.getComputedStyle(el); - var borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0; - var borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0; - var borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0; - var borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0; - // must use offset(Width|Height) because compatible with client(Width|Height) - var scrollbarLeftRight = sanitizeScrollbarWidth(el.offsetWidth - el.clientWidth - borderLeft - borderRight); - var scrollbarBottom = sanitizeScrollbarWidth(el.offsetHeight - el.clientHeight - borderTop - borderBottom); - var res = { - borderLeft: borderLeft, - borderRight: borderRight, - borderTop: borderTop, - borderBottom: borderBottom, - scrollbarBottom: scrollbarBottom, - scrollbarLeft: 0, - scrollbarRight: 0 - }; - if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') { // is the scrollbar on the left side? - res.scrollbarLeft = scrollbarLeftRight; - } - else { - res.scrollbarRight = scrollbarLeftRight; - } - if (getPadding) { - res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0; - res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0; - res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0; - res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0; - } - return res; - } - function computeInnerRect(el, goWithinPadding) { - if (goWithinPadding === void 0) { goWithinPadding = false; } - var outerRect = computeRect(el); - var edges = computeEdges(el, goWithinPadding); - var res = { - left: outerRect.left + edges.borderLeft + edges.scrollbarLeft, - right: outerRect.right - edges.borderRight - edges.scrollbarRight, - top: outerRect.top + edges.borderTop, - bottom: outerRect.bottom - edges.borderBottom - edges.scrollbarBottom - }; - if (goWithinPadding) { - res.left += edges.paddingLeft; - res.right -= edges.paddingRight; - res.top += edges.paddingTop; - res.bottom -= edges.paddingBottom; - } - return res; - } - function computeRect(el) { - var rect = el.getBoundingClientRect(); - return { - left: rect.left + window.pageXOffset, - top: rect.top + window.pageYOffset, - right: rect.right + window.pageXOffset, - bottom: rect.bottom + window.pageYOffset - }; - } - function computeViewportRect() { - return { - left: window.pageXOffset, - right: window.pageXOffset + document.documentElement.clientWidth, - top: window.pageYOffset, - bottom: window.pageYOffset + document.documentElement.clientHeight - }; - } - function computeHeightAndMargins(el) { - return el.getBoundingClientRect().height + computeVMargins(el); - } - function computeVMargins(el) { - var computed = window.getComputedStyle(el); - return parseInt(computed.marginTop, 10) + - parseInt(computed.marginBottom, 10); - } - // does not return window - function getClippingParents(el) { - var parents = []; - while (el instanceof HTMLElement) { // will stop when gets to document or null - var computedStyle = window.getComputedStyle(el); - if (computedStyle.position === 'fixed') { - break; - } - if ((/(auto|scroll)/).test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) { - parents.push(el); - } - el = el.parentNode; - } - return parents; - } - function computeClippingRect(el) { - return getClippingParents(el) - .map(function (el) { - return computeInnerRect(el); - }) - .concat(computeViewportRect()) - .reduce(function (rect0, rect1) { - return intersectRects(rect0, rect1) || rect1; // should always intersect - }); - } - - // Stops a mouse/touch event from doing it's native browser action - function preventDefault(ev) { - ev.preventDefault(); - } - // Event Delegation - // ---------------------------------------------------------------------------------------------------------------- - function listenBySelector(container, eventType, selector, handler) { - function realHandler(ev) { - var matchedChild = elementClosest(ev.target, selector); - if (matchedChild) { - handler.call(matchedChild, ev, matchedChild); - } - } - container.addEventListener(eventType, realHandler); - return function () { - container.removeEventListener(eventType, realHandler); - }; - } - function listenToHoverBySelector(container, selector, onMouseEnter, onMouseLeave) { - var currentMatchedChild; - return listenBySelector(container, 'mouseover', selector, function (ev, matchedChild) { - if (matchedChild !== currentMatchedChild) { - currentMatchedChild = matchedChild; - onMouseEnter(ev, matchedChild); - var realOnMouseLeave_1 = function (ev) { - currentMatchedChild = null; - onMouseLeave(ev, matchedChild); - matchedChild.removeEventListener('mouseleave', realOnMouseLeave_1); - }; - // listen to the next mouseleave, and then unattach - matchedChild.addEventListener('mouseleave', realOnMouseLeave_1); - } - }); - } - // Animation - // ---------------------------------------------------------------------------------------------------------------- - var transitionEventNames = [ - 'webkitTransitionEnd', - 'otransitionend', - 'oTransitionEnd', - 'msTransitionEnd', - 'transitionend' - ]; - // triggered only when the next single subsequent transition finishes - function whenTransitionDone(el, callback) { - var realCallback = function (ev) { - callback(ev); - transitionEventNames.forEach(function (eventName) { - el.removeEventListener(eventName, realCallback); - }); - }; - transitionEventNames.forEach(function (eventName) { - el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes - }); - } - - var DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']; - // Adding - function addWeeks(m, n) { - var a = dateToUtcArray(m); - a[2] += n * 7; - return arrayToUtcDate(a); - } - function addDays(m, n) { - var a = dateToUtcArray(m); - a[2] += n; - return arrayToUtcDate(a); - } - function addMs(m, n) { - var a = dateToUtcArray(m); - a[6] += n; - return arrayToUtcDate(a); - } - // Diffing (all return floats) - function diffWeeks(m0, m1) { - return diffDays(m0, m1) / 7; - } - function diffDays(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24); - } - function diffHours(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60); - } - function diffMinutes(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60); - } - function diffSeconds(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / 1000; - } - function diffDayAndTime(m0, m1) { - var m0day = startOfDay(m0); - var m1day = startOfDay(m1); - return { - years: 0, - months: 0, - days: Math.round(diffDays(m0day, m1day)), - milliseconds: (m1.valueOf() - m1day.valueOf()) - (m0.valueOf() - m0day.valueOf()) - }; - } - // Diffing Whole Units - function diffWholeWeeks(m0, m1) { - var d = diffWholeDays(m0, m1); - if (d !== null && d % 7 === 0) { - return d / 7; - } - return null; - } - function diffWholeDays(m0, m1) { - if (timeAsMs(m0) === timeAsMs(m1)) { - return Math.round(diffDays(m0, m1)); - } - return null; - } - // Start-Of - function startOfDay(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate() - ]); - } - function startOfHour(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours() - ]); - } - function startOfMinute(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours(), - m.getUTCMinutes() - ]); - } - function startOfSecond(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours(), - m.getUTCMinutes(), - m.getUTCSeconds() - ]); - } - // Week Computation - function weekOfYear(marker, dow, doy) { - var y = marker.getUTCFullYear(); - var w = weekOfGivenYear(marker, y, dow, doy); - if (w < 1) { - return weekOfGivenYear(marker, y - 1, dow, doy); - } - var nextW = weekOfGivenYear(marker, y + 1, dow, doy); - if (nextW >= 1) { - return Math.min(w, nextW); - } - return w; - } - function weekOfGivenYear(marker, year, dow, doy) { - var firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)]); - var dayStart = startOfDay(marker); - var days = Math.round(diffDays(firstWeekStart, dayStart)); - return Math.floor(days / 7) + 1; // zero-indexed - } - // start-of-first-week - start-of-year - function firstWeekOffset(year, dow, doy) { - // first-week day -- which january is always in the first week (4 for iso, 1 for other) - var fwd = 7 + dow - doy; - // first-week day local weekday -- which local weekday is fwd - var fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7; - return -fwdlw + fwd - 1; - } - // Array Conversion - function dateToLocalArray(date) { - return [ - date.getFullYear(), - date.getMonth(), - date.getDate(), - date.getHours(), - date.getMinutes(), - date.getSeconds(), - date.getMilliseconds() - ]; - } - function arrayToLocalDate(a) { - return new Date(a[0], a[1] || 0, a[2] == null ? 1 : a[2], // day of month - a[3] || 0, a[4] || 0, a[5] || 0); - } - function dateToUtcArray(date) { - return [ - date.getUTCFullYear(), - date.getUTCMonth(), - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds(), - date.getUTCMilliseconds() - ]; - } - function arrayToUtcDate(a) { - // according to web standards (and Safari), a month index is required. - // massage if only given a year. - if (a.length === 1) { - a = a.concat([0]); - } - return new Date(Date.UTC.apply(Date, a)); - } - // Other Utils - function isValidDate(m) { - return !isNaN(m.valueOf()); - } - function timeAsMs(m) { - return m.getUTCHours() * 1000 * 60 * 60 + - m.getUTCMinutes() * 1000 * 60 + - m.getUTCSeconds() * 1000 + - m.getUTCMilliseconds(); - } - - var INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds']; - var PARSE_RE = /^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/; - // Parsing and Creation - function createDuration(input, unit) { - var _a; - if (typeof input === 'string') { - return parseString(input); - } - else if (typeof input === 'object' && input) { // non-null object - return normalizeObject(input); - } - else if (typeof input === 'number') { - return normalizeObject((_a = {}, _a[unit || 'milliseconds'] = input, _a)); - } - else { - return null; - } - } - function parseString(s) { - var m = PARSE_RE.exec(s); - if (m) { - var sign = m[1] ? -1 : 1; - return { - years: 0, - months: 0, - days: sign * (m[2] ? parseInt(m[2], 10) : 0), - milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours - (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes - (m[5] ? parseInt(m[5], 10) : 0) * 1000 + // seconds - (m[6] ? parseInt(m[6], 10) : 0) // ms - ) - }; - } - return null; - } - function normalizeObject(obj) { - return { - years: obj.years || obj.year || 0, - months: obj.months || obj.month || 0, - days: (obj.days || obj.day || 0) + - getWeeksFromInput(obj) * 7, - milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours - (obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes - (obj.seconds || obj.second || 0) * 1000 + // seconds - (obj.milliseconds || obj.millisecond || obj.ms || 0) // ms - }; - } - function getWeeksFromInput(obj) { - return obj.weeks || obj.week || 0; - } - // Equality - function durationsEqual(d0, d1) { - return d0.years === d1.years && - d0.months === d1.months && - d0.days === d1.days && - d0.milliseconds === d1.milliseconds; - } - function isSingleDay(dur) { - return dur.years === 0 && dur.months === 0 && dur.days === 1 && dur.milliseconds === 0; - } - // Simple Math - function addDurations(d0, d1) { - return { - years: d0.years + d1.years, - months: d0.months + d1.months, - days: d0.days + d1.days, - milliseconds: d0.milliseconds + d1.milliseconds - }; - } - function subtractDurations(d1, d0) { - return { - years: d1.years - d0.years, - months: d1.months - d0.months, - days: d1.days - d0.days, - milliseconds: d1.milliseconds - d0.milliseconds - }; - } - function multiplyDuration(d, n) { - return { - years: d.years * n, - months: d.months * n, - days: d.days * n, - milliseconds: d.milliseconds * n - }; - } - // Conversions - // "Rough" because they are based on average-case Gregorian months/years - function asRoughYears(dur) { - return asRoughDays(dur) / 365; - } - function asRoughMonths(dur) { - return asRoughDays(dur) / 30; - } - function asRoughDays(dur) { - return asRoughMs(dur) / 864e5; - } - function asRoughMinutes(dur) { - return asRoughMs(dur) / (1000 * 60); - } - function asRoughSeconds(dur) { - return asRoughMs(dur) / 1000; - } - function asRoughMs(dur) { - return dur.years * (365 * 864e5) + - dur.months * (30 * 864e5) + - dur.days * 864e5 + - dur.milliseconds; - } - // Advanced Math - function wholeDivideDurations(numerator, denominator) { - var res = null; - for (var i = 0; i < INTERNAL_UNITS.length; i++) { - var unit = INTERNAL_UNITS[i]; - if (denominator[unit]) { - var localRes = numerator[unit] / denominator[unit]; - if (!isInt(localRes) || (res !== null && res !== localRes)) { - return null; - } - res = localRes; - } - else if (numerator[unit]) { - // needs to divide by something but can't! - return null; - } - } - return res; - } - function greatestDurationDenominator(dur, dontReturnWeeks) { - var ms = dur.milliseconds; - if (ms) { - if (ms % 1000 !== 0) { - return { unit: 'millisecond', value: ms }; - } - if (ms % (1000 * 60) !== 0) { - return { unit: 'second', value: ms / 1000 }; - } - if (ms % (1000 * 60 * 60) !== 0) { - return { unit: 'minute', value: ms / (1000 * 60) }; - } - if (ms) { - return { unit: 'hour', value: ms / (1000 * 60 * 60) }; - } - } - if (dur.days) { - if (!dontReturnWeeks && dur.days % 7 === 0) { - return { unit: 'week', value: dur.days / 7 }; - } - return { unit: 'day', value: dur.days }; - } - if (dur.months) { - return { unit: 'month', value: dur.months }; - } - if (dur.years) { - return { unit: 'year', value: dur.years }; - } - return { unit: 'millisecond', value: 0 }; - } - - /* FullCalendar-specific DOM Utilities - ----------------------------------------------------------------------------------------------------------------------*/ - // Given the scrollbar widths of some other container, create borders/margins on rowEls in order to match the left - // and right space that was offset by the scrollbars. A 1-pixel border first, then margin beyond that. - function compensateScroll(rowEl, scrollbarWidths) { - if (scrollbarWidths.left) { - applyStyle(rowEl, { - borderLeftWidth: 1, - marginLeft: scrollbarWidths.left - 1 - }); - } - if (scrollbarWidths.right) { - applyStyle(rowEl, { - borderRightWidth: 1, - marginRight: scrollbarWidths.right - 1 - }); - } - } - // Undoes compensateScroll and restores all borders/margins - function uncompensateScroll(rowEl) { - applyStyle(rowEl, { - marginLeft: '', - marginRight: '', - borderLeftWidth: '', - borderRightWidth: '' - }); - } - // Make the mouse cursor express that an event is not allowed in the current area - function disableCursor() { - document.body.classList.add('fc-not-allowed'); - } - // Returns the mouse cursor to its original look - function enableCursor() { - document.body.classList.remove('fc-not-allowed'); - } - // Given a total available height to fill, have `els` (essentially child rows) expand to accomodate. - // By default, all elements that are shorter than the recommended height are expanded uniformly, not considering - // any other els that are already too tall. if `shouldRedistribute` is on, it considers these tall rows and - // reduces the available height. - function distributeHeight(els, availableHeight, shouldRedistribute) { - // *FLOORING NOTE*: we floor in certain places because zoom can give inaccurate floating-point dimensions, - // and it is better to be shorter than taller, to avoid creating unnecessary scrollbars. - var minOffset1 = Math.floor(availableHeight / els.length); // for non-last element - var minOffset2 = Math.floor(availableHeight - minOffset1 * (els.length - 1)); // for last element *FLOORING NOTE* - var flexEls = []; // elements that are allowed to expand. array of DOM nodes - var flexOffsets = []; // amount of vertical space it takes up - var flexHeights = []; // actual css height - var usedHeight = 0; - undistributeHeight(els); // give all elements their natural height - // find elements that are below the recommended height (expandable). - // important to query for heights in a single first pass (to avoid reflow oscillation). - els.forEach(function (el, i) { - var minOffset = i === els.length - 1 ? minOffset2 : minOffset1; - var naturalHeight = el.getBoundingClientRect().height; - var naturalOffset = naturalHeight + computeVMargins(el); - if (naturalOffset < minOffset) { - flexEls.push(el); - flexOffsets.push(naturalOffset); - flexHeights.push(naturalHeight); - } - else { - // this element stretches past recommended height (non-expandable). mark the space as occupied. - usedHeight += naturalOffset; - } - }); - // readjust the recommended height to only consider the height available to non-maxed-out rows. - if (shouldRedistribute) { - availableHeight -= usedHeight; - minOffset1 = Math.floor(availableHeight / flexEls.length); - minOffset2 = Math.floor(availableHeight - minOffset1 * (flexEls.length - 1)); // *FLOORING NOTE* - } - // assign heights to all expandable elements - flexEls.forEach(function (el, i) { - var minOffset = i === flexEls.length - 1 ? minOffset2 : minOffset1; - var naturalOffset = flexOffsets[i]; - var naturalHeight = flexHeights[i]; - var newHeight = minOffset - (naturalOffset - naturalHeight); // subtract the margin/padding - if (naturalOffset < minOffset) { // we check this again because redistribution might have changed things - el.style.height = newHeight + 'px'; - } - }); - } - // Undoes distrubuteHeight, restoring all els to their natural height - function undistributeHeight(els) { - els.forEach(function (el) { - el.style.height = ''; - }); - } - // Given `els`, a set of cells, find the cell with the largest natural width and set the widths of all the - // cells to be that width. - // PREREQUISITE: if you want a cell to take up width, it needs to have a single inner element w/ display:inline - function matchCellWidths(els) { - var maxInnerWidth = 0; - els.forEach(function (el) { - var innerEl = el.firstChild; // hopefully an element - if (innerEl instanceof HTMLElement) { - var innerWidth_1 = innerEl.getBoundingClientRect().width; - if (innerWidth_1 > maxInnerWidth) { - maxInnerWidth = innerWidth_1; - } - } - }); - maxInnerWidth++; // sometimes not accurate of width the text needs to stay on one line. insurance - els.forEach(function (el) { - el.style.width = maxInnerWidth + 'px'; - }); - return maxInnerWidth; - } - // Given one element that resides inside another, - // Subtracts the height of the inner element from the outer element. - function subtractInnerElHeight(outerEl, innerEl) { - // effin' IE8/9/10/11 sometimes returns 0 for dimensions. this weird hack was the only thing that worked - var reflowStyleProps = { - position: 'relative', - left: -1 // ensure reflow in case the el was already relative. negative is less likely to cause new scroll - }; - applyStyle(outerEl, reflowStyleProps); - applyStyle(innerEl, reflowStyleProps); - var diff = // grab the dimensions - outerEl.getBoundingClientRect().height - - innerEl.getBoundingClientRect().height; - // undo hack - var resetStyleProps = { position: '', left: '' }; - applyStyle(outerEl, resetStyleProps); - applyStyle(innerEl, resetStyleProps); - return diff; - } - /* Selection - ----------------------------------------------------------------------------------------------------------------------*/ - function preventSelection(el) { - el.classList.add('fc-unselectable'); - el.addEventListener('selectstart', preventDefault); - } - function allowSelection(el) { - el.classList.remove('fc-unselectable'); - el.removeEventListener('selectstart', preventDefault); - } - /* Context Menu - ----------------------------------------------------------------------------------------------------------------------*/ - function preventContextMenu(el) { - el.addEventListener('contextmenu', preventDefault); - } - function allowContextMenu(el) { - el.removeEventListener('contextmenu', preventDefault); - } - /* Object Ordering by Field - ----------------------------------------------------------------------------------------------------------------------*/ - function parseFieldSpecs(input) { - var specs = []; - var tokens = []; - var i; - var token; - if (typeof input === 'string') { - tokens = input.split(/\s*,\s*/); - } - else if (typeof input === 'function') { - tokens = [input]; - } - else if (Array.isArray(input)) { - tokens = input; - } - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - if (typeof token === 'string') { - specs.push(token.charAt(0) === '-' ? - { field: token.substring(1), order: -1 } : - { field: token, order: 1 }); - } - else if (typeof token === 'function') { - specs.push({ func: token }); - } - } - return specs; - } - function compareByFieldSpecs(obj0, obj1, fieldSpecs) { - var i; - var cmp; - for (i = 0; i < fieldSpecs.length; i++) { - cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]); - if (cmp) { - return cmp; - } - } - return 0; - } - function compareByFieldSpec(obj0, obj1, fieldSpec) { - if (fieldSpec.func) { - return fieldSpec.func(obj0, obj1); - } - return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field]) - * (fieldSpec.order || 1); - } - function flexibleCompare(a, b) { - if (!a && !b) { - return 0; - } - if (b == null) { - return -1; - } - if (a == null) { - return 1; - } - if (typeof a === 'string' || typeof b === 'string') { - return String(a).localeCompare(String(b)); - } - return a - b; - } - /* String Utilities - ----------------------------------------------------------------------------------------------------------------------*/ - function capitaliseFirstLetter(str) { - return str.charAt(0).toUpperCase() + str.slice(1); - } - function padStart(val, len) { - var s = String(val); - return '000'.substr(0, len - s.length) + s; - } - /* Number Utilities - ----------------------------------------------------------------------------------------------------------------------*/ - function compareNumbers(a, b) { - return a - b; - } - function isInt(n) { - return n % 1 === 0; - } - /* Weird Utilities - ----------------------------------------------------------------------------------------------------------------------*/ - function applyAll(functions, thisObj, args) { - if (typeof functions === 'function') { // supplied a single function - functions = [functions]; - } - if (functions) { - var i = void 0; - var ret = void 0; - for (i = 0; i < functions.length; i++) { - ret = functions[i].apply(thisObj, args) || ret; - } - return ret; - } - } - function firstDefined() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - for (var i = 0; i < args.length; i++) { - if (args[i] !== undefined) { - return args[i]; - } - } - } - // Returns a function, that, as long as it continues to be invoked, will not - // be triggered. The function will be called after it stops being called for - // N milliseconds. If `immediate` is passed, trigger the function on the - // leading edge, instead of the trailing. - // https://github.com/jashkenas/underscore/blob/1.6.0/underscore.js#L714 - function debounce(func, wait) { - var timeout; - var args; - var context; - var timestamp; - var result; - var later = function () { - var last = new Date().valueOf() - timestamp; - if (last < wait) { - timeout = setTimeout(later, wait - last); - } - else { - timeout = null; - result = func.apply(context, args); - context = args = null; - } - }; - return function () { - context = this; - args = arguments; - timestamp = new Date().valueOf(); - if (!timeout) { - timeout = setTimeout(later, wait); - } - return result; - }; - } - // Number and Boolean are only types that defaults or not computed for - // TODO: write more comments - function refineProps(rawProps, processors, defaults, leftoverProps) { - if (defaults === void 0) { defaults = {}; } - var refined = {}; - for (var key in processors) { - var processor = processors[key]; - if (rawProps[key] !== undefined) { - // found - if (processor === Function) { - refined[key] = typeof rawProps[key] === 'function' ? rawProps[key] : null; - } - else if (processor) { // a refining function? - refined[key] = processor(rawProps[key]); - } - else { - refined[key] = rawProps[key]; - } - } - else if (defaults[key] !== undefined) { - // there's an explicit default - refined[key] = defaults[key]; - } - else { - // must compute a default - if (processor === String) { - refined[key] = ''; // empty string is default for String - } - else if (!processor || processor === Number || processor === Boolean || processor === Function) { - refined[key] = null; // assign null for other non-custom processor funcs - } - else { - refined[key] = processor(null); // run the custom processor func - } - } - } - if (leftoverProps) { - for (var key in rawProps) { - if (processors[key] === undefined) { - leftoverProps[key] = rawProps[key]; - } - } - } - return refined; - } - /* Date stuff that doesn't belong in datelib core - ----------------------------------------------------------------------------------------------------------------------*/ - // given a timed range, computes an all-day range that has the same exact duration, - // but whose start time is aligned with the start of the day. - function computeAlignedDayRange(timedRange) { - var dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1; - var start = startOfDay(timedRange.start); - var end = addDays(start, dayCnt); - return { start: start, end: end }; - } - // given a timed range, computes an all-day range based on how for the end date bleeds into the next day - // TODO: give nextDayThreshold a default arg - function computeVisibleDayRange(timedRange, nextDayThreshold) { - if (nextDayThreshold === void 0) { nextDayThreshold = createDuration(0); } - var startDay = null; - var endDay = null; - if (timedRange.end) { - endDay = startOfDay(timedRange.end); - var endTimeMS = timedRange.end.valueOf() - endDay.valueOf(); // # of milliseconds into `endDay` - // If the end time is actually inclusively part of the next day and is equal to or - // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`. - // Otherwise, leaving it as inclusive will cause it to exclude `endDay`. - if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) { - endDay = addDays(endDay, 1); - } - } - if (timedRange.start) { - startDay = startOfDay(timedRange.start); // the beginning of the day the range starts - // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day. - if (endDay && endDay <= startDay) { - endDay = addDays(startDay, 1); - } - } - return { start: startDay, end: endDay }; - } - // spans from one day into another? - function isMultiDayRange(range) { - var visibleRange = computeVisibleDayRange(range); - return diffDays(visibleRange.start, visibleRange.end) > 1; - } - function diffDates(date0, date1, dateEnv, largeUnit) { - if (largeUnit === 'year') { - return createDuration(dateEnv.diffWholeYears(date0, date1), 'year'); - } - else if (largeUnit === 'month') { - return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month'); - } - else { - return diffDayAndTime(date0, date1); // returns a duration - } - } - - /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */ - /* global Reflect, Promise */ - - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - - function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - } - - var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); - }; - - function parseRecurring(eventInput, allDayDefault, dateEnv, recurringTypes, leftovers) { - for (var i = 0; i < recurringTypes.length; i++) { - var localLeftovers = {}; - var parsed = recurringTypes[i].parse(eventInput, localLeftovers, dateEnv); - if (parsed) { - var allDay = localLeftovers.allDay; - delete localLeftovers.allDay; // remove from leftovers - if (allDay == null) { - allDay = allDayDefault; - if (allDay == null) { - allDay = parsed.allDayGuess; - if (allDay == null) { - allDay = false; - } - } - } - __assign(leftovers, localLeftovers); - return { - allDay: allDay, - duration: parsed.duration, - typeData: parsed.typeData, - typeId: i - }; - } - } - return null; - } - /* - Event MUST have a recurringDef - */ - function expandRecurringRanges(eventDef, duration, framingRange, dateEnv, recurringTypes) { - var typeDef = recurringTypes[eventDef.recurringDef.typeId]; - var markers = typeDef.expand(eventDef.recurringDef.typeData, { - start: dateEnv.subtract(framingRange.start, duration), - end: framingRange.end - }, dateEnv); - // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to - if (eventDef.allDay) { - markers = markers.map(startOfDay); - } - return markers; - } - - var hasOwnProperty = Object.prototype.hasOwnProperty; - // Merges an array of objects into a single object. - // The second argument allows for an array of property names who's object values will be merged together. - function mergeProps(propObjs, complexProps) { - var dest = {}; - var i; - var name; - var complexObjs; - var j; - var val; - var props; - if (complexProps) { - for (i = 0; i < complexProps.length; i++) { - name = complexProps[i]; - complexObjs = []; - // collect the trailing object values, stopping when a non-object is discovered - for (j = propObjs.length - 1; j >= 0; j--) { - val = propObjs[j][name]; - if (typeof val === 'object' && val) { // non-null object - complexObjs.unshift(val); - } - else if (val !== undefined) { - dest[name] = val; // if there were no objects, this value will be used - break; - } - } - // if the trailing values were objects, use the merged value - if (complexObjs.length) { - dest[name] = mergeProps(complexObjs); - } - } - } - // copy values into the destination, going from last to first - for (i = propObjs.length - 1; i >= 0; i--) { - props = propObjs[i]; - for (name in props) { - if (!(name in dest)) { // if already assigned by previous props or complex props, don't reassign - dest[name] = props[name]; - } - } - } - return dest; - } - function filterHash(hash, func) { - var filtered = {}; - for (var key in hash) { - if (func(hash[key], key)) { - filtered[key] = hash[key]; - } - } - return filtered; - } - function mapHash(hash, func) { - var newHash = {}; - for (var key in hash) { - newHash[key] = func(hash[key], key); - } - return newHash; - } - function arrayToHash(a) { - var hash = {}; - for (var _i = 0, a_1 = a; _i < a_1.length; _i++) { - var item = a_1[_i]; - hash[item] = true; - } - return hash; - } - function hashValuesToArray(obj) { - var a = []; - for (var key in obj) { - a.push(obj[key]); - } - return a; - } - function isPropsEqual(obj0, obj1) { - for (var key in obj0) { - if (hasOwnProperty.call(obj0, key)) { - if (!(key in obj1)) { - return false; - } - } - } - for (var key in obj1) { - if (hasOwnProperty.call(obj1, key)) { - if (obj0[key] !== obj1[key]) { - return false; - } - } - } - return true; - } - - function parseEvents(rawEvents, sourceId, calendar, allowOpenRange) { - var eventStore = createEmptyEventStore(); - for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) { - var rawEvent = rawEvents_1[_i]; - var tuple = parseEvent(rawEvent, sourceId, calendar, allowOpenRange); - if (tuple) { - eventTupleToStore(tuple, eventStore); - } - } - return eventStore; - } - function eventTupleToStore(tuple, eventStore) { - if (eventStore === void 0) { eventStore = createEmptyEventStore(); } - eventStore.defs[tuple.def.defId] = tuple.def; - if (tuple.instance) { - eventStore.instances[tuple.instance.instanceId] = tuple.instance; - } - return eventStore; - } - function expandRecurring(eventStore, framingRange, calendar) { - var dateEnv = calendar.dateEnv; - var defs = eventStore.defs, instances = eventStore.instances; - // remove existing recurring instances - instances = filterHash(instances, function (instance) { - return !defs[instance.defId].recurringDef; - }); - for (var defId in defs) { - var def = defs[defId]; - if (def.recurringDef) { - var duration = def.recurringDef.duration; - if (!duration) { - duration = def.allDay ? - calendar.defaultAllDayEventDuration : - calendar.defaultTimedEventDuration; - } - var starts = expandRecurringRanges(def, duration, framingRange, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes); - for (var _i = 0, starts_1 = starts; _i < starts_1.length; _i++) { - var start = starts_1[_i]; - var instance = createEventInstance(defId, { - start: start, - end: dateEnv.add(start, duration) - }); - instances[instance.instanceId] = instance; - } - } - } - return { defs: defs, instances: instances }; - } - // retrieves events that have the same groupId as the instance specified by `instanceId` - // or they are the same as the instance. - // why might instanceId not be in the store? an event from another calendar? - function getRelevantEvents(eventStore, instanceId) { - var instance = eventStore.instances[instanceId]; - if (instance) { - var def_1 = eventStore.defs[instance.defId]; - // get events/instances with same group - var newStore = filterEventStoreDefs(eventStore, function (lookDef) { - return isEventDefsGrouped(def_1, lookDef); - }); - // add the original - // TODO: wish we could use eventTupleToStore or something like it - newStore.defs[def_1.defId] = def_1; - newStore.instances[instance.instanceId] = instance; - return newStore; - } - return createEmptyEventStore(); - } - function isEventDefsGrouped(def0, def1) { - return Boolean(def0.groupId && def0.groupId === def1.groupId); - } - function transformRawEvents(rawEvents, eventSource, calendar) { - var calEachTransform = calendar.opt('eventDataTransform'); - var sourceEachTransform = eventSource ? eventSource.eventDataTransform : null; - if (sourceEachTransform) { - rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform); - } - if (calEachTransform) { - rawEvents = transformEachRawEvent(rawEvents, calEachTransform); - } - return rawEvents; - } - function transformEachRawEvent(rawEvents, func) { - var refinedEvents; - if (!func) { - refinedEvents = rawEvents; - } - else { - refinedEvents = []; - for (var _i = 0, rawEvents_2 = rawEvents; _i < rawEvents_2.length; _i++) { - var rawEvent = rawEvents_2[_i]; - var refinedEvent = func(rawEvent); - if (refinedEvent) { - refinedEvents.push(refinedEvent); - } - else if (refinedEvent == null) { - refinedEvents.push(rawEvent); - } // if a different falsy value, do nothing - } - } - return refinedEvents; - } - function createEmptyEventStore() { - return { defs: {}, instances: {} }; - } - function mergeEventStores(store0, store1) { - return { - defs: __assign({}, store0.defs, store1.defs), - instances: __assign({}, store0.instances, store1.instances) - }; - } - function filterEventStoreDefs(eventStore, filterFunc) { - var defs = filterHash(eventStore.defs, filterFunc); - var instances = filterHash(eventStore.instances, function (instance) { - return defs[instance.defId]; // still exists? - }); - return { defs: defs, instances: instances }; - } - - function parseRange(input, dateEnv) { - var start = null; - var end = null; - if (input.start) { - start = dateEnv.createMarker(input.start); - } - if (input.end) { - end = dateEnv.createMarker(input.end); - } - if (!start && !end) { - return null; - } - if (start && end && end < start) { - return null; - } - return { start: start, end: end }; - } - // SIDE-EFFECT: will mutate ranges. - // Will return a new array result. - function invertRanges(ranges, constraintRange) { - var invertedRanges = []; - var start = constraintRange.start; // the end of the previous range. the start of the new range - var i; - var dateRange; - // ranges need to be in order. required for our date-walking algorithm - ranges.sort(compareRanges); - for (i = 0; i < ranges.length; i++) { - dateRange = ranges[i]; - // add the span of time before the event (if there is any) - if (dateRange.start > start) { // compare millisecond time (skip any ambig logic) - invertedRanges.push({ start: start, end: dateRange.start }); - } - if (dateRange.end > start) { - start = dateRange.end; - } - } - // add the span of time after the last event (if there is any) - if (start < constraintRange.end) { // compare millisecond time (skip any ambig logic) - invertedRanges.push({ start: start, end: constraintRange.end }); - } - return invertedRanges; - } - function compareRanges(range0, range1) { - return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first - } - function intersectRanges(range0, range1) { - var start = range0.start; - var end = range0.end; - var newRange = null; - if (range1.start !== null) { - if (start === null) { - start = range1.start; - } - else { - start = new Date(Math.max(start.valueOf(), range1.start.valueOf())); - } - } - if (range1.end != null) { - if (end === null) { - end = range1.end; - } - else { - end = new Date(Math.min(end.valueOf(), range1.end.valueOf())); - } - } - if (start === null || end === null || start < end) { - newRange = { start: start, end: end }; - } - return newRange; - } - function rangesEqual(range0, range1) { - return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) && - (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf()); - } - function rangesIntersect(range0, range1) { - return (range0.end === null || range1.start === null || range0.end > range1.start) && - (range0.start === null || range1.end === null || range0.start < range1.end); - } - function rangeContainsRange(outerRange, innerRange) { - return (outerRange.start === null || (innerRange.start !== null && innerRange.start >= outerRange.start)) && - (outerRange.end === null || (innerRange.end !== null && innerRange.end <= outerRange.end)); - } - function rangeContainsMarker(range, date) { - return (range.start === null || date >= range.start) && - (range.end === null || date < range.end); - } - // If the given date is not within the given range, move it inside. - // (If it's past the end, make it one millisecond before the end). - function constrainMarkerToRange(date, range) { - if (range.start != null && date < range.start) { - return range.start; - } - if (range.end != null && date >= range.end) { - return new Date(range.end.valueOf() - 1); - } - return date; - } - - function removeExact(array, exactVal) { - var removeCnt = 0; - var i = 0; - while (i < array.length) { - if (array[i] === exactVal) { - array.splice(i, 1); - removeCnt++; - } - else { - i++; - } - } - return removeCnt; - } - function isArraysEqual(a0, a1) { - var len = a0.length; - var i; - if (len !== a1.length) { // not array? or not same length? - return false; - } - for (i = 0; i < len; i++) { - if (a0[i] !== a1[i]) { - return false; - } - } - return true; - } - - function memoize(workerFunc) { - var args; - var res; - return function () { - if (!args || !isArraysEqual(args, arguments)) { - args = arguments; - res = workerFunc.apply(this, arguments); - } - return res; - }; - } - /* - always executes the workerFunc, but if the result is equal to the previous result, - return the previous result instead. - */ - function memoizeOutput(workerFunc, equalityFunc) { - var cachedRes = null; - return function () { - var newRes = workerFunc.apply(this, arguments); - if (cachedRes === null || !(cachedRes === newRes || equalityFunc(cachedRes, newRes))) { - cachedRes = newRes; - } - return cachedRes; - }; - } - - var EXTENDED_SETTINGS_AND_SEVERITIES = { - week: 3, - separator: 0, - omitZeroMinute: 0, - meridiem: 0, - omitCommas: 0 - }; - var STANDARD_DATE_PROP_SEVERITIES = { - timeZoneName: 7, - era: 6, - year: 5, - month: 4, - day: 2, - weekday: 2, - hour: 1, - minute: 1, - second: 1 - }; - var MERIDIEM_RE = /\s*([ap])\.?m\.?/i; // eats up leading spaces too - var COMMA_RE = /,/g; // we need re for globalness - var MULTI_SPACE_RE = /\s+/g; - var LTR_RE = /\u200e/g; // control character - var UTC_RE = /UTC|GMT/; - var NativeFormatter = /** @class */ (function () { - function NativeFormatter(formatSettings) { - var standardDateProps = {}; - var extendedSettings = {}; - var severity = 0; - for (var name_1 in formatSettings) { - if (name_1 in EXTENDED_SETTINGS_AND_SEVERITIES) { - extendedSettings[name_1] = formatSettings[name_1]; - severity = Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name_1], severity); - } - else { - standardDateProps[name_1] = formatSettings[name_1]; - if (name_1 in STANDARD_DATE_PROP_SEVERITIES) { - severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name_1], severity); - } - } - } - this.standardDateProps = standardDateProps; - this.extendedSettings = extendedSettings; - this.severity = severity; - this.buildFormattingFunc = memoize(buildFormattingFunc); - } - NativeFormatter.prototype.format = function (date, context) { - return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date); - }; - NativeFormatter.prototype.formatRange = function (start, end, context) { - var _a = this, standardDateProps = _a.standardDateProps, extendedSettings = _a.extendedSettings; - var diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem); - if (!diffSeverity) { - return this.format(start, context); - } - var biggestUnitForPartial = diffSeverity; - if (biggestUnitForPartial > 1 && // the two dates are different in a way that's larger scale than time - (standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') && - (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') && - (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')) { - biggestUnitForPartial = 1; // make it look like the dates are only different in terms of time - } - var full0 = this.format(start, context); - var full1 = this.format(end, context); - if (full0 === full1) { - return full0; - } - var partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial); - var partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context); - var partial0 = partialFormattingFunc(start); - var partial1 = partialFormattingFunc(end); - var insertion = findCommonInsertion(full0, partial0, full1, partial1); - var separator = extendedSettings.separator || ''; - if (insertion) { - return insertion.before + partial0 + separator + partial1 + insertion.after; - } - return full0 + separator + full1; - }; - NativeFormatter.prototype.getLargestUnit = function () { - switch (this.severity) { - case 7: - case 6: - case 5: - return 'year'; - case 4: - return 'month'; - case 3: - return 'week'; - default: - return 'day'; - } - }; - return NativeFormatter; - }()); - function buildFormattingFunc(standardDateProps, extendedSettings, context) { - var standardDatePropCnt = Object.keys(standardDateProps).length; - if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') { - return function (date) { - return formatTimeZoneOffset(date.timeZoneOffset); - }; - } - if (standardDatePropCnt === 0 && extendedSettings.week) { - return function (date) { - return formatWeekNumber(context.computeWeekNumber(date.marker), context.weekLabel, context.locale, extendedSettings.week); - }; - } - return buildNativeFormattingFunc(standardDateProps, extendedSettings, context); - } - function buildNativeFormattingFunc(standardDateProps, extendedSettings, context) { - standardDateProps = __assign({}, standardDateProps); // copy - extendedSettings = __assign({}, extendedSettings); // copy - sanitizeSettings(standardDateProps, extendedSettings); - standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers - var normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps); - var zeroFormat; // needed? - if (extendedSettings.omitZeroMinute) { - var zeroProps = __assign({}, standardDateProps); - delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings - zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps); - } - return function (date) { - var marker = date.marker; - var format; - if (zeroFormat && !marker.getUTCMinutes()) { - format = zeroFormat; - } - else { - format = normalFormat; - } - var s = format.format(marker); - return postProcess(s, date, standardDateProps, extendedSettings, context); - }; - } - function sanitizeSettings(standardDateProps, extendedSettings) { - // deal with a browser inconsistency where formatting the timezone - // requires that the hour/minute be present. - if (standardDateProps.timeZoneName) { - if (!standardDateProps.hour) { - standardDateProps.hour = '2-digit'; - } - if (!standardDateProps.minute) { - standardDateProps.minute = '2-digit'; - } - } - // only support short timezone names - if (standardDateProps.timeZoneName === 'long') { - standardDateProps.timeZoneName = 'short'; - } - // if requesting to display seconds, MUST display minutes - if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) { - delete extendedSettings.omitZeroMinute; - } - } - function postProcess(s, date, standardDateProps, extendedSettings, context) { - s = s.replace(LTR_RE, ''); // remove left-to-right control chars. do first. good for other regexes - if (standardDateProps.timeZoneName === 'short') { - s = injectTzoStr(s, (context.timeZone === 'UTC' || date.timeZoneOffset == null) ? - 'UTC' : // important to normalize for IE, which does "GMT" - formatTimeZoneOffset(date.timeZoneOffset)); - } - if (extendedSettings.omitCommas) { - s = s.replace(COMMA_RE, '').trim(); - } - if (extendedSettings.omitZeroMinute) { - s = s.replace(':00', ''); // zeroFormat doesn't always achieve this - } - // ^ do anything that might create adjacent spaces before this point, - // because MERIDIEM_RE likes to eat up loading spaces - if (extendedSettings.meridiem === false) { - s = s.replace(MERIDIEM_RE, '').trim(); - } - else if (extendedSettings.meridiem === 'narrow') { // a/p - s = s.replace(MERIDIEM_RE, function (m0, m1) { - return m1.toLocaleLowerCase(); - }); - } - else if (extendedSettings.meridiem === 'short') { // am/pm - s = s.replace(MERIDIEM_RE, function (m0, m1) { - return m1.toLocaleLowerCase() + 'm'; - }); - } - else if (extendedSettings.meridiem === 'lowercase') { // other meridiem transformers already converted to lowercase - s = s.replace(MERIDIEM_RE, function (m0) { - return m0.toLocaleLowerCase(); - }); - } - s = s.replace(MULTI_SPACE_RE, ' '); - s = s.trim(); - return s; - } - function injectTzoStr(s, tzoStr) { - var replaced = false; - s = s.replace(UTC_RE, function () { - replaced = true; - return tzoStr; - }); - // IE11 doesn't include UTC/GMT in the original string, so append to end - if (!replaced) { - s += ' ' + tzoStr; - } - return s; - } - function formatWeekNumber(num, weekLabel, locale, display) { - var parts = []; - if (display === 'narrow') { - parts.push(weekLabel); - } - else if (display === 'short') { - parts.push(weekLabel, ' '); - } - // otherwise, considered 'numeric' - parts.push(locale.simpleNumberFormat.format(num)); - if (locale.options.isRtl) { // TODO: use control characters instead? - parts.reverse(); - } - return parts.join(''); - } - // Range Formatting Utils - // 0 = exactly the same - // 1 = different by time - // and bigger - function computeMarkerDiffSeverity(d0, d1, ca) { - if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) { - return 5; - } - if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) { - return 4; - } - if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) { - return 2; - } - if (timeAsMs(d0) !== timeAsMs(d1)) { - return 1; - } - return 0; - } - function computePartialFormattingOptions(options, biggestUnit) { - var partialOptions = {}; - for (var name_2 in options) { - if (!(name_2 in STANDARD_DATE_PROP_SEVERITIES) || // not a date part prop (like timeZone) - STANDARD_DATE_PROP_SEVERITIES[name_2] <= biggestUnit) { - partialOptions[name_2] = options[name_2]; - } - } - return partialOptions; - } - function findCommonInsertion(full0, partial0, full1, partial1) { - var i0 = 0; - while (i0 < full0.length) { - var found0 = full0.indexOf(partial0, i0); - if (found0 === -1) { - break; - } - var before0 = full0.substr(0, found0); - i0 = found0 + partial0.length; - var after0 = full0.substr(i0); - var i1 = 0; - while (i1 < full1.length) { - var found1 = full1.indexOf(partial1, i1); - if (found1 === -1) { - break; - } - var before1 = full1.substr(0, found1); - i1 = found1 + partial1.length; - var after1 = full1.substr(i1); - if (before0 === before1 && after0 === after1) { - return { - before: before0, - after: after0 - }; - } - } - } - return null; - } - - /* - TODO: fix the terminology of "formatter" vs "formatting func" - */ - /* - At the time of instantiation, this object does not know which cmd-formatting system it will use. - It receives this at the time of formatting, as a setting. - */ - var CmdFormatter = /** @class */ (function () { - function CmdFormatter(cmdStr, separator) { - this.cmdStr = cmdStr; - this.separator = separator; - } - CmdFormatter.prototype.format = function (date, context) { - return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, this.separator)); - }; - CmdFormatter.prototype.formatRange = function (start, end, context) { - return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, this.separator)); - }; - return CmdFormatter; - }()); - - var FuncFormatter = /** @class */ (function () { - function FuncFormatter(func) { - this.func = func; - } - FuncFormatter.prototype.format = function (date, context) { - return this.func(createVerboseFormattingArg(date, null, context)); - }; - FuncFormatter.prototype.formatRange = function (start, end, context) { - return this.func(createVerboseFormattingArg(start, end, context)); - }; - return FuncFormatter; - }()); - - // Formatter Object Creation - function createFormatter(input, defaultSeparator) { - if (typeof input === 'object' && input) { // non-null object - if (typeof defaultSeparator === 'string') { - input = __assign({ separator: defaultSeparator }, input); - } - return new NativeFormatter(input); - } - else if (typeof input === 'string') { - return new CmdFormatter(input, defaultSeparator); - } - else if (typeof input === 'function') { - return new FuncFormatter(input); - } - } - // String Utils - // timeZoneOffset is in minutes - function buildIsoString(marker, timeZoneOffset, stripZeroTime) { - if (stripZeroTime === void 0) { stripZeroTime = false; } - var s = marker.toISOString(); - s = s.replace('.000', ''); - if (stripZeroTime) { - s = s.replace('T00:00:00Z', ''); - } - if (s.length > 10) { // time part wasn't stripped, can add timezone info - if (timeZoneOffset == null) { - s = s.replace('Z', ''); - } - else if (timeZoneOffset !== 0) { - s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true)); - } - // otherwise, its UTC-0 and we want to keep the Z - } - return s; - } - function formatIsoTimeString(marker) { - return padStart(marker.getUTCHours(), 2) + ':' + - padStart(marker.getUTCMinutes(), 2) + ':' + - padStart(marker.getUTCSeconds(), 2); - } - function formatTimeZoneOffset(minutes, doIso) { - if (doIso === void 0) { doIso = false; } - var sign = minutes < 0 ? '-' : '+'; - var abs = Math.abs(minutes); - var hours = Math.floor(abs / 60); - var mins = Math.round(abs % 60); - if (doIso) { - return sign + padStart(hours, 2) + ':' + padStart(mins, 2); - } - else { - return 'GMT' + sign + hours + (mins ? ':' + padStart(mins, 2) : ''); - } - } - // Arg Utils - function createVerboseFormattingArg(start, end, context, separator) { - var startInfo = expandZonedMarker(start, context.calendarSystem); - var endInfo = end ? expandZonedMarker(end, context.calendarSystem) : null; - return { - date: startInfo, - start: startInfo, - end: endInfo, - timeZone: context.timeZone, - localeCodes: context.locale.codes, - separator: separator - }; - } - function expandZonedMarker(dateInfo, calendarSystem) { - var a = calendarSystem.markerToArray(dateInfo.marker); - return { - marker: dateInfo.marker, - timeZoneOffset: dateInfo.timeZoneOffset, - array: a, - year: a[0], - month: a[1], - day: a[2], - hour: a[3], - minute: a[4], - second: a[5], - millisecond: a[6] - }; - } - - var EventSourceApi = /** @class */ (function () { - function EventSourceApi(calendar, internalEventSource) { - this.calendar = calendar; - this.internalEventSource = internalEventSource; - } - EventSourceApi.prototype.remove = function () { - this.calendar.dispatch({ - type: 'REMOVE_EVENT_SOURCE', - sourceId: this.internalEventSource.sourceId - }); - }; - EventSourceApi.prototype.refetch = function () { - this.calendar.dispatch({ - type: 'FETCH_EVENT_SOURCES', - sourceIds: [this.internalEventSource.sourceId] - }); - }; - Object.defineProperty(EventSourceApi.prototype, "id", { - get: function () { - return this.internalEventSource.publicId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventSourceApi.prototype, "url", { - // only relevant to json-feed event sources - get: function () { - return this.internalEventSource.meta.url; - }, - enumerable: true, - configurable: true - }); - return EventSourceApi; - }()); - - var EventApi = /** @class */ (function () { - function EventApi(calendar, def, instance) { - this._calendar = calendar; - this._def = def; - this._instance = instance || null; - } - /* - TODO: make event struct more responsible for this - */ - EventApi.prototype.setProp = function (name, val) { - var _a, _b; - if (name in DATE_PROPS) ; - else if (name in NON_DATE_PROPS) { - if (typeof NON_DATE_PROPS[name] === 'function') { - val = NON_DATE_PROPS[name](val); - } - this.mutate({ - standardProps: (_a = {}, _a[name] = val, _a) - }); - } - else if (name in UNSCOPED_EVENT_UI_PROPS) { - var ui = void 0; - if (typeof UNSCOPED_EVENT_UI_PROPS[name] === 'function') { - val = UNSCOPED_EVENT_UI_PROPS[name](val); - } - if (name === 'color') { - ui = { backgroundColor: val, borderColor: val }; - } - else if (name === 'editable') { - ui = { startEditable: val, durationEditable: val }; - } - else { - ui = (_b = {}, _b[name] = val, _b); - } - this.mutate({ - standardProps: { ui: ui } - }); - } - }; - EventApi.prototype.setExtendedProp = function (name, val) { - var _a; - this.mutate({ - extendedProps: (_a = {}, _a[name] = val, _a) - }); - }; - EventApi.prototype.setStart = function (startInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var start = dateEnv.createMarker(startInput); - if (start && this._instance) { // TODO: warning if parsed bad - var instanceRange = this._instance.range; - var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); // what if parsed bad!? - if (options.maintainDuration) { - this.mutate({ datesDelta: startDelta }); - } - else { - this.mutate({ startDelta: startDelta }); - } - } - }; - EventApi.prototype.setEnd = function (endInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var end; - if (endInput != null) { - end = dateEnv.createMarker(endInput); - if (!end) { - return; // TODO: warning if parsed bad - } - } - if (this._instance) { - if (end) { - var endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity); - this.mutate({ endDelta: endDelta }); - } - else { - this.mutate({ standardProps: { hasEnd: false } }); - } - } - }; - EventApi.prototype.setDates = function (startInput, endInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var standardProps = { allDay: options.allDay }; - var start = dateEnv.createMarker(startInput); - var end; - if (!start) { - return; // TODO: warning if parsed bad - } - if (endInput != null) { - end = dateEnv.createMarker(endInput); - if (!end) { // TODO: warning if parsed bad - return; - } - } - if (this._instance) { - var instanceRange = this._instance.range; - // when computing the diff for an event being converted to all-day, - // compute diff off of the all-day values the way event-mutation does. - if (options.allDay === true) { - instanceRange = computeAlignedDayRange(instanceRange); - } - var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); - if (end) { - var endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity); - if (durationsEqual(startDelta, endDelta)) { - this.mutate({ datesDelta: startDelta, standardProps: standardProps }); - } - else { - this.mutate({ startDelta: startDelta, endDelta: endDelta, standardProps: standardProps }); - } - } - else { // means "clear the end" - standardProps.hasEnd = false; - this.mutate({ datesDelta: startDelta, standardProps: standardProps }); - } - } - }; - EventApi.prototype.moveStart = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ startDelta: delta }); - } - }; - EventApi.prototype.moveEnd = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ endDelta: delta }); - } - }; - EventApi.prototype.moveDates = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ datesDelta: delta }); - } - }; - EventApi.prototype.setAllDay = function (allDay, options) { - if (options === void 0) { options = {}; } - var standardProps = { allDay: allDay }; - var maintainDuration = options.maintainDuration; - if (maintainDuration == null) { - maintainDuration = this._calendar.opt('allDayMaintainDuration'); - } - if (this._def.allDay !== allDay) { - standardProps.hasEnd = maintainDuration; - } - this.mutate({ standardProps: standardProps }); - }; - EventApi.prototype.formatRange = function (formatInput) { - var dateEnv = this._calendar.dateEnv; - var instance = this._instance; - var formatter = createFormatter(formatInput, this._calendar.opt('defaultRangeSeparator')); - if (this._def.hasEnd) { - return dateEnv.formatRange(instance.range.start, instance.range.end, formatter, { - forcedStartTzo: instance.forcedStartTzo, - forcedEndTzo: instance.forcedEndTzo - }); - } - else { - return dateEnv.format(instance.range.start, formatter, { - forcedTzo: instance.forcedStartTzo - }); - } - }; - EventApi.prototype.mutate = function (mutation) { - var def = this._def; - var instance = this._instance; - if (instance) { - this._calendar.dispatch({ - type: 'MUTATE_EVENTS', - instanceId: instance.instanceId, - mutation: mutation, - fromApi: true - }); - var eventStore = this._calendar.state.eventStore; - this._def = eventStore.defs[def.defId]; - this._instance = eventStore.instances[instance.instanceId]; - } - }; - EventApi.prototype.remove = function () { - this._calendar.dispatch({ - type: 'REMOVE_EVENT_DEF', - defId: this._def.defId - }); - }; - Object.defineProperty(EventApi.prototype, "source", { - get: function () { - var sourceId = this._def.sourceId; - if (sourceId) { - return new EventSourceApi(this._calendar, this._calendar.state.eventSources[sourceId]); - } - return null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "start", { - get: function () { - return this._instance ? - this._calendar.dateEnv.toDate(this._instance.range.start) : - null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "end", { - get: function () { - return (this._instance && this._def.hasEnd) ? - this._calendar.dateEnv.toDate(this._instance.range.end) : - null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "id", { - // computable props that all access the def - // TODO: find a TypeScript-compatible way to do this at scale - get: function () { return this._def.publicId; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "groupId", { - get: function () { return this._def.groupId; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "allDay", { - get: function () { return this._def.allDay; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "title", { - get: function () { return this._def.title; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "url", { - get: function () { return this._def.url; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "rendering", { - get: function () { return this._def.rendering; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "startEditable", { - get: function () { return this._def.ui.startEditable; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "durationEditable", { - get: function () { return this._def.ui.durationEditable; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "constraint", { - get: function () { return this._def.ui.constraints[0] || null; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "overlap", { - get: function () { return this._def.ui.overlap; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "allow", { - get: function () { return this._def.ui.allows[0] || null; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "backgroundColor", { - get: function () { return this._def.ui.backgroundColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "borderColor", { - get: function () { return this._def.ui.borderColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "textColor", { - get: function () { return this._def.ui.textColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "classNames", { - // NOTE: user can't modify these because Object.freeze was called in event-def parsing - get: function () { return this._def.ui.classNames; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "extendedProps", { - get: function () { return this._def.extendedProps; }, - enumerable: true, - configurable: true - }); - return EventApi; - }()); - - /* - Specifying nextDayThreshold signals that all-day ranges should be sliced. - */ - function sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshold) { - var inverseBgByGroupId = {}; - var inverseBgByDefId = {}; - var defByGroupId = {}; - var bgRanges = []; - var fgRanges = []; - var eventUis = compileEventUis(eventStore.defs, eventUiBases); - for (var defId in eventStore.defs) { - var def = eventStore.defs[defId]; - if (def.rendering === 'inverse-background') { - if (def.groupId) { - inverseBgByGroupId[def.groupId] = []; - if (!defByGroupId[def.groupId]) { - defByGroupId[def.groupId] = def; - } - } - else { - inverseBgByDefId[defId] = []; - } - } - } - for (var instanceId in eventStore.instances) { - var instance = eventStore.instances[instanceId]; - var def = eventStore.defs[instance.defId]; - var ui = eventUis[def.defId]; - var origRange = instance.range; - var normalRange = (!def.allDay && nextDayThreshold) ? - computeVisibleDayRange(origRange, nextDayThreshold) : - origRange; - var slicedRange = intersectRanges(normalRange, framingRange); - if (slicedRange) { - if (def.rendering === 'inverse-background') { - if (def.groupId) { - inverseBgByGroupId[def.groupId].push(slicedRange); - } - else { - inverseBgByDefId[instance.defId].push(slicedRange); - } - } - else { - (def.rendering === 'background' ? bgRanges : fgRanges).push({ - def: def, - ui: ui, - instance: instance, - range: slicedRange, - isStart: normalRange.start && normalRange.start.valueOf() === slicedRange.start.valueOf(), - isEnd: normalRange.end && normalRange.end.valueOf() === slicedRange.end.valueOf() - }); - } - } - } - for (var groupId in inverseBgByGroupId) { // BY GROUP - var ranges = inverseBgByGroupId[groupId]; - var invertedRanges = invertRanges(ranges, framingRange); - for (var _i = 0, invertedRanges_1 = invertedRanges; _i < invertedRanges_1.length; _i++) { - var invertedRange = invertedRanges_1[_i]; - var def = defByGroupId[groupId]; - var ui = eventUis[def.defId]; - bgRanges.push({ - def: def, - ui: ui, - instance: null, - range: invertedRange, - isStart: false, - isEnd: false - }); - } - } - for (var defId in inverseBgByDefId) { - var ranges = inverseBgByDefId[defId]; - var invertedRanges = invertRanges(ranges, framingRange); - for (var _a = 0, invertedRanges_2 = invertedRanges; _a < invertedRanges_2.length; _a++) { - var invertedRange = invertedRanges_2[_a]; - bgRanges.push({ - def: eventStore.defs[defId], - ui: eventUis[defId], - instance: null, - range: invertedRange, - isStart: false, - isEnd: false - }); - } - } - return { bg: bgRanges, fg: fgRanges }; - } - function hasBgRendering(def) { - return def.rendering === 'background' || def.rendering === 'inverse-background'; - } - function filterSegsViaEls(view, segs, isMirror) { - if (view.hasPublicHandlers('eventRender')) { - segs = segs.filter(function (seg) { - var custom = view.publiclyTrigger('eventRender', [ - { - event: new EventApi(view.calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirror, - isStart: seg.isStart, - isEnd: seg.isEnd, - // TODO: include seg.range once all components consistently generate it - el: seg.el, - view: view - } - ]); - if (custom === false) { // means don't render at all - return false; - } - else if (custom && custom !== true) { - seg.el = custom; - } - return true; - }); - } - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - setElSeg(seg.el, seg); - } - return segs; - } - function setElSeg(el, seg) { - el.fcSeg = seg; - } - function getElSeg(el) { - return el.fcSeg || null; - } - // event ui computation - function compileEventUis(eventDefs, eventUiBases) { - return mapHash(eventDefs, function (eventDef) { - return compileEventUi(eventDef, eventUiBases); - }); - } - function compileEventUi(eventDef, eventUiBases) { - var uis = []; - if (eventUiBases['']) { - uis.push(eventUiBases['']); - } - if (eventUiBases[eventDef.defId]) { - uis.push(eventUiBases[eventDef.defId]); - } - uis.push(eventDef.ui); - return combineEventUis(uis); - } - - // applies the mutation to ALL defs/instances within the event store - function applyMutationToEventStore(eventStore, eventConfigBase, mutation, calendar) { - var eventConfigs = compileEventUis(eventStore.defs, eventConfigBase); - var dest = createEmptyEventStore(); - for (var defId in eventStore.defs) { - var def = eventStore.defs[defId]; - dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, calendar.pluginSystem.hooks.eventDefMutationAppliers, calendar); - } - for (var instanceId in eventStore.instances) { - var instance = eventStore.instances[instanceId]; - var def = dest.defs[instance.defId]; // important to grab the newly modified def - dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, calendar); - } - return dest; - } - function applyMutationToEventDef(eventDef, eventConfig, mutation, appliers, calendar) { - var standardProps = mutation.standardProps || {}; - // if hasEnd has not been specified, guess a good value based on deltas. - // if duration will change, there's no way the default duration will persist, - // and thus, we need to mark the event as having a real end - if (standardProps.hasEnd == null && - eventConfig.durationEditable && - (mutation.startDelta || mutation.endDelta)) { - standardProps.hasEnd = true; // TODO: is this mutation okay? - } - var copy = __assign({}, eventDef, standardProps, { ui: __assign({}, eventDef.ui, standardProps.ui) }); - if (mutation.extendedProps) { - copy.extendedProps = __assign({}, copy.extendedProps, mutation.extendedProps); - } - for (var _i = 0, appliers_1 = appliers; _i < appliers_1.length; _i++) { - var applier = appliers_1[_i]; - applier(copy, mutation, calendar); - } - if (!copy.hasEnd && calendar.opt('forceEventDuration')) { - copy.hasEnd = true; - } - return copy; - } - function applyMutationToEventInstance(eventInstance, eventDef, // must first be modified by applyMutationToEventDef - eventConfig, mutation, calendar) { - var dateEnv = calendar.dateEnv; - var forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true; - var clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false; - var copy = __assign({}, eventInstance); - if (forceAllDay) { - copy.range = computeAlignedDayRange(copy.range); - } - if (mutation.datesDelta && eventConfig.startEditable) { - copy.range = { - start: dateEnv.add(copy.range.start, mutation.datesDelta), - end: dateEnv.add(copy.range.end, mutation.datesDelta) - }; - } - if (mutation.startDelta && eventConfig.durationEditable) { - copy.range = { - start: dateEnv.add(copy.range.start, mutation.startDelta), - end: copy.range.end - }; - } - if (mutation.endDelta && eventConfig.durationEditable) { - copy.range = { - start: copy.range.start, - end: dateEnv.add(copy.range.end, mutation.endDelta) - }; - } - if (clearEnd) { - copy.range = { - start: copy.range.start, - end: calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start) - }; - } - // in case event was all-day but the supplied deltas were not - // better util for this? - if (eventDef.allDay) { - copy.range = { - start: startOfDay(copy.range.start), - end: startOfDay(copy.range.end) - }; - } - // handle invalid durations - if (copy.range.end < copy.range.start) { - copy.range.end = calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start); - } - return copy; - } - - function reduceEventStore (eventStore, action, eventSources, dateProfile, calendar) { - switch (action.type) { - case 'RECEIVE_EVENTS': // raw - return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, calendar); - case 'ADD_EVENTS': // already parsed, but not expanded - return addEvent(eventStore, action.eventStore, // new ones - dateProfile ? dateProfile.activeRange : null, calendar); - case 'MERGE_EVENTS': // already parsed and expanded - return mergeEventStores(eventStore, action.eventStore); - case 'PREV': // TODO: how do we track all actions that affect dateProfile :( - case 'NEXT': - case 'SET_DATE': - case 'SET_VIEW_TYPE': - if (dateProfile) { - return expandRecurring(eventStore, dateProfile.activeRange, calendar); - } - else { - return eventStore; - } - case 'CHANGE_TIMEZONE': - return rezoneDates(eventStore, action.oldDateEnv, calendar.dateEnv); - case 'MUTATE_EVENTS': - return applyMutationToRelated(eventStore, action.instanceId, action.mutation, action.fromApi, calendar); - case 'REMOVE_EVENT_INSTANCES': - return excludeInstances(eventStore, action.instances); - case 'REMOVE_EVENT_DEF': - return filterEventStoreDefs(eventStore, function (eventDef) { - return eventDef.defId !== action.defId; - }); - case 'REMOVE_EVENT_SOURCE': - return excludeEventsBySourceId(eventStore, action.sourceId); - case 'REMOVE_ALL_EVENT_SOURCES': - return filterEventStoreDefs(eventStore, function (eventDef) { - return !eventDef.sourceId; // only keep events with no source id - }); - case 'REMOVE_ALL_EVENTS': - return createEmptyEventStore(); - case 'RESET_EVENTS': - return { - defs: eventStore.defs, - instances: eventStore.instances - }; - default: - return eventStore; - } - } - function receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, calendar) { - if (eventSource && // not already removed - fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources - ) { - var subset = parseEvents(transformRawEvents(rawEvents, eventSource, calendar), eventSource.sourceId, calendar); - if (fetchRange) { - subset = expandRecurring(subset, fetchRange, calendar); - } - return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset); - } - return eventStore; - } - function addEvent(eventStore, subset, expandRange, calendar) { - if (expandRange) { - subset = expandRecurring(subset, expandRange, calendar); - } - return mergeEventStores(eventStore, subset); - } - function rezoneDates(eventStore, oldDateEnv, newDateEnv) { - var defs = eventStore.defs; - var instances = mapHash(eventStore.instances, function (instance) { - var def = defs[instance.defId]; - if (def.allDay || def.recurringDef) { - return instance; // isn't dependent on timezone - } - else { - return __assign({}, instance, { range: { - start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)), - end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo)) - }, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo }); - } - }); - return { defs: defs, instances: instances }; - } - function applyMutationToRelated(eventStore, instanceId, mutation, fromApi, calendar) { - var relevant = getRelevantEvents(eventStore, instanceId); - var eventConfigBase = fromApi ? - { '': { - startEditable: true, - durationEditable: true, - constraints: [], - overlap: null, - allows: [], - backgroundColor: '', - borderColor: '', - textColor: '', - classNames: [] - } } : - calendar.eventUiBases; - relevant = applyMutationToEventStore(relevant, eventConfigBase, mutation, calendar); - return mergeEventStores(eventStore, relevant); - } - function excludeEventsBySourceId(eventStore, sourceId) { - return filterEventStoreDefs(eventStore, function (eventDef) { - return eventDef.sourceId !== sourceId; - }); - } - // QUESTION: why not just return instances? do a general object-property-exclusion util - function excludeInstances(eventStore, removals) { - return { - defs: eventStore.defs, - instances: filterHash(eventStore.instances, function (instance) { - return !removals[instance.instanceId]; - }) - }; - } - - // high-level segmenting-aware tester functions - // ------------------------------------------------------------------------------------------------------------------------ - function isInteractionValid(interaction, calendar) { - return isNewPropsValid({ eventDrag: interaction }, calendar); // HACK: the eventDrag props is used for ALL interactions - } - function isDateSelectionValid(dateSelection, calendar) { - return isNewPropsValid({ dateSelection: dateSelection }, calendar); - } - function isNewPropsValid(newProps, calendar) { - var view = calendar.view; - var props = __assign({ businessHours: view ? view.props.businessHours : createEmptyEventStore(), dateSelection: '', eventStore: calendar.state.eventStore, eventUiBases: calendar.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps); - return (calendar.pluginSystem.hooks.isPropsValid || isPropsValid)(props, calendar); - } - function isPropsValid(state, calendar, dateSpanMeta, filterConfig) { - if (dateSpanMeta === void 0) { dateSpanMeta = {}; } - if (state.eventDrag && !isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig)) { - return false; - } - if (state.dateSelection && !isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig)) { - return false; - } - return true; - } - // Moving Event Validation - // ------------------------------------------------------------------------------------------------------------------------ - function isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig) { - var interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions - var subjectEventStore = interaction.mutatedEvents; - var subjectDefs = subjectEventStore.defs; - var subjectInstances = subjectEventStore.instances; - var subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ? - state.eventUiBases : - { '': calendar.selectionConfig } // if not a real event, validate as a selection - ); - if (filterConfig) { - subjectConfigs = mapHash(subjectConfigs, filterConfig); - } - var otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances); // exclude the subject events. TODO: exclude defs too? - var otherDefs = otherEventStore.defs; - var otherInstances = otherEventStore.instances; - var otherConfigs = compileEventUis(otherDefs, state.eventUiBases); - for (var subjectInstanceId in subjectInstances) { - var subjectInstance = subjectInstances[subjectInstanceId]; - var subjectRange = subjectInstance.range; - var subjectConfig = subjectConfigs[subjectInstance.defId]; - var subjectDef = subjectDefs[subjectInstance.defId]; - // constraint - if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, calendar)) { - return false; - } - // overlap - var overlapFunc = calendar.opt('eventOverlap'); - if (typeof overlapFunc !== 'function') { - overlapFunc = null; - } - for (var otherInstanceId in otherInstances) { - var otherInstance = otherInstances[otherInstanceId]; - // intersect! evaluate - if (rangesIntersect(subjectRange, otherInstance.range)) { - var otherOverlap = otherConfigs[otherInstance.defId].overlap; - // consider the other event's overlap. only do this if the subject event is a "real" event - if (otherOverlap === false && interaction.isEvent) { - return false; - } - if (subjectConfig.overlap === false) { - return false; - } - if (overlapFunc && !overlapFunc(new EventApi(calendar, otherDefs[otherInstance.defId], otherInstance), // still event - new EventApi(calendar, subjectDef, subjectInstance) // moving event - )) { - return false; - } - } - } - // allow (a function) - var calendarEventStore = calendar.state.eventStore; // need global-to-calendar, not local to component (splittable)state - for (var _i = 0, _a = subjectConfig.allows; _i < _a.length; _i++) { - var subjectAllow = _a[_i]; - var subjectDateSpan = __assign({}, dateSpanMeta, { range: subjectInstance.range, allDay: subjectDef.allDay }); - var origDef = calendarEventStore.defs[subjectDef.defId]; - var origInstance = calendarEventStore.instances[subjectInstanceId]; - var eventApi = void 0; - if (origDef) { // was previously in the calendar - eventApi = new EventApi(calendar, origDef, origInstance); - } - else { // was an external event - eventApi = new EventApi(calendar, subjectDef); // no instance, because had no dates - } - if (!subjectAllow(calendar.buildDateSpanApi(subjectDateSpan), eventApi)) { - return false; - } - } - } - return true; - } - // Date Selection Validation - // ------------------------------------------------------------------------------------------------------------------------ - function isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig) { - var relevantEventStore = state.eventStore; - var relevantDefs = relevantEventStore.defs; - var relevantInstances = relevantEventStore.instances; - var selection = state.dateSelection; - var selectionRange = selection.range; - var selectionConfig = calendar.selectionConfig; - if (filterConfig) { - selectionConfig = filterConfig(selectionConfig); - } - // constraint - if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, calendar)) { - return false; - } - // overlap - var overlapFunc = calendar.opt('selectOverlap'); - if (typeof overlapFunc !== 'function') { - overlapFunc = null; - } - for (var relevantInstanceId in relevantInstances) { - var relevantInstance = relevantInstances[relevantInstanceId]; - // intersect! evaluate - if (rangesIntersect(selectionRange, relevantInstance.range)) { - if (selectionConfig.overlap === false) { - return false; - } - if (overlapFunc && !overlapFunc(new EventApi(calendar, relevantDefs[relevantInstance.defId], relevantInstance))) { - return false; - } - } - } - // allow (a function) - for (var _i = 0, _a = selectionConfig.allows; _i < _a.length; _i++) { - var selectionAllow = _a[_i]; - var fullDateSpan = __assign({}, dateSpanMeta, selection); - if (!selectionAllow(calendar.buildDateSpanApi(fullDateSpan), null)) { - return false; - } - } - return true; - } - // Constraint Utils - // ------------------------------------------------------------------------------------------------------------------------ - function allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, calendar) { - for (var _i = 0, constraints_1 = constraints; _i < constraints_1.length; _i++) { - var constraint = constraints_1[_i]; - if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, calendar), subjectRange)) { - return false; - } - } - return true; - } - function constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours - otherEventStore, // for if constraint is an even group ID - businessHoursUnexpanded, // for if constraint is 'businessHours' - calendar // for expanding businesshours - ) { - if (constraint === 'businessHours') { - return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, calendar)); - } - else if (typeof constraint === 'string') { // an group ID - return eventStoreToRanges(filterEventStoreDefs(otherEventStore, function (eventDef) { - return eventDef.groupId === constraint; - })); - } - else if (typeof constraint === 'object' && constraint) { // non-null object - return eventStoreToRanges(expandRecurring(constraint, subjectRange, calendar)); - } - return []; // if it's false - } - // TODO: move to event-store file? - function eventStoreToRanges(eventStore) { - var instances = eventStore.instances; - var ranges = []; - for (var instanceId in instances) { - ranges.push(instances[instanceId].range); - } - return ranges; - } - // TODO: move to geom file? - function anyRangesContainRange(outerRanges, innerRange) { - for (var _i = 0, outerRanges_1 = outerRanges; _i < outerRanges_1.length; _i++) { - var outerRange = outerRanges_1[_i]; - if (rangeContainsRange(outerRange, innerRange)) { - return true; - } - } - return false; - } - // Parsing - // ------------------------------------------------------------------------------------------------------------------------ - function normalizeConstraint(input, calendar) { - if (Array.isArray(input)) { - return parseEvents(input, '', calendar, true); // allowOpenRange=true - } - else if (typeof input === 'object' && input) { // non-null object - return parseEvents([input], '', calendar, true); // allowOpenRange=true - } - else if (input != null) { - return String(input); - } - else { - return null; - } - } - - function htmlEscape(s) { - return (s + '').replace(/&/g, '&') - .replace(//g, '>') - .replace(/'/g, ''') - .replace(/"/g, '"') - .replace(/\n/g, '
'); - } - // Given a hash of CSS properties, returns a string of CSS. - // Uses property names as-is (no camel-case conversion). Will not make statements for null/undefined values. - function cssToStr(cssProps) { - var statements = []; - for (var name_1 in cssProps) { - var val = cssProps[name_1]; - if (val != null && val !== '') { - statements.push(name_1 + ':' + val); - } - } - return statements.join(';'); - } - // Given an object hash of HTML attribute names to values, - // generates a string that can be injected between < > in HTML - function attrsToStr(attrs) { - var parts = []; - for (var name_2 in attrs) { - var val = attrs[name_2]; - if (val != null) { - parts.push(name_2 + '="' + htmlEscape(val) + '"'); - } - } - return parts.join(' '); - } - function parseClassName(raw) { - if (Array.isArray(raw)) { - return raw; - } - else if (typeof raw === 'string') { - return raw.split(/\s+/); - } - else { - return []; - } - } - - var UNSCOPED_EVENT_UI_PROPS = { - editable: Boolean, - startEditable: Boolean, - durationEditable: Boolean, - constraint: null, - overlap: null, - allow: null, - className: parseClassName, - classNames: parseClassName, - color: String, - backgroundColor: String, - borderColor: String, - textColor: String - }; - function processUnscopedUiProps(rawProps, calendar, leftovers) { - var props = refineProps(rawProps, UNSCOPED_EVENT_UI_PROPS, {}, leftovers); - var constraint = normalizeConstraint(props.constraint, calendar); - return { - startEditable: props.startEditable != null ? props.startEditable : props.editable, - durationEditable: props.durationEditable != null ? props.durationEditable : props.editable, - constraints: constraint != null ? [constraint] : [], - overlap: props.overlap, - allows: props.allow != null ? [props.allow] : [], - backgroundColor: props.backgroundColor || props.color, - borderColor: props.borderColor || props.color, - textColor: props.textColor, - classNames: props.classNames.concat(props.className) - }; - } - function processScopedUiProps(prefix, rawScoped, calendar, leftovers) { - var rawUnscoped = {}; - var wasFound = {}; - for (var key in UNSCOPED_EVENT_UI_PROPS) { - var scopedKey = prefix + capitaliseFirstLetter(key); - rawUnscoped[key] = rawScoped[scopedKey]; - wasFound[scopedKey] = true; - } - if (prefix === 'event') { - rawUnscoped.editable = rawScoped.editable; // special case. there is no 'eventEditable', just 'editable' - } - if (leftovers) { - for (var key in rawScoped) { - if (!wasFound[key]) { - leftovers[key] = rawScoped[key]; - } - } - } - return processUnscopedUiProps(rawUnscoped, calendar); - } - var EMPTY_EVENT_UI = { - startEditable: null, - durationEditable: null, - constraints: [], - overlap: null, - allows: [], - backgroundColor: '', - borderColor: '', - textColor: '', - classNames: [] - }; - // prevent against problems with <2 args! - function combineEventUis(uis) { - return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI); - } - function combineTwoEventUis(item0, item1) { - return { - startEditable: item1.startEditable != null ? item1.startEditable : item0.startEditable, - durationEditable: item1.durationEditable != null ? item1.durationEditable : item0.durationEditable, - constraints: item0.constraints.concat(item1.constraints), - overlap: typeof item1.overlap === 'boolean' ? item1.overlap : item0.overlap, - allows: item0.allows.concat(item1.allows), - backgroundColor: item1.backgroundColor || item0.backgroundColor, - borderColor: item1.borderColor || item0.borderColor, - textColor: item1.textColor || item0.textColor, - classNames: item0.classNames.concat(item1.classNames) - }; - } - - var NON_DATE_PROPS = { - id: String, - groupId: String, - title: String, - url: String, - rendering: String, - extendedProps: null - }; - var DATE_PROPS = { - start: null, - date: null, - end: null, - allDay: null - }; - var uid = 0; - function parseEvent(raw, sourceId, calendar, allowOpenRange) { - var allDayDefault = computeIsAllDayDefault(sourceId, calendar); - var leftovers0 = {}; - var recurringRes = parseRecurring(raw, // raw, but with single-event stuff stripped out - allDayDefault, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes, leftovers0 // will populate with non-recurring props - ); - if (recurringRes) { - var def = parseEventDef(leftovers0, sourceId, recurringRes.allDay, Boolean(recurringRes.duration), calendar); - def.recurringDef = { - typeId: recurringRes.typeId, - typeData: recurringRes.typeData, - duration: recurringRes.duration - }; - return { def: def, instance: null }; - } - else { - var leftovers1 = {}; - var singleRes = parseSingle(raw, allDayDefault, calendar, leftovers1, allowOpenRange); - if (singleRes) { - var def = parseEventDef(leftovers1, sourceId, singleRes.allDay, singleRes.hasEnd, calendar); - var instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo); - return { def: def, instance: instance }; - } - } - return null; - } - /* - Will NOT populate extendedProps with the leftover properties. - Will NOT populate date-related props. - The EventNonDateInput has been normalized (id => publicId, etc). - */ - function parseEventDef(raw, sourceId, allDay, hasEnd, calendar) { - var leftovers = {}; - var def = pluckNonDateProps(raw, calendar, leftovers); - def.defId = String(uid++); - def.sourceId = sourceId; - def.allDay = allDay; - def.hasEnd = hasEnd; - for (var _i = 0, _a = calendar.pluginSystem.hooks.eventDefParsers; _i < _a.length; _i++) { - var eventDefParser = _a[_i]; - var newLeftovers = {}; - eventDefParser(def, leftovers, newLeftovers); - leftovers = newLeftovers; - } - def.extendedProps = __assign(leftovers, def.extendedProps || {}); - // help out EventApi from having user modify props - Object.freeze(def.ui.classNames); - Object.freeze(def.extendedProps); - return def; - } - function createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) { - return { - instanceId: String(uid++), - defId: defId, - range: range, - forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo, - forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo - }; - } - function parseSingle(raw, allDayDefault, calendar, leftovers, allowOpenRange) { - var props = pluckDateProps(raw, leftovers); - var allDay = props.allDay; - var startMeta; - var startMarker = null; - var hasEnd = false; - var endMeta; - var endMarker = null; - startMeta = calendar.dateEnv.createMarkerMeta(props.start); - if (startMeta) { - startMarker = startMeta.marker; - } - else if (!allowOpenRange) { - return null; - } - if (props.end != null) { - endMeta = calendar.dateEnv.createMarkerMeta(props.end); - } - if (allDay == null) { - if (allDayDefault != null) { - allDay = allDayDefault; - } - else { - // fall back to the date props LAST - allDay = (!startMeta || startMeta.isTimeUnspecified) && - (!endMeta || endMeta.isTimeUnspecified); - } - } - if (allDay && startMarker) { - startMarker = startOfDay(startMarker); - } - if (endMeta) { - endMarker = endMeta.marker; - if (allDay) { - endMarker = startOfDay(endMarker); - } - if (startMarker && endMarker <= startMarker) { - endMarker = null; - } - } - if (endMarker) { - hasEnd = true; - } - else if (!allowOpenRange) { - hasEnd = calendar.opt('forceEventDuration') || false; - endMarker = calendar.dateEnv.add(startMarker, allDay ? - calendar.defaultAllDayEventDuration : - calendar.defaultTimedEventDuration); - } - return { - allDay: allDay, - hasEnd: hasEnd, - range: { start: startMarker, end: endMarker }, - forcedStartTzo: startMeta ? startMeta.forcedTzo : null, - forcedEndTzo: endMeta ? endMeta.forcedTzo : null - }; - } - function pluckDateProps(raw, leftovers) { - var props = refineProps(raw, DATE_PROPS, {}, leftovers); - props.start = (props.start !== null) ? props.start : props.date; - delete props.date; - return props; - } - function pluckNonDateProps(raw, calendar, leftovers) { - var preLeftovers = {}; - var props = refineProps(raw, NON_DATE_PROPS, {}, preLeftovers); - var ui = processUnscopedUiProps(preLeftovers, calendar, leftovers); - props.publicId = props.id; - delete props.id; - props.ui = ui; - return props; - } - function computeIsAllDayDefault(sourceId, calendar) { - var res = null; - if (sourceId) { - var source = calendar.state.eventSources[sourceId]; - res = source.allDayDefault; - } - if (res == null) { - res = calendar.opt('allDayDefault'); - } - return res; - } - - var DEF_DEFAULTS = { - startTime: '09:00', - endTime: '17:00', - daysOfWeek: [1, 2, 3, 4, 5], - rendering: 'inverse-background', - classNames: 'fc-nonbusiness', - groupId: '_businessHours' // so multiple defs get grouped - }; - /* - TODO: pass around as EventDefHash!!! - */ - function parseBusinessHours(input, calendar) { - return parseEvents(refineInputs(input), '', calendar); - } - function refineInputs(input) { - var rawDefs; - if (input === true) { - rawDefs = [{}]; // will get DEF_DEFAULTS verbatim - } - else if (Array.isArray(input)) { - // if specifying an array, every sub-definition NEEDS a day-of-week - rawDefs = input.filter(function (rawDef) { - return rawDef.daysOfWeek; - }); - } - else if (typeof input === 'object' && input) { // non-null object - rawDefs = [input]; - } - else { // is probably false - rawDefs = []; - } - rawDefs = rawDefs.map(function (rawDef) { - return __assign({}, DEF_DEFAULTS, rawDef); - }); - return rawDefs; - } - - function memoizeRendering(renderFunc, unrenderFunc, dependencies) { - if (dependencies === void 0) { dependencies = []; } - var dependents = []; - var thisContext; - var prevArgs; - function unrender() { - if (prevArgs) { - for (var _i = 0, dependents_1 = dependents; _i < dependents_1.length; _i++) { - var dependent = dependents_1[_i]; - dependent.unrender(); - } - if (unrenderFunc) { - unrenderFunc.apply(thisContext, prevArgs); - } - prevArgs = null; - } - } - function res() { - if (!prevArgs || !isArraysEqual(prevArgs, arguments)) { - unrender(); - thisContext = this; - prevArgs = arguments; - renderFunc.apply(this, arguments); - } - } - res.dependents = dependents; - res.unrender = unrender; - for (var _i = 0, dependencies_1 = dependencies; _i < dependencies_1.length; _i++) { - var dependency = dependencies_1[_i]; - dependency.dependents.push(res); - } - return res; - } - - var EMPTY_EVENT_STORE = createEmptyEventStore(); // for purecomponents. TODO: keep elsewhere - var Splitter = /** @class */ (function () { - function Splitter() { - this.getKeysForEventDefs = memoize(this._getKeysForEventDefs); - this.splitDateSelection = memoize(this._splitDateSpan); - this.splitEventStore = memoize(this._splitEventStore); - this.splitIndividualUi = memoize(this._splitIndividualUi); - this.splitEventDrag = memoize(this._splitInteraction); - this.splitEventResize = memoize(this._splitInteraction); - this.eventUiBuilders = {}; // TODO: typescript protection - } - Splitter.prototype.splitProps = function (props) { - var _this = this; - var keyInfos = this.getKeyInfo(props); - var defKeys = this.getKeysForEventDefs(props.eventStore); - var dateSelections = this.splitDateSelection(props.dateSelection); - var individualUi = this.splitIndividualUi(props.eventUiBases, defKeys); // the individual *bases* - var eventStores = this.splitEventStore(props.eventStore, defKeys); - var eventDrags = this.splitEventDrag(props.eventDrag); - var eventResizes = this.splitEventResize(props.eventResize); - var splitProps = {}; - this.eventUiBuilders = mapHash(keyInfos, function (info, key) { - return _this.eventUiBuilders[key] || memoize(buildEventUiForKey); - }); - for (var key in keyInfos) { - var keyInfo = keyInfos[key]; - var eventStore = eventStores[key] || EMPTY_EVENT_STORE; - var buildEventUi = this.eventUiBuilders[key]; - splitProps[key] = { - businessHours: keyInfo.businessHours || props.businessHours, - dateSelection: dateSelections[key] || null, - eventStore: eventStore, - eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]), - eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '', - eventDrag: eventDrags[key] || null, - eventResize: eventResizes[key] || null - }; - } - return splitProps; - }; - Splitter.prototype._splitDateSpan = function (dateSpan) { - var dateSpans = {}; - if (dateSpan) { - var keys = this.getKeysForDateSpan(dateSpan); - for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { - var key = keys_1[_i]; - dateSpans[key] = dateSpan; - } - } - return dateSpans; - }; - Splitter.prototype._getKeysForEventDefs = function (eventStore) { - var _this = this; - return mapHash(eventStore.defs, function (eventDef) { - return _this.getKeysForEventDef(eventDef); - }); - }; - Splitter.prototype._splitEventStore = function (eventStore, defKeys) { - var defs = eventStore.defs, instances = eventStore.instances; - var splitStores = {}; - for (var defId in defs) { - for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) { - var key = _a[_i]; - if (!splitStores[key]) { - splitStores[key] = createEmptyEventStore(); - } - splitStores[key].defs[defId] = defs[defId]; - } - } - for (var instanceId in instances) { - var instance = instances[instanceId]; - for (var _b = 0, _c = defKeys[instance.defId]; _b < _c.length; _b++) { - var key = _c[_b]; - if (splitStores[key]) { // must have already been created - splitStores[key].instances[instanceId] = instance; - } - } - } - return splitStores; - }; - Splitter.prototype._splitIndividualUi = function (eventUiBases, defKeys) { - var splitHashes = {}; - for (var defId in eventUiBases) { - if (defId) { // not the '' key - for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) { - var key = _a[_i]; - if (!splitHashes[key]) { - splitHashes[key] = {}; - } - splitHashes[key][defId] = eventUiBases[defId]; - } - } - } - return splitHashes; - }; - Splitter.prototype._splitInteraction = function (interaction) { - var splitStates = {}; - if (interaction) { - var affectedStores_1 = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents) // can't use cached. might be events from other calendar - ); - // can't rely on defKeys because event data is mutated - var mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents); - var mutatedStores_1 = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId); - var populate = function (key) { - if (!splitStates[key]) { - splitStates[key] = { - affectedEvents: affectedStores_1[key] || EMPTY_EVENT_STORE, - mutatedEvents: mutatedStores_1[key] || EMPTY_EVENT_STORE, - isEvent: interaction.isEvent, - origSeg: interaction.origSeg - }; - } - }; - for (var key in affectedStores_1) { - populate(key); - } - for (var key in mutatedStores_1) { - populate(key); - } - } - return splitStates; - }; - return Splitter; - }()); - function buildEventUiForKey(allUi, eventUiForKey, individualUi) { - var baseParts = []; - if (allUi) { - baseParts.push(allUi); - } - if (eventUiForKey) { - baseParts.push(eventUiForKey); - } - var stuff = { - '': combineEventUis(baseParts) - }; - if (individualUi) { - __assign(stuff, individualUi); - } - return stuff; - } - - // Generates HTML for an anchor to another view into the calendar. - // Will either generate an
tag or a non-clickable tag, depending on enabled settings. - // `gotoOptions` can either be a DateMarker, or an object with the form: - // { date, type, forceOff } - // `type` is a view-type like "day" or "week". default value is "day". - // `attrs` and `innerHtml` are use to generate the rest of the HTML tag. - function buildGotoAnchorHtml(component, gotoOptions, attrs, innerHtml) { - var dateEnv = component.dateEnv; - var date; - var type; - var forceOff; - var finalOptions; - if (gotoOptions instanceof Date) { - date = gotoOptions; // a single date-like input - } - else { - date = gotoOptions.date; - type = gotoOptions.type; - forceOff = gotoOptions.forceOff; - } - finalOptions = { - date: dateEnv.formatIso(date, { omitTime: true }), - type: type || 'day' - }; - if (typeof attrs === 'string') { - innerHtml = attrs; - attrs = null; - } - attrs = attrs ? ' ' + attrsToStr(attrs) : ''; // will have a leading space - innerHtml = innerHtml || ''; - if (!forceOff && component.opt('navLinks')) { - return '' + - innerHtml + - ''; - } - else { - return '' + - innerHtml + - ''; - } - } - function getAllDayHtml(component) { - return component.opt('allDayHtml') || htmlEscape(component.opt('allDayText')); - } - // Computes HTML classNames for a single-day element - function getDayClasses(date, dateProfile, context, noThemeHighlight) { - var calendar = context.calendar, view = context.view, theme = context.theme, dateEnv = context.dateEnv; - var classes = []; - var todayStart; - var todayEnd; - if (!rangeContainsMarker(dateProfile.activeRange, date)) { - classes.push('fc-disabled-day'); - } - else { - classes.push('fc-' + DAY_IDS[date.getUTCDay()]); - if (view.opt('monthMode') && - dateEnv.getMonth(date) !== dateEnv.getMonth(dateProfile.currentRange.start)) { - classes.push('fc-other-month'); - } - todayStart = startOfDay(calendar.getNow()); - todayEnd = addDays(todayStart, 1); - if (date < todayStart) { - classes.push('fc-past'); - } - else if (date >= todayEnd) { - classes.push('fc-future'); - } - else { - classes.push('fc-today'); - if (noThemeHighlight !== true) { - classes.push(theme.getClass('today')); - } - } - } - return classes; - } - - // given a function that resolves a result asynchronously. - // the function can either call passed-in success and failure callbacks, - // or it can return a promise. - // if you need to pass additional params to func, bind them first. - function unpromisify(func, success, failure) { - // guard against success/failure callbacks being called more than once - // and guard against a promise AND callback being used together. - var isResolved = false; - var wrappedSuccess = function () { - if (!isResolved) { - isResolved = true; - success.apply(this, arguments); - } - }; - var wrappedFailure = function () { - if (!isResolved) { - isResolved = true; - if (failure) { - failure.apply(this, arguments); - } - } - }; - var res = func(wrappedSuccess, wrappedFailure); - if (res && typeof res.then === 'function') { - res.then(wrappedSuccess, wrappedFailure); - } - } - - var Mixin = /** @class */ (function () { - function Mixin() { - } - // mix into a CLASS - Mixin.mixInto = function (destClass) { - this.mixIntoObj(destClass.prototype); - }; - // mix into ANY object - Mixin.mixIntoObj = function (destObj) { - var _this = this; - Object.getOwnPropertyNames(this.prototype).forEach(function (name) { - if (!destObj[name]) { // if destination doesn't already define it - destObj[name] = _this.prototype[name]; - } - }); - }; - /* - will override existing methods - TODO: remove! not used anymore - */ - Mixin.mixOver = function (destClass) { - var _this = this; - Object.getOwnPropertyNames(this.prototype).forEach(function (name) { - destClass.prototype[name] = _this.prototype[name]; - }); - }; - return Mixin; - }()); - - /* - USAGE: - import { default as EmitterMixin, EmitterInterface } from './EmitterMixin' - in class: - on: EmitterInterface['on'] - one: EmitterInterface['one'] - off: EmitterInterface['off'] - trigger: EmitterInterface['trigger'] - triggerWith: EmitterInterface['triggerWith'] - hasHandlers: EmitterInterface['hasHandlers'] - after class: - EmitterMixin.mixInto(TheClass) - */ - var EmitterMixin = /** @class */ (function (_super) { - __extends(EmitterMixin, _super); - function EmitterMixin() { - return _super !== null && _super.apply(this, arguments) || this; - } - EmitterMixin.prototype.on = function (type, handler) { - addToHash(this._handlers || (this._handlers = {}), type, handler); - return this; // for chaining - }; - // todo: add comments - EmitterMixin.prototype.one = function (type, handler) { - addToHash(this._oneHandlers || (this._oneHandlers = {}), type, handler); - return this; // for chaining - }; - EmitterMixin.prototype.off = function (type, handler) { - if (this._handlers) { - removeFromHash(this._handlers, type, handler); - } - if (this._oneHandlers) { - removeFromHash(this._oneHandlers, type, handler); - } - return this; // for chaining - }; - EmitterMixin.prototype.trigger = function (type) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - this.triggerWith(type, this, args); - return this; // for chaining - }; - EmitterMixin.prototype.triggerWith = function (type, context, args) { - if (this._handlers) { - applyAll(this._handlers[type], context, args); - } - if (this._oneHandlers) { - applyAll(this._oneHandlers[type], context, args); - delete this._oneHandlers[type]; // will never fire again - } - return this; // for chaining - }; - EmitterMixin.prototype.hasHandlers = function (type) { - return (this._handlers && this._handlers[type] && this._handlers[type].length) || - (this._oneHandlers && this._oneHandlers[type] && this._oneHandlers[type].length); - }; - return EmitterMixin; - }(Mixin)); - function addToHash(hash, type, handler) { - (hash[type] || (hash[type] = [])) - .push(handler); - } - function removeFromHash(hash, type, handler) { - if (handler) { - if (hash[type]) { - hash[type] = hash[type].filter(function (func) { - return func !== handler; - }); - } - } - else { - delete hash[type]; // remove all handler funcs for this type - } - } - - /* - Records offset information for a set of elements, relative to an origin element. - Can record the left/right OR the top/bottom OR both. - Provides methods for querying the cache by position. - */ - var PositionCache = /** @class */ (function () { - function PositionCache(originEl, els, isHorizontal, isVertical) { - this.originEl = originEl; - this.els = els; - this.isHorizontal = isHorizontal; - this.isVertical = isVertical; - } - // Queries the els for coordinates and stores them. - // Call this method before using and of the get* methods below. - PositionCache.prototype.build = function () { - var originEl = this.originEl; - var originClientRect = this.originClientRect = - originEl.getBoundingClientRect(); // relative to viewport top-left - if (this.isHorizontal) { - this.buildElHorizontals(originClientRect.left); - } - if (this.isVertical) { - this.buildElVerticals(originClientRect.top); - } - }; - // Populates the left/right internal coordinate arrays - PositionCache.prototype.buildElHorizontals = function (originClientLeft) { - var lefts = []; - var rights = []; - for (var _i = 0, _a = this.els; _i < _a.length; _i++) { - var el = _a[_i]; - var rect = el.getBoundingClientRect(); - lefts.push(rect.left - originClientLeft); - rights.push(rect.right - originClientLeft); - } - this.lefts = lefts; - this.rights = rights; - }; - // Populates the top/bottom internal coordinate arrays - PositionCache.prototype.buildElVerticals = function (originClientTop) { - var tops = []; - var bottoms = []; - for (var _i = 0, _a = this.els; _i < _a.length; _i++) { - var el = _a[_i]; - var rect = el.getBoundingClientRect(); - tops.push(rect.top - originClientTop); - bottoms.push(rect.bottom - originClientTop); - } - this.tops = tops; - this.bottoms = bottoms; - }; - // Given a left offset (from document left), returns the index of the el that it horizontally intersects. - // If no intersection is made, returns undefined. - PositionCache.prototype.leftToIndex = function (leftPosition) { - var lefts = this.lefts; - var rights = this.rights; - var len = lefts.length; - var i; - for (i = 0; i < len; i++) { - if (leftPosition >= lefts[i] && leftPosition < rights[i]) { - return i; - } - } - }; - // Given a top offset (from document top), returns the index of the el that it vertically intersects. - // If no intersection is made, returns undefined. - PositionCache.prototype.topToIndex = function (topPosition) { - var tops = this.tops; - var bottoms = this.bottoms; - var len = tops.length; - var i; - for (i = 0; i < len; i++) { - if (topPosition >= tops[i] && topPosition < bottoms[i]) { - return i; - } - } - }; - // Gets the width of the element at the given index - PositionCache.prototype.getWidth = function (leftIndex) { - return this.rights[leftIndex] - this.lefts[leftIndex]; - }; - // Gets the height of the element at the given index - PositionCache.prototype.getHeight = function (topIndex) { - return this.bottoms[topIndex] - this.tops[topIndex]; - }; - return PositionCache; - }()); - - /* - An object for getting/setting scroll-related information for an element. - Internally, this is done very differently for window versus DOM element, - so this object serves as a common interface. - */ - var ScrollController = /** @class */ (function () { - function ScrollController() { - } - ScrollController.prototype.getMaxScrollTop = function () { - return this.getScrollHeight() - this.getClientHeight(); - }; - ScrollController.prototype.getMaxScrollLeft = function () { - return this.getScrollWidth() - this.getClientWidth(); - }; - ScrollController.prototype.canScrollVertically = function () { - return this.getMaxScrollTop() > 0; - }; - ScrollController.prototype.canScrollHorizontally = function () { - return this.getMaxScrollLeft() > 0; - }; - ScrollController.prototype.canScrollUp = function () { - return this.getScrollTop() > 0; - }; - ScrollController.prototype.canScrollDown = function () { - return this.getScrollTop() < this.getMaxScrollTop(); - }; - ScrollController.prototype.canScrollLeft = function () { - return this.getScrollLeft() > 0; - }; - ScrollController.prototype.canScrollRight = function () { - return this.getScrollLeft() < this.getMaxScrollLeft(); - }; - return ScrollController; - }()); - var ElementScrollController = /** @class */ (function (_super) { - __extends(ElementScrollController, _super); - function ElementScrollController(el) { - var _this = _super.call(this) || this; - _this.el = el; - return _this; - } - ElementScrollController.prototype.getScrollTop = function () { - return this.el.scrollTop; - }; - ElementScrollController.prototype.getScrollLeft = function () { - return this.el.scrollLeft; - }; - ElementScrollController.prototype.setScrollTop = function (top) { - this.el.scrollTop = top; - }; - ElementScrollController.prototype.setScrollLeft = function (left) { - this.el.scrollLeft = left; - }; - ElementScrollController.prototype.getScrollWidth = function () { - return this.el.scrollWidth; - }; - ElementScrollController.prototype.getScrollHeight = function () { - return this.el.scrollHeight; - }; - ElementScrollController.prototype.getClientHeight = function () { - return this.el.clientHeight; - }; - ElementScrollController.prototype.getClientWidth = function () { - return this.el.clientWidth; - }; - return ElementScrollController; - }(ScrollController)); - var WindowScrollController = /** @class */ (function (_super) { - __extends(WindowScrollController, _super); - function WindowScrollController() { - return _super !== null && _super.apply(this, arguments) || this; - } - WindowScrollController.prototype.getScrollTop = function () { - return window.pageYOffset; - }; - WindowScrollController.prototype.getScrollLeft = function () { - return window.pageXOffset; - }; - WindowScrollController.prototype.setScrollTop = function (n) { - window.scroll(window.pageXOffset, n); - }; - WindowScrollController.prototype.setScrollLeft = function (n) { - window.scroll(n, window.pageYOffset); - }; - WindowScrollController.prototype.getScrollWidth = function () { - return document.documentElement.scrollWidth; - }; - WindowScrollController.prototype.getScrollHeight = function () { - return document.documentElement.scrollHeight; - }; - WindowScrollController.prototype.getClientHeight = function () { - return document.documentElement.clientHeight; - }; - WindowScrollController.prototype.getClientWidth = function () { - return document.documentElement.clientWidth; - }; - return WindowScrollController; - }(ScrollController)); - - /* - Embodies a div that has potential scrollbars - */ - var ScrollComponent = /** @class */ (function (_super) { - __extends(ScrollComponent, _super); - function ScrollComponent(overflowX, overflowY) { - var _this = _super.call(this, createElement('div', { - className: 'fc-scroller' - })) || this; - _this.overflowX = overflowX; - _this.overflowY = overflowY; - _this.applyOverflow(); - return _this; - } - // sets to natural height, unlocks overflow - ScrollComponent.prototype.clear = function () { - this.setHeight('auto'); - this.applyOverflow(); - }; - ScrollComponent.prototype.destroy = function () { - removeElement(this.el); - }; - // Overflow - // ----------------------------------------------------------------------------------------------------------------- - ScrollComponent.prototype.applyOverflow = function () { - applyStyle(this.el, { - overflowX: this.overflowX, - overflowY: this.overflowY - }); - }; - // Causes any 'auto' overflow values to resolves to 'scroll' or 'hidden'. - // Useful for preserving scrollbar widths regardless of future resizes. - // Can pass in scrollbarWidths for optimization. - ScrollComponent.prototype.lockOverflow = function (scrollbarWidths) { - var overflowX = this.overflowX; - var overflowY = this.overflowY; - scrollbarWidths = scrollbarWidths || this.getScrollbarWidths(); - if (overflowX === 'auto') { - overflowX = (scrollbarWidths.bottom || // horizontal scrollbars? - this.canScrollHorizontally() // OR scrolling pane with massless scrollbars? - ) ? 'scroll' : 'hidden'; - } - if (overflowY === 'auto') { - overflowY = (scrollbarWidths.left || scrollbarWidths.right || // horizontal scrollbars? - this.canScrollVertically() // OR scrolling pane with massless scrollbars? - ) ? 'scroll' : 'hidden'; - } - applyStyle(this.el, { overflowX: overflowX, overflowY: overflowY }); - }; - ScrollComponent.prototype.setHeight = function (height) { - applyStyleProp(this.el, 'height', height); - }; - ScrollComponent.prototype.getScrollbarWidths = function () { - var edges = computeEdges(this.el); - return { - left: edges.scrollbarLeft, - right: edges.scrollbarRight, - bottom: edges.scrollbarBottom - }; - }; - return ScrollComponent; - }(ElementScrollController)); - - var Theme = /** @class */ (function () { - function Theme(calendarOptions) { - this.calendarOptions = calendarOptions; - this.processIconOverride(); - } - Theme.prototype.processIconOverride = function () { - if (this.iconOverrideOption) { - this.setIconOverride(this.calendarOptions[this.iconOverrideOption]); - } - }; - Theme.prototype.setIconOverride = function (iconOverrideHash) { - var iconClassesCopy; - var buttonName; - if (typeof iconOverrideHash === 'object' && iconOverrideHash) { // non-null object - iconClassesCopy = __assign({}, this.iconClasses); - for (buttonName in iconOverrideHash) { - iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]); - } - this.iconClasses = iconClassesCopy; - } - else if (iconOverrideHash === false) { - this.iconClasses = {}; - } - }; - Theme.prototype.applyIconOverridePrefix = function (className) { - var prefix = this.iconOverridePrefix; - if (prefix && className.indexOf(prefix) !== 0) { // if not already present - className = prefix + className; - } - return className; - }; - Theme.prototype.getClass = function (key) { - return this.classes[key] || ''; - }; - Theme.prototype.getIconClass = function (buttonName) { - var className = this.iconClasses[buttonName]; - if (className) { - return this.baseIconClass + ' ' + className; - } - return ''; - }; - Theme.prototype.getCustomButtonIconClass = function (customButtonProps) { - var className; - if (this.iconOverrideCustomButtonOption) { - className = customButtonProps[this.iconOverrideCustomButtonOption]; - if (className) { - return this.baseIconClass + ' ' + this.applyIconOverridePrefix(className); - } - } - return ''; - }; - return Theme; - }()); - Theme.prototype.classes = {}; - Theme.prototype.iconClasses = {}; - Theme.prototype.baseIconClass = ''; - Theme.prototype.iconOverridePrefix = ''; - - var guid = 0; - var Component = /** @class */ (function () { - function Component(context, isView) { - // HACK to populate view at top of component instantiation call chain - if (isView) { - context.view = this; - } - this.uid = String(guid++); - this.context = context; - this.dateEnv = context.dateEnv; - this.theme = context.theme; - this.view = context.view; - this.calendar = context.calendar; - this.isRtl = this.opt('dir') === 'rtl'; - } - Component.addEqualityFuncs = function (newFuncs) { - this.prototype.equalityFuncs = __assign({}, this.prototype.equalityFuncs, newFuncs); - }; - Component.prototype.opt = function (name) { - return this.context.options[name]; - }; - Component.prototype.receiveProps = function (props) { - var _a = recycleProps(this.props || {}, props, this.equalityFuncs), anyChanges = _a.anyChanges, comboProps = _a.comboProps; - this.props = comboProps; - if (anyChanges) { - this.render(comboProps); - } - }; - Component.prototype.render = function (props) { - }; - // after destroy is called, this component won't ever be used again - Component.prototype.destroy = function () { - }; - return Component; - }()); - Component.prototype.equalityFuncs = {}; - /* - Reuses old values when equal. If anything is unequal, returns newProps as-is. - Great for PureComponent, but won't be feasible with React, so just eliminate and use React's DOM diffing. - */ - function recycleProps(oldProps, newProps, equalityFuncs) { - var comboProps = {}; // some old, some new - var anyChanges = false; - for (var key in newProps) { - if (key in oldProps && (oldProps[key] === newProps[key] || - (equalityFuncs[key] && equalityFuncs[key](oldProps[key], newProps[key])))) { - // equal to old? use old prop - comboProps[key] = oldProps[key]; - } - else { - comboProps[key] = newProps[key]; - anyChanges = true; - } - } - for (var key in oldProps) { - if (!(key in newProps)) { - anyChanges = true; - break; - } - } - return { anyChanges: anyChanges, comboProps: comboProps }; - } - - /* - PURPOSES: - - hook up to fg, fill, and mirror renderers - - interface for dragging and hits - */ - var DateComponent = /** @class */ (function (_super) { - __extends(DateComponent, _super); - function DateComponent(context, el, isView) { - var _this = _super.call(this, context, isView) || this; - _this.el = el; - return _this; - } - DateComponent.prototype.destroy = function () { - _super.prototype.destroy.call(this); - removeElement(this.el); - }; - // TODO: WHAT ABOUT (sourceSeg && sourceSeg.component.doesDragMirror) - // - // Event Drag-n-Drop Rendering (for both events and external elements) - // --------------------------------------------------------------------------------------------------------------- - /* - renderEventDragSegs(state: EventSegUiInteractionState) { - if (state) { - let { isEvent, segs, sourceSeg } = state - - if (this.eventRenderer) { - this.eventRenderer.hideByHash(state.affectedInstances) - } - - // if the user is dragging something that is considered an event with real event data, - // and this component likes to do drag mirrors OR the component where the seg came from - // likes to do drag mirrors, then render a drag mirror. - if (isEvent && (this.doesDragMirror || sourceSeg && sourceSeg.component.doesDragMirror)) { - if (this.mirrorRenderer) { - this.mirrorRenderer.renderSegs(segs, { isDragging: true, sourceSeg }) - } - } - - // if it would be impossible to render a drag mirror OR this component likes to render - // highlights, then render a highlight. - if (!isEvent || this.doesDragHighlight) { - if (this.fillRenderer) { - this.fillRenderer.renderSegs('highlight', segs) - } - } - } - } - */ - // Hit System - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.buildPositionCaches = function () { - }; - DateComponent.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) { - return null; // this should be abstract - }; - // Validation - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.isInteractionValid = function (interaction) { - var calendar = this.calendar; - var dateProfile = this.props.dateProfile; // HACK - var instances = interaction.mutatedEvents.instances; - if (dateProfile) { // HACK for DayTile - for (var instanceId in instances) { - if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) { - return false; - } - } - } - return isInteractionValid(interaction, calendar); - }; - DateComponent.prototype.isDateSelectionValid = function (selection) { - var dateProfile = this.props.dateProfile; // HACK - if (dateProfile && // HACK for DayTile - !rangeContainsRange(dateProfile.validRange, selection.range)) { - return false; - } - return isDateSelectionValid(selection, this.calendar); - }; - // Triggering - // ----------------------------------------------------------------------------------------------------------------- - // TODO: move to Calendar - DateComponent.prototype.publiclyTrigger = function (name, args) { - var calendar = this.calendar; - return calendar.publiclyTrigger(name, args); - }; - DateComponent.prototype.publiclyTriggerAfterSizing = function (name, args) { - var calendar = this.calendar; - return calendar.publiclyTriggerAfterSizing(name, args); - }; - DateComponent.prototype.hasPublicHandlers = function (name) { - var calendar = this.calendar; - return calendar.hasPublicHandlers(name); - }; - DateComponent.prototype.triggerRenderedSegs = function (segs, isMirrors) { - var calendar = this.calendar; - if (this.hasPublicHandlers('eventPositioned')) { - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - this.publiclyTriggerAfterSizing('eventPositioned', [ - { - event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirrors, - isStart: seg.isStart, - isEnd: seg.isEnd, - el: seg.el, - view: this // safe to cast because this method is only called on context.view - } - ]); - } - } - if (!calendar.state.loadingLevel) { // avoid initial empty state while pending - calendar.afterSizingTriggers._eventsPositioned = [null]; // fire once - } - }; - DateComponent.prototype.triggerWillRemoveSegs = function (segs, isMirrors) { - var calendar = this.calendar; - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - calendar.trigger('eventElRemove', seg.el); - } - if (this.hasPublicHandlers('eventDestroy')) { - for (var _a = 0, segs_3 = segs; _a < segs_3.length; _a++) { - var seg = segs_3[_a]; - this.publiclyTrigger('eventDestroy', [ - { - event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirrors, - el: seg.el, - view: this // safe to cast because this method is only called on context.view - } - ]); - } - } - }; - // Pointer Interaction Utils - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.isValidSegDownEl = function (el) { - return !this.props.eventDrag && // HACK - !this.props.eventResize && // HACK - !elementClosest(el, '.fc-mirror') && - (this.isPopover() || !this.isInPopover(el)); - // ^above line ensures we don't detect a seg interaction within a nested component. - // it's a HACK because it only supports a popover as the nested component. - }; - DateComponent.prototype.isValidDateDownEl = function (el) { - var segEl = elementClosest(el, this.fgSegSelector); - return (!segEl || segEl.classList.contains('fc-mirror')) && - !elementClosest(el, '.fc-more') && // a "more.." link - !elementClosest(el, 'a[data-goto]') && // a clickable nav link - !this.isInPopover(el); - }; - DateComponent.prototype.isPopover = function () { - return this.el.classList.contains('fc-popover'); - }; - DateComponent.prototype.isInPopover = function (el) { - return Boolean(elementClosest(el, '.fc-popover')); - }; - return DateComponent; - }(Component)); - DateComponent.prototype.fgSegSelector = '.fc-event-container > *'; - DateComponent.prototype.bgSegSelector = '.fc-bgevent:not(.fc-nonbusiness)'; - - var uid$1 = 0; - function createPlugin(input) { - return { - id: String(uid$1++), - deps: input.deps || [], - reducers: input.reducers || [], - eventDefParsers: input.eventDefParsers || [], - isDraggableTransformers: input.isDraggableTransformers || [], - eventDragMutationMassagers: input.eventDragMutationMassagers || [], - eventDefMutationAppliers: input.eventDefMutationAppliers || [], - dateSelectionTransformers: input.dateSelectionTransformers || [], - datePointTransforms: input.datePointTransforms || [], - dateSpanTransforms: input.dateSpanTransforms || [], - views: input.views || {}, - viewPropsTransformers: input.viewPropsTransformers || [], - isPropsValid: input.isPropsValid || null, - externalDefTransforms: input.externalDefTransforms || [], - eventResizeJoinTransforms: input.eventResizeJoinTransforms || [], - viewContainerModifiers: input.viewContainerModifiers || [], - eventDropTransformers: input.eventDropTransformers || [], - componentInteractions: input.componentInteractions || [], - calendarInteractions: input.calendarInteractions || [], - themeClasses: input.themeClasses || {}, - eventSourceDefs: input.eventSourceDefs || [], - cmdFormatter: input.cmdFormatter, - recurringTypes: input.recurringTypes || [], - namedTimeZonedImpl: input.namedTimeZonedImpl, - defaultView: input.defaultView || '', - elementDraggingImpl: input.elementDraggingImpl, - optionChangeHandlers: input.optionChangeHandlers || {} - }; - } - var PluginSystem = /** @class */ (function () { - function PluginSystem() { - this.hooks = { - reducers: [], - eventDefParsers: [], - isDraggableTransformers: [], - eventDragMutationMassagers: [], - eventDefMutationAppliers: [], - dateSelectionTransformers: [], - datePointTransforms: [], - dateSpanTransforms: [], - views: {}, - viewPropsTransformers: [], - isPropsValid: null, - externalDefTransforms: [], - eventResizeJoinTransforms: [], - viewContainerModifiers: [], - eventDropTransformers: [], - componentInteractions: [], - calendarInteractions: [], - themeClasses: {}, - eventSourceDefs: [], - cmdFormatter: null, - recurringTypes: [], - namedTimeZonedImpl: null, - defaultView: '', - elementDraggingImpl: null, - optionChangeHandlers: {} - }; - this.addedHash = {}; - } - PluginSystem.prototype.add = function (plugin) { - if (!this.addedHash[plugin.id]) { - this.addedHash[plugin.id] = true; - for (var _i = 0, _a = plugin.deps; _i < _a.length; _i++) { - var dep = _a[_i]; - this.add(dep); - } - this.hooks = combineHooks(this.hooks, plugin); - } - }; - return PluginSystem; - }()); - function combineHooks(hooks0, hooks1) { - return { - reducers: hooks0.reducers.concat(hooks1.reducers), - eventDefParsers: hooks0.eventDefParsers.concat(hooks1.eventDefParsers), - isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers), - eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers), - eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers), - dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers), - datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms), - dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms), - views: __assign({}, hooks0.views, hooks1.views), - viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers), - isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid, - externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms), - eventResizeJoinTransforms: hooks0.eventResizeJoinTransforms.concat(hooks1.eventResizeJoinTransforms), - viewContainerModifiers: hooks0.viewContainerModifiers.concat(hooks1.viewContainerModifiers), - eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers), - calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions), - componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions), - themeClasses: __assign({}, hooks0.themeClasses, hooks1.themeClasses), - eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs), - cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter, - recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes), - namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl, - defaultView: hooks0.defaultView || hooks1.defaultView, - elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl, - optionChangeHandlers: __assign({}, hooks0.optionChangeHandlers, hooks1.optionChangeHandlers) - }; - } - - var eventSourceDef = { - ignoreRange: true, - parseMeta: function (raw) { - if (Array.isArray(raw)) { // short form - return raw; - } - else if (Array.isArray(raw.events)) { - return raw.events; - } - return null; - }, - fetch: function (arg, success) { - success({ - rawEvents: arg.eventSource.meta - }); - } - }; - var ArrayEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef] - }); - - var eventSourceDef$1 = { - parseMeta: function (raw) { - if (typeof raw === 'function') { // short form - return raw; - } - else if (typeof raw.events === 'function') { - return raw.events; - } - return null; - }, - fetch: function (arg, success, failure) { - var dateEnv = arg.calendar.dateEnv; - var func = arg.eventSource.meta; - unpromisify(func.bind(null, { - start: dateEnv.toDate(arg.range.start), - end: dateEnv.toDate(arg.range.end), - startStr: dateEnv.formatIso(arg.range.start), - endStr: dateEnv.formatIso(arg.range.end), - timeZone: dateEnv.timeZone - }), function (rawEvents) { - success({ rawEvents: rawEvents }); // needs an object response - }, failure // send errorObj directly to failure callback - ); - } - }; - var FuncEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef$1] - }); - - function requestJson(method, url, params, successCallback, failureCallback) { - method = method.toUpperCase(); - var body = null; - if (method === 'GET') { - url = injectQueryStringParams(url, params); - } - else { - body = encodeParams(params); - } - var xhr = new XMLHttpRequest(); - xhr.open(method, url, true); - if (method !== 'GET') { - xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - } - xhr.onload = function () { - if (xhr.status >= 200 && xhr.status < 400) { - try { - var res = JSON.parse(xhr.responseText); - successCallback(res, xhr); - } - catch (err) { - failureCallback('Failure parsing JSON', xhr); - } - } - else { - failureCallback('Request failed', xhr); - } - }; - xhr.onerror = function () { - failureCallback('Request failed', xhr); - }; - xhr.send(body); - } - function injectQueryStringParams(url, params) { - return url + - (url.indexOf('?') === -1 ? '?' : '&') + - encodeParams(params); - } - function encodeParams(params) { - var parts = []; - for (var key in params) { - parts.push(encodeURIComponent(key) + '=' + encodeURIComponent(params[key])); - } - return parts.join('&'); - } - - var eventSourceDef$2 = { - parseMeta: function (raw) { - if (typeof raw === 'string') { // short form - raw = { url: raw }; - } - else if (!raw || typeof raw !== 'object' || !raw.url) { - return null; - } - return { - url: raw.url, - method: (raw.method || 'GET').toUpperCase(), - extraParams: raw.extraParams, - startParam: raw.startParam, - endParam: raw.endParam, - timeZoneParam: raw.timeZoneParam - }; - }, - fetch: function (arg, success, failure) { - var meta = arg.eventSource.meta; - var requestParams = buildRequestParams(meta, arg.range, arg.calendar); - requestJson(meta.method, meta.url, requestParams, function (rawEvents, xhr) { - success({ rawEvents: rawEvents, xhr: xhr }); - }, function (errorMessage, xhr) { - failure({ message: errorMessage, xhr: xhr }); - }); - } - }; - var JsonFeedEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef$2] - }); - function buildRequestParams(meta, range, calendar) { - var dateEnv = calendar.dateEnv; - var startParam; - var endParam; - var timeZoneParam; - var customRequestParams; - var params = {}; - startParam = meta.startParam; - if (startParam == null) { - startParam = calendar.opt('startParam'); - } - endParam = meta.endParam; - if (endParam == null) { - endParam = calendar.opt('endParam'); - } - timeZoneParam = meta.timeZoneParam; - if (timeZoneParam == null) { - timeZoneParam = calendar.opt('timeZoneParam'); - } - // retrieve any outbound GET/POST data from the options - if (typeof meta.extraParams === 'function') { - // supplied as a function that returns a key/value object - customRequestParams = meta.extraParams(); - } - else { - // probably supplied as a straight key/value object - customRequestParams = meta.extraParams || {}; - } - __assign(params, customRequestParams); - params[startParam] = dateEnv.formatIso(range.start); - params[endParam] = dateEnv.formatIso(range.end); - if (dateEnv.timeZone !== 'local') { - params[timeZoneParam] = dateEnv.timeZone; - } - return params; - } - - var recurring = { - parse: function (rawEvent, leftoverProps, dateEnv) { - var createMarker = dateEnv.createMarker.bind(dateEnv); - var processors = { - daysOfWeek: null, - startTime: createDuration, - endTime: createDuration, - startRecur: createMarker, - endRecur: createMarker - }; - var props = refineProps(rawEvent, processors, {}, leftoverProps); - var anyValid = false; - for (var propName in props) { - if (props[propName] != null) { - anyValid = true; - break; - } - } - if (anyValid) { - var duration = null; - if ('duration' in leftoverProps) { - duration = createDuration(leftoverProps.duration); - delete leftoverProps.duration; - } - if (!duration && props.startTime && props.endTime) { - duration = subtractDurations(props.endTime, props.startTime); - } - return { - allDayGuess: Boolean(!props.startTime && !props.endTime), - duration: duration, - typeData: props // doesn't need endTime anymore but oh well - }; - } - return null; - }, - expand: function (typeData, framingRange, dateEnv) { - var clippedFramingRange = intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur }); - if (clippedFramingRange) { - return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv); - } - else { - return []; - } - } - }; - var SimpleRecurrencePlugin = createPlugin({ - recurringTypes: [recurring] - }); - function expandRanges(daysOfWeek, startTime, framingRange, dateEnv) { - var dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null; - var dayMarker = startOfDay(framingRange.start); - var endMarker = framingRange.end; - var instanceStarts = []; - while (dayMarker < endMarker) { - var instanceStart - // if everyday, or this particular day-of-week - = void 0; - // if everyday, or this particular day-of-week - if (!dowHash || dowHash[dayMarker.getUTCDay()]) { - if (startTime) { - instanceStart = dateEnv.add(dayMarker, startTime); - } - else { - instanceStart = dayMarker; - } - instanceStarts.push(instanceStart); - } - dayMarker = addDays(dayMarker, 1); - } - return instanceStarts; - } - - var DefaultOptionChangeHandlers = createPlugin({ - optionChangeHandlers: { - events: function (events, calendar, deepEqual) { - handleEventSources([events], calendar, deepEqual); - }, - eventSources: handleEventSources, - plugins: handlePlugins - } - }); - function handleEventSources(inputs, calendar, deepEqual) { - var unfoundSources = hashValuesToArray(calendar.state.eventSources); - var newInputs = []; - for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) { - var input = inputs_1[_i]; - var inputFound = false; - for (var i = 0; i < unfoundSources.length; i++) { - if (deepEqual(unfoundSources[i]._raw, input)) { - unfoundSources.splice(i, 1); // delete - inputFound = true; - break; - } - } - if (!inputFound) { - newInputs.push(input); - } - } - for (var _a = 0, unfoundSources_1 = unfoundSources; _a < unfoundSources_1.length; _a++) { - var unfoundSource = unfoundSources_1[_a]; - calendar.dispatch({ - type: 'REMOVE_EVENT_SOURCE', - sourceId: unfoundSource.sourceId - }); - } - for (var _b = 0, newInputs_1 = newInputs; _b < newInputs_1.length; _b++) { - var newInput = newInputs_1[_b]; - calendar.addEventSource(newInput); - } - } - // shortcoming: won't remove plugins - function handlePlugins(inputs, calendar) { - calendar.addPluginInputs(inputs); // will gracefully handle duplicates - } - - var config = {}; // TODO: make these options - var globalDefaults = { - defaultRangeSeparator: ' - ', - titleRangeSeparator: ' \u2013 ', - defaultTimedEventDuration: '01:00:00', - defaultAllDayEventDuration: { day: 1 }, - forceEventDuration: false, - nextDayThreshold: '00:00:00', - // display - columnHeader: true, - defaultView: '', - aspectRatio: 1.35, - header: { - left: 'title', - center: '', - right: 'today prev,next' - }, - weekends: true, - weekNumbers: false, - weekNumberCalculation: 'local', - editable: false, - // nowIndicator: false, - scrollTime: '06:00:00', - minTime: '00:00:00', - maxTime: '24:00:00', - showNonCurrentDates: true, - // event ajax - lazyFetching: true, - startParam: 'start', - endParam: 'end', - timeZoneParam: 'timeZone', - timeZone: 'local', - // allDayDefault: undefined, - // locale - locales: [], - locale: '', - // dir: will get this from the default locale - // buttonIcons: null, - // allows setting a min-height to the event segment to prevent short events overlapping each other - timeGridEventMinHeight: 0, - themeSystem: 'standard', - // eventResizableFromStart: false, - dragRevertDuration: 500, - dragScroll: true, - allDayMaintainDuration: false, - // selectable: false, - unselectAuto: true, - // selectMinDistance: 0, - dropAccept: '*', - eventOrder: 'start,-duration,allDay,title', - // ^ if start tie, longer events go before shorter. final tie-breaker is title text - // rerenderDelay: null, - eventLimit: false, - eventLimitClick: 'popover', - dayPopoverFormat: { month: 'long', day: 'numeric', year: 'numeric' }, - handleWindowResize: true, - windowResizeDelay: 100, - longPressDelay: 1000, - eventDragMinDistance: 5 // only applies to mouse - }; - var rtlDefaults = { - header: { - left: 'next,prev today', - center: '', - right: 'title' - }, - buttonIcons: { - // TODO: make RTL support the responibility of the theme - prev: 'fc-icon-chevron-right', - next: 'fc-icon-chevron-left', - prevYear: 'fc-icon-chevrons-right', - nextYear: 'fc-icon-chevrons-left' - } - }; - var complexOptions = [ - 'header', - 'footer', - 'buttonText', - 'buttonIcons' - ]; - // Merges an array of option objects into a single object - function mergeOptions(optionObjs) { - return mergeProps(optionObjs, complexOptions); - } - // TODO: move this stuff to a "plugin"-related file... - var INTERNAL_PLUGINS = [ - ArrayEventSourcePlugin, - FuncEventSourcePlugin, - JsonFeedEventSourcePlugin, - SimpleRecurrencePlugin, - DefaultOptionChangeHandlers - ]; - function refinePluginDefs(pluginInputs) { - var plugins = []; - for (var _i = 0, pluginInputs_1 = pluginInputs; _i < pluginInputs_1.length; _i++) { - var pluginInput = pluginInputs_1[_i]; - if (typeof pluginInput === 'string') { - var globalName = 'FullCalendar' + capitaliseFirstLetter(pluginInput); - if (!window[globalName]) { - console.warn('Plugin file not loaded for ' + pluginInput); - } - else { - plugins.push(window[globalName].default); // is an ES6 module - } - } - else { - plugins.push(pluginInput); - } - } - return INTERNAL_PLUGINS.concat(plugins); - } - - var RAW_EN_LOCALE = { - code: 'en', - week: { - dow: 0, - doy: 4 // 4 days need to be within the year to be considered the first week - }, - dir: 'ltr', - buttonText: { - prev: 'prev', - next: 'next', - prevYear: 'prev year', - nextYear: 'next year', - year: 'year', - today: 'today', - month: 'month', - week: 'week', - day: 'day', - list: 'list' - }, - weekLabel: 'W', - allDayText: 'all-day', - eventLimitText: 'more', - noEventsMessage: 'No events to display' - }; - function parseRawLocales(explicitRawLocales) { - var defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en'; - var globalArray = window['FullCalendarLocalesAll'] || []; // from locales-all.js - var globalObject = window['FullCalendarLocales'] || {}; // from locales/*.js. keys are meaningless - var allRawLocales = globalArray.concat(// globalArray is low prio - hashValuesToArray(globalObject), // medium prio - explicitRawLocales // highest prio - ); - var rawLocaleMap = { - en: RAW_EN_LOCALE // necessary? - }; - for (var _i = 0, allRawLocales_1 = allRawLocales; _i < allRawLocales_1.length; _i++) { - var rawLocale = allRawLocales_1[_i]; - rawLocaleMap[rawLocale.code] = rawLocale; - } - return { - map: rawLocaleMap, - defaultCode: defaultCode - }; - } - function buildLocale(inputSingular, available) { - if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) { - return parseLocale(inputSingular.code, [inputSingular.code], inputSingular); - } - else { - return queryLocale(inputSingular, available); - } - } - function queryLocale(codeArg, available) { - var codes = [].concat(codeArg || []); // will convert to array - var raw = queryRawLocale(codes, available) || RAW_EN_LOCALE; - return parseLocale(codeArg, codes, raw); - } - function queryRawLocale(codes, available) { - for (var i = 0; i < codes.length; i++) { - var parts = codes[i].toLocaleLowerCase().split('-'); - for (var j = parts.length; j > 0; j--) { - var simpleId = parts.slice(0, j).join('-'); - if (available[simpleId]) { - return available[simpleId]; - } - } - } - return null; - } - function parseLocale(codeArg, codes, raw) { - var merged = mergeProps([RAW_EN_LOCALE, raw], ['buttonText']); - delete merged.code; // don't want this part of the options - var week = merged.week; - delete merged.week; - return { - codeArg: codeArg, - codes: codes, - week: week, - simpleNumberFormat: new Intl.NumberFormat(codeArg), - options: merged - }; - } - - var OptionsManager = /** @class */ (function () { - function OptionsManager(overrides) { - this.overrides = __assign({}, overrides); // make a copy - this.dynamicOverrides = {}; - this.compute(); - } - OptionsManager.prototype.mutate = function (updates, removals, isDynamic) { - var overrideHash = isDynamic ? this.dynamicOverrides : this.overrides; - __assign(overrideHash, updates); - for (var _i = 0, removals_1 = removals; _i < removals_1.length; _i++) { - var propName = removals_1[_i]; - delete overrideHash[propName]; - } - this.compute(); - }; - // Computes the flattened options hash for the calendar and assigns to `this.options`. - // Assumes this.overrides and this.dynamicOverrides have already been initialized. - OptionsManager.prototype.compute = function () { - // TODO: not a very efficient system - var locales = firstDefined(// explicit locale option given? - this.dynamicOverrides.locales, this.overrides.locales, globalDefaults.locales); - var locale = firstDefined(// explicit locales option given? - this.dynamicOverrides.locale, this.overrides.locale, globalDefaults.locale); - var available = parseRawLocales(locales); - var localeDefaults = buildLocale(locale || available.defaultCode, available.map).options; - var dir = firstDefined(// based on options computed so far, is direction RTL? - this.dynamicOverrides.dir, this.overrides.dir, localeDefaults.dir); - var dirDefaults = dir === 'rtl' ? rtlDefaults : {}; - this.dirDefaults = dirDefaults; - this.localeDefaults = localeDefaults; - this.computed = mergeOptions([ - globalDefaults, - dirDefaults, - localeDefaults, - this.overrides, - this.dynamicOverrides - ]); - }; - return OptionsManager; - }()); - - var calendarSystemClassMap = {}; - function registerCalendarSystem(name, theClass) { - calendarSystemClassMap[name] = theClass; - } - function createCalendarSystem(name) { - return new calendarSystemClassMap[name](); - } - var GregorianCalendarSystem = /** @class */ (function () { - function GregorianCalendarSystem() { - } - GregorianCalendarSystem.prototype.getMarkerYear = function (d) { - return d.getUTCFullYear(); - }; - GregorianCalendarSystem.prototype.getMarkerMonth = function (d) { - return d.getUTCMonth(); - }; - GregorianCalendarSystem.prototype.getMarkerDay = function (d) { - return d.getUTCDate(); - }; - GregorianCalendarSystem.prototype.arrayToMarker = function (arr) { - return arrayToUtcDate(arr); - }; - GregorianCalendarSystem.prototype.markerToArray = function (marker) { - return dateToUtcArray(marker); - }; - return GregorianCalendarSystem; - }()); - registerCalendarSystem('gregory', GregorianCalendarSystem); - - var ISO_RE = /^\s*(\d{4})(-(\d{2})(-(\d{2})([T ](\d{2}):(\d{2})(:(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/; - function parse(str) { - var m = ISO_RE.exec(str); - if (m) { - var marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number('0.' + m[12]) * 1000 : 0)); - if (isValidDate(marker)) { - var timeZoneOffset = null; - if (m[13]) { - timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 + - Number(m[18] || 0)); - } - return { - marker: marker, - isTimeUnspecified: !m[6], - timeZoneOffset: timeZoneOffset - }; - } - } - return null; - } - - var DateEnv = /** @class */ (function () { - function DateEnv(settings) { - var timeZone = this.timeZone = settings.timeZone; - var isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC'; - if (settings.namedTimeZoneImpl && isNamedTimeZone) { - this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone); - } - this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl); - this.calendarSystem = createCalendarSystem(settings.calendarSystem); - this.locale = settings.locale; - this.weekDow = settings.locale.week.dow; - this.weekDoy = settings.locale.week.doy; - if (settings.weekNumberCalculation === 'ISO') { - this.weekDow = 1; - this.weekDoy = 4; - } - if (typeof settings.firstDay === 'number') { - this.weekDow = settings.firstDay; - } - if (typeof settings.weekNumberCalculation === 'function') { - this.weekNumberFunc = settings.weekNumberCalculation; - } - this.weekLabel = settings.weekLabel != null ? settings.weekLabel : settings.locale.options.weekLabel; - this.cmdFormatter = settings.cmdFormatter; - } - // Creating / Parsing - DateEnv.prototype.createMarker = function (input) { - var meta = this.createMarkerMeta(input); - if (meta === null) { - return null; - } - return meta.marker; - }; - DateEnv.prototype.createNowMarker = function () { - if (this.canComputeOffset) { - return this.timestampToMarker(new Date().valueOf()); - } - else { - // if we can't compute the current date val for a timezone, - // better to give the current local date vals than UTC - return arrayToUtcDate(dateToLocalArray(new Date())); - } - }; - DateEnv.prototype.createMarkerMeta = function (input) { - if (typeof input === 'string') { - return this.parse(input); - } - var marker = null; - if (typeof input === 'number') { - marker = this.timestampToMarker(input); - } - else if (input instanceof Date) { - input = input.valueOf(); - if (!isNaN(input)) { - marker = this.timestampToMarker(input); - } - } - else if (Array.isArray(input)) { - marker = arrayToUtcDate(input); - } - if (marker === null || !isValidDate(marker)) { - return null; - } - return { marker: marker, isTimeUnspecified: false, forcedTzo: null }; - }; - DateEnv.prototype.parse = function (s) { - var parts = parse(s); - if (parts === null) { - return null; - } - var marker = parts.marker; - var forcedTzo = null; - if (parts.timeZoneOffset !== null) { - if (this.canComputeOffset) { - marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000); - } - else { - forcedTzo = parts.timeZoneOffset; - } - } - return { marker: marker, isTimeUnspecified: parts.isTimeUnspecified, forcedTzo: forcedTzo }; - }; - // Accessors - DateEnv.prototype.getYear = function (marker) { - return this.calendarSystem.getMarkerYear(marker); - }; - DateEnv.prototype.getMonth = function (marker) { - return this.calendarSystem.getMarkerMonth(marker); - }; - // Adding / Subtracting - DateEnv.prototype.add = function (marker, dur) { - var a = this.calendarSystem.markerToArray(marker); - a[0] += dur.years; - a[1] += dur.months; - a[2] += dur.days; - a[6] += dur.milliseconds; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.subtract = function (marker, dur) { - var a = this.calendarSystem.markerToArray(marker); - a[0] -= dur.years; - a[1] -= dur.months; - a[2] -= dur.days; - a[6] -= dur.milliseconds; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.addYears = function (marker, n) { - var a = this.calendarSystem.markerToArray(marker); - a[0] += n; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.addMonths = function (marker, n) { - var a = this.calendarSystem.markerToArray(marker); - a[1] += n; - return this.calendarSystem.arrayToMarker(a); - }; - // Diffing Whole Units - DateEnv.prototype.diffWholeYears = function (m0, m1) { - var calendarSystem = this.calendarSystem; - if (timeAsMs(m0) === timeAsMs(m1) && - calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) && - calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) { - return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0); - } - return null; - }; - DateEnv.prototype.diffWholeMonths = function (m0, m1) { - var calendarSystem = this.calendarSystem; - if (timeAsMs(m0) === timeAsMs(m1) && - calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) { - return (calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0)) + - (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12; - } - return null; - }; - // Range / Duration - DateEnv.prototype.greatestWholeUnit = function (m0, m1) { - var n = this.diffWholeYears(m0, m1); - if (n !== null) { - return { unit: 'year', value: n }; - } - n = this.diffWholeMonths(m0, m1); - if (n !== null) { - return { unit: 'month', value: n }; - } - n = diffWholeWeeks(m0, m1); - if (n !== null) { - return { unit: 'week', value: n }; - } - n = diffWholeDays(m0, m1); - if (n !== null) { - return { unit: 'day', value: n }; - } - n = diffHours(m0, m1); - if (isInt(n)) { - return { unit: 'hour', value: n }; - } - n = diffMinutes(m0, m1); - if (isInt(n)) { - return { unit: 'minute', value: n }; - } - n = diffSeconds(m0, m1); - if (isInt(n)) { - return { unit: 'second', value: n }; - } - return { unit: 'millisecond', value: m1.valueOf() - m0.valueOf() }; - }; - DateEnv.prototype.countDurationsBetween = function (m0, m1, d) { - // TODO: can use greatestWholeUnit - var diff; - if (d.years) { - diff = this.diffWholeYears(m0, m1); - if (diff !== null) { - return diff / asRoughYears(d); - } - } - if (d.months) { - diff = this.diffWholeMonths(m0, m1); - if (diff !== null) { - return diff / asRoughMonths(d); - } - } - if (d.days) { - diff = diffWholeDays(m0, m1); - if (diff !== null) { - return diff / asRoughDays(d); - } - } - return (m1.valueOf() - m0.valueOf()) / asRoughMs(d); - }; - // Start-Of - DateEnv.prototype.startOf = function (m, unit) { - if (unit === 'year') { - return this.startOfYear(m); - } - else if (unit === 'month') { - return this.startOfMonth(m); - } - else if (unit === 'week') { - return this.startOfWeek(m); - } - else if (unit === 'day') { - return startOfDay(m); - } - else if (unit === 'hour') { - return startOfHour(m); - } - else if (unit === 'minute') { - return startOfMinute(m); - } - else if (unit === 'second') { - return startOfSecond(m); - } - }; - DateEnv.prototype.startOfYear = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m) - ]); - }; - DateEnv.prototype.startOfMonth = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m), - this.calendarSystem.getMarkerMonth(m) - ]); - }; - DateEnv.prototype.startOfWeek = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m), - this.calendarSystem.getMarkerMonth(m), - m.getUTCDate() - ((m.getUTCDay() - this.weekDow + 7) % 7) - ]); - }; - // Week Number - DateEnv.prototype.computeWeekNumber = function (marker) { - if (this.weekNumberFunc) { - return this.weekNumberFunc(this.toDate(marker)); - } - else { - return weekOfYear(marker, this.weekDow, this.weekDoy); - } - }; - // TODO: choke on timeZoneName: long - DateEnv.prototype.format = function (marker, formatter, dateOptions) { - if (dateOptions === void 0) { dateOptions = {}; } - return formatter.format({ - marker: marker, - timeZoneOffset: dateOptions.forcedTzo != null ? - dateOptions.forcedTzo : - this.offsetForMarker(marker) - }, this); - }; - DateEnv.prototype.formatRange = function (start, end, formatter, dateOptions) { - if (dateOptions === void 0) { dateOptions = {}; } - if (dateOptions.isEndExclusive) { - end = addMs(end, -1); - } - return formatter.formatRange({ - marker: start, - timeZoneOffset: dateOptions.forcedStartTzo != null ? - dateOptions.forcedStartTzo : - this.offsetForMarker(start) - }, { - marker: end, - timeZoneOffset: dateOptions.forcedEndTzo != null ? - dateOptions.forcedEndTzo : - this.offsetForMarker(end) - }, this); - }; - DateEnv.prototype.formatIso = function (marker, extraOptions) { - if (extraOptions === void 0) { extraOptions = {}; } - var timeZoneOffset = null; - if (!extraOptions.omitTimeZoneOffset) { - if (extraOptions.forcedTzo != null) { - timeZoneOffset = extraOptions.forcedTzo; - } - else { - timeZoneOffset = this.offsetForMarker(marker); - } - } - return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime); - }; - // TimeZone - DateEnv.prototype.timestampToMarker = function (ms) { - if (this.timeZone === 'local') { - return arrayToUtcDate(dateToLocalArray(new Date(ms))); - } - else if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) { - return new Date(ms); - } - else { - return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms)); - } - }; - DateEnv.prototype.offsetForMarker = function (m) { - if (this.timeZone === 'local') { - return -arrayToLocalDate(dateToUtcArray(m)).getTimezoneOffset(); // convert "inverse" offset to "normal" offset - } - else if (this.timeZone === 'UTC') { - return 0; - } - else if (this.namedTimeZoneImpl) { - return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)); - } - return null; - }; - // Conversion - DateEnv.prototype.toDate = function (m, forcedTzo) { - if (this.timeZone === 'local') { - return arrayToLocalDate(dateToUtcArray(m)); - } - else if (this.timeZone === 'UTC') { - return new Date(m.valueOf()); // make sure it's a copy - } - else if (!this.namedTimeZoneImpl) { - return new Date(m.valueOf() - (forcedTzo || 0)); - } - else { - return new Date(m.valueOf() - - this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60 // convert minutes -> ms - ); - } - }; - return DateEnv; - }()); - - var SIMPLE_SOURCE_PROPS = { - id: String, - allDayDefault: Boolean, - eventDataTransform: Function, - success: Function, - failure: Function - }; - var uid$2 = 0; - function doesSourceNeedRange(eventSource, calendar) { - var defs = calendar.pluginSystem.hooks.eventSourceDefs; - return !defs[eventSource.sourceDefId].ignoreRange; - } - function parseEventSource(raw, calendar) { - var defs = calendar.pluginSystem.hooks.eventSourceDefs; - for (var i = defs.length - 1; i >= 0; i--) { // later-added plugins take precedence - var def = defs[i]; - var meta = def.parseMeta(raw); - if (meta) { - var res = parseEventSourceProps(typeof raw === 'object' ? raw : {}, meta, i, calendar); - res._raw = raw; - return res; - } - } - return null; - } - function parseEventSourceProps(raw, meta, sourceDefId, calendar) { - var leftovers0 = {}; - var props = refineProps(raw, SIMPLE_SOURCE_PROPS, {}, leftovers0); - var leftovers1 = {}; - var ui = processUnscopedUiProps(leftovers0, calendar, leftovers1); - props.isFetching = false; - props.latestFetchId = ''; - props.fetchRange = null; - props.publicId = String(raw.id || ''); - props.sourceId = String(uid$2++); - props.sourceDefId = sourceDefId; - props.meta = meta; - props.ui = ui; - props.extendedProps = leftovers1; - return props; - } - - function reduceEventSources (eventSources, action, dateProfile, calendar) { - switch (action.type) { - case 'ADD_EVENT_SOURCES': // already parsed - return addSources(eventSources, action.sources, dateProfile ? dateProfile.activeRange : null, calendar); - case 'REMOVE_EVENT_SOURCE': - return removeSource(eventSources, action.sourceId); - case 'PREV': // TODO: how do we track all actions that affect dateProfile :( - case 'NEXT': - case 'SET_DATE': - case 'SET_VIEW_TYPE': - if (dateProfile) { - return fetchDirtySources(eventSources, dateProfile.activeRange, calendar); - } - else { - return eventSources; - } - case 'FETCH_EVENT_SOURCES': - case 'CHANGE_TIMEZONE': - return fetchSourcesByIds(eventSources, action.sourceIds ? - arrayToHash(action.sourceIds) : - excludeStaticSources(eventSources, calendar), dateProfile ? dateProfile.activeRange : null, calendar); - case 'RECEIVE_EVENTS': - case 'RECEIVE_EVENT_ERROR': - return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange); - case 'REMOVE_ALL_EVENT_SOURCES': - return {}; - default: - return eventSources; - } - } - var uid$3 = 0; - function addSources(eventSourceHash, sources, fetchRange, calendar) { - var hash = {}; - for (var _i = 0, sources_1 = sources; _i < sources_1.length; _i++) { - var source = sources_1[_i]; - hash[source.sourceId] = source; - } - if (fetchRange) { - hash = fetchDirtySources(hash, fetchRange, calendar); - } - return __assign({}, eventSourceHash, hash); - } - function removeSource(eventSourceHash, sourceId) { - return filterHash(eventSourceHash, function (eventSource) { - return eventSource.sourceId !== sourceId; - }); - } - function fetchDirtySources(sourceHash, fetchRange, calendar) { - return fetchSourcesByIds(sourceHash, filterHash(sourceHash, function (eventSource) { - return isSourceDirty(eventSource, fetchRange, calendar); - }), fetchRange, calendar); - } - function isSourceDirty(eventSource, fetchRange, calendar) { - if (!doesSourceNeedRange(eventSource, calendar)) { - return !eventSource.latestFetchId; - } - else { - return !calendar.opt('lazyFetching') || - !eventSource.fetchRange || - fetchRange.start < eventSource.fetchRange.start || - fetchRange.end > eventSource.fetchRange.end; - } - } - function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, calendar) { - var nextSources = {}; - for (var sourceId in prevSources) { - var source = prevSources[sourceId]; - if (sourceIdHash[sourceId]) { - nextSources[sourceId] = fetchSource(source, fetchRange, calendar); - } - else { - nextSources[sourceId] = source; - } - } - return nextSources; - } - function fetchSource(eventSource, fetchRange, calendar) { - var sourceDef = calendar.pluginSystem.hooks.eventSourceDefs[eventSource.sourceDefId]; - var fetchId = String(uid$3++); - sourceDef.fetch({ - eventSource: eventSource, - calendar: calendar, - range: fetchRange - }, function (res) { - var rawEvents = res.rawEvents; - var calSuccess = calendar.opt('eventSourceSuccess'); - var calSuccessRes; - var sourceSuccessRes; - if (eventSource.success) { - sourceSuccessRes = eventSource.success(rawEvents, res.xhr); - } - if (calSuccess) { - calSuccessRes = calSuccess(rawEvents, res.xhr); - } - rawEvents = sourceSuccessRes || calSuccessRes || rawEvents; - calendar.dispatch({ - type: 'RECEIVE_EVENTS', - sourceId: eventSource.sourceId, - fetchId: fetchId, - fetchRange: fetchRange, - rawEvents: rawEvents - }); - }, function (error) { - var callFailure = calendar.opt('eventSourceFailure'); - console.warn(error.message, error); - if (eventSource.failure) { - eventSource.failure(error); - } - if (callFailure) { - callFailure(error); - } - calendar.dispatch({ - type: 'RECEIVE_EVENT_ERROR', - sourceId: eventSource.sourceId, - fetchId: fetchId, - fetchRange: fetchRange, - error: error - }); - }); - return __assign({}, eventSource, { isFetching: true, latestFetchId: fetchId }); - } - function receiveResponse(sourceHash, sourceId, fetchId, fetchRange) { - var _a; - var eventSource = sourceHash[sourceId]; - if (eventSource && // not already removed - fetchId === eventSource.latestFetchId) { - return __assign({}, sourceHash, (_a = {}, _a[sourceId] = __assign({}, eventSource, { isFetching: false, fetchRange: fetchRange }), _a)); - } - return sourceHash; - } - function excludeStaticSources(eventSources, calendar) { - return filterHash(eventSources, function (eventSource) { - return doesSourceNeedRange(eventSource, calendar); - }); - } - - var DateProfileGenerator = /** @class */ (function () { - function DateProfileGenerator(viewSpec, calendar) { - this.viewSpec = viewSpec; - this.options = viewSpec.options; - this.dateEnv = calendar.dateEnv; - this.calendar = calendar; - this.initHiddenDays(); - } - /* Date Range Computation - ------------------------------------------------------------------------------------------------------------------*/ - // Builds a structure with info about what the dates/ranges will be for the "prev" view. - DateProfileGenerator.prototype.buildPrev = function (currentDateProfile, currentDate) { - var dateEnv = this.dateEnv; - var prevDate = dateEnv.subtract(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month - currentDateProfile.dateIncrement); - return this.build(prevDate, -1); - }; - // Builds a structure with info about what the dates/ranges will be for the "next" view. - DateProfileGenerator.prototype.buildNext = function (currentDateProfile, currentDate) { - var dateEnv = this.dateEnv; - var nextDate = dateEnv.add(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month - currentDateProfile.dateIncrement); - return this.build(nextDate, 1); - }; - // Builds a structure holding dates/ranges for rendering around the given date. - // Optional direction param indicates whether the date is being incremented/decremented - // from its previous value. decremented = -1, incremented = 1 (default). - DateProfileGenerator.prototype.build = function (currentDate, direction, forceToValid) { - if (forceToValid === void 0) { forceToValid = false; } - var validRange; - var minTime = null; - var maxTime = null; - var currentInfo; - var isRangeAllDay; - var renderRange; - var activeRange; - var isValid; - validRange = this.buildValidRange(); - validRange = this.trimHiddenDays(validRange); - if (forceToValid) { - currentDate = constrainMarkerToRange(currentDate, validRange); - } - currentInfo = this.buildCurrentRangeInfo(currentDate, direction); - isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit); - renderRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.range), currentInfo.unit, isRangeAllDay); - renderRange = this.trimHiddenDays(renderRange); - activeRange = renderRange; - if (!this.options.showNonCurrentDates) { - activeRange = intersectRanges(activeRange, currentInfo.range); - } - minTime = createDuration(this.options.minTime); - maxTime = createDuration(this.options.maxTime); - activeRange = this.adjustActiveRange(activeRange, minTime, maxTime); - activeRange = intersectRanges(activeRange, validRange); // might return null - // it's invalid if the originally requested date is not contained, - // or if the range is completely outside of the valid range. - isValid = rangesIntersect(currentInfo.range, validRange); - return { - // constraint for where prev/next operations can go and where events can be dragged/resized to. - // an object with optional start and end properties. - validRange: validRange, - // range the view is formally responsible for. - // for example, a month view might have 1st-31st, excluding padded dates - currentRange: currentInfo.range, - // name of largest unit being displayed, like "month" or "week" - currentRangeUnit: currentInfo.unit, - isRangeAllDay: isRangeAllDay, - // dates that display events and accept drag-n-drop - // will be `null` if no dates accept events - activeRange: activeRange, - // date range with a rendered skeleton - // includes not-active days that need some sort of DOM - renderRange: renderRange, - // Duration object that denotes the first visible time of any given day - minTime: minTime, - // Duration object that denotes the exclusive visible end time of any given day - maxTime: maxTime, - isValid: isValid, - // how far the current date will move for a prev/next operation - dateIncrement: this.buildDateIncrement(currentInfo.duration) - // pass a fallback (might be null) ^ - }; - }; - // Builds an object with optional start/end properties. - // Indicates the minimum/maximum dates to display. - // not responsible for trimming hidden days. - DateProfileGenerator.prototype.buildValidRange = function () { - return this.getRangeOption('validRange', this.calendar.getNow()) || - { start: null, end: null }; // completely open-ended - }; - // Builds a structure with info about the "current" range, the range that is - // highlighted as being the current month for example. - // See build() for a description of `direction`. - // Guaranteed to have `range` and `unit` properties. `duration` is optional. - DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) { - var _a = this, viewSpec = _a.viewSpec, dateEnv = _a.dateEnv; - var duration = null; - var unit = null; - var range = null; - var dayCount; - if (viewSpec.duration) { - duration = viewSpec.duration; - unit = viewSpec.durationUnit; - range = this.buildRangeFromDuration(date, direction, duration, unit); - } - else if ((dayCount = this.options.dayCount)) { - unit = 'day'; - range = this.buildRangeFromDayCount(date, direction, dayCount); - } - else if ((range = this.buildCustomVisibleRange(date))) { - unit = dateEnv.greatestWholeUnit(range.start, range.end).unit; - } - else { - duration = this.getFallbackDuration(); - unit = greatestDurationDenominator(duration).unit; - range = this.buildRangeFromDuration(date, direction, duration, unit); - } - return { duration: duration, unit: unit, range: range }; - }; - DateProfileGenerator.prototype.getFallbackDuration = function () { - return createDuration({ day: 1 }); - }; - // Returns a new activeRange to have time values (un-ambiguate) - // minTime or maxTime causes the range to expand. - DateProfileGenerator.prototype.adjustActiveRange = function (range, minTime, maxTime) { - var dateEnv = this.dateEnv; - var start = range.start; - var end = range.end; - if (this.viewSpec.class.prototype.usesMinMaxTime) { - // expand active range if minTime is negative (why not when positive?) - if (asRoughDays(minTime) < 0) { - start = startOfDay(start); // necessary? - start = dateEnv.add(start, minTime); - } - // expand active range if maxTime is beyond one day (why not when positive?) - if (asRoughDays(maxTime) > 1) { - end = startOfDay(end); // necessary? - end = addDays(end, -1); - end = dateEnv.add(end, maxTime); - } - } - return { start: start, end: end }; - }; - // Builds the "current" range when it is specified as an explicit duration. - // `unit` is the already-computed greatestDurationDenominator unit of duration. - DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) { - var dateEnv = this.dateEnv; - var alignment = this.options.dateAlignment; - var dateIncrementInput; - var dateIncrementDuration; - var start; - var end; - var res; - // compute what the alignment should be - if (!alignment) { - dateIncrementInput = this.options.dateIncrement; - if (dateIncrementInput) { - dateIncrementDuration = createDuration(dateIncrementInput); - // use the smaller of the two units - if (asRoughMs(dateIncrementDuration) < asRoughMs(duration)) { - alignment = greatestDurationDenominator(dateIncrementDuration, !getWeeksFromInput(dateIncrementInput)).unit; - } - else { - alignment = unit; - } - } - else { - alignment = unit; - } - } - // if the view displays a single day or smaller - if (asRoughDays(duration) <= 1) { - if (this.isHiddenDay(start)) { - start = this.skipHiddenDays(start, direction); - start = startOfDay(start); - } - } - function computeRes() { - start = dateEnv.startOf(date, alignment); - end = dateEnv.add(start, duration); - res = { start: start, end: end }; - } - computeRes(); - // if range is completely enveloped by hidden days, go past the hidden days - if (!this.trimHiddenDays(res)) { - date = this.skipHiddenDays(date, direction); - computeRes(); - } - return res; - }; - // Builds the "current" range when a dayCount is specified. - DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) { - var dateEnv = this.dateEnv; - var customAlignment = this.options.dateAlignment; - var runningCount = 0; - var start = date; - var end; - if (customAlignment) { - start = dateEnv.startOf(start, customAlignment); - } - start = startOfDay(start); - start = this.skipHiddenDays(start, direction); - end = start; - do { - end = addDays(end, 1); - if (!this.isHiddenDay(end)) { - runningCount++; - } - } while (runningCount < dayCount); - return { start: start, end: end }; - }; - // Builds a normalized range object for the "visible" range, - // which is a way to define the currentRange and activeRange at the same time. - DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) { - var dateEnv = this.dateEnv; - var visibleRange = this.getRangeOption('visibleRange', dateEnv.toDate(date)); - if (visibleRange && (visibleRange.start == null || visibleRange.end == null)) { - return null; - } - return visibleRange; - }; - // Computes the range that will represent the element/cells for *rendering*, - // but which may have voided days/times. - // not responsible for trimming hidden days. - DateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) { - return currentRange; - }; - // Compute the duration value that should be added/substracted to the current date - // when a prev/next operation happens. - DateProfileGenerator.prototype.buildDateIncrement = function (fallback) { - var dateIncrementInput = this.options.dateIncrement; - var customAlignment; - if (dateIncrementInput) { - return createDuration(dateIncrementInput); - } - else if ((customAlignment = this.options.dateAlignment)) { - return createDuration(1, customAlignment); - } - else if (fallback) { - return fallback; - } - else { - return createDuration({ days: 1 }); - } - }; - // Arguments after name will be forwarded to a hypothetical function value - // WARNING: passed-in arguments will be given to generator functions as-is and can cause side-effects. - // Always clone your objects if you fear mutation. - DateProfileGenerator.prototype.getRangeOption = function (name) { - var otherArgs = []; - for (var _i = 1; _i < arguments.length; _i++) { - otherArgs[_i - 1] = arguments[_i]; - } - var val = this.options[name]; - if (typeof val === 'function') { - val = val.apply(null, otherArgs); - } - if (val) { - val = parseRange(val, this.dateEnv); - } - if (val) { - val = computeVisibleDayRange(val); - } - return val; - }; - /* Hidden Days - ------------------------------------------------------------------------------------------------------------------*/ - // Initializes internal variables related to calculating hidden days-of-week - DateProfileGenerator.prototype.initHiddenDays = function () { - var hiddenDays = this.options.hiddenDays || []; // array of day-of-week indices that are hidden - var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool) - var dayCnt = 0; - var i; - if (this.options.weekends === false) { - hiddenDays.push(0, 6); // 0=sunday, 6=saturday - } - for (i = 0; i < 7; i++) { - if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) { - dayCnt++; - } - } - if (!dayCnt) { - throw new Error('invalid hiddenDays'); // all days were hidden? bad. - } - this.isHiddenDayHash = isHiddenDayHash; - }; - // Remove days from the beginning and end of the range that are computed as hidden. - // If the whole range is trimmed off, returns null - DateProfileGenerator.prototype.trimHiddenDays = function (range) { - var start = range.start; - var end = range.end; - if (start) { - start = this.skipHiddenDays(start); - } - if (end) { - end = this.skipHiddenDays(end, -1, true); - } - if (start == null || end == null || start < end) { - return { start: start, end: end }; - } - return null; - }; - // Is the current day hidden? - // `day` is a day-of-week index (0-6), or a Date (used for UTC) - DateProfileGenerator.prototype.isHiddenDay = function (day) { - if (day instanceof Date) { - day = day.getUTCDay(); - } - return this.isHiddenDayHash[day]; - }; - // Incrementing the current day until it is no longer a hidden day, returning a copy. - // DOES NOT CONSIDER validRange! - // If the initial value of `date` is not a hidden day, don't do anything. - // Pass `isExclusive` as `true` if you are dealing with an end date. - // `inc` defaults to `1` (increment one day forward each time) - DateProfileGenerator.prototype.skipHiddenDays = function (date, inc, isExclusive) { - if (inc === void 0) { inc = 1; } - if (isExclusive === void 0) { isExclusive = false; } - while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) { - date = addDays(date, inc); - } - return date; - }; - return DateProfileGenerator; - }()); - // TODO: find a way to avoid comparing DateProfiles. it's tedious - function isDateProfilesEqual(p0, p1) { - return rangesEqual(p0.validRange, p1.validRange) && - rangesEqual(p0.activeRange, p1.activeRange) && - rangesEqual(p0.renderRange, p1.renderRange) && - durationsEqual(p0.minTime, p1.minTime) && - durationsEqual(p0.maxTime, p1.maxTime); - /* - TODO: compare more? - currentRange: DateRange - currentRangeUnit: string - isRangeAllDay: boolean - isValid: boolean - dateIncrement: Duration - */ - } - - function reduce (state, action, calendar) { - var viewType = reduceViewType(state.viewType, action); - var dateProfile = reduceDateProfile(state.dateProfile, action, state.currentDate, viewType, calendar); - var eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendar); - var nextState = __assign({}, state, { viewType: viewType, - dateProfile: dateProfile, currentDate: reduceCurrentDate(state.currentDate, action, dateProfile), eventSources: eventSources, eventStore: reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendar), dateSelection: reduceDateSelection(state.dateSelection, action, calendar), eventSelection: reduceSelectedEvent(state.eventSelection, action), eventDrag: reduceEventDrag(state.eventDrag, action, eventSources, calendar), eventResize: reduceEventResize(state.eventResize, action, eventSources, calendar), eventSourceLoadingLevel: computeLoadingLevel(eventSources), loadingLevel: computeLoadingLevel(eventSources) }); - for (var _i = 0, _a = calendar.pluginSystem.hooks.reducers; _i < _a.length; _i++) { - var reducerFunc = _a[_i]; - nextState = reducerFunc(nextState, action, calendar); - } - // console.log(action.type, nextState) - return nextState; - } - function reduceViewType(currentViewType, action) { - switch (action.type) { - case 'SET_VIEW_TYPE': - return action.viewType; - default: - return currentViewType; - } - } - function reduceDateProfile(currentDateProfile, action, currentDate, viewType, calendar) { - var newDateProfile; - switch (action.type) { - case 'PREV': - newDateProfile = calendar.dateProfileGenerators[viewType].buildPrev(currentDateProfile, currentDate); - break; - case 'NEXT': - newDateProfile = calendar.dateProfileGenerators[viewType].buildNext(currentDateProfile, currentDate); - break; - case 'SET_DATE': - if (!currentDateProfile.activeRange || - !rangeContainsMarker(currentDateProfile.currentRange, action.dateMarker)) { - newDateProfile = calendar.dateProfileGenerators[viewType].build(action.dateMarker, undefined, true // forceToValid - ); - } - break; - case 'SET_VIEW_TYPE': - var generator = calendar.dateProfileGenerators[viewType]; - if (!generator) { - throw new Error(viewType ? - 'The FullCalendar view "' + viewType + '" does not exist. Make sure your plugins are loaded correctly.' : - 'No available FullCalendar view plugins.'); - } - newDateProfile = generator.build(action.dateMarker || currentDate, undefined, true // forceToValid - ); - break; - } - if (newDateProfile && - newDateProfile.isValid && - !(currentDateProfile && isDateProfilesEqual(currentDateProfile, newDateProfile))) { - return newDateProfile; - } - else { - return currentDateProfile; - } - } - function reduceCurrentDate(currentDate, action, dateProfile) { - switch (action.type) { - case 'PREV': - case 'NEXT': - if (!rangeContainsMarker(dateProfile.currentRange, currentDate)) { - return dateProfile.currentRange.start; - } - else { - return currentDate; - } - case 'SET_DATE': - case 'SET_VIEW_TYPE': - var newDate = action.dateMarker || currentDate; - if (dateProfile.activeRange && !rangeContainsMarker(dateProfile.activeRange, newDate)) { - return dateProfile.currentRange.start; - } - else { - return newDate; - } - default: - return currentDate; - } - } - function reduceDateSelection(currentSelection, action, calendar) { - switch (action.type) { - case 'SELECT_DATES': - return action.selection; - case 'UNSELECT_DATES': - return null; - default: - return currentSelection; - } - } - function reduceSelectedEvent(currentInstanceId, action) { - switch (action.type) { - case 'SELECT_EVENT': - return action.eventInstanceId; - case 'UNSELECT_EVENT': - return ''; - default: - return currentInstanceId; - } - } - function reduceEventDrag(currentDrag, action, sources, calendar) { - switch (action.type) { - case 'SET_EVENT_DRAG': - var newDrag = action.state; - return { - affectedEvents: newDrag.affectedEvents, - mutatedEvents: newDrag.mutatedEvents, - isEvent: newDrag.isEvent, - origSeg: newDrag.origSeg - }; - case 'UNSET_EVENT_DRAG': - return null; - default: - return currentDrag; - } - } - function reduceEventResize(currentResize, action, sources, calendar) { - switch (action.type) { - case 'SET_EVENT_RESIZE': - var newResize = action.state; - return { - affectedEvents: newResize.affectedEvents, - mutatedEvents: newResize.mutatedEvents, - isEvent: newResize.isEvent, - origSeg: newResize.origSeg - }; - case 'UNSET_EVENT_RESIZE': - return null; - default: - return currentResize; - } - } - function computeLoadingLevel(eventSources) { - var cnt = 0; - for (var sourceId in eventSources) { - if (eventSources[sourceId].isFetching) { - cnt++; - } - } - return cnt; - } - - var STANDARD_PROPS = { - start: null, - end: null, - allDay: Boolean - }; - function parseDateSpan(raw, dateEnv, defaultDuration) { - var span = parseOpenDateSpan(raw, dateEnv); - var range = span.range; - if (!range.start) { - return null; - } - if (!range.end) { - if (defaultDuration == null) { - return null; - } - else { - range.end = dateEnv.add(range.start, defaultDuration); - } - } - return span; - } - /* - TODO: somehow combine with parseRange? - Will return null if the start/end props were present but parsed invalidly. - */ - function parseOpenDateSpan(raw, dateEnv) { - var leftovers = {}; - var standardProps = refineProps(raw, STANDARD_PROPS, {}, leftovers); - var startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null; - var endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null; - var allDay = standardProps.allDay; - if (allDay == null) { - allDay = (startMeta && startMeta.isTimeUnspecified) && - (!endMeta || endMeta.isTimeUnspecified); - } - // use this leftover object as the selection object - leftovers.range = { - start: startMeta ? startMeta.marker : null, - end: endMeta ? endMeta.marker : null - }; - leftovers.allDay = allDay; - return leftovers; - } - function isDateSpansEqual(span0, span1) { - return rangesEqual(span0.range, span1.range) && - span0.allDay === span1.allDay && - isSpanPropsEqual(span0, span1); - } - // the NON-DATE-RELATED props - function isSpanPropsEqual(span0, span1) { - for (var propName in span1) { - if (propName !== 'range' && propName !== 'allDay') { - if (span0[propName] !== span1[propName]) { - return false; - } - } - } - // are there any props that span0 has that span1 DOESN'T have? - // both have range/allDay, so no need to special-case. - for (var propName in span0) { - if (!(propName in span1)) { - return false; - } - } - return true; - } - function buildDateSpanApi(span, dateEnv) { - return { - start: dateEnv.toDate(span.range.start), - end: dateEnv.toDate(span.range.end), - startStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }), - endStr: dateEnv.formatIso(span.range.end, { omitTime: span.allDay }), - allDay: span.allDay - }; - } - function buildDatePointApi(span, dateEnv) { - return { - date: dateEnv.toDate(span.range.start), - dateStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }), - allDay: span.allDay - }; - } - function fabricateEventRange(dateSpan, eventUiBases, calendar) { - var def = parseEventDef({ editable: false }, '', // sourceId - dateSpan.allDay, true, // hasEnd - calendar); - return { - def: def, - ui: compileEventUi(def, eventUiBases), - instance: createEventInstance(def.defId, dateSpan.range), - range: dateSpan.range, - isStart: true, - isEnd: true - }; - } - - function compileViewDefs(defaultConfigs, overrideConfigs) { - var hash = {}; - var viewType; - for (viewType in defaultConfigs) { - ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs); - } - for (viewType in overrideConfigs) { - ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs); - } - return hash; - } - function ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) { - if (hash[viewType]) { - return hash[viewType]; - } - var viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs); - if (viewDef) { - hash[viewType] = viewDef; - } - return viewDef; - } - function buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) { - var defaultConfig = defaultConfigs[viewType]; - var overrideConfig = overrideConfigs[viewType]; - var queryProp = function (name) { - return (defaultConfig && defaultConfig[name] !== null) ? defaultConfig[name] : - ((overrideConfig && overrideConfig[name] !== null) ? overrideConfig[name] : null); - }; - var theClass = queryProp('class'); - var superType = queryProp('superType'); - if (!superType && theClass) { - superType = - findViewNameBySubclass(theClass, overrideConfigs) || - findViewNameBySubclass(theClass, defaultConfigs); - } - var superDef = null; - if (superType) { - if (superType === viewType) { - throw new Error('Can\'t have a custom view type that references itself'); - } - superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs); - } - if (!theClass && superDef) { - theClass = superDef.class; - } - if (!theClass) { - return null; // don't throw a warning, might be settings for a single-unit view - } - return { - type: viewType, - class: theClass, - defaults: __assign({}, (superDef ? superDef.defaults : {}), (defaultConfig ? defaultConfig.options : {})), - overrides: __assign({}, (superDef ? superDef.overrides : {}), (overrideConfig ? overrideConfig.options : {})) - }; - } - function findViewNameBySubclass(viewSubclass, configs) { - var superProto = Object.getPrototypeOf(viewSubclass.prototype); - for (var viewType in configs) { - var parsed = configs[viewType]; - // need DIRECT subclass, so instanceof won't do it - if (parsed.class && parsed.class.prototype === superProto) { - return viewType; - } - } - return ''; - } - - function parseViewConfigs(inputs) { - return mapHash(inputs, parseViewConfig); - } - var VIEW_DEF_PROPS = { - type: String, - class: null - }; - function parseViewConfig(input) { - if (typeof input === 'function') { - input = { class: input }; - } - var options = {}; - var props = refineProps(input, VIEW_DEF_PROPS, {}, options); - return { - superType: props.type, - class: props.class, - options: options - }; - } - - function buildViewSpecs(defaultInputs, optionsManager) { - var defaultConfigs = parseViewConfigs(defaultInputs); - var overrideConfigs = parseViewConfigs(optionsManager.overrides.views); - var viewDefs = compileViewDefs(defaultConfigs, overrideConfigs); - return mapHash(viewDefs, function (viewDef) { - return buildViewSpec(viewDef, overrideConfigs, optionsManager); - }); - } - function buildViewSpec(viewDef, overrideConfigs, optionsManager) { - var durationInput = viewDef.overrides.duration || - viewDef.defaults.duration || - optionsManager.dynamicOverrides.duration || - optionsManager.overrides.duration; - var duration = null; - var durationUnit = ''; - var singleUnit = ''; - var singleUnitOverrides = {}; - if (durationInput) { - duration = createDuration(durationInput); - if (duration) { // valid? - var denom = greatestDurationDenominator(duration, !getWeeksFromInput(durationInput)); - durationUnit = denom.unit; - if (denom.value === 1) { - singleUnit = durationUnit; - singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].options : {}; - } - } - } - var queryButtonText = function (options) { - var buttonTextMap = options.buttonText || {}; - var buttonTextKey = viewDef.defaults.buttonTextKey; - if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) { - return buttonTextMap[buttonTextKey]; - } - if (buttonTextMap[viewDef.type] != null) { - return buttonTextMap[viewDef.type]; - } - if (buttonTextMap[singleUnit] != null) { - return buttonTextMap[singleUnit]; - } - }; - return { - type: viewDef.type, - class: viewDef.class, - duration: duration, - durationUnit: durationUnit, - singleUnit: singleUnit, - options: __assign({}, globalDefaults, viewDef.defaults, optionsManager.dirDefaults, optionsManager.localeDefaults, optionsManager.overrides, singleUnitOverrides, viewDef.overrides, optionsManager.dynamicOverrides), - buttonTextOverride: queryButtonText(optionsManager.dynamicOverrides) || - queryButtonText(optionsManager.overrides) || // constructor-specified buttonText lookup hash takes precedence - viewDef.overrides.buttonText, - buttonTextDefault: queryButtonText(optionsManager.localeDefaults) || - queryButtonText(optionsManager.dirDefaults) || - viewDef.defaults.buttonText || - queryButtonText(globalDefaults) || - viewDef.type // fall back to given view name - }; - } - - var Toolbar = /** @class */ (function (_super) { - __extends(Toolbar, _super); - function Toolbar(context, extraClassName) { - var _this = _super.call(this, context) || this; - _this._renderLayout = memoizeRendering(_this.renderLayout, _this.unrenderLayout); - _this._updateTitle = memoizeRendering(_this.updateTitle, null, [_this._renderLayout]); - _this._updateActiveButton = memoizeRendering(_this.updateActiveButton, null, [_this._renderLayout]); - _this._updateToday = memoizeRendering(_this.updateToday, null, [_this._renderLayout]); - _this._updatePrev = memoizeRendering(_this.updatePrev, null, [_this._renderLayout]); - _this._updateNext = memoizeRendering(_this.updateNext, null, [_this._renderLayout]); - _this.el = createElement('div', { className: 'fc-toolbar ' + extraClassName }); - return _this; - } - Toolbar.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this._renderLayout.unrender(); // should unrender everything else - removeElement(this.el); - }; - Toolbar.prototype.render = function (props) { - this._renderLayout(props.layout); - this._updateTitle(props.title); - this._updateActiveButton(props.activeButton); - this._updateToday(props.isTodayEnabled); - this._updatePrev(props.isPrevEnabled); - this._updateNext(props.isNextEnabled); - }; - Toolbar.prototype.renderLayout = function (layout) { - var el = this.el; - this.viewsWithButtons = []; - appendToElement(el, this.renderSection('left', layout.left)); - appendToElement(el, this.renderSection('center', layout.center)); - appendToElement(el, this.renderSection('right', layout.right)); - }; - Toolbar.prototype.unrenderLayout = function () { - this.el.innerHTML = ''; - }; - Toolbar.prototype.renderSection = function (position, buttonStr) { - var _this = this; - var _a = this, theme = _a.theme, calendar = _a.calendar; - var optionsManager = calendar.optionsManager; - var viewSpecs = calendar.viewSpecs; - var sectionEl = createElement('div', { className: 'fc-' + position }); - var calendarCustomButtons = optionsManager.computed.customButtons || {}; - var calendarButtonTextOverrides = optionsManager.overrides.buttonText || {}; - var calendarButtonText = optionsManager.computed.buttonText || {}; - if (buttonStr) { - buttonStr.split(' ').forEach(function (buttonGroupStr, i) { - var groupChildren = []; - var isOnlyButtons = true; - var groupEl; - buttonGroupStr.split(',').forEach(function (buttonName, j) { - var customButtonProps; - var viewSpec; - var buttonClick; - var buttonIcon; // only one of these will be set - var buttonText; // " - var buttonInnerHtml; - var buttonClasses; - var buttonEl; - var buttonAriaAttr; - if (buttonName === 'title') { - groupChildren.push(htmlToElement('

 

')); // we always want it to take up height - isOnlyButtons = false; - } - else { - if ((customButtonProps = calendarCustomButtons[buttonName])) { - buttonClick = function (ev) { - if (customButtonProps.click) { - customButtonProps.click.call(buttonEl, ev); - } - }; - (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = customButtonProps.text); - } - else if ((viewSpec = viewSpecs[buttonName])) { - _this.viewsWithButtons.push(buttonName); - buttonClick = function () { - calendar.changeView(buttonName); - }; - (buttonText = viewSpec.buttonTextOverride) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = viewSpec.buttonTextDefault); - } - else if (calendar[buttonName]) { // a calendar method - buttonClick = function () { - calendar[buttonName](); - }; - (buttonText = calendarButtonTextOverrides[buttonName]) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = calendarButtonText[buttonName]); - // ^ everything else is considered default - } - if (buttonClick) { - buttonClasses = [ - 'fc-' + buttonName + '-button', - theme.getClass('button') - ]; - if (buttonText) { - buttonInnerHtml = htmlEscape(buttonText); - buttonAriaAttr = ''; - } - else if (buttonIcon) { - buttonInnerHtml = ""; - buttonAriaAttr = ' aria-label="' + buttonName + '"'; - } - buttonEl = htmlToElement(// type="button" so that it doesn't submit a form - ''); - buttonEl.addEventListener('click', buttonClick); - groupChildren.push(buttonEl); - } - } - }); - if (groupChildren.length > 1) { - groupEl = document.createElement('div'); - var buttonGroupClassName = theme.getClass('buttonGroup'); - if (isOnlyButtons && buttonGroupClassName) { - groupEl.classList.add(buttonGroupClassName); - } - appendToElement(groupEl, groupChildren); - sectionEl.appendChild(groupEl); - } - else { - appendToElement(sectionEl, groupChildren); // 1 or 0 children - } - }); - } - return sectionEl; - }; - Toolbar.prototype.updateToday = function (isTodayEnabled) { - this.toggleButtonEnabled('today', isTodayEnabled); - }; - Toolbar.prototype.updatePrev = function (isPrevEnabled) { - this.toggleButtonEnabled('prev', isPrevEnabled); - }; - Toolbar.prototype.updateNext = function (isNextEnabled) { - this.toggleButtonEnabled('next', isNextEnabled); - }; - Toolbar.prototype.updateTitle = function (text) { - findElements(this.el, 'h2').forEach(function (titleEl) { - titleEl.innerText = text; - }); - }; - Toolbar.prototype.updateActiveButton = function (buttonName) { - var className = this.theme.getClass('buttonActive'); - findElements(this.el, 'button').forEach(function (buttonEl) { - if (buttonName && buttonEl.classList.contains('fc-' + buttonName + '-button')) { - buttonEl.classList.add(className); - } - else { - buttonEl.classList.remove(className); - } - }); - }; - Toolbar.prototype.toggleButtonEnabled = function (buttonName, bool) { - findElements(this.el, '.fc-' + buttonName + '-button').forEach(function (buttonEl) { - buttonEl.disabled = !bool; - }); - }; - return Toolbar; - }(Component)); - - var CalendarComponent = /** @class */ (function (_super) { - __extends(CalendarComponent, _super); - function CalendarComponent(context, el) { - var _this = _super.call(this, context) || this; - _this._renderToolbars = memoizeRendering(_this.renderToolbars); - _this.buildViewPropTransformers = memoize(buildViewPropTransformers); - _this.el = el; - prependToElement(el, _this.contentEl = createElement('div', { className: 'fc-view-container' })); - var calendar = _this.calendar; - for (var _i = 0, _a = calendar.pluginSystem.hooks.viewContainerModifiers; _i < _a.length; _i++) { - var modifyViewContainer = _a[_i]; - modifyViewContainer(_this.contentEl, calendar); - } - _this.toggleElClassNames(true); - _this.computeTitle = memoize(computeTitle); - _this.parseBusinessHours = memoize(function (input) { - return parseBusinessHours(input, _this.calendar); - }); - return _this; - } - CalendarComponent.prototype.destroy = function () { - if (this.header) { - this.header.destroy(); - } - if (this.footer) { - this.footer.destroy(); - } - if (this.view) { - this.view.destroy(); - } - removeElement(this.contentEl); - this.toggleElClassNames(false); - _super.prototype.destroy.call(this); - }; - CalendarComponent.prototype.toggleElClassNames = function (bool) { - var classList = this.el.classList; - var dirClassName = 'fc-' + this.opt('dir'); - var themeClassName = this.theme.getClass('widget'); - if (bool) { - classList.add('fc'); - classList.add(dirClassName); - classList.add(themeClassName); - } - else { - classList.remove('fc'); - classList.remove(dirClassName); - classList.remove(themeClassName); - } - }; - CalendarComponent.prototype.render = function (props) { - this.freezeHeight(); - var title = this.computeTitle(props.dateProfile, props.viewSpec.options); - this._renderToolbars(props.viewSpec, props.dateProfile, props.currentDate, props.dateProfileGenerator, title); - this.renderView(props, title); - this.updateSize(); - this.thawHeight(); - }; - CalendarComponent.prototype.renderToolbars = function (viewSpec, dateProfile, currentDate, dateProfileGenerator, title) { - var headerLayout = this.opt('header'); - var footerLayout = this.opt('footer'); - var now = this.calendar.getNow(); - var todayInfo = dateProfileGenerator.build(now); - var prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate); - var nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate); - var toolbarProps = { - title: title, - activeButton: viewSpec.type, - isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now), - isPrevEnabled: prevInfo.isValid, - isNextEnabled: nextInfo.isValid - }; - if (headerLayout) { - if (!this.header) { - this.header = new Toolbar(this.context, 'fc-header-toolbar'); - prependToElement(this.el, this.header.el); - } - this.header.receiveProps(__assign({ layout: headerLayout }, toolbarProps)); - } - else if (this.header) { - this.header.destroy(); - this.header = null; - } - if (footerLayout) { - if (!this.footer) { - this.footer = new Toolbar(this.context, 'fc-footer-toolbar'); - appendToElement(this.el, this.footer.el); - } - this.footer.receiveProps(__assign({ layout: footerLayout }, toolbarProps)); - } - else if (this.footer) { - this.footer.destroy(); - this.footer = null; - } - }; - CalendarComponent.prototype.renderView = function (props, title) { - var view = this.view; - var viewSpec = props.viewSpec, dateProfileGenerator = props.dateProfileGenerator; - if (!view || view.viewSpec !== viewSpec) { - if (view) { - view.destroy(); - } - view = this.view = new viewSpec['class']({ - calendar: this.calendar, - view: null, - dateEnv: this.dateEnv, - theme: this.theme, - options: viewSpec.options - }, viewSpec, dateProfileGenerator, this.contentEl); - } - else { - view.addScroll(view.queryScroll()); - } - view.title = title; // for the API - var viewProps = { - dateProfile: props.dateProfile, - businessHours: this.parseBusinessHours(viewSpec.options.businessHours), - eventStore: props.eventStore, - eventUiBases: props.eventUiBases, - dateSelection: props.dateSelection, - eventSelection: props.eventSelection, - eventDrag: props.eventDrag, - eventResize: props.eventResize - }; - var transformers = this.buildViewPropTransformers(this.calendar.pluginSystem.hooks.viewPropsTransformers); - for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) { - var transformer = transformers_1[_i]; - __assign(viewProps, transformer.transform(viewProps, viewSpec, props, view)); - } - view.receiveProps(viewProps); - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - CalendarComponent.prototype.updateSize = function (isResize) { - if (isResize === void 0) { isResize = false; } - var view = this.view; - if (isResize) { - view.addScroll(view.queryScroll()); - } - if (isResize || this.isHeightAuto == null) { - this.computeHeightVars(); - } - view.updateSize(isResize, this.viewHeight, this.isHeightAuto); - view.updateNowIndicator(); // we need to guarantee this will run after updateSize - view.popScroll(isResize); - }; - CalendarComponent.prototype.computeHeightVars = function () { - var calendar = this.calendar; // yuck. need to handle dynamic options - var heightInput = calendar.opt('height'); - var contentHeightInput = calendar.opt('contentHeight'); - this.isHeightAuto = heightInput === 'auto' || contentHeightInput === 'auto'; - if (typeof contentHeightInput === 'number') { // exists and not 'auto' - this.viewHeight = contentHeightInput; - } - else if (typeof contentHeightInput === 'function') { // exists and is a function - this.viewHeight = contentHeightInput(); - } - else if (typeof heightInput === 'number') { // exists and not 'auto' - this.viewHeight = heightInput - this.queryToolbarsHeight(); - } - else if (typeof heightInput === 'function') { // exists and is a function - this.viewHeight = heightInput() - this.queryToolbarsHeight(); - } - else if (heightInput === 'parent') { // set to height of parent element - var parentEl = this.el.parentNode; - this.viewHeight = parentEl.getBoundingClientRect().height - this.queryToolbarsHeight(); - } - else { - this.viewHeight = Math.round(this.contentEl.getBoundingClientRect().width / - Math.max(calendar.opt('aspectRatio'), .5)); - } - }; - CalendarComponent.prototype.queryToolbarsHeight = function () { - var height = 0; - if (this.header) { - height += computeHeightAndMargins(this.header.el); - } - if (this.footer) { - height += computeHeightAndMargins(this.footer.el); - } - return height; - }; - // Height "Freezing" - // ----------------------------------------------------------------------------------------------------------------- - CalendarComponent.prototype.freezeHeight = function () { - applyStyle(this.el, { - height: this.el.getBoundingClientRect().height, - overflow: 'hidden' - }); - }; - CalendarComponent.prototype.thawHeight = function () { - applyStyle(this.el, { - height: '', - overflow: '' - }); - }; - return CalendarComponent; - }(Component)); - // Title and Date Formatting - // ----------------------------------------------------------------------------------------------------------------- - // Computes what the title at the top of the calendar should be for this view - function computeTitle(dateProfile, viewOptions) { - var range; - // for views that span a large unit of time, show the proper interval, ignoring stray days before and after - if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) { - range = dateProfile.currentRange; - } - else { // for day units or smaller, use the actual day range - range = dateProfile.activeRange; - } - return this.dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || computeTitleFormat(dateProfile), viewOptions.titleRangeSeparator), { isEndExclusive: dateProfile.isRangeAllDay }); - } - // Generates the format string that should be used to generate the title for the current date range. - // Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`. - function computeTitleFormat(dateProfile) { - var currentRangeUnit = dateProfile.currentRangeUnit; - if (currentRangeUnit === 'year') { - return { year: 'numeric' }; - } - else if (currentRangeUnit === 'month') { - return { year: 'numeric', month: 'long' }; // like "September 2014" - } - else { - var days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end); - if (days !== null && days > 1) { - // multi-day range. shorter, like "Sep 9 - 10 2014" - return { year: 'numeric', month: 'short', day: 'numeric' }; - } - else { - // one day. longer, like "September 9 2014" - return { year: 'numeric', month: 'long', day: 'numeric' }; - } - } - } - // Plugin - // ----------------------------------------------------------------------------------------------------------------- - function buildViewPropTransformers(theClasses) { - return theClasses.map(function (theClass) { - return new theClass(); - }); - } - - var Interaction = /** @class */ (function () { - function Interaction(settings) { - this.component = settings.component; - } - Interaction.prototype.destroy = function () { - }; - return Interaction; - }()); - function parseInteractionSettings(component, input) { - return { - component: component, - el: input.el, - useEventCenter: input.useEventCenter != null ? input.useEventCenter : true - }; - } - function interactionSettingsToStore(settings) { - var _a; - return _a = {}, - _a[settings.component.uid] = settings, - _a; - } - // global state - var interactionSettingsStore = {}; - - /* - Detects when the user clicks on an event within a DateComponent - */ - var EventClicking = /** @class */ (function (_super) { - __extends(EventClicking, _super); - function EventClicking(settings) { - var _this = _super.call(this, settings) || this; - _this.handleSegClick = function (ev, segEl) { - var component = _this.component; - var seg = getElSeg(segEl); - if (seg && // might be the
surrounding the more link - component.isValidSegDownEl(ev.target)) { - // our way to simulate a link click for elements that can't be tags - // grab before trigger fired in case trigger trashes DOM thru rerendering - var hasUrlContainer = elementClosest(ev.target, '.fc-has-url'); - var url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : ''; - component.publiclyTrigger('eventClick', [ - { - el: segEl, - event: new EventApi(component.calendar, seg.eventRange.def, seg.eventRange.instance), - jsEvent: ev, - view: component.view - } - ]); - if (url && !ev.defaultPrevented) { - window.location.href = url; - } - } - }; - var component = settings.component; - _this.destroy = listenBySelector(component.el, 'click', component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegClick); - return _this; - } - return EventClicking; - }(Interaction)); - - /* - Triggers events and adds/removes core classNames when the user's pointer - enters/leaves event-elements of a component. - */ - var EventHovering = /** @class */ (function (_super) { - __extends(EventHovering, _super); - function EventHovering(settings) { - var _this = _super.call(this, settings) || this; - // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it - _this.handleEventElRemove = function (el) { - if (el === _this.currentSegEl) { - _this.handleSegLeave(null, _this.currentSegEl); - } - }; - _this.handleSegEnter = function (ev, segEl) { - if (getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper - segEl.classList.add('fc-allow-mouse-resize'); - _this.currentSegEl = segEl; - _this.triggerEvent('eventMouseEnter', ev, segEl); - } - }; - _this.handleSegLeave = function (ev, segEl) { - if (_this.currentSegEl) { - segEl.classList.remove('fc-allow-mouse-resize'); - _this.currentSegEl = null; - _this.triggerEvent('eventMouseLeave', ev, segEl); - } - }; - var component = settings.component; - _this.removeHoverListeners = listenToHoverBySelector(component.el, component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegEnter, _this.handleSegLeave); - component.calendar.on('eventElRemove', _this.handleEventElRemove); - return _this; - } - EventHovering.prototype.destroy = function () { - this.removeHoverListeners(); - this.component.calendar.off('eventElRemove', this.handleEventElRemove); - }; - EventHovering.prototype.triggerEvent = function (publicEvName, ev, segEl) { - var component = this.component; - var seg = getElSeg(segEl); - if (!ev || component.isValidSegDownEl(ev.target)) { - component.publiclyTrigger(publicEvName, [ - { - el: segEl, - event: new EventApi(this.component.calendar, seg.eventRange.def, seg.eventRange.instance), - jsEvent: ev, - view: component.view - } - ]); - } - }; - return EventHovering; - }(Interaction)); - - var StandardTheme = /** @class */ (function (_super) { - __extends(StandardTheme, _super); - function StandardTheme() { - return _super !== null && _super.apply(this, arguments) || this; - } - return StandardTheme; - }(Theme)); - StandardTheme.prototype.classes = { - widget: 'fc-unthemed', - widgetHeader: 'fc-widget-header', - widgetContent: 'fc-widget-content', - buttonGroup: 'fc-button-group', - button: 'fc-button fc-button-primary', - buttonActive: 'fc-button-active', - popoverHeader: 'fc-widget-header', - popoverContent: 'fc-widget-content', - // day grid - headerRow: 'fc-widget-header', - dayRow: 'fc-widget-content', - // list view - listView: 'fc-widget-content' - }; - StandardTheme.prototype.baseIconClass = 'fc-icon'; - StandardTheme.prototype.iconClasses = { - close: 'fc-icon-x', - prev: 'fc-icon-chevron-left', - next: 'fc-icon-chevron-right', - prevYear: 'fc-icon-chevrons-left', - nextYear: 'fc-icon-chevrons-right' - }; - StandardTheme.prototype.iconOverrideOption = 'buttonIcons'; - StandardTheme.prototype.iconOverrideCustomButtonOption = 'icon'; - StandardTheme.prototype.iconOverridePrefix = 'fc-icon-'; - - var Calendar = /** @class */ (function () { - function Calendar(el, overrides) { - var _this = this; - this.parseRawLocales = memoize(parseRawLocales); - this.buildLocale = memoize(buildLocale); - this.buildDateEnv = memoize(buildDateEnv); - this.buildTheme = memoize(buildTheme); - this.buildEventUiSingleBase = memoize(this._buildEventUiSingleBase); - this.buildSelectionConfig = memoize(this._buildSelectionConfig); - this.buildEventUiBySource = memoizeOutput(buildEventUiBySource, isPropsEqual); - this.buildEventUiBases = memoize(buildEventUiBases); - this.interactionsStore = {}; - this.actionQueue = []; - this.isReducing = false; - // isDisplaying: boolean = false // installed in DOM? accepting renders? - this.needsRerender = false; // needs a render? - this.needsFullRerender = false; - this.isRendering = false; // currently in the executeRender function? - this.renderingPauseDepth = 0; - this.buildDelayedRerender = memoize(buildDelayedRerender); - this.afterSizingTriggers = {}; - this.isViewUpdated = false; - this.isDatesUpdated = false; - this.isEventsUpdated = false; - this.el = el; - this.optionsManager = new OptionsManager(overrides || {}); - this.pluginSystem = new PluginSystem(); - // only do once. don't do in handleOptions. because can't remove plugins - this.addPluginInputs(this.optionsManager.computed.plugins || []); - this.handleOptions(this.optionsManager.computed); - this.publiclyTrigger('_init'); // for tests - this.hydrate(); - this.calendarInteractions = this.pluginSystem.hooks.calendarInteractions - .map(function (calendarInteractionClass) { - return new calendarInteractionClass(_this); - }); - } - Calendar.prototype.addPluginInputs = function (pluginInputs) { - var pluginDefs = refinePluginDefs(pluginInputs); - for (var _i = 0, pluginDefs_1 = pluginDefs; _i < pluginDefs_1.length; _i++) { - var pluginDef = pluginDefs_1[_i]; - this.pluginSystem.add(pluginDef); - } - }; - Object.defineProperty(Calendar.prototype, "view", { - // public API - get: function () { - return this.component ? this.component.view : null; - }, - enumerable: true, - configurable: true - }); - // Public API for rendering - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.render = function () { - if (!this.component) { - this.renderableEventStore = createEmptyEventStore(); - this.bindHandlers(); - this.executeRender(); - } - else { - this.requestRerender(true); - } - }; - Calendar.prototype.destroy = function () { - if (this.component) { - this.unbindHandlers(); - this.component.destroy(); // don't null-out. in case API needs access - this.component = null; // umm ??? - for (var _i = 0, _a = this.calendarInteractions; _i < _a.length; _i++) { - var interaction = _a[_i]; - interaction.destroy(); - } - this.publiclyTrigger('_destroyed'); - } - }; - // Handlers - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.bindHandlers = function () { - var _this = this; - // event delegation for nav links - this.removeNavLinkListener = listenBySelector(this.el, 'click', 'a[data-goto]', function (ev, anchorEl) { - var gotoOptions = anchorEl.getAttribute('data-goto'); - gotoOptions = gotoOptions ? JSON.parse(gotoOptions) : {}; - var dateEnv = _this.dateEnv; - var dateMarker = dateEnv.createMarker(gotoOptions.date); - var viewType = gotoOptions.type; - // property like "navLinkDayClick". might be a string or a function - var customAction = _this.viewOpt('navLink' + capitaliseFirstLetter(viewType) + 'Click'); - if (typeof customAction === 'function') { - customAction(dateEnv.toDate(dateMarker), ev); - } - else { - if (typeof customAction === 'string') { - viewType = customAction; - } - _this.zoomTo(dateMarker, viewType); - } - }); - if (this.opt('handleWindowResize')) { - window.addEventListener('resize', this.windowResizeProxy = debounce(// prevents rapid calls - this.windowResize.bind(this), this.opt('windowResizeDelay'))); - } - }; - Calendar.prototype.unbindHandlers = function () { - this.removeNavLinkListener(); - if (this.windowResizeProxy) { - window.removeEventListener('resize', this.windowResizeProxy); - this.windowResizeProxy = null; - } - }; - // Dispatcher - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.hydrate = function () { - var _this = this; - this.state = this.buildInitialState(); - var rawSources = this.opt('eventSources') || []; - var singleRawSource = this.opt('events'); - var sources = []; // parsed - if (singleRawSource) { - rawSources.unshift(singleRawSource); - } - for (var _i = 0, rawSources_1 = rawSources; _i < rawSources_1.length; _i++) { - var rawSource = rawSources_1[_i]; - var source = parseEventSource(rawSource, this); - if (source) { - sources.push(source); - } - } - this.batchRendering(function () { - _this.dispatch({ type: 'INIT' }); // pass in sources here? - _this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: sources }); - _this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: _this.opt('defaultView') || _this.pluginSystem.hooks.defaultView - }); - }); - }; - Calendar.prototype.buildInitialState = function () { - return { - viewType: null, - loadingLevel: 0, - eventSourceLoadingLevel: 0, - currentDate: this.getInitialDate(), - dateProfile: null, - eventSources: {}, - eventStore: createEmptyEventStore(), - dateSelection: null, - eventSelection: '', - eventDrag: null, - eventResize: null - }; - }; - Calendar.prototype.dispatch = function (action) { - this.actionQueue.push(action); - if (!this.isReducing) { - this.isReducing = true; - var oldState = this.state; - while (this.actionQueue.length) { - this.state = this.reduce(this.state, this.actionQueue.shift(), this); - } - var newState = this.state; - this.isReducing = false; - if (!oldState.loadingLevel && newState.loadingLevel) { - this.publiclyTrigger('loading', [true]); - } - else if (oldState.loadingLevel && !newState.loadingLevel) { - this.publiclyTrigger('loading', [false]); - } - var view = this.component && this.component.view; - if (oldState.eventStore !== newState.eventStore || this.needsFullRerender) { - if (oldState.eventStore) { - this.isEventsUpdated = true; - } - } - if (oldState.dateProfile !== newState.dateProfile || this.needsFullRerender) { - if (oldState.dateProfile && view) { // why would view be null!? - this.publiclyTrigger('datesDestroy', [ - { - view: view, - el: view.el - } - ]); - } - this.isDatesUpdated = true; - } - if (oldState.viewType !== newState.viewType || this.needsFullRerender) { - if (oldState.viewType && view) { // why would view be null!? - this.publiclyTrigger('viewSkeletonDestroy', [ - { - view: view, - el: view.el - } - ]); - } - this.isViewUpdated = true; - } - this.requestRerender(); - } - }; - Calendar.prototype.reduce = function (state, action, calendar) { - return reduce(state, action, calendar); - }; - // Render Queue - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.requestRerender = function (needsFull) { - if (needsFull === void 0) { needsFull = false; } - this.needsRerender = true; - this.needsFullRerender = this.needsFullRerender || needsFull; - this.delayedRerender(); // will call a debounced-version of tryRerender - }; - Calendar.prototype.tryRerender = function () { - if (this.component && // must be accepting renders - this.needsRerender && // indicates that a rerender was requested - !this.renderingPauseDepth && // not paused - !this.isRendering // not currently in the render loop - ) { - this.executeRender(); - } - }; - Calendar.prototype.batchRendering = function (func) { - this.renderingPauseDepth++; - func(); - this.renderingPauseDepth--; - if (this.needsRerender) { - this.requestRerender(); - } - }; - // Rendering - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.executeRender = function () { - var needsFullRerender = this.needsFullRerender; // save before clearing - // clear these BEFORE the render so that new values will accumulate during render - this.needsRerender = false; - this.needsFullRerender = false; - this.isRendering = true; - this.renderComponent(needsFullRerender); - this.isRendering = false; - // received a rerender request while rendering - if (this.needsRerender) { - this.delayedRerender(); - } - }; - /* - don't call this directly. use executeRender instead - */ - Calendar.prototype.renderComponent = function (needsFull) { - var _a = this, state = _a.state, component = _a.component; - var viewType = state.viewType; - var viewSpec = this.viewSpecs[viewType]; - var savedScroll = (needsFull && component) ? component.view.queryScroll() : null; - if (!viewSpec) { - throw new Error("View type \"" + viewType + "\" is not valid"); - } - // if event sources are still loading and progressive rendering hasn't been enabled, - // keep rendering the last fully loaded set of events - var renderableEventStore = this.renderableEventStore = - (state.eventSourceLoadingLevel && !this.opt('progressiveEventRendering')) ? - this.renderableEventStore : - state.eventStore; - var eventUiSingleBase = this.buildEventUiSingleBase(viewSpec.options); - var eventUiBySource = this.buildEventUiBySource(state.eventSources); - var eventUiBases = this.eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource); - if (needsFull || !component) { - if (component) { - component.freezeHeight(); // next component will unfreeze it - component.destroy(); - } - component = this.component = new CalendarComponent({ - calendar: this, - view: null, - dateEnv: this.dateEnv, - theme: this.theme, - options: this.optionsManager.computed - }, this.el); - this.isViewUpdated = true; - this.isDatesUpdated = true; - this.isEventsUpdated = true; - } - component.receiveProps(__assign({}, state, { viewSpec: viewSpec, dateProfile: state.dateProfile, dateProfileGenerator: this.dateProfileGenerators[viewType], eventStore: renderableEventStore, eventUiBases: eventUiBases, dateSelection: state.dateSelection, eventSelection: state.eventSelection, eventDrag: state.eventDrag, eventResize: state.eventResize })); - if (savedScroll) { - component.view.applyScroll(savedScroll, false); - } - if (this.isViewUpdated) { - this.isViewUpdated = false; - this.publiclyTrigger('viewSkeletonRender', [ - { - view: component.view, - el: component.view.el - } - ]); - } - if (this.isDatesUpdated) { - this.isDatesUpdated = false; - this.publiclyTrigger('datesRender', [ - { - view: component.view, - el: component.view.el - } - ]); - } - if (this.isEventsUpdated) { - this.isEventsUpdated = false; - } - this.releaseAfterSizingTriggers(); - }; - // Options - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.setOption = function (name, val) { - var _a; - this.mutateOptions((_a = {}, _a[name] = val, _a), [], true); - }; - Calendar.prototype.getOption = function (name) { - return this.optionsManager.computed[name]; - }; - Calendar.prototype.opt = function (name) { - return this.optionsManager.computed[name]; - }; - Calendar.prototype.viewOpt = function (name) { - return this.viewOpts()[name]; - }; - Calendar.prototype.viewOpts = function () { - return this.viewSpecs[this.state.viewType].options; - }; - /* - handles option changes (like a diff) - */ - Calendar.prototype.mutateOptions = function (updates, removals, isDynamic, deepEqual) { - var _this = this; - var changeHandlers = this.pluginSystem.hooks.optionChangeHandlers; - var normalUpdates = {}; - var specialUpdates = {}; - var oldDateEnv = this.dateEnv; // do this before handleOptions - var isTimeZoneDirty = false; - var isSizeDirty = false; - var anyDifficultOptions = Boolean(removals.length); - for (var name_1 in updates) { - if (changeHandlers[name_1]) { - specialUpdates[name_1] = updates[name_1]; - } - else { - normalUpdates[name_1] = updates[name_1]; - } - } - for (var name_2 in normalUpdates) { - if (/^(height|contentHeight|aspectRatio)$/.test(name_2)) { - isSizeDirty = true; - } - else if (/^(defaultDate|defaultView)$/.test(name_2)) ; - else { - anyDifficultOptions = true; - if (name_2 === 'timeZone') { - isTimeZoneDirty = true; - } - } - } - this.optionsManager.mutate(normalUpdates, removals, isDynamic); - if (anyDifficultOptions) { - this.handleOptions(this.optionsManager.computed); - this.needsFullRerender = true; - } - this.batchRendering(function () { - if (anyDifficultOptions) { - if (isTimeZoneDirty) { - _this.dispatch({ - type: 'CHANGE_TIMEZONE', - oldDateEnv: oldDateEnv - }); - } - /* HACK - has the same effect as calling this.requestRerender(true) - but recomputes the state's dateProfile - */ - _this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: _this.state.viewType - }); - } - else if (isSizeDirty) { - _this.updateSize(); - } - // special updates - if (deepEqual) { - for (var name_3 in specialUpdates) { - changeHandlers[name_3](specialUpdates[name_3], _this, deepEqual); - } - } - }); - }; - /* - rebuilds things based off of a complete set of refined options - */ - Calendar.prototype.handleOptions = function (options) { - var _this = this; - var pluginHooks = this.pluginSystem.hooks; - this.defaultAllDayEventDuration = createDuration(options.defaultAllDayEventDuration); - this.defaultTimedEventDuration = createDuration(options.defaultTimedEventDuration); - this.delayedRerender = this.buildDelayedRerender(options.rerenderDelay); - this.theme = this.buildTheme(options); - var available = this.parseRawLocales(options.locales); - this.availableRawLocales = available.map; - var locale = this.buildLocale(options.locale || available.defaultCode, available.map); - this.dateEnv = this.buildDateEnv(locale, options.timeZone, pluginHooks.namedTimeZonedImpl, options.firstDay, options.weekNumberCalculation, options.weekLabel, pluginHooks.cmdFormatter); - this.selectionConfig = this.buildSelectionConfig(options); // needs dateEnv. do after :( - // ineffecient to do every time? - this.viewSpecs = buildViewSpecs(pluginHooks.views, this.optionsManager); - // ineffecient to do every time? - this.dateProfileGenerators = mapHash(this.viewSpecs, function (viewSpec) { - return new viewSpec.class.prototype.dateProfileGeneratorClass(viewSpec, _this); - }); - }; - Calendar.prototype.getAvailableLocaleCodes = function () { - return Object.keys(this.availableRawLocales); - }; - Calendar.prototype._buildSelectionConfig = function (rawOpts) { - return processScopedUiProps('select', rawOpts, this); - }; - Calendar.prototype._buildEventUiSingleBase = function (rawOpts) { - if (rawOpts.editable) { // so 'editable' affected events - rawOpts = __assign({}, rawOpts, { eventEditable: true }); - } - return processScopedUiProps('event', rawOpts, this); - }; - // Trigger - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.hasPublicHandlers = function (name) { - return this.hasHandlers(name) || - this.opt(name); // handler specified in options - }; - Calendar.prototype.publiclyTrigger = function (name, args) { - var optHandler = this.opt(name); - this.triggerWith(name, this, args); - if (optHandler) { - return optHandler.apply(this, args); - } - }; - Calendar.prototype.publiclyTriggerAfterSizing = function (name, args) { - var afterSizingTriggers = this.afterSizingTriggers; - (afterSizingTriggers[name] || (afterSizingTriggers[name] = [])).push(args); - }; - Calendar.prototype.releaseAfterSizingTriggers = function () { - var afterSizingTriggers = this.afterSizingTriggers; - for (var name_4 in afterSizingTriggers) { - for (var _i = 0, _a = afterSizingTriggers[name_4]; _i < _a.length; _i++) { - var args = _a[_i]; - this.publiclyTrigger(name_4, args); - } - } - this.afterSizingTriggers = {}; - }; - // View - // ----------------------------------------------------------------------------------------------------------------- - // Returns a boolean about whether the view is okay to instantiate at some point - Calendar.prototype.isValidViewType = function (viewType) { - return Boolean(this.viewSpecs[viewType]); - }; - Calendar.prototype.changeView = function (viewType, dateOrRange) { - var dateMarker = null; - if (dateOrRange) { - if (dateOrRange.start && dateOrRange.end) { // a range - this.optionsManager.mutate({ visibleRange: dateOrRange }, []); // will not rerender - this.handleOptions(this.optionsManager.computed); // ...but yuck - } - else { // a date - dateMarker = this.dateEnv.createMarker(dateOrRange); // just like gotoDate - } - } - this.unselect(); - this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: viewType, - dateMarker: dateMarker - }); - }; - // Forces navigation to a view for the given date. - // `viewType` can be a specific view name or a generic one like "week" or "day". - // needs to change - Calendar.prototype.zoomTo = function (dateMarker, viewType) { - var spec; - viewType = viewType || 'day'; // day is default zoom - spec = this.viewSpecs[viewType] || - this.getUnitViewSpec(viewType); - this.unselect(); - if (spec) { - this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: spec.type, - dateMarker: dateMarker - }); - } - else { - this.dispatch({ - type: 'SET_DATE', - dateMarker: dateMarker - }); - } - }; - // Given a duration singular unit, like "week" or "day", finds a matching view spec. - // Preference is given to views that have corresponding buttons. - Calendar.prototype.getUnitViewSpec = function (unit) { - var component = this.component; - var viewTypes = []; - var i; - var spec; - // put views that have buttons first. there will be duplicates, but oh - if (component.header) { - viewTypes.push.apply(viewTypes, component.header.viewsWithButtons); - } - if (component.footer) { - viewTypes.push.apply(viewTypes, component.footer.viewsWithButtons); - } - for (var viewType in this.viewSpecs) { - viewTypes.push(viewType); - } - for (i = 0; i < viewTypes.length; i++) { - spec = this.viewSpecs[viewTypes[i]]; - if (spec) { - if (spec.singleUnit === unit) { - return spec; - } - } - } - }; - // Current Date - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.getInitialDate = function () { - var defaultDateInput = this.opt('defaultDate'); - // compute the initial ambig-timezone date - if (defaultDateInput != null) { - return this.dateEnv.createMarker(defaultDateInput); - } - else { - return this.getNow(); // getNow already returns unzoned - } - }; - Calendar.prototype.prev = function () { - this.unselect(); - this.dispatch({ type: 'PREV' }); - }; - Calendar.prototype.next = function () { - this.unselect(); - this.dispatch({ type: 'NEXT' }); - }; - Calendar.prototype.prevYear = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.addYears(this.state.currentDate, -1) - }); - }; - Calendar.prototype.nextYear = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.addYears(this.state.currentDate, 1) - }); - }; - Calendar.prototype.today = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.getNow() - }); - }; - Calendar.prototype.gotoDate = function (zonedDateInput) { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.createMarker(zonedDateInput) - }); - }; - Calendar.prototype.incrementDate = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // else, warn about invalid input? - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.add(this.state.currentDate, delta) - }); - } - }; - // for external API - Calendar.prototype.getDate = function () { - return this.dateEnv.toDate(this.state.currentDate); - }; - // Date Formatting Utils - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.formatDate = function (d, formatter) { - var dateEnv = this.dateEnv; - return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter)); - }; - // `settings` is for formatter AND isEndExclusive - Calendar.prototype.formatRange = function (d0, d1, settings) { - var dateEnv = this.dateEnv; - return dateEnv.formatRange(dateEnv.createMarker(d0), dateEnv.createMarker(d1), createFormatter(settings, this.opt('defaultRangeSeparator')), settings); - }; - Calendar.prototype.formatIso = function (d, omitTime) { - var dateEnv = this.dateEnv; - return dateEnv.formatIso(dateEnv.createMarker(d), { omitTime: omitTime }); - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.windowResize = function (ev) { - if (!this.isHandlingWindowResize && - this.component && // why? - ev.target === window // not a jqui resize event - ) { - this.isHandlingWindowResize = true; - this.updateSize(); - this.publiclyTrigger('windowResize', [this.view]); - this.isHandlingWindowResize = false; - } - }; - Calendar.prototype.updateSize = function () { - if (this.component) { // when? - this.component.updateSize(true); - } - }; - // Component Registration - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.registerInteractiveComponent = function (component, settingsInput) { - var settings = parseInteractionSettings(component, settingsInput); - var DEFAULT_INTERACTIONS = [ - EventClicking, - EventHovering - ]; - var interactionClasses = DEFAULT_INTERACTIONS.concat(this.pluginSystem.hooks.componentInteractions); - var interactions = interactionClasses.map(function (interactionClass) { - return new interactionClass(settings); - }); - this.interactionsStore[component.uid] = interactions; - interactionSettingsStore[component.uid] = settings; - }; - Calendar.prototype.unregisterInteractiveComponent = function (component) { - for (var _i = 0, _a = this.interactionsStore[component.uid]; _i < _a.length; _i++) { - var listener = _a[_i]; - listener.destroy(); - } - delete this.interactionsStore[component.uid]; - delete interactionSettingsStore[component.uid]; - }; - // Date Selection / Event Selection / DayClick - // ----------------------------------------------------------------------------------------------------------------- - // this public method receives start/end dates in any format, with any timezone - // NOTE: args were changed from v3 - Calendar.prototype.select = function (dateOrObj, endDate) { - var selectionInput; - if (endDate == null) { - if (dateOrObj.start != null) { - selectionInput = dateOrObj; - } - else { - selectionInput = { - start: dateOrObj, - end: null - }; - } - } - else { - selectionInput = { - start: dateOrObj, - end: endDate - }; - } - var selection = parseDateSpan(selectionInput, this.dateEnv, createDuration({ days: 1 }) // TODO: cache this? - ); - if (selection) { // throw parse error otherwise? - this.dispatch({ type: 'SELECT_DATES', selection: selection }); - this.triggerDateSelect(selection); - } - }; - // public method - Calendar.prototype.unselect = function (pev) { - if (this.state.dateSelection) { - this.dispatch({ type: 'UNSELECT_DATES' }); - this.triggerDateUnselect(pev); - } - }; - Calendar.prototype.triggerDateSelect = function (selection, pev) { - var arg = __assign({}, this.buildDateSpanApi(selection), { jsEvent: pev ? pev.origEvent : null, view: this.view }); - this.publiclyTrigger('select', [arg]); - }; - Calendar.prototype.triggerDateUnselect = function (pev) { - this.publiclyTrigger('unselect', [ - { - jsEvent: pev ? pev.origEvent : null, - view: this.view - } - ]); - }; - // TODO: receive pev? - Calendar.prototype.triggerDateClick = function (dateSpan, dayEl, view, ev) { - var arg = __assign({}, this.buildDatePointApi(dateSpan), { dayEl: dayEl, jsEvent: ev, // Is this always a mouse event? See #4655 - view: view }); - this.publiclyTrigger('dateClick', [arg]); - }; - Calendar.prototype.buildDatePointApi = function (dateSpan) { - var props = {}; - for (var _i = 0, _a = this.pluginSystem.hooks.datePointTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(props, transform(dateSpan, this)); - } - __assign(props, buildDatePointApi(dateSpan, this.dateEnv)); - return props; - }; - Calendar.prototype.buildDateSpanApi = function (dateSpan) { - var props = {}; - for (var _i = 0, _a = this.pluginSystem.hooks.dateSpanTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(props, transform(dateSpan, this)); - } - __assign(props, buildDateSpanApi(dateSpan, this.dateEnv)); - return props; - }; - // Date Utils - // ----------------------------------------------------------------------------------------------------------------- - // Returns a DateMarker for the current date, as defined by the client's computer or from the `now` option - Calendar.prototype.getNow = function () { - var now = this.opt('now'); - if (typeof now === 'function') { - now = now(); - } - if (now == null) { - return this.dateEnv.createNowMarker(); - } - return this.dateEnv.createMarker(now); - }; - // Event-Date Utilities - // ----------------------------------------------------------------------------------------------------------------- - // Given an event's allDay status and start date, return what its fallback end date should be. - // TODO: rename to computeDefaultEventEnd - Calendar.prototype.getDefaultEventEnd = function (allDay, marker) { - var end = marker; - if (allDay) { - end = startOfDay(end); - end = this.dateEnv.add(end, this.defaultAllDayEventDuration); - } - else { - end = this.dateEnv.add(end, this.defaultTimedEventDuration); - } - return end; - }; - // Public Events API - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.addEvent = function (eventInput, sourceInput) { - if (eventInput instanceof EventApi) { - var def = eventInput._def; - var instance = eventInput._instance; - // not already present? don't want to add an old snapshot - if (!this.state.eventStore.defs[def.defId]) { - this.dispatch({ - type: 'ADD_EVENTS', - eventStore: eventTupleToStore({ def: def, instance: instance }) // TODO: better util for two args? - }); - } - return eventInput; - } - var sourceId; - if (sourceInput instanceof EventSourceApi) { - sourceId = sourceInput.internalEventSource.sourceId; - } - else if (sourceInput != null) { - var sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function - if (!sourceApi) { - console.warn('Could not find an event source with ID "' + sourceInput + '"'); // TODO: test - return null; - } - else { - sourceId = sourceApi.internalEventSource.sourceId; - } - } - var tuple = parseEvent(eventInput, sourceId, this); - if (tuple) { - this.dispatch({ - type: 'ADD_EVENTS', - eventStore: eventTupleToStore(tuple) - }); - return new EventApi(this, tuple.def, tuple.def.recurringDef ? null : tuple.instance); - } - return null; - }; - // TODO: optimize - Calendar.prototype.getEventById = function (id) { - var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances; - id = String(id); - for (var defId in defs) { - var def = defs[defId]; - if (def.publicId === id) { - if (def.recurringDef) { - return new EventApi(this, def, null); - } - else { - for (var instanceId in instances) { - var instance = instances[instanceId]; - if (instance.defId === def.defId) { - return new EventApi(this, def, instance); - } - } - } - } - } - return null; - }; - Calendar.prototype.getEvents = function () { - var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances; - var eventApis = []; - for (var id in instances) { - var instance = instances[id]; - var def = defs[instance.defId]; - eventApis.push(new EventApi(this, def, instance)); - } - return eventApis; - }; - Calendar.prototype.removeAllEvents = function () { - this.dispatch({ type: 'REMOVE_ALL_EVENTS' }); - }; - Calendar.prototype.rerenderEvents = function () { - this.dispatch({ type: 'RESET_EVENTS' }); - }; - // Public Event Sources API - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.getEventSources = function () { - var sourceHash = this.state.eventSources; - var sourceApis = []; - for (var internalId in sourceHash) { - sourceApis.push(new EventSourceApi(this, sourceHash[internalId])); - } - return sourceApis; - }; - Calendar.prototype.getEventSourceById = function (id) { - var sourceHash = this.state.eventSources; - id = String(id); - for (var sourceId in sourceHash) { - if (sourceHash[sourceId].publicId === id) { - return new EventSourceApi(this, sourceHash[sourceId]); - } - } - return null; - }; - Calendar.prototype.addEventSource = function (sourceInput) { - if (sourceInput instanceof EventSourceApi) { - // not already present? don't want to add an old snapshot - if (!this.state.eventSources[sourceInput.internalEventSource.sourceId]) { - this.dispatch({ - type: 'ADD_EVENT_SOURCES', - sources: [sourceInput.internalEventSource] - }); - } - return sourceInput; - } - var eventSource = parseEventSource(sourceInput, this); - if (eventSource) { // TODO: error otherwise? - this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: [eventSource] }); - return new EventSourceApi(this, eventSource); - } - return null; - }; - Calendar.prototype.removeAllEventSources = function () { - this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' }); - }; - Calendar.prototype.refetchEvents = function () { - this.dispatch({ type: 'FETCH_EVENT_SOURCES' }); - }; - // Scroll - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.scrollToTime = function (timeInput) { - var duration = createDuration(timeInput); - if (duration) { - this.component.view.scrollToDuration(duration); - } - }; - return Calendar; - }()); - EmitterMixin.mixInto(Calendar); - // for memoizers - // ----------------------------------------------------------------------------------------------------------------- - function buildDateEnv(locale, timeZone, namedTimeZoneImpl, firstDay, weekNumberCalculation, weekLabel, cmdFormatter) { - return new DateEnv({ - calendarSystem: 'gregory', - timeZone: timeZone, - namedTimeZoneImpl: namedTimeZoneImpl, - locale: locale, - weekNumberCalculation: weekNumberCalculation, - firstDay: firstDay, - weekLabel: weekLabel, - cmdFormatter: cmdFormatter - }); - } - function buildTheme(calendarOptions) { - var themeClass = this.pluginSystem.hooks.themeClasses[calendarOptions.themeSystem] || StandardTheme; - return new themeClass(calendarOptions); - } - function buildDelayedRerender(wait) { - var func = this.tryRerender.bind(this); - if (wait != null) { - func = debounce(func, wait); - } - return func; - } - function buildEventUiBySource(eventSources) { - return mapHash(eventSources, function (eventSource) { - return eventSource.ui; - }); - } - function buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) { - var eventUiBases = { '': eventUiSingleBase }; - for (var defId in eventDefs) { - var def = eventDefs[defId]; - if (def.sourceId && eventUiBySource[def.sourceId]) { - eventUiBases[defId] = eventUiBySource[def.sourceId]; - } - } - return eventUiBases; - } - - var View = /** @class */ (function (_super) { - __extends(View, _super); - function View(context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, context, createElement('div', { className: 'fc-view fc-' + viewSpec.type + '-view' }), true // isView (HACK) - ) || this; - _this.renderDatesMem = memoizeRendering(_this.renderDatesWrap, _this.unrenderDatesWrap); - _this.renderBusinessHoursMem = memoizeRendering(_this.renderBusinessHours, _this.unrenderBusinessHours, [_this.renderDatesMem]); - _this.renderDateSelectionMem = memoizeRendering(_this.renderDateSelectionWrap, _this.unrenderDateSelectionWrap, [_this.renderDatesMem]); - _this.renderEventsMem = memoizeRendering(_this.renderEvents, _this.unrenderEvents, [_this.renderDatesMem]); - _this.renderEventSelectionMem = memoizeRendering(_this.renderEventSelectionWrap, _this.unrenderEventSelectionWrap, [_this.renderEventsMem]); - _this.renderEventDragMem = memoizeRendering(_this.renderEventDragWrap, _this.unrenderEventDragWrap, [_this.renderDatesMem]); - _this.renderEventResizeMem = memoizeRendering(_this.renderEventResizeWrap, _this.unrenderEventResizeWrap, [_this.renderDatesMem]); - _this.viewSpec = viewSpec; - _this.dateProfileGenerator = dateProfileGenerator; - _this.type = viewSpec.type; - _this.eventOrderSpecs = parseFieldSpecs(_this.opt('eventOrder')); - _this.nextDayThreshold = createDuration(_this.opt('nextDayThreshold')); - parentEl.appendChild(_this.el); - _this.initialize(); - return _this; - } - View.prototype.initialize = function () { - }; - Object.defineProperty(View.prototype, "activeStart", { - // Date Setting/Unsetting - // ----------------------------------------------------------------------------------------------------------------- - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.activeRange.start); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "activeEnd", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.activeRange.end); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "currentStart", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.currentRange.start); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "currentEnd", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.currentRange.end); - }, - enumerable: true, - configurable: true - }); - // General Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.render = function (props) { - this.renderDatesMem(props.dateProfile); - this.renderBusinessHoursMem(props.businessHours); - this.renderDateSelectionMem(props.dateSelection); - this.renderEventsMem(props.eventStore); - this.renderEventSelectionMem(props.eventSelection); - this.renderEventDragMem(props.eventDrag); - this.renderEventResizeMem(props.eventResize); - }; - View.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderDatesMem.unrender(); // should unrender everything else - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.updateSize = function (isResize, viewHeight, isAuto) { - var calendar = this.calendar; - if (isResize || // HACKS... - calendar.isViewUpdated || - calendar.isDatesUpdated || - calendar.isEventsUpdated) { - // sort of the catch-all sizing - // anything that might cause dimension changes - this.updateBaseSize(isResize, viewHeight, isAuto); - } - }; - View.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) { - }; - // Date Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderDatesWrap = function (dateProfile) { - this.renderDates(dateProfile); - this.addScroll({ - duration: createDuration(this.opt('scrollTime')) - }); - this.startNowIndicator(dateProfile); // shouldn't render yet because updateSize will be called soon - }; - View.prototype.unrenderDatesWrap = function () { - this.stopNowIndicator(); - this.unrenderDates(); - }; - View.prototype.renderDates = function (dateProfile) { }; - View.prototype.unrenderDates = function () { }; - // Business Hours - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderBusinessHours = function (businessHours) { }; - View.prototype.unrenderBusinessHours = function () { }; - // Date Selection - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderDateSelectionWrap = function (selection) { - if (selection) { - this.renderDateSelection(selection); - } - }; - View.prototype.unrenderDateSelectionWrap = function (selection) { - if (selection) { - this.unrenderDateSelection(selection); - } - }; - View.prototype.renderDateSelection = function (selection) { }; - View.prototype.unrenderDateSelection = function (selection) { }; - // Event Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEvents = function (eventStore) { }; - View.prototype.unrenderEvents = function () { }; - // util for subclasses - View.prototype.sliceEvents = function (eventStore, allDay) { - var props = this.props; - return sliceEventStore(eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? this.nextDayThreshold : null).fg; - }; - View.prototype.computeEventDraggable = function (eventDef, eventUi) { - var transformers = this.calendar.pluginSystem.hooks.isDraggableTransformers; - var val = eventUi.startEditable; - for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) { - var transformer = transformers_1[_i]; - val = transformer(val, eventDef, eventUi, this); - } - return val; - }; - View.prototype.computeEventStartResizable = function (eventDef, eventUi) { - return eventUi.durationEditable && this.opt('eventResizableFromStart'); - }; - View.prototype.computeEventEndResizable = function (eventDef, eventUi) { - return eventUi.durationEditable; - }; - // Event Selection - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventSelectionWrap = function (instanceId) { - if (instanceId) { - this.renderEventSelection(instanceId); - } - }; - View.prototype.unrenderEventSelectionWrap = function (instanceId) { - if (instanceId) { - this.unrenderEventSelection(instanceId); - } - }; - View.prototype.renderEventSelection = function (instanceId) { }; - View.prototype.unrenderEventSelection = function (instanceId) { }; - // Event Drag - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventDragWrap = function (state) { - if (state) { - this.renderEventDrag(state); - } - }; - View.prototype.unrenderEventDragWrap = function (state) { - if (state) { - this.unrenderEventDrag(state); - } - }; - View.prototype.renderEventDrag = function (state) { }; - View.prototype.unrenderEventDrag = function (state) { }; - // Event Resize - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventResizeWrap = function (state) { - if (state) { - this.renderEventResize(state); - } - }; - View.prototype.unrenderEventResizeWrap = function (state) { - if (state) { - this.unrenderEventResize(state); - } - }; - View.prototype.renderEventResize = function (state) { }; - View.prototype.unrenderEventResize = function (state) { }; - /* Now Indicator - ------------------------------------------------------------------------------------------------------------------*/ - // Immediately render the current time indicator and begins re-rendering it at an interval, - // which is defined by this.getNowIndicatorUnit(). - // TODO: somehow do this for the current whole day's background too - View.prototype.startNowIndicator = function (dateProfile) { - var _this = this; - var dateEnv = this.dateEnv; - var unit; - var update; - var delay; // ms wait value - if (this.opt('nowIndicator')) { - unit = this.getNowIndicatorUnit(dateProfile); - if (unit) { - update = this.updateNowIndicator.bind(this); - this.initialNowDate = this.calendar.getNow(); - this.initialNowQueriedMs = new Date().valueOf(); - // wait until the beginning of the next interval - delay = dateEnv.add(dateEnv.startOf(this.initialNowDate, unit), createDuration(1, unit)).valueOf() - this.initialNowDate.valueOf(); - // TODO: maybe always use setTimeout, waiting until start of next unit - this.nowIndicatorTimeoutID = setTimeout(function () { - _this.nowIndicatorTimeoutID = null; - update(); - if (unit === 'second') { - delay = 1000; // every second - } - else { - delay = 1000 * 60; // otherwise, every minute - } - _this.nowIndicatorIntervalID = setInterval(update, delay); // update every interval - }, delay); - } - // rendering will be initiated in updateSize - } - }; - // rerenders the now indicator, computing the new current time from the amount of time that has passed - // since the initial getNow call. - View.prototype.updateNowIndicator = function () { - if (this.props.dateProfile && // a way to determine if dates were rendered yet - this.initialNowDate // activated before? - ) { - this.unrenderNowIndicator(); // won't unrender if unnecessary - this.renderNowIndicator(addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs)); - this.isNowIndicatorRendered = true; - } - }; - // Immediately unrenders the view's current time indicator and stops any re-rendering timers. - // Won't cause side effects if indicator isn't rendered. - View.prototype.stopNowIndicator = function () { - if (this.isNowIndicatorRendered) { - if (this.nowIndicatorTimeoutID) { - clearTimeout(this.nowIndicatorTimeoutID); - this.nowIndicatorTimeoutID = null; - } - if (this.nowIndicatorIntervalID) { - clearInterval(this.nowIndicatorIntervalID); - this.nowIndicatorIntervalID = null; - } - this.unrenderNowIndicator(); - this.isNowIndicatorRendered = false; - } - }; - View.prototype.getNowIndicatorUnit = function (dateProfile) { - // subclasses should implement - }; - // Renders a current time indicator at the given datetime - View.prototype.renderNowIndicator = function (date) { - // SUBCLASSES MUST PASS TO CHILDREN! - }; - // Undoes the rendering actions from renderNowIndicator - View.prototype.unrenderNowIndicator = function () { - // SUBCLASSES MUST PASS TO CHILDREN! - }; - /* Scroller - ------------------------------------------------------------------------------------------------------------------*/ - View.prototype.addScroll = function (scroll) { - var queuedScroll = this.queuedScroll || (this.queuedScroll = {}); - __assign(queuedScroll, scroll); - }; - View.prototype.popScroll = function (isResize) { - this.applyQueuedScroll(isResize); - this.queuedScroll = null; - }; - View.prototype.applyQueuedScroll = function (isResize) { - this.applyScroll(this.queuedScroll || {}, isResize); - }; - View.prototype.queryScroll = function () { - var scroll = {}; - if (this.props.dateProfile) { // dates rendered yet? - __assign(scroll, this.queryDateScroll()); - } - return scroll; - }; - View.prototype.applyScroll = function (scroll, isResize) { - var duration = scroll.duration; - if (duration != null) { - delete scroll.duration; - if (this.props.dateProfile) { // dates rendered yet? - __assign(scroll, this.computeDateScroll(duration)); - } - } - if (this.props.dateProfile) { // dates rendered yet? - this.applyDateScroll(scroll); - } - }; - View.prototype.computeDateScroll = function (duration) { - return {}; // subclasses must implement - }; - View.prototype.queryDateScroll = function () { - return {}; // subclasses must implement - }; - View.prototype.applyDateScroll = function (scroll) { - // subclasses must implement - }; - // for API - View.prototype.scrollToDuration = function (duration) { - this.applyScroll({ duration: duration }, false); - }; - return View; - }(DateComponent)); - EmitterMixin.mixInto(View); - View.prototype.usesMinMaxTime = false; - View.prototype.dateProfileGeneratorClass = DateProfileGenerator; - - var FgEventRenderer = /** @class */ (function () { - function FgEventRenderer(context) { - this.segs = []; - this.isSizeDirty = false; - this.context = context; - } - FgEventRenderer.prototype.renderSegs = function (segs, mirrorInfo) { - this.rangeUpdated(); // called too frequently :( - // render an `.el` on each seg - // returns a subset of the segs. segs that were actually rendered - segs = this.renderSegEls(segs, mirrorInfo); - this.segs = segs; - this.attachSegs(segs, mirrorInfo); - this.isSizeDirty = true; - this.context.view.triggerRenderedSegs(this.segs, Boolean(mirrorInfo)); - }; - FgEventRenderer.prototype.unrender = function (_segs, mirrorInfo) { - this.context.view.triggerWillRemoveSegs(this.segs, Boolean(mirrorInfo)); - this.detachSegs(this.segs); - this.segs = []; - }; - // Updates values that rely on options and also relate to range - FgEventRenderer.prototype.rangeUpdated = function () { - var options = this.context.options; - var displayEventTime; - var displayEventEnd; - this.eventTimeFormat = createFormatter(options.eventTimeFormat || this.computeEventTimeFormat(), options.defaultRangeSeparator); - displayEventTime = options.displayEventTime; - if (displayEventTime == null) { - displayEventTime = this.computeDisplayEventTime(); // might be based off of range - } - displayEventEnd = options.displayEventEnd; - if (displayEventEnd == null) { - displayEventEnd = this.computeDisplayEventEnd(); // might be based off of range - } - this.displayEventTime = displayEventTime; - this.displayEventEnd = displayEventEnd; - }; - // Renders and assigns an `el` property for each foreground event segment. - // Only returns segments that successfully rendered. - FgEventRenderer.prototype.renderSegEls = function (segs, mirrorInfo) { - var html = ''; - var i; - if (segs.length) { // don't build an empty html string - // build a large concatenation of event segment HTML - for (i = 0; i < segs.length; i++) { - html += this.renderSegHtml(segs[i], mirrorInfo); - } - // Grab individual elements from the combined HTML string. Use each as the default rendering. - // Then, compute the 'el' for each segment. An el might be null if the eventRender callback returned false. - htmlToElements(html).forEach(function (el, i) { - var seg = segs[i]; - if (el) { - seg.el = el; - } - }); - segs = filterSegsViaEls(this.context.view, segs, Boolean(mirrorInfo)); - } - return segs; - }; - // Generic utility for generating the HTML classNames for an event segment's element - FgEventRenderer.prototype.getSegClasses = function (seg, isDraggable, isResizable, mirrorInfo) { - var classes = [ - 'fc-event', - seg.isStart ? 'fc-start' : 'fc-not-start', - seg.isEnd ? 'fc-end' : 'fc-not-end' - ].concat(seg.eventRange.ui.classNames); - if (isDraggable) { - classes.push('fc-draggable'); - } - if (isResizable) { - classes.push('fc-resizable'); - } - if (mirrorInfo) { - classes.push('fc-mirror'); - if (mirrorInfo.isDragging) { - classes.push('fc-dragging'); - } - if (mirrorInfo.isResizing) { - classes.push('fc-resizing'); - } - } - return classes; - }; - // Compute the text that should be displayed on an event's element. - // `range` can be the Event object itself, or something range-like, with at least a `start`. - // If event times are disabled, or the event has no time, will return a blank string. - // If not specified, formatter will default to the eventTimeFormat setting, - // and displayEnd will default to the displayEventEnd setting. - FgEventRenderer.prototype.getTimeText = function (eventRange, formatter, displayEnd) { - var def = eventRange.def, instance = eventRange.instance; - return this._getTimeText(instance.range.start, def.hasEnd ? instance.range.end : null, def.allDay, formatter, displayEnd, instance.forcedStartTzo, instance.forcedEndTzo); - }; - FgEventRenderer.prototype._getTimeText = function (start, end, allDay, formatter, displayEnd, forcedStartTzo, forcedEndTzo) { - var dateEnv = this.context.dateEnv; - if (formatter == null) { - formatter = this.eventTimeFormat; - } - if (displayEnd == null) { - displayEnd = this.displayEventEnd; - } - if (this.displayEventTime && !allDay) { - if (displayEnd && end) { - return dateEnv.formatRange(start, end, formatter, { - forcedStartTzo: forcedStartTzo, - forcedEndTzo: forcedEndTzo - }); - } - else { - return dateEnv.format(start, formatter, { - forcedTzo: forcedStartTzo - }); - } - } - return ''; - }; - FgEventRenderer.prototype.computeEventTimeFormat = function () { - return { - hour: 'numeric', - minute: '2-digit', - omitZeroMinute: true - }; - }; - FgEventRenderer.prototype.computeDisplayEventTime = function () { - return true; - }; - FgEventRenderer.prototype.computeDisplayEventEnd = function () { - return true; - }; - // Utility for generating event skin-related CSS properties - FgEventRenderer.prototype.getSkinCss = function (ui) { - return { - 'background-color': ui.backgroundColor, - 'border-color': ui.borderColor, - color: ui.textColor - }; - }; - FgEventRenderer.prototype.sortEventSegs = function (segs) { - var specs = this.context.view.eventOrderSpecs; - var objs = segs.map(buildSegCompareObj); - objs.sort(function (obj0, obj1) { - return compareByFieldSpecs(obj0, obj1, specs); - }); - return objs.map(function (c) { - return c._seg; - }); - }; - FgEventRenderer.prototype.computeSizes = function (force) { - if (force || this.isSizeDirty) { - this.computeSegSizes(this.segs); - } - }; - FgEventRenderer.prototype.assignSizes = function (force) { - if (force || this.isSizeDirty) { - this.assignSegSizes(this.segs); - this.isSizeDirty = false; - } - }; - FgEventRenderer.prototype.computeSegSizes = function (segs) { - }; - FgEventRenderer.prototype.assignSegSizes = function (segs) { - }; - // Manipulation on rendered segs - FgEventRenderer.prototype.hideByHash = function (hash) { - if (hash) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (hash[seg.eventRange.instance.instanceId]) { - seg.el.style.visibility = 'hidden'; - } - } - } - }; - FgEventRenderer.prototype.showByHash = function (hash) { - if (hash) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (hash[seg.eventRange.instance.instanceId]) { - seg.el.style.visibility = ''; - } - } - } - }; - FgEventRenderer.prototype.selectByInstanceId = function (instanceId) { - if (instanceId) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - var eventInstance = seg.eventRange.instance; - if (eventInstance && eventInstance.instanceId === instanceId && - seg.el // necessary? - ) { - seg.el.classList.add('fc-selected'); - } - } - } - }; - FgEventRenderer.prototype.unselectByInstanceId = function (instanceId) { - if (instanceId) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (seg.el) { // necessary? - seg.el.classList.remove('fc-selected'); - } - } - } - }; - return FgEventRenderer; - }()); - // returns a object with all primitive props that can be compared - function buildSegCompareObj(seg) { - var eventDef = seg.eventRange.def; - var range = seg.eventRange.instance.range; - var start = range.start ? range.start.valueOf() : 0; // TODO: better support for open-range events - var end = range.end ? range.end.valueOf() : 0; // " - return __assign({}, eventDef.extendedProps, eventDef, { id: eventDef.publicId, start: start, - end: end, duration: end - start, allDay: Number(eventDef.allDay), _seg: seg // for later retrieval - }); - } - - var FillRenderer = /** @class */ (function () { - function FillRenderer(context) { - this.fillSegTag = 'div'; - this.dirtySizeFlags = {}; - this.context = context; - this.containerElsByType = {}; - this.segsByType = {}; - } - FillRenderer.prototype.getSegsByType = function (type) { - return this.segsByType[type] || []; - }; - FillRenderer.prototype.renderSegs = function (type, segs) { - var _a; - var renderedSegs = this.renderSegEls(type, segs); // assignes `.el` to each seg. returns successfully rendered segs - var containerEls = this.attachSegs(type, renderedSegs); - if (containerEls) { - (_a = (this.containerElsByType[type] || (this.containerElsByType[type] = []))).push.apply(_a, containerEls); - } - this.segsByType[type] = renderedSegs; - if (type === 'bgEvent') { - this.context.view.triggerRenderedSegs(renderedSegs, false); // isMirror=false - } - this.dirtySizeFlags[type] = true; - }; - // Unrenders a specific type of fill that is currently rendered on the grid - FillRenderer.prototype.unrender = function (type) { - var segs = this.segsByType[type]; - if (segs) { - if (type === 'bgEvent') { - this.context.view.triggerWillRemoveSegs(segs, false); // isMirror=false - } - this.detachSegs(type, segs); - } - }; - // Renders and assigns an `el` property for each fill segment. Generic enough to work with different types. - // Only returns segments that successfully rendered. - FillRenderer.prototype.renderSegEls = function (type, segs) { - var _this = this; - var html = ''; - var i; - if (segs.length) { - // build a large concatenation of segment HTML - for (i = 0; i < segs.length; i++) { - html += this.renderSegHtml(type, segs[i]); - } - // Grab individual elements from the combined HTML string. Use each as the default rendering. - // Then, compute the 'el' for each segment. - htmlToElements(html).forEach(function (el, i) { - var seg = segs[i]; - if (el) { - seg.el = el; - } - }); - if (type === 'bgEvent') { - segs = filterSegsViaEls(this.context.view, segs, false // isMirror. background events can never be mirror elements - ); - } - // correct element type? (would be bad if a non-TD were inserted into a table for example) - segs = segs.filter(function (seg) { - return elementMatches(seg.el, _this.fillSegTag); - }); - } - return segs; - }; - // Builds the HTML needed for one fill segment. Generic enough to work with different types. - FillRenderer.prototype.renderSegHtml = function (type, seg) { - var css = null; - var classNames = []; - if (type !== 'highlight' && type !== 'businessHours') { - css = { - 'background-color': seg.eventRange.ui.backgroundColor - }; - } - if (type !== 'highlight') { - classNames = classNames.concat(seg.eventRange.ui.classNames); - } - if (type === 'businessHours') { - classNames.push('fc-bgevent'); - } - else { - classNames.push('fc-' + type.toLowerCase()); - } - return '<' + this.fillSegTag + - (classNames.length ? ' class="' + classNames.join(' ') + '"' : '') + - (css ? ' style="' + cssToStr(css) + '"' : '') + - '>'; - }; - FillRenderer.prototype.detachSegs = function (type, segs) { - var containerEls = this.containerElsByType[type]; - if (containerEls) { - containerEls.forEach(removeElement); - delete this.containerElsByType[type]; - } - }; - FillRenderer.prototype.computeSizes = function (force) { - for (var type in this.segsByType) { - if (force || this.dirtySizeFlags[type]) { - this.computeSegSizes(this.segsByType[type]); - } - } - }; - FillRenderer.prototype.assignSizes = function (force) { - for (var type in this.segsByType) { - if (force || this.dirtySizeFlags[type]) { - this.assignSegSizes(this.segsByType[type]); - } - } - this.dirtySizeFlags = {}; - }; - FillRenderer.prototype.computeSegSizes = function (segs) { - }; - FillRenderer.prototype.assignSegSizes = function (segs) { - }; - return FillRenderer; - }()); - - var NamedTimeZoneImpl = /** @class */ (function () { - function NamedTimeZoneImpl(timeZoneName) { - this.timeZoneName = timeZoneName; - } - return NamedTimeZoneImpl; - }()); - - /* - An abstraction for a dragging interaction originating on an event. - Does higher-level things than PointerDragger, such as possibly: - - a "mirror" that moves with the pointer - - a minimum number of pixels or other criteria for a true drag to begin - - subclasses must emit: - - pointerdown - - dragstart - - dragmove - - pointerup - - dragend - */ - var ElementDragging = /** @class */ (function () { - function ElementDragging(el) { - this.emitter = new EmitterMixin(); - } - ElementDragging.prototype.destroy = function () { - }; - ElementDragging.prototype.setMirrorIsVisible = function (bool) { - // optional if subclass doesn't want to support a mirror - }; - ElementDragging.prototype.setMirrorNeedsRevert = function (bool) { - // optional if subclass doesn't want to support a mirror - }; - ElementDragging.prototype.setAutoScrollEnabled = function (bool) { - // optional - }; - return ElementDragging; - }()); - - function formatDate(dateInput, settings) { - if (settings === void 0) { settings = {}; } - var dateEnv = buildDateEnv$1(settings); - var formatter = createFormatter(settings); - var dateMeta = dateEnv.createMarkerMeta(dateInput); - if (!dateMeta) { // TODO: warning? - return ''; - } - return dateEnv.format(dateMeta.marker, formatter, { - forcedTzo: dateMeta.forcedTzo - }); - } - function formatRange(startInput, endInput, settings // mixture of env and formatter settings - ) { - var dateEnv = buildDateEnv$1(typeof settings === 'object' && settings ? settings : {}); // pass in if non-null object - var formatter = createFormatter(settings, globalDefaults.defaultRangeSeparator); - var startMeta = dateEnv.createMarkerMeta(startInput); - var endMeta = dateEnv.createMarkerMeta(endInput); - if (!startMeta || !endMeta) { // TODO: warning? - return ''; - } - return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, { - forcedStartTzo: startMeta.forcedTzo, - forcedEndTzo: endMeta.forcedTzo, - isEndExclusive: settings.isEndExclusive - }); - } - // TODO: more DRY and optimized - function buildDateEnv$1(settings) { - var locale = buildLocale(settings.locale || 'en', parseRawLocales([]).map); // TODO: don't hardcode 'en' everywhere - // ensure required settings - settings = __assign({ timeZone: globalDefaults.timeZone, calendarSystem: 'gregory' }, settings, { locale: locale }); - return new DateEnv(settings); - } - - var DRAG_META_PROPS = { - startTime: createDuration, - duration: createDuration, - create: Boolean, - sourceId: String - }; - var DRAG_META_DEFAULTS = { - create: true - }; - function parseDragMeta(raw) { - var leftoverProps = {}; - var refined = refineProps(raw, DRAG_META_PROPS, DRAG_META_DEFAULTS, leftoverProps); - refined.leftoverProps = leftoverProps; - return refined; - } - - // Computes a default column header formatting string if `colFormat` is not explicitly defined - function computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) { - // if more than one week row, or if there are a lot of columns with not much space, - // put just the day numbers will be in each cell - if (!datesRepDistinctDays || dayCnt > 10) { - return { weekday: 'short' }; // "Sat" - } - else if (dayCnt > 1) { - return { weekday: 'short', month: 'numeric', day: 'numeric', omitCommas: true }; // "Sat 11/12" - } - else { - return { weekday: 'long' }; // "Saturday" - } - } - function renderDateCell(dateMarker, dateProfile, datesRepDistinctDays, colCnt, colHeadFormat, context, colspan, otherAttrs) { - var view = context.view, dateEnv = context.dateEnv, theme = context.theme, options = context.options; - var isDateValid = rangeContainsMarker(dateProfile.activeRange, dateMarker); // TODO: called too frequently. cache somehow. - var classNames = [ - 'fc-day-header', - theme.getClass('widgetHeader') - ]; - var innerHtml; - if (typeof options.columnHeaderHtml === 'function') { - innerHtml = options.columnHeaderHtml(dateEnv.toDate(dateMarker)); - } - else if (typeof options.columnHeaderText === 'function') { - innerHtml = htmlEscape(options.columnHeaderText(dateEnv.toDate(dateMarker))); - } - else { - innerHtml = htmlEscape(dateEnv.format(dateMarker, colHeadFormat)); - } - // if only one row of days, the classNames on the header can represent the specific days beneath - if (datesRepDistinctDays) { - classNames = classNames.concat( - // includes the day-of-week class - // noThemeHighlight=true (don't highlight the header) - getDayClasses(dateMarker, dateProfile, context, true)); - } - else { - classNames.push('fc-' + DAY_IDS[dateMarker.getUTCDay()]); // only add the day-of-week class - } - return '' + - ' 1 ? - ' colspan="' + colspan + '"' : - '') + - (otherAttrs ? - ' ' + otherAttrs : - '') + - '>' + - (isDateValid ? - // don't make a link if the heading could represent multiple days, or if there's only one day (forceOff) - buildGotoAnchorHtml(view, { date: dateMarker, forceOff: !datesRepDistinctDays || colCnt === 1 }, innerHtml) : - // if not valid, display text, but no link - innerHtml) + - ''; - } - - var DayHeader = /** @class */ (function (_super) { - __extends(DayHeader, _super); - function DayHeader(context, parentEl) { - var _this = _super.call(this, context) || this; - parentEl.innerHTML = ''; // because might be nbsp - parentEl.appendChild(_this.el = htmlToElement('
' + - '' + - '' + - '
' + - '
')); - _this.thead = _this.el.querySelector('thead'); - return _this; - } - DayHeader.prototype.destroy = function () { - removeElement(this.el); - }; - DayHeader.prototype.render = function (props) { - var dates = props.dates, datesRepDistinctDays = props.datesRepDistinctDays; - var parts = []; - if (props.renderIntroHtml) { - parts.push(props.renderIntroHtml()); - } - var colHeadFormat = createFormatter(this.opt('columnHeaderFormat') || - computeFallbackHeaderFormat(datesRepDistinctDays, dates.length)); - for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) { - var date = dates_1[_i]; - parts.push(renderDateCell(date, props.dateProfile, datesRepDistinctDays, dates.length, colHeadFormat, this.context)); - } - if (this.isRtl) { - parts.reverse(); - } - this.thead.innerHTML = '' + parts.join('') + ''; - }; - return DayHeader; - }(Component)); - - var DaySeries = /** @class */ (function () { - function DaySeries(range, dateProfileGenerator) { - var date = range.start; - var end = range.end; - var indices = []; - var dates = []; - var dayIndex = -1; - while (date < end) { // loop each day from start to end - if (dateProfileGenerator.isHiddenDay(date)) { - indices.push(dayIndex + 0.5); // mark that it's between indices - } - else { - dayIndex++; - indices.push(dayIndex); - dates.push(date); - } - date = addDays(date, 1); - } - this.dates = dates; - this.indices = indices; - this.cnt = dates.length; - } - DaySeries.prototype.sliceRange = function (range) { - var firstIndex = this.getDateDayIndex(range.start); // inclusive first index - var lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index - var clippedFirstIndex = Math.max(0, firstIndex); - var clippedLastIndex = Math.min(this.cnt - 1, lastIndex); - // deal with in-between indices - clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell - clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell - if (clippedFirstIndex <= clippedLastIndex) { - return { - firstIndex: clippedFirstIndex, - lastIndex: clippedLastIndex, - isStart: firstIndex === clippedFirstIndex, - isEnd: lastIndex === clippedLastIndex - }; - } - else { - return null; - } - }; - // Given a date, returns its chronolocial cell-index from the first cell of the grid. - // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets. - // If before the first offset, returns a negative number. - // If after the last offset, returns an offset past the last cell offset. - // Only works for *start* dates of cells. Will not work for exclusive end dates for cells. - DaySeries.prototype.getDateDayIndex = function (date) { - var indices = this.indices; - var dayOffset = Math.floor(diffDays(this.dates[0], date)); - if (dayOffset < 0) { - return indices[0] - 1; - } - else if (dayOffset >= indices.length) { - return indices[indices.length - 1] + 1; - } - else { - return indices[dayOffset]; - } - }; - return DaySeries; - }()); - - var DayTable = /** @class */ (function () { - function DayTable(daySeries, breakOnWeeks) { - var dates = daySeries.dates; - var daysPerRow; - var firstDay; - var rowCnt; - if (breakOnWeeks) { - // count columns until the day-of-week repeats - firstDay = dates[0].getUTCDay(); - for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow++) { - if (dates[daysPerRow].getUTCDay() === firstDay) { - break; - } - } - rowCnt = Math.ceil(dates.length / daysPerRow); - } - else { - rowCnt = 1; - daysPerRow = dates.length; - } - this.rowCnt = rowCnt; - this.colCnt = daysPerRow; - this.daySeries = daySeries; - this.cells = this.buildCells(); - this.headerDates = this.buildHeaderDates(); - } - DayTable.prototype.buildCells = function () { - var rows = []; - for (var row = 0; row < this.rowCnt; row++) { - var cells = []; - for (var col = 0; col < this.colCnt; col++) { - cells.push(this.buildCell(row, col)); - } - rows.push(cells); - } - return rows; - }; - DayTable.prototype.buildCell = function (row, col) { - return { - date: this.daySeries.dates[row * this.colCnt + col] - }; - }; - DayTable.prototype.buildHeaderDates = function () { - var dates = []; - for (var col = 0; col < this.colCnt; col++) { - dates.push(this.cells[0][col].date); - } - return dates; - }; - DayTable.prototype.sliceRange = function (range) { - var colCnt = this.colCnt; - var seriesSeg = this.daySeries.sliceRange(range); - var segs = []; - if (seriesSeg) { - var firstIndex = seriesSeg.firstIndex, lastIndex = seriesSeg.lastIndex; - var index = firstIndex; - while (index <= lastIndex) { - var row = Math.floor(index / colCnt); - var nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1); - segs.push({ - row: row, - firstCol: index % colCnt, - lastCol: (nextIndex - 1) % colCnt, - isStart: seriesSeg.isStart && index === firstIndex, - isEnd: seriesSeg.isEnd && (nextIndex - 1) === lastIndex - }); - index = nextIndex; - } - } - return segs; - }; - return DayTable; - }()); - - var Slicer = /** @class */ (function () { - function Slicer() { - this.sliceBusinessHours = memoize(this._sliceBusinessHours); - this.sliceDateSelection = memoize(this._sliceDateSpan); - this.sliceEventStore = memoize(this._sliceEventStore); - this.sliceEventDrag = memoize(this._sliceInteraction); - this.sliceEventResize = memoize(this._sliceInteraction); - } - Slicer.prototype.sliceProps = function (props, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 4; _i < arguments.length; _i++) { - extraArgs[_i - 4] = arguments[_i]; - } - var eventUiBases = props.eventUiBases; - var eventSegs = this.sliceEventStore.apply(this, [props.eventStore, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)); - return { - dateSelectionSegs: this.sliceDateSelection.apply(this, [props.dateSelection, eventUiBases, component].concat(extraArgs)), - businessHourSegs: this.sliceBusinessHours.apply(this, [props.businessHours, dateProfile, nextDayThreshold, component].concat(extraArgs)), - fgEventSegs: eventSegs.fg, - bgEventSegs: eventSegs.bg, - eventDrag: this.sliceEventDrag.apply(this, [props.eventDrag, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)), - eventResize: this.sliceEventResize.apply(this, [props.eventResize, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)), - eventSelection: props.eventSelection - }; // TODO: give interactionSegs? - }; - Slicer.prototype.sliceNowDate = function (// does not memoize - date, component) { - var extraArgs = []; - for (var _i = 2; _i < arguments.length; _i++) { - extraArgs[_i - 2] = arguments[_i]; - } - return this._sliceDateSpan.apply(this, [{ range: { start: date, end: addMs(date, 1) }, allDay: false }, - {}, - component].concat(extraArgs)); - }; - Slicer.prototype._sliceBusinessHours = function (businessHours, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 4; _i < arguments.length; _i++) { - extraArgs[_i - 4] = arguments[_i]; - } - if (!businessHours) { - return []; - } - return this._sliceEventStore.apply(this, [expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), component.calendar), - {}, - dateProfile, - nextDayThreshold, - component].concat(extraArgs)).bg; - }; - Slicer.prototype._sliceEventStore = function (eventStore, eventUiBases, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 5; _i < arguments.length; _i++) { - extraArgs[_i - 5] = arguments[_i]; - } - if (eventStore) { - var rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold); - return { - bg: this.sliceEventRanges(rangeRes.bg, component, extraArgs), - fg: this.sliceEventRanges(rangeRes.fg, component, extraArgs) - }; - } - else { - return { bg: [], fg: [] }; - } - }; - Slicer.prototype._sliceInteraction = function (interaction, eventUiBases, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 5; _i < arguments.length; _i++) { - extraArgs[_i - 5] = arguments[_i]; - } - if (!interaction) { - return null; - } - var rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold); - return { - segs: this.sliceEventRanges(rangeRes.fg, component, extraArgs), - affectedInstances: interaction.affectedEvents.instances, - isEvent: interaction.isEvent, - sourceSeg: interaction.origSeg - }; - }; - Slicer.prototype._sliceDateSpan = function (dateSpan, eventUiBases, component) { - var extraArgs = []; - for (var _i = 3; _i < arguments.length; _i++) { - extraArgs[_i - 3] = arguments[_i]; - } - if (!dateSpan) { - return []; - } - var eventRange = fabricateEventRange(dateSpan, eventUiBases, component.calendar); - var segs = this.sliceRange.apply(this, [dateSpan.range].concat(extraArgs)); - for (var _a = 0, segs_1 = segs; _a < segs_1.length; _a++) { - var seg = segs_1[_a]; - seg.component = component; - seg.eventRange = eventRange; - } - return segs; - }; - /* - "complete" seg means it has component and eventRange - */ - Slicer.prototype.sliceEventRanges = function (eventRanges, component, // TODO: kill - extraArgs) { - var segs = []; - for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) { - var eventRange = eventRanges_1[_i]; - segs.push.apply(segs, this.sliceEventRange(eventRange, component, extraArgs)); - } - return segs; - }; - /* - "complete" seg means it has component and eventRange - */ - Slicer.prototype.sliceEventRange = function (eventRange, component, // TODO: kill - extraArgs) { - var segs = this.sliceRange.apply(this, [eventRange.range].concat(extraArgs)); - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - seg.component = component; - seg.eventRange = eventRange; - seg.isStart = eventRange.isStart && seg.isStart; - seg.isEnd = eventRange.isEnd && seg.isEnd; - } - return segs; - }; - return Slicer; - }()); - /* - for incorporating minTime/maxTime if appropriate - TODO: should be part of DateProfile! - TimelineDateProfile already does this btw - */ - function computeActiveRange(dateProfile, isComponentAllDay) { - var range = dateProfile.activeRange; - if (isComponentAllDay) { - return range; - } - return { - start: addMs(range.start, dateProfile.minTime.milliseconds), - end: addMs(range.end, dateProfile.maxTime.milliseconds - 864e5) // 864e5 = ms in a day - }; - } - - // exports - // -------------------------------------------------------------------------------------------------- - var version = '4.3.1'; - - exports.Calendar = Calendar; - exports.Component = Component; - exports.DateComponent = DateComponent; - exports.DateEnv = DateEnv; - exports.DateProfileGenerator = DateProfileGenerator; - exports.DayHeader = DayHeader; - exports.DaySeries = DaySeries; - exports.DayTable = DayTable; - exports.ElementDragging = ElementDragging; - exports.ElementScrollController = ElementScrollController; - exports.EmitterMixin = EmitterMixin; - exports.EventApi = EventApi; - exports.FgEventRenderer = FgEventRenderer; - exports.FillRenderer = FillRenderer; - exports.Interaction = Interaction; - exports.Mixin = Mixin; - exports.NamedTimeZoneImpl = NamedTimeZoneImpl; - exports.PositionCache = PositionCache; - exports.ScrollComponent = ScrollComponent; - exports.ScrollController = ScrollController; - exports.Slicer = Slicer; - exports.Splitter = Splitter; - exports.Theme = Theme; - exports.View = View; - exports.WindowScrollController = WindowScrollController; - exports.addDays = addDays; - exports.addDurations = addDurations; - exports.addMs = addMs; - exports.addWeeks = addWeeks; - exports.allowContextMenu = allowContextMenu; - exports.allowSelection = allowSelection; - exports.appendToElement = appendToElement; - exports.applyAll = applyAll; - exports.applyMutationToEventStore = applyMutationToEventStore; - exports.applyStyle = applyStyle; - exports.applyStyleProp = applyStyleProp; - exports.asRoughMinutes = asRoughMinutes; - exports.asRoughMs = asRoughMs; - exports.asRoughSeconds = asRoughSeconds; - exports.buildGotoAnchorHtml = buildGotoAnchorHtml; - exports.buildSegCompareObj = buildSegCompareObj; - exports.capitaliseFirstLetter = capitaliseFirstLetter; - exports.combineEventUis = combineEventUis; - exports.compareByFieldSpec = compareByFieldSpec; - exports.compareByFieldSpecs = compareByFieldSpecs; - exports.compareNumbers = compareNumbers; - exports.compensateScroll = compensateScroll; - exports.computeClippingRect = computeClippingRect; - exports.computeEdges = computeEdges; - exports.computeFallbackHeaderFormat = computeFallbackHeaderFormat; - exports.computeHeightAndMargins = computeHeightAndMargins; - exports.computeInnerRect = computeInnerRect; - exports.computeRect = computeRect; - exports.computeVisibleDayRange = computeVisibleDayRange; - exports.config = config; - exports.constrainPoint = constrainPoint; - exports.createDuration = createDuration; - exports.createElement = createElement; - exports.createEmptyEventStore = createEmptyEventStore; - exports.createEventInstance = createEventInstance; - exports.createFormatter = createFormatter; - exports.createPlugin = createPlugin; - exports.cssToStr = cssToStr; - exports.debounce = debounce; - exports.diffDates = diffDates; - exports.diffDayAndTime = diffDayAndTime; - exports.diffDays = diffDays; - exports.diffPoints = diffPoints; - exports.diffWeeks = diffWeeks; - exports.diffWholeDays = diffWholeDays; - exports.diffWholeWeeks = diffWholeWeeks; - exports.disableCursor = disableCursor; - exports.distributeHeight = distributeHeight; - exports.elementClosest = elementClosest; - exports.elementMatches = elementMatches; - exports.enableCursor = enableCursor; - exports.eventTupleToStore = eventTupleToStore; - exports.filterEventStoreDefs = filterEventStoreDefs; - exports.filterHash = filterHash; - exports.findChildren = findChildren; - exports.findElements = findElements; - exports.flexibleCompare = flexibleCompare; - exports.forceClassName = forceClassName; - exports.formatDate = formatDate; - exports.formatIsoTimeString = formatIsoTimeString; - exports.formatRange = formatRange; - exports.getAllDayHtml = getAllDayHtml; - exports.getClippingParents = getClippingParents; - exports.getDayClasses = getDayClasses; - exports.getElSeg = getElSeg; - exports.getRectCenter = getRectCenter; - exports.getRelevantEvents = getRelevantEvents; - exports.globalDefaults = globalDefaults; - exports.greatestDurationDenominator = greatestDurationDenominator; - exports.hasBgRendering = hasBgRendering; - exports.htmlEscape = htmlEscape; - exports.htmlToElement = htmlToElement; - exports.insertAfterElement = insertAfterElement; - exports.interactionSettingsStore = interactionSettingsStore; - exports.interactionSettingsToStore = interactionSettingsToStore; - exports.intersectRanges = intersectRanges; - exports.intersectRects = intersectRects; - exports.isArraysEqual = isArraysEqual; - exports.isDateSpansEqual = isDateSpansEqual; - exports.isInt = isInt; - exports.isInteractionValid = isInteractionValid; - exports.isMultiDayRange = isMultiDayRange; - exports.isPropsEqual = isPropsEqual; - exports.isPropsValid = isPropsValid; - exports.isSingleDay = isSingleDay; - exports.isValidDate = isValidDate; - exports.listenBySelector = listenBySelector; - exports.mapHash = mapHash; - exports.matchCellWidths = matchCellWidths; - exports.memoize = memoize; - exports.memoizeOutput = memoizeOutput; - exports.memoizeRendering = memoizeRendering; - exports.mergeEventStores = mergeEventStores; - exports.multiplyDuration = multiplyDuration; - exports.padStart = padStart; - exports.parseBusinessHours = parseBusinessHours; - exports.parseDragMeta = parseDragMeta; - exports.parseEventDef = parseEventDef; - exports.parseFieldSpecs = parseFieldSpecs; - exports.parseMarker = parse; - exports.pointInsideRect = pointInsideRect; - exports.prependToElement = prependToElement; - exports.preventContextMenu = preventContextMenu; - exports.preventDefault = preventDefault; - exports.preventSelection = preventSelection; - exports.processScopedUiProps = processScopedUiProps; - exports.rangeContainsMarker = rangeContainsMarker; - exports.rangeContainsRange = rangeContainsRange; - exports.rangesEqual = rangesEqual; - exports.rangesIntersect = rangesIntersect; - exports.refineProps = refineProps; - exports.removeElement = removeElement; - exports.removeExact = removeExact; - exports.renderDateCell = renderDateCell; - exports.requestJson = requestJson; - exports.sliceEventStore = sliceEventStore; - exports.startOfDay = startOfDay; - exports.subtractInnerElHeight = subtractInnerElHeight; - exports.translateRect = translateRect; - exports.uncompensateScroll = uncompensateScroll; - exports.undistributeHeight = undistributeHeight; - exports.unpromisify = unpromisify; - exports.version = version; - exports.whenTransitionDone = whenTransitionDone; - exports.wholeDivideDurations = wholeDivideDurations; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/main.min.css b/htdocs/public/high/plugins/fullcalendar/packages/core/main.min.css deleted file mode 100644 index 8948b534..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/main.min.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.fc-button:not(:disabled),.fc-event.fc-draggable,.fc-event[href],.fc-popover .fc-header .fc-close,a.fc-more,a[data-goto]{cursor:pointer}.fc-bg,.fc-row .fc-bgevent-skeleton,.fc-row .fc-highlight-skeleton{bottom:0}.fc{direction:ltr;text-align:left}.fc-rtl{text-align:right}body .fc{font-size:1em}.fc-highlight{background:#bce8f1;opacity:.3}.fc-bgevent{background:#8fdf82;opacity:.3}.fc-nonbusiness{background:#d7d7d7}.fc-popover{position:absolute;box-shadow:0 2px 6px rgba(0,0,0,.15)}.fc-popover .fc-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:2px 4px}.fc-rtl .fc-popover .fc-header{flex-direction:row-reverse}.fc-popover .fc-header .fc-title{margin:0 2px}.fc-popover .fc-header .fc-close{opacity:.65;font-size:1.1em}.fc-divider{border-style:solid;border-width:1px}hr.fc-divider{height:0;margin:0;padding:0 0 2px;border-width:1px 0}.fc-bg table,.fc-row .fc-bgevent-skeleton table,.fc-row .fc-highlight-skeleton table{height:100%}.fc-bg,.fc-bgevent-skeleton,.fc-highlight-skeleton,.fc-mirror-skeleton{position:absolute;top:0;left:0;right:0}.fc table{width:100%;box-sizing:border-box;table-layout:fixed;border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{border-style:solid;border-width:1px;padding:0;vertical-align:top}.fc td.fc-today{border-style:double}a[data-goto]:hover{text-decoration:underline}.fc .fc-row{border-style:solid;border-width:0}.fc-row table{border-left:0 hidden transparent;border-right:0 hidden transparent;border-bottom:0 hidden transparent}.fc-row:first-child table{border-top:0 hidden transparent}.fc-row{position:relative}.fc-row .fc-bg{z-index:1}.fc-row .fc-bgevent-skeleton td,.fc-row .fc-highlight-skeleton td{border-color:transparent}.fc-row .fc-bgevent-skeleton{z-index:2}.fc-row .fc-highlight-skeleton{z-index:3}.fc-row .fc-content-skeleton{position:relative;z-index:4;padding-bottom:2px}.fc-row .fc-mirror-skeleton{z-index:5}.fc .fc-row .fc-content-skeleton table,.fc .fc-row .fc-content-skeleton td,.fc .fc-row .fc-mirror-skeleton td{background:0 0;border-color:transparent}.fc-row .fc-content-skeleton td,.fc-row .fc-mirror-skeleton td{border-bottom:0}.fc-row .fc-content-skeleton tbody td,.fc-row .fc-mirror-skeleton tbody td{border-top:0}.fc-scroller{-webkit-overflow-scrolling:touch}.fc-scroller>.fc-day-grid,.fc-scroller>.fc-time-grid{position:relative;width:100%}.fc-event{position:relative;display:block;font-size:.85em;line-height:1.4;border-radius:3px;border:1px solid #3788d8}.fc-event,.fc-event-dot{background-color:#3788d8}.fc-event,.fc-event:hover{color:#fff;text-decoration:none}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-event .fc-content{position:relative;z-index:2}.fc-event .fc-resizer{position:absolute;z-index:4;display:none}.fc-event.fc-allow-mouse-resize .fc-resizer,.fc-event.fc-selected .fc-resizer{display:block}.fc-event.fc-selected .fc-resizer:before{content:"";position:absolute;z-index:9999;top:50%;left:50%;width:40px;height:40px;margin-left:-20px;margin-top:-20px}.fc-event.fc-selected{z-index:9999!important;box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event.fc-selected:after{content:"";position:absolute;z-index:1;top:-1px;right:-1px;bottom:-1px;left:-1px;background:#000;opacity:.25}.fc-event.fc-dragging.fc-selected{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event.fc-dragging:not(.fc-selected){opacity:.75}.fc-h-event.fc-selected:before{content:"";position:absolute;z-index:3;top:-10px;bottom:-10px;left:0;right:0}.fc-ltr .fc-h-event.fc-not-start,.fc-rtl .fc-h-event.fc-not-end{margin-left:0;border-left-width:0;padding-left:1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-ltr .fc-h-event.fc-not-end,.fc-rtl .fc-h-event.fc-not-start{margin-right:0;border-right-width:0;padding-right:1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-ltr .fc-h-event .fc-start-resizer,.fc-rtl .fc-h-event .fc-end-resizer{cursor:w-resize;left:-1px}.fc-ltr .fc-h-event .fc-end-resizer,.fc-rtl .fc-h-event .fc-start-resizer{cursor:e-resize;right:-1px}.fc-h-event.fc-allow-mouse-resize .fc-resizer{width:7px;top:-1px;bottom:-1px}.fc-h-event.fc-selected .fc-resizer{border-radius:4px;border-width:1px;width:6px;height:6px;border-style:solid;border-color:inherit;background:#fff;top:50%;margin-top:-4px}.fc-ltr .fc-h-event.fc-selected .fc-start-resizer,.fc-rtl .fc-h-event.fc-selected .fc-end-resizer{margin-left:-4px}.fc-ltr .fc-h-event.fc-selected .fc-end-resizer,.fc-rtl .fc-h-event.fc-selected .fc-start-resizer{margin-right:-4px}.fc-day-grid-event{margin:1px 2px 0;padding:0 1px}tr:first-child>td>.fc-day-grid-event{margin-top:2px}.fc-mirror-skeleton tr:first-child>td>.fc-day-grid-event{margin-top:0}.fc-day-grid-event .fc-content{white-space:nowrap;overflow:hidden}.fc-day-grid-event .fc-time{font-weight:700}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer{margin-left:-2px}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer{margin-right:-2px}a.fc-more{margin:1px 3px;font-size:.85em;text-decoration:none}a.fc-more:hover{text-decoration:underline}.fc-limited{display:none}.fc-button,.fc-icon{display:inline-block;font-weight:400;text-align:center}.fc-day-grid .fc-row{z-index:1}.fc-more-popover{z-index:2;width:220px}.fc-more-popover .fc-event-container{padding:10px}.fc-now-indicator{position:absolute;border:0 solid red}.fc-unselectable{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.fc-unthemed .fc-content,.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading td,.fc-unthemed .fc-list-view,.fc-unthemed .fc-popover,.fc-unthemed .fc-row,.fc-unthemed tbody,.fc-unthemed td,.fc-unthemed th,.fc-unthemed thead{border-color:#ddd}.fc-unthemed .fc-popover{background-color:#fff}.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading td,.fc-unthemed .fc-popover .fc-header{background:#eee}.fc-unthemed td.fc-today{background:#fcf8e3}.fc-unthemed .fc-disabled-day{background:#d7d7d7;opacity:.3}@font-face{font-family:fcicons;src:url("data:application/x-font-ttf;charset=utf-8;base64,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") format("truetype");font-weight:400;font-style:normal}.fc-icon{font-family:fcicons!important;speak:none;font-style:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:1em;height:1em}.fc-icon-chevron-left:before{content:""}.fc-icon-chevron-right:before{content:""}.fc-icon-chevrons-left:before{content:""}.fc-icon-chevrons-right:before{content:""}.fc-icon-minus-square:before{content:""}.fc-icon-plus-square:before{content:""}.fc-icon-x:before{content:""}.fc-button{overflow:visible;text-transform:none;margin:0;font-family:inherit}.fc-button::-moz-focus-inner{padding:0;border-style:none}.fc-button{-webkit-appearance:button;color:#212529;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.4em .65em;font-size:1em;line-height:1.5;border-radius:.25em}.fc-button:hover{color:#212529;text-decoration:none}.fc-button:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(44,62,80,.25);box-shadow:0 0 0 .2rem rgba(44,62,80,.25)}.fc-button:disabled{opacity:.65}.fc-button-primary{color:#fff;background-color:#2C3E50;border-color:#2C3E50}.fc-button-primary:hover{color:#fff;background-color:#1e2b37;border-color:#1a252f}.fc-button-primary:focus{-webkit-box-shadow:0 0 0 .2rem rgba(76,91,106,.5);box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc-button-primary:disabled{color:#fff;background-color:#2C3E50;border-color:#2C3E50}.fc-button-primary:not(:disabled).fc-button-active,.fc-button-primary:not(:disabled):active{color:#fff;background-color:#1a252f;border-color:#151e27}.fc-button-primary:not(:disabled).fc-button-active:focus,.fc-button-primary:not(:disabled):active:focus{-webkit-box-shadow:0 0 0 .2rem rgba(76,91,106,.5);box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc-button .fc-icon{vertical-align:middle;font-size:1.5em}.fc-button-group{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.fc-button-group>.fc-button{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.fc-button-group>.fc-button.fc-button-active,.fc-button-group>.fc-button:active,.fc-button-group>.fc-button:focus,.fc-button-group>.fc-button:hover{z-index:1}.fc-button-group>.fc-button:not(:first-child){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-button-group>.fc-button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.fc-unthemed .fc-popover{border-width:1px;border-style:solid}.fc-unthemed .fc-list-item:hover td{background-color:#f5f5f5}.fc-toolbar{display:flex;justify-content:space-between;align-items:center}.fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-toolbar h2{font-size:1.75em;margin:0}.fc-view-container{position:relative}.fc-view-container *,.fc-view-container :after,.fc-view-container :before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fc-view,.fc-view>table{position:relative;z-index:1}@media print{.fc-bg,.fc-bgevent-container,.fc-bgevent-skeleton,.fc-business-container,.fc-event .fc-resizer,.fc-highlight-container,.fc-highlight-skeleton,.fc-mirror-container,.fc-mirror-skeleton{display:none}.fc tbody .fc-row,.fc-time-grid{min-height:0!important}.fc-time-grid .fc-event.fc-not-end:after,.fc-time-grid .fc-event.fc-not-start:before{content:"..."}.fc{max-width:100%!important}.fc-event{background:#fff!important;color:#000!important;page-break-inside:avoid}.fc hr,.fc tbody,.fc td,.fc th,.fc thead,.fc-row{border-color:#ccc!important;background:#fff!important}.fc tbody .fc-row{height:auto!important}.fc tbody .fc-row .fc-content-skeleton{position:static;padding-bottom:0!important}.fc tbody .fc-row .fc-content-skeleton tbody tr:last-child td{padding-bottom:1em}.fc tbody .fc-row .fc-content-skeleton table{height:1em}.fc-more,.fc-more-cell{display:none!important}.fc tr.fc-limited{display:table-row!important}.fc td.fc-limited{display:table-cell!important}.fc-popover,.fc-timeGrid-view .fc-axis{display:none}.fc-slats,.fc-time-grid hr{display:none!important}.fc button,.fc-button-group,.fc-time-grid .fc-event .fc-time span{display:none}.fc-time-grid .fc-content-skeleton{position:static}.fc-time-grid .fc-content-skeleton table{height:4em}.fc-time-grid .fc-event-container{margin:0!important}.fc-time-grid .fc-event{position:static!important;margin:3px 2px!important}.fc-time-grid .fc-event.fc-not-end{border-bottom-width:1px!important}.fc-time-grid .fc-event.fc-not-start{border-top-width:1px!important}.fc-time-grid .fc-event .fc-time{white-space:normal!important}.fc-time-grid .fc-event .fc-time:after{content:attr(data-full)}.fc-day-grid-container,.fc-scroller,.fc-time-grid-container{overflow:visible!important;height:auto!important}.fc-row{border:0!important;margin:0!important}} \ No newline at end of file diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/main.min.js b/htdocs/public/high/plugins/fullcalendar/packages/core/main.min.js deleted file mode 100644 index 6b72fff6..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/main.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! -FullCalendar Core Package v4.3.1 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).FullCalendar={})}(this,function(e){"use strict";var t={className:!0,colSpan:!0,rowSpan:!0},n={"
");document.body.appendChild(e);var t=e.firstChild.getBoundingClientRect().left>e.getBoundingClientRect().left;return c(e),t}()),S}function D(e){return e=Math.max(0,e),e=Math.round(e)}function T(e,t){void 0===t&&(t=!1);var n=window.getComputedStyle(e),r=parseInt(n.borderLeftWidth,10)||0,i=parseInt(n.borderRightWidth,10)||0,o=parseInt(n.borderTopWidth,10)||0,a=parseInt(n.borderBottomWidth,10)||0,s=D(e.offsetWidth-e.clientWidth-r-i),u={borderLeft:r,borderRight:i,borderTop:o,borderBottom:a,scrollbarBottom:D(e.offsetHeight-e.clientHeight-o-a),scrollbarLeft:0,scrollbarRight:0};return b()&&"rtl"===n.direction?u.scrollbarLeft=s:u.scrollbarRight=s,t&&(u.paddingLeft=parseInt(n.paddingLeft,10)||0,u.paddingRight=parseInt(n.paddingRight,10)||0,u.paddingTop=parseInt(n.paddingTop,10)||0,u.paddingBottom=parseInt(n.paddingBottom,10)||0),u}function w(e,t){void 0===t&&(t=!1);var n=R(e),r=T(e,t),i={left:n.left+r.borderLeft+r.scrollbarLeft,right:n.right-r.borderRight-r.scrollbarRight,top:n.top+r.borderTop,bottom:n.bottom-r.borderBottom-r.scrollbarBottom};return t&&(i.left+=r.paddingLeft,i.right-=r.paddingRight,i.top+=r.paddingTop,i.bottom-=r.paddingBottom),i}function R(e){var t=e.getBoundingClientRect();return{left:t.left+window.pageXOffset,top:t.top+window.pageYOffset,right:t.right+window.pageXOffset,bottom:t.bottom+window.pageYOffset}}function I(e){return e.getBoundingClientRect().height+C(e)}function C(e){var t=window.getComputedStyle(e);return parseInt(t.marginTop,10)+parseInt(t.marginBottom,10)}function M(e){for(var t=[];e instanceof HTMLElement;){var n=window.getComputedStyle(e);if("fixed"===n.position)break;/(auto|scroll)/.test(n.overflow+n.overflowY+n.overflowX)&&t.push(e),e=e.parentNode}return t}function k(e){e.preventDefault()}function O(e,t,n,r){function i(e){var t=p(e.target,n);t&&r.call(t,e,t)}return e.addEventListener(t,i),function(){e.removeEventListener(t,i)}}var _=["webkitTransitionEnd","otransitionend","oTransitionEnd","msTransitionEnd","transitionend"];var P=["sun","mon","tue","wed","thu","fri","sat"];function x(e,t){var n=Z(e);return n[2]+=t,j(n)}function H(e,t){var n=Z(e);return n[6]+=t,j(n)}function N(e,t){return(t.valueOf()-e.valueOf())/864e5}function z(e,t){var n=B(e),r=B(t);return{years:0,months:0,days:Math.round(N(n,r)),milliseconds:t.valueOf()-r.valueOf()-(e.valueOf()-n.valueOf())}}function U(e,t){var n=L(e,t);return null!==n&&n%7==0?n/7:null}function L(e,t){return q(e)===q(t)?Math.round(N(e,t)):null}function B(e){return j([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()])}function V(e,t,n,r){var i=j([t,0,1+A(t,n,r)]),o=B(e),a=Math.round(N(i,o));return Math.floor(a/7)+1}function A(e,t,n){var r=7+t-n;return-((7+j([e,0,r]).getUTCDay()-t)%7)+r-1}function F(e){return[e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()]}function W(e){return new Date(e[0],e[1]||0,null==e[2]?1:e[2],e[3]||0,e[4]||0,e[5]||0)}function Z(e){return[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()]}function j(e){return 1===e.length&&(e=e.concat([0])),new Date(Date.UTC.apply(Date,e))}function Y(e){return!isNaN(e.valueOf())}function q(e){return 1e3*e.getUTCHours()*60*60+1e3*e.getUTCMinutes()*60+1e3*e.getUTCSeconds()+e.getUTCMilliseconds()}var G=["years","months","days","milliseconds"],X=/^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/;function J(e,t){var n;return"string"==typeof e?function(e){var t=X.exec(e);if(t){var n=t[1]?-1:1;return{years:0,months:0,days:n*(t[2]?parseInt(t[2],10):0),milliseconds:n*(60*(t[3]?parseInt(t[3],10):0)*60*1e3+60*(t[4]?parseInt(t[4],10):0)*1e3+1e3*(t[5]?parseInt(t[5],10):0)+(t[6]?parseInt(t[6],10):0))}}return null}(e):"object"==typeof e&&e?K(e):"number"==typeof e?K(((n={})[t||"milliseconds"]=e,n)):null}function K(e){return{years:e.years||e.year||0,months:e.months||e.month||0,days:(e.days||e.day||0)+7*Q(e),milliseconds:60*(e.hours||e.hour||0)*60*1e3+60*(e.minutes||e.minute||0)*1e3+1e3*(e.seconds||e.second||0)+(e.milliseconds||e.millisecond||e.ms||0)}}function Q(e){return e.weeks||e.week||0}function $(e,t){return e.years===t.years&&e.months===t.months&&e.days===t.days&&e.milliseconds===t.milliseconds}function ee(e){return te(e)/864e5}function te(e){return 31536e6*e.years+2592e6*e.months+864e5*e.days+e.milliseconds}function ne(e,t){var n=e.milliseconds;if(n){if(n%1e3!=0)return{unit:"millisecond",value:n};if(n%6e4!=0)return{unit:"second",value:n/1e3};if(n%36e5!=0)return{unit:"minute",value:n/6e4};if(n)return{unit:"hour",value:n/36e5}}return e.days?t||e.days%7!=0?{unit:"day",value:e.days}:{unit:"week",value:e.days/7}:e.months?{unit:"month",value:e.months}:e.years?{unit:"year",value:e.years}:{unit:"millisecond",value:0}}function re(e){e.forEach(function(e){e.style.height=""})}function ie(e){var t,n,r=[],i=[];for("string"==typeof e?i=e.split(/\s*,\s*/):"function"==typeof e?i=[e]:Array.isArray(e)&&(i=e),t=0;t=te(t)&&(r=x(r,1))}return e.start&&(n=B(e.start),r&&r<=n&&(r=x(n,1))),{start:n,end:r}}function ye(e,t,n,r){return"year"===r?J(n.diffWholeYears(e,t),"year"):"month"===r?J(n.diffWholeMonths(e,t),"month"):z(e,t)}var me=function(e,t){return(me=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function Ee(e,t){function n(){this.constructor=e}me(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var Se=function(){return(Se=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0;o--)if("object"==typeof(a=e[o][r])&&a)i.unshift(a);else if(void 0!==a){u[r]=a;break}i.length&&(u[r]=Te(i))}for(n=e.length-1;n>=0;n--)for(r in s=e[n])r in u||(u[r]=s[r]);return u}function we(e,t){var n={};for(var r in e)t(e[r],r)&&(n[r]=e[r]);return n}function Re(e,t){var n={};for(var r in e)n[r]=t(e[r],r);return n}function Ie(e){for(var t={},n=0,r=e;no&&i.push({start:o,end:r.start}),r.end>o&&(o=r.end);return ot.start)&&(null===e.start||null===t.end||e.start=e.start)&&(null===e.end||null!==t.end&&t.end<=e.end)}function Ze(e,t){return(null===e.start||t>=e.start)&&(null===e.end||t1)||"numeric"!==r.year&&"2-digit"!==r.year||"numeric"!==r.month&&"2-digit"!==r.month||"numeric"!==r.day&&"2-digit"!==r.day||(a=1);var s=this.format(e,n),u=this.format(t,n);if(s===u)return s;var l=nt(function(e,t){var n={};for(var r in e)r in Xe&&!(Xe[r]<=t)||(n[r]=e[r]);return n}(r,a),i,n),c=l(e),d=l(t),f=function(e,t,n,r){var i=0;for(;i/g,">").replace(/'/g,"'").replace(/"/g,""").replace(/\n/g,"
")}function _t(e){var t=[];for(var n in e){var r=e[n];null!=r&&""!==r&&t.push(n+":"+r)}return t.join(";")}function Pt(e){return Array.isArray(e)?e:"string"==typeof e?e.split(/\s+/):[]}var xt={editable:Boolean,startEditable:Boolean,durationEditable:Boolean,constraint:null,overlap:null,allow:null,className:Pt,classNames:Pt,color:String,backgroundColor:String,borderColor:String,textColor:String};function Ht(e,t,n){var r=he(e,xt,{},n),i=function(e,t){return Array.isArray(e)?ke(e,"",t,!0):"object"==typeof e&&e?ke([e],"",t,!0):null!=e?String(e):null}(r.constraint,t);return{startEditable:null!=r.startEditable?r.startEditable:r.editable,durationEditable:null!=r.durationEditable?r.durationEditable:r.editable,constraints:null!=i?[i]:[],overlap:r.overlap,allows:null!=r.allow?[r.allow]:[],backgroundColor:r.backgroundColor||r.color,borderColor:r.borderColor||r.color,textColor:r.textColor,classNames:r.classNames.concat(r.className)}}function Nt(e,t,n,r){var i={},o={};for(var a in xt){var s=e+ue(a);i[a]=t[s],o[s]=!0}if("event"===e&&(i.editable=t.editable),r)for(var a in t)o[a]||(r[a]=t[a]);return Ht(i,n)}var zt={startEditable:null,durationEditable:null,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]};function Ut(e){return e.reduce(Lt,zt)}function Lt(e,t){return{startEditable:null!=t.startEditable?t.startEditable:e.startEditable,durationEditable:null!=t.durationEditable?t.durationEditable:e.durationEditable,constraints:e.constraints.concat(t.constraints),overlap:"boolean"==typeof t.overlap?t.overlap:e.overlap,allows:e.allows.concat(t.allows),backgroundColor:t.backgroundColor||e.backgroundColor,borderColor:t.borderColor||e.borderColor,textColor:t.textColor||e.textColor,classNames:e.classNames.concat(t.classNames)}}var Bt={id:String,groupId:String,title:String,url:String,rendering:String,extendedProps:null},Vt={start:null,date:null,end:null,allDay:null},At=0;function Ft(e,t,n,r){var i=function(e,t){var n=null;if(e){var r=t.state.eventSources[e];n=r.allDayDefault}null==n&&(n=t.opt("allDayDefault"));return n}(t,n),o={},a=function(e,t,n,r,i){for(var o=0;o'+r+"
":""+r+""}function Qt(e,t,n,r){var i,o,a=n.calendar,s=n.view,u=n.theme,l=n.dateEnv,c=[];return Ze(t.activeRange,e)?(c.push("fc-"+P[e.getUTCDay()]),s.opt("monthMode")&&l.getMonth(e)!==l.getMonth(t.currentRange.start)&&c.push("fc-other-month"),o=x(i=B(a.getNow()),1),e=o?c.push("fc-future"):(c.push("fc-today"),!0!==r&&c.push(u.getClass("today")))):c.push("fc-disabled-day"),c}function $t(e,t,n){var r=!1,i=function(){r||(r=!0,t.apply(this,arguments))},o=function(){r||(r=!0,n&&n.apply(this,arguments))},a=e(i,o);a&&"function"==typeof a.then&&a.then(i,o)}var en=function(){function e(){}return e.mixInto=function(e){this.mixIntoObj(e.prototype)},e.mixIntoObj=function(e){var t=this;Object.getOwnPropertyNames(this.prototype).forEach(function(n){e[n]||(e[n]=t.prototype[n])})},e.mixOver=function(e){var t=this;Object.getOwnPropertyNames(this.prototype).forEach(function(n){e.prototype[n]=t.prototype[n]})},e}(),tn=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Ee(t,e),t.prototype.on=function(e,t){return nn(this._handlers||(this._handlers={}),e,t),this},t.prototype.one=function(e,t){return nn(this._oneHandlers||(this._oneHandlers={}),e,t),this},t.prototype.off=function(e,t){return this._handlers&&rn(this._handlers,e,t),this._oneHandlers&&rn(this._oneHandlers,e,t),this},t.prototype.trigger=function(e){for(var t=[],n=1;n=n[t]&&e=n[t]&&e0},e.prototype.canScrollHorizontally=function(){return this.getMaxScrollLeft()>0},e.prototype.canScrollUp=function(){return this.getScrollTop()>0},e.prototype.canScrollDown=function(){return this.getScrollTop()0},e.prototype.canScrollRight=function(){return this.getScrollLeft()=200&&a.status<400)try{var e=JSON.parse(a.responseText);r(e,a)}catch(e){i("Failure parsing JSON",a)}else i("Request failed",a)},a.onerror=function(){i("Request failed",a)},a.send(o)}function Sn(e){var t=[];for(var n in e)t.push(encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t.join("&")}var bn=vn({eventSourceDefs:[{parseMeta:function(e){if("string"==typeof e)e={url:e};else if(!e||"object"!=typeof e||!e.url)return null;return{url:e.url,method:(e.method||"GET").toUpperCase(),extraParams:e.extraParams,startParam:e.startParam,endParam:e.endParam,timeZoneParam:e.timeZoneParam}},fetch:function(e,t,n){var r=e.eventSource.meta,i=function(e,t,n){var r,i,o,a,s=n.dateEnv,u={};null==(r=e.startParam)&&(r=n.opt("startParam"));null==(i=e.endParam)&&(i=n.opt("endParam"));null==(o=e.timeZoneParam)&&(o=n.opt("timeZoneParam"));a="function"==typeof e.extraParams?e.extraParams():e.extraParams||{};Se(u,a),u[r]=s.formatIso(t.start),u[i]=s.formatIso(t.end),"local"!==s.timeZone&&(u[o]=s.timeZone);return u}(r,e.range,e.calendar);En(r.method,r.url,i,function(e,n){t({rawEvents:e,xhr:n})},function(e,t){n({message:e,xhr:t})})}}]});var Dn=vn({recurringTypes:[{parse:function(e,t,n){var r,i,o=n.createMarker.bind(n),a=he(e,{daysOfWeek:null,startTime:J,endTime:J,startRecur:o,endRecur:o},{},t),s=!1;for(var u in a)if(null!=a[u]){s=!0;break}if(s){var l=null;return"duration"in t&&(l=J(t.duration),delete t.duration),!l&&a.startTime&&a.endTime&&(r=a.endTime,i=a.startTime,l={years:r.years-i.years,months:r.months-i.months,days:r.days-i.days,milliseconds:r.milliseconds-i.milliseconds}),{allDayGuess:Boolean(!a.startTime&&!a.endTime),duration:l,typeData:a}}return null},expand:function(e,t,n){var r=Ve(t,{start:e.startRecur,end:e.endRecur});return r?function(e,t,n,r){var i=e?Ie(e):null,o=B(n.start),a=n.end,s=[];for(;o0?e[0].code:"en",n=window.FullCalendarLocalesAll||[],r=window.FullCalendarLocales||{},i=n.concat(Ce(r),e),o={en:kn},a=0,s=i;a0;i--){var o=r.slice(0,i).join("-");if(t[o])return t[o]}return null}(n,t)||kn;return Pn(e,n,r)}(e,t):Pn(e.code,[e.code],e)}function Pn(e,t,n){var r=Te([kn,n],["buttonText"]);delete r.code;var i=r.week;return delete r.week,{codeArg:e,codes:t,week:i,simpleNumberFormat:new Intl.NumberFormat(e),options:r}}var xn=function(){function e(e){this.overrides=Se({},e),this.dynamicOverrides={},this.compute()}return e.prototype.mutate=function(e,t,n){var r=n?this.dynamicOverrides:this.overrides;Se(r,e);for(var i=0,o=t;i=1?Math.min(i,o):i}(e,this.weekDow,this.weekDoy)},e.prototype.format=function(e,t,n){return void 0===n&&(n={}),t.format({marker:e,timeZoneOffset:null!=n.forcedTzo?n.forcedTzo:this.offsetForMarker(e)},this)},e.prototype.formatRange=function(e,t,n,r){return void 0===r&&(r={}),r.isEndExclusive&&(t=H(t,-1)),n.formatRange({marker:e,timeZoneOffset:null!=r.forcedStartTzo?r.forcedStartTzo:this.offsetForMarker(e)},{marker:t,timeZoneOffset:null!=r.forcedEndTzo?r.forcedEndTzo:this.offsetForMarker(t)},this)},e.prototype.formatIso=function(e,t){void 0===t&&(t={});var n=null;return t.omitTimeZoneOffset||(n=null!=t.forcedTzo?t.forcedTzo:this.offsetForMarker(e)),function(e,t,n){void 0===n&&(n=!1);var r=e.toISOString();return r=r.replace(".000",""),n&&(r=r.replace("T00:00:00Z","")),r.length>10&&(null==t?r=r.replace("Z",""):0!==t&&(r=r.replace("Z",at(t,!0)))),r}(e,n,t.omitTime)},e.prototype.timestampToMarker=function(e){return"local"===this.timeZone?j(F(new Date(e))):"UTC"!==this.timeZone&&this.namedTimeZoneImpl?j(this.namedTimeZoneImpl.timestampToArray(e)):new Date(e)},e.prototype.offsetForMarker=function(e){return"local"===this.timeZone?-W(Z(e)).getTimezoneOffset():"UTC"===this.timeZone?0:this.namedTimeZoneImpl?this.namedTimeZoneImpl.offsetForArray(Z(e)):null},e.prototype.toDate=function(e,t){return"local"===this.timeZone?W(Z(e)):"UTC"===this.timeZone?new Date(e.valueOf()):this.namedTimeZoneImpl?new Date(e.valueOf()-1e3*this.namedTimeZoneImpl.offsetForArray(Z(e))*60):new Date(e.valueOf()-(t||0))},e}(),Vn={id:String,allDayDefault:Boolean,eventDataTransform:Function,success:Function,failure:Function},An=0;function Fn(e,t){return!t.pluginSystem.hooks.eventSourceDefs[e.sourceDefId].ignoreRange}function Wn(e,t){for(var n=t.pluginSystem.hooks.eventSourceDefs,r=n.length-1;r>=0;r--){var i=n[r].parseMeta(e);if(i){var o=Zn("object"==typeof e?e:{},i,r,t);return o._raw=e,o}}return null}function Zn(e,t,n,r){var i={},o=he(e,Vn,{},i),a={},s=Ht(i,r,a);return o.isFetching=!1,o.latestFetchId="",o.fetchRange=null,o.publicId=String(e.id||""),o.sourceId=String(An++),o.sourceDefId=n,o.meta=t,o.ui=s,o.extendedProps=a,o}function jn(e,t,n,r){switch(t.type){case"ADD_EVENT_SOURCES":return function(e,t,n,r){for(var i={},o=0,a=t;oe.fetchRange.end:!e.latestFetchId}(e,t,n)}),t,n)}function Gn(e,t,n,r){var i={};for(var o in e){var a=e[o];t[o]?i[o]=Xn(a,n,r):i[o]=a}return i}function Xn(e,t,n){var r=n.pluginSystem.hooks.eventSourceDefs[e.sourceDefId],i=String(Yn++);return r.fetch({eventSource:e,calendar:n,range:t},function(r){var o,a,s=r.rawEvents,u=n.opt("eventSourceSuccess");e.success&&(a=e.success(s,r.xhr)),u&&(o=u(s,r.xhr)),s=a||o||s,n.dispatch({type:"RECEIVE_EVENTS",sourceId:e.sourceId,fetchId:i,fetchRange:t,rawEvents:s})},function(r){var o=n.opt("eventSourceFailure");console.warn(r.message,r),e.failure&&e.failure(r),o&&o(r),n.dispatch({type:"RECEIVE_EVENT_ERROR",sourceId:e.sourceId,fetchId:i,fetchRange:t,error:r})}),Se({},e,{isFetching:!0,latestFetchId:i})}var Jn=function(){function e(e,t){this.viewSpec=e,this.options=e.options,this.dateEnv=t.dateEnv,this.calendar=t,this.initHiddenDays()}return e.prototype.buildPrev=function(e,t){var n=this.dateEnv,r=n.subtract(n.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(r,-1)},e.prototype.buildNext=function(e,t){var n=this.dateEnv,r=n.add(n.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(r,1)},e.prototype.build=function(e,t,n){var r;void 0===n&&(n=!1);var i,o,a,s,u,l,c,d,f;return r=this.buildValidRange(),r=this.trimHiddenDays(r),n&&(d=e,e=null!=(f=r).start&&d=f.end?new Date(f.end.valueOf()-1):d),a=this.buildCurrentRangeInfo(e,t),s=/^(year|month|week|day)$/.test(a.unit),u=this.buildRenderRange(this.trimHiddenDays(a.range),a.unit,s),l=u=this.trimHiddenDays(u),this.options.showNonCurrentDates||(l=Ve(l,a.range)),i=J(this.options.minTime),o=J(this.options.maxTime),l=Ve(l=this.adjustActiveRange(l,i,o),r),c=Fe(a.range,r),{validRange:r,currentRange:a.range,currentRangeUnit:a.unit,isRangeAllDay:s,activeRange:l,renderRange:u,minTime:i,maxTime:o,isValid:c,dateIncrement:this.buildDateIncrement(a.duration)}},e.prototype.buildValidRange=function(){return this.getRangeOption("validRange",this.calendar.getNow())||{start:null,end:null}},e.prototype.buildCurrentRangeInfo=function(e,t){var n,r=this.viewSpec,i=this.dateEnv,o=null,a=null,s=null;return r.duration?(o=r.duration,a=r.durationUnit,s=this.buildRangeFromDuration(e,t,o,a)):(n=this.options.dayCount)?(a="day",s=this.buildRangeFromDayCount(e,t,n)):(s=this.buildCustomVisibleRange(e))?a=i.greatestWholeUnit(s.start,s.end).unit:(a=ne(o=this.getFallbackDuration()).unit,s=this.buildRangeFromDuration(e,t,o,a)),{duration:o,unit:a,range:s}},e.prototype.getFallbackDuration=function(){return J({day:1})},e.prototype.adjustActiveRange=function(e,t,n){var r=this.dateEnv,i=e.start,o=e.end;return this.viewSpec.class.prototype.usesMinMaxTime&&(ee(t)<0&&(i=B(i),i=r.add(i,t)),ee(n)>1&&(o=x(o=B(o),-1),o=r.add(o,n))),{start:i,end:o}},e.prototype.buildRangeFromDuration=function(e,t,n,r){var i,o,a,s,u,l=this.dateEnv,c=this.options.dateAlignment;function d(){a=l.startOf(e,c),s=l.add(a,n),u={start:a,end:s}}return c||((i=this.options.dateIncrement)?(o=J(i),c=te(o) ")),h=!1):((r=d[e])?(c=function(e){r.click&&r.click.call(E,e)},(v=o.getCustomButtonIconClass(r))||(v=o.getIconClass(e))||(g=r.text)):(s=l[e])?(n.viewsWithButtons.push(e),c=function(){a.changeView(e)},(g=s.buttonTextOverride)||(v=o.getIconClass(e))||(g=s.buttonTextDefault)):a[e]&&(c=function(){a[e]()},(g=f[e])||(v=o.getIconClass(e))||(g=p[e])),c&&(m=["fc-"+e+"-button",o.getClass("button")],g?(y=Ot(g),S=""):v&&(y="",S=' aria-label="'+e+'"'),(E=i('")).addEventListener("click",c),u.push(E)))}),u.length>1){r=document.createElement("div");var v=o.getClass("buttonGroup");h&&v&&r.classList.add(v),s(r,u),c.appendChild(r)}else s(c,u)}),c},t.prototype.updateToday=function(e){this.toggleButtonEnabled("today",e)},t.prototype.updatePrev=function(e){this.toggleButtonEnabled("prev",e)},t.prototype.updateNext=function(e){this.toggleButtonEnabled("next",e)},t.prototype.updateTitle=function(e){v(this.el,"h2").forEach(function(t){t.innerText=e})},t.prototype.updateActiveButton=function(e){var t=this.theme.getClass("buttonActive");v(this.el,"button").forEach(function(n){e&&n.classList.contains("fc-"+e+"-button")?n.classList.add(t):n.classList.remove(t)})},t.prototype.toggleButtonEnabled=function(e,t){v(this.el,".fc-"+e+"-button").forEach(function(e){e.disabled=!t})},t}(fn),hr=function(e){function t(t,n){var i=e.call(this,t)||this;i._renderToolbars=qt(i.renderToolbars),i.buildViewPropTransformers=Ye(gr),i.el=n,u(n,i.contentEl=r("div",{className:"fc-view-container"}));for(var o=i.calendar,a=0,s=o.pluginSystem.hooks.viewContainerModifiers;a1?{year:"numeric",month:"short",day:"numeric"}:{year:"numeric",month:"long",day:"numeric"}}(e),t.titleRangeSeparator),{isEndExclusive:e.isRangeAllDay})}function gr(e){return e.map(function(e){return new e})}var yr=function(){function e(e){this.component=e.component}return e.prototype.destroy=function(){},e}();var mr={},Er=function(e){function t(t){var n=e.call(this,t)||this;n.handleSegClick=function(e,t){var r=n.component,i=ht(t);if(i&&r.isValidSegDownEl(e.target)){var o=p(e.target,".fc-has-url"),a=o?o.querySelector("a[href]").href:"";r.publiclyTrigger("eventClick",[{el:t,event:new ct(r.calendar,i.eventRange.def,i.eventRange.instance),jsEvent:e,view:r.view}]),a&&!e.defaultPrevented&&(window.location.href=a)}};var r=t.component;return n.destroy=O(r.el,"click",r.fgSegSelector+","+r.bgSegSelector,n.handleSegClick),n}return Ee(t,e),t}(yr),Sr=function(e){function t(t){var n=e.call(this,t)||this;n.handleEventElRemove=function(e){e===n.currentSegEl&&n.handleSegLeave(null,n.currentSegEl)},n.handleSegEnter=function(e,t){ht(t)&&(t.classList.add("fc-allow-mouse-resize"),n.currentSegEl=t,n.triggerEvent("eventMouseEnter",e,t))},n.handleSegLeave=function(e,t){n.currentSegEl&&(t.classList.remove("fc-allow-mouse-resize"),n.currentSegEl=null,n.triggerEvent("eventMouseLeave",e,t))};var r,i,o,a,s,u=t.component;return n.removeHoverListeners=(r=u.el,i=u.fgSegSelector+","+u.bgSegSelector,o=n.handleSegEnter,a=n.handleSegLeave,O(r,"mouseover",i,function(e,t){if(t!==s){s=t,o(e,t);var n=function(e){s=null,a(e,t),t.removeEventListener("mouseleave",n)};t.addEventListener("mouseleave",n)}})),u.calendar.on("eventElRemove",n.handleEventElRemove),n}return Ee(t,e),t.prototype.destroy=function(){this.removeHoverListeners(),this.component.calendar.off("eventElRemove",this.handleEventElRemove)},t.prototype.triggerEvent=function(e,t,n){var r=this.component,i=ht(n);t&&!r.isValidSegDownEl(t.target)||r.publiclyTrigger(e,[{el:n,event:new ct(this.component.calendar,i.eventRange.def,i.eventRange.instance),jsEvent:t,view:r.view}])},t}(yr),br=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Ee(t,e),t}(cn);br.prototype.classes={widget:"fc-unthemed",widgetHeader:"fc-widget-header",widgetContent:"fc-widget-content",buttonGroup:"fc-button-group",button:"fc-button fc-button-primary",buttonActive:"fc-button-active",popoverHeader:"fc-widget-header",popoverContent:"fc-widget-content",headerRow:"fc-widget-header",dayRow:"fc-widget-content",listView:"fc-widget-content"},br.prototype.baseIconClass="fc-icon",br.prototype.iconClasses={close:"fc-icon-x",prev:"fc-icon-chevron-left",next:"fc-icon-chevron-right",prevYear:"fc-icon-chevrons-left",nextYear:"fc-icon-chevrons-right"},br.prototype.iconOverrideOption="buttonIcons",br.prototype.iconOverrideCustomButtonOption="icon",br.prototype.iconOverridePrefix="fc-icon-";var Dr=function(){function e(e,t){var n=this;this.parseRawLocales=Ye(On),this.buildLocale=Ye(_n),this.buildDateEnv=Ye(Tr),this.buildTheme=Ye(wr),this.buildEventUiSingleBase=Ye(this._buildEventUiSingleBase),this.buildSelectionConfig=Ye(this._buildSelectionConfig),this.buildEventUiBySource=qe(Ir,Me),this.buildEventUiBases=Ye(Cr),this.interactionsStore={},this.actionQueue=[],this.isReducing=!1,this.needsRerender=!1,this.needsFullRerender=!1,this.isRendering=!1,this.renderingPauseDepth=0,this.buildDelayedRerender=Ye(Rr),this.afterSizingTriggers={},this.isViewUpdated=!1,this.isDatesUpdated=!1,this.isEventsUpdated=!1,this.el=e,this.optionsManager=new xn(t||{}),this.pluginSystem=new gn,this.addPluginInputs(this.optionsManager.computed.plugins||[]),this.handleOptions(this.optionsManager.computed),this.publiclyTrigger("_init"),this.hydrate(),this.calendarInteractions=this.pluginSystem.hooks.calendarInteractions.map(function(e){return new e(n)})}return e.prototype.addPluginInputs=function(e){for(var t=function(e){for(var t=[],n=0,r=e;n"},e.prototype.detachSegs=function(e,t){var n=this.containerElsByType[e];n&&(n.forEach(c),delete this.containerElsByType[e])},e.prototype.computeSizes=function(e){for(var t in this.segsByType)(e||this.dirtySizeFlags[t])&&this.computeSegSizes(this.segsByType[t])},e.prototype.assignSizes=function(e){for(var t in this.segsByType)(e||this.dirtySizeFlags[t])&&this.assignSegSizes(this.segsByType[t]);this.dirtySizeFlags={}},e.prototype.computeSegSizes=function(e){},e.prototype.assignSegSizes=function(e){},e}(),Pr=function(e){this.timeZoneName=e},xr=function(){function e(e){this.emitter=new tn}return e.prototype.destroy=function(){},e.prototype.setMirrorIsVisible=function(e){},e.prototype.setMirrorNeedsRevert=function(e){},e.prototype.setAutoScrollEnabled=function(e){},e}();function Hr(e){var t=_n(e.locale||"en",On([]).map);return e=Se({timeZone:Rn.timeZone,calendarSystem:"gregory"},e,{locale:t}),new Bn(e)}var Nr={startTime:J,duration:J,create:Boolean,sourceId:String},zr={create:!0};function Ur(e,t){return!e||t>10?{weekday:"short"}:t>1?{weekday:"short",month:"numeric",day:"numeric",omitCommas:!0}:{weekday:"long"}}function Lr(e,t,n,r,i,o,a,s){var u,l=o.view,c=o.dateEnv,d=o.theme,f=o.options,p=Ze(t.activeRange,e),h=["fc-day-header",d.getClass("widgetHeader")];return u="function"==typeof f.columnHeaderHtml?f.columnHeaderHtml(c.toDate(e)):"function"==typeof f.columnHeaderText?Ot(f.columnHeaderText(c.toDate(e))):Ot(c.format(e,i)),n?h=h.concat(Qt(e,t,o,!0)):h.push("fc-"+P[e.getUTCDay()]),'1?' colspan="'+a+'"':"")+(s?" "+s:"")+">"+(p?Kt(l,{date:e,forceOff:!n||1===r},u):u)+""}var Br=function(e){function t(t,n){var r=e.call(this,t)||this;return n.innerHTML="",n.appendChild(r.el=i('
')),r.thead=r.el.querySelector("thead"),r}return Ee(t,e),t.prototype.destroy=function(){c(this.el)},t.prototype.render=function(e){var t=e.dates,n=e.datesRepDistinctDays,r=[];e.renderIntroHtml&&r.push(e.renderIntroHtml());for(var i=ot(this.opt("columnHeaderFormat")||Ur(n,t.length)),o=0,a=t;o"+r.join("")+""},t}(fn),Vr=function(){function e(e,t){for(var n=e.start,r=e.end,i=[],o=[],a=-1;n=t.length?t[t.length-1]+1:t[n]},e}(),Ar=function(){function e(e,t){var n,r,i,o=e.dates;if(t){for(r=o[0].getUTCDay(),n=1;n1},e.isPropsEqual=Me,e.isPropsValid=Rt,e.isSingleDay=function(e){return 0===e.years&&0===e.months&&1===e.days&&0===e.milliseconds},e.isValidDate=Y,e.listenBySelector=O,e.mapHash=Re,e.matchCellWidths=function(e){var t=0;return e.forEach(function(e){var n=e.firstChild;if(n instanceof HTMLElement){var r=n.getBoundingClientRect().width;r>t&&(t=r)}}),t++,e.forEach(function(e){e.style.width=t+"px"}),t},e.memoize=Ye,e.memoizeOutput=qe,e.memoizeRendering=qt,e.mergeEventStores=Ne,e.multiplyDuration=function(e,t){return{years:e.years*t,months:e.months*t,days:e.days*t,milliseconds:e.milliseconds*t}},e.padStart=le,e.parseBusinessHours=Yt,e.parseDragMeta=function(e){var t={},n=he(e,Nr,zr,t);return n.leftoverProps=t,n},e.parseEventDef=Wt,e.parseFieldSpecs=ie,e.parseMarker=Ln,e.pointInsideRect=function(e,t){return e.left>=t.left&&e.left=t.top&&e.top * { - /* work around the way we do column resizing and ensure a minimum width */ - display: inline-block; - min-width: 1.25em; -} diff --git a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.d.ts b/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.d.ts deleted file mode 100644 index ed214f2d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.d.ts +++ /dev/null @@ -1,310 +0,0 @@ -// Generated by dts-bundle v0.7.3-fork.1 -// Dependencies for this module: -// ../../../../../@fullcalendar/core - -declare module '@fullcalendar/daygrid' { - export { default as SimpleDayGrid, DayGridSlicer } from '@fullcalendar/daygrid/SimpleDayGrid'; - export { default as DayGrid, DayGridSeg } from '@fullcalendar/daygrid/DayGrid'; - export { default as AbstractDayGridView } from '@fullcalendar/daygrid/AbstractDayGridView'; - export { default as DayGridView, buildDayTable as buildBasicDayTable } from '@fullcalendar/daygrid/DayGridView'; - export { default as DayBgRow } from '@fullcalendar/daygrid/DayBgRow'; - const _default: import("@fullcalendar/core").PluginDef; - export default _default; -} - -declare module '@fullcalendar/daygrid/SimpleDayGrid' { - import { DateProfile, EventStore, EventUiHash, DateSpan, EventInteractionState, DayTable, Duration, DateComponent, DateRange, Slicer, Hit, ComponentContext } from '@fullcalendar/core'; - import { default as DayGrid, DayGridSeg } from '@fullcalendar/daygrid/DayGrid'; - export interface SimpleDayGridProps { - dateProfile: DateProfile | null; - dayTable: DayTable; - nextDayThreshold: Duration; - businessHours: EventStore; - eventStore: EventStore; - eventUiBases: EventUiHash; - dateSelection: DateSpan | null; - eventSelection: string; - eventDrag: EventInteractionState | null; - eventResize: EventInteractionState | null; - isRigid: boolean; - } - export { SimpleDayGrid as default, SimpleDayGrid }; - class SimpleDayGrid extends DateComponent { - dayGrid: DayGrid; - constructor(context: ComponentContext, dayGrid: DayGrid); - destroy(): void; - render(props: SimpleDayGridProps): void; - buildPositionCaches(): void; - queryHit(positionLeft: number, positionTop: number): Hit; - } - export class DayGridSlicer extends Slicer { - sliceRange(dateRange: DateRange, dayTable: DayTable): DayGridSeg[]; - } -} - -declare module '@fullcalendar/daygrid/DayGrid' { - import { PositionCache, DateMarker, DateComponent, EventSegUiInteractionState, Seg, DateProfile } from '@fullcalendar/core'; - import Popover from '@fullcalendar/daygrid/Popover'; - import DayGridEventRenderer from '@fullcalendar/daygrid/DayGridEventRenderer'; - import DayTile from '@fullcalendar/daygrid/DayTile'; - export interface RenderProps { - renderNumberIntroHtml: (row: number, dayGrid: DayGrid) => string; - renderBgIntroHtml: () => string; - renderIntroHtml: () => string; - colWeekNumbersVisible: boolean; - cellWeekNumbersVisible: boolean; - } - export interface DayGridSeg extends Seg { - row: number; - firstCol: number; - lastCol: number; - } - export interface DayGridCell { - date: DateMarker; - htmlAttrs?: string; - } - export interface DayGridProps { - dateProfile: DateProfile; - cells: DayGridCell[][]; - businessHourSegs: DayGridSeg[]; - bgEventSegs: DayGridSeg[]; - fgEventSegs: DayGridSeg[]; - dateSelectionSegs: DayGridSeg[]; - eventSelection: string; - eventDrag: EventSegUiInteractionState | null; - eventResize: EventSegUiInteractionState | null; - isRigid: boolean; - } - export { DayGrid as default, DayGrid }; - class DayGrid extends DateComponent { - eventRenderer: DayGridEventRenderer; - renderProps: RenderProps; - rowCnt: number; - colCnt: number; - bottomCoordPadding: number; - rowEls: HTMLElement[]; - cellEls: HTMLElement[]; - isCellSizesDirty: boolean; - rowPositions: PositionCache; - colPositions: PositionCache; - segPopover: Popover; - segPopoverTile: DayTile; - constructor(context: any, el: any, renderProps: RenderProps); - render(props: DayGridProps): void; - destroy(): void; - getCellRange(row: any, col: any): { - start: Date; - end: Date; - }; - updateSegPopoverTile(date?: any, segs?: any): void; - _renderCells(cells: DayGridCell[][], isRigid: boolean): void; - _unrenderCells(): void; - renderDayRowHtml(row: any, isRigid: any): string; - getIsNumbersVisible(): boolean; - getIsDayNumbersVisible(): boolean; - renderNumberTrHtml(row: number): string; - renderNumberCellsHtml(row: any): string; - renderNumberCellHtml(date: any): string; - updateSize(isResize: boolean): void; - buildPositionCaches(): void; - buildColPositions(): void; - buildRowPositions(): void; - positionToHit(leftPosition: any, topPosition: any): { - row: any; - col: any; - dateSpan: { - range: { - start: Date; - end: Date; - }; - allDay: boolean; - }; - dayEl: HTMLElement; - relativeRect: { - left: any; - right: any; - top: any; - bottom: any; - }; - }; - getCellEl(row: any, col: any): HTMLElement; - _renderEventDrag(state: EventSegUiInteractionState): void; - _unrenderEventDrag(state: EventSegUiInteractionState): void; - _renderEventResize(state: EventSegUiInteractionState): void; - _unrenderEventResize(state: EventSegUiInteractionState): void; - removeSegPopover(): void; - limitRows(levelLimit: any): void; - computeRowLevelLimit(row: any): (number | false); - limitRow(row: any, levelLimit: any): void; - unlimitRow(row: any): void; - renderMoreLink(row: any, col: any, hiddenSegs: any): HTMLElement; - showSegPopover(row: any, col: any, moreLink: HTMLElement, segs: any): void; - resliceDaySegs(segs: any, dayDate: any): any[]; - getMoreLinkText(num: any): any; - getCellSegs(row: any, col: any, startLevel?: any): any[]; - } -} - -declare module '@fullcalendar/daygrid/AbstractDayGridView' { - import { ScrollComponent, View, ComponentContext, ViewSpec, DateProfileGenerator, Duration } from '@fullcalendar/core'; - import DayGrid from '@fullcalendar/daygrid/DayGrid'; - export { DayGridView as default, DayGridView }; - abstract class DayGridView extends View { - scroller: ScrollComponent; - dayGrid: DayGrid; - colWeekNumbersVisible: boolean; - weekNumberWidth: number; - constructor(context: ComponentContext, viewSpec: ViewSpec, dateProfileGenerator: DateProfileGenerator, parentEl: HTMLElement); - destroy(): void; - renderSkeletonHtml(): string; - weekNumberStyleAttr(): string; - hasRigidRows(): boolean; - updateSize(isResize: boolean, viewHeight: number, isAuto: boolean): void; - updateBaseSize(isResize: boolean, viewHeight: number, isAuto: boolean): void; - computeScrollerHeight(viewHeight: any): number; - setGridHeight(height: any, isAuto: any): void; - computeDateScroll(duration: Duration): { - top: number; - }; - queryDateScroll(): { - top: number; - }; - applyDateScroll(scroll: any): void; - renderHeadIntroHtml: () => string; - renderDayGridNumberIntroHtml: (row: number, dayGrid: DayGrid) => string; - renderDayGridBgIntroHtml: () => string; - renderDayGridIntroHtml: () => string; - } -} - -declare module '@fullcalendar/daygrid/DayGridView' { - import { DayHeader, ComponentContext, ViewSpec, DateProfileGenerator, DateProfile, ViewProps, DayTable } from '@fullcalendar/core'; - import AbstractDayGridView from '@fullcalendar/daygrid/AbstractDayGridView'; - import SimpleDayGrid from '@fullcalendar/daygrid/SimpleDayGrid'; - export { DayGridView as default, DayGridView }; - class DayGridView extends AbstractDayGridView { - header: DayHeader; - simpleDayGrid: SimpleDayGrid; - dayTable: DayTable; - constructor(_context: ComponentContext, viewSpec: ViewSpec, dateProfileGenerator: DateProfileGenerator, parentEl: HTMLElement); - destroy(): void; - render(props: ViewProps): void; - } - export function buildDayTable(dateProfile: DateProfile, dateProfileGenerator: DateProfileGenerator): DayTable; -} - -declare module '@fullcalendar/daygrid/DayBgRow' { - import { ComponentContext, DateMarker, DateProfile } from '@fullcalendar/core'; - export interface DayBgCell { - date: DateMarker; - htmlAttrs?: string; - } - export interface DayBgRowProps { - cells: DayBgCell[]; - dateProfile: DateProfile; - renderIntroHtml?: () => string; - } - export { DayBgRow as default, DayBgRow }; - class DayBgRow { - context: ComponentContext; - constructor(context: ComponentContext); - renderHtml(props: DayBgRowProps): string; - } -} - -declare module '@fullcalendar/daygrid/Popover' { - export interface PopoverOptions { - className?: string; - content?: (el: HTMLElement) => void; - parentEl: HTMLElement; - autoHide?: boolean; - top?: number; - left?: number; - right?: number; - viewportConstrain?: boolean; - } - export { Popover as default, Popover }; - class Popover { - isHidden: boolean; - options: PopoverOptions; - el: HTMLElement; - margin: number; - constructor(options: PopoverOptions); - show(): void; - hide(): void; - render(): void; - documentMousedown: (ev: any) => void; - destroy(): void; - position(): void; - trigger(name: any): void; - } -} - -declare module '@fullcalendar/daygrid/DayGridEventRenderer' { - import { Seg } from '@fullcalendar/core'; - import DayGrid from '@fullcalendar/daygrid/DayGrid'; - import SimpleDayGridEventRenderer from '@fullcalendar/daygrid/SimpleDayGridEventRenderer'; - export { DayGridEventRenderer as default, DayGridEventRenderer }; - class DayGridEventRenderer extends SimpleDayGridEventRenderer { - dayGrid: DayGrid; - rowStructs: any; - constructor(dayGrid: DayGrid); - attachSegs(segs: Seg[], mirrorInfo: any): void; - detachSegs(): void; - renderSegRows(segs: Seg[]): any[]; - renderSegRow(row: any, rowSegs: any): { - row: any; - tbodyEl: HTMLTableSectionElement; - cellMatrix: any[]; - segMatrix: any[]; - segLevels: any[]; - segs: any; - }; - buildSegLevels(segs: Seg[]): any[]; - groupSegRows(segs: Seg[]): any[]; - computeDisplayEventEnd(): boolean; - } -} - -declare module '@fullcalendar/daygrid/DayTile' { - import { DateComponent, Seg, Hit, DateMarker, ComponentContext, EventInstanceHash } from '@fullcalendar/core'; - import SimpleDayGridEventRenderer from '@fullcalendar/daygrid/SimpleDayGridEventRenderer'; - export interface DayTileProps { - date: DateMarker; - fgSegs: Seg[]; - eventSelection: string; - eventDragInstances: EventInstanceHash; - eventResizeInstances: EventInstanceHash; - } - export { DayTile as default, DayTile }; - class DayTile extends DateComponent { - segContainerEl: HTMLElement; - constructor(context: ComponentContext, el: HTMLElement); - render(props: DayTileProps): void; - destroy(): void; - _renderFrame(date: DateMarker): void; - queryHit(positionLeft: number, positionTop: number, elWidth: number, elHeight: number): Hit | null; - } - export class DayTileEventRenderer extends SimpleDayGridEventRenderer { - dayTile: DayTile; - constructor(dayTile: any); - attachSegs(segs: Seg[]): void; - detachSegs(segs: Seg[]): void; - } -} - -declare module '@fullcalendar/daygrid/SimpleDayGridEventRenderer' { - import { FgEventRenderer, Seg } from '@fullcalendar/core'; - export { SimpleDayGridEventRenderer as default, SimpleDayGridEventRenderer }; - abstract class SimpleDayGridEventRenderer extends FgEventRenderer { - renderSegHtml(seg: Seg, mirrorInfo: any): string; - computeEventTimeFormat(): { - hour: string; - minute: string; - omitZeroMinute: boolean; - meridiem: string; - }; - computeDisplayEventEnd(): boolean; - } -} - diff --git a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.esm.js b/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.esm.js deleted file mode 100644 index 28c2a24c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.esm.js +++ /dev/null @@ -1,1627 +0,0 @@ -/*! -FullCalendar Day Grid Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -import { addWeeks, diffWeeks, DateProfileGenerator, createElement, listenBySelector, removeElement, computeRect, computeClippingRect, applyStyle, cssToStr, htmlEscape, FgEventRenderer, appendToElement, prependToElement, htmlToElement, FillRenderer, memoizeRendering, createFormatter, addDays, DateComponent, rangeContainsMarker, getDayClasses, findElements, PositionCache, buildGotoAnchorHtml, findChildren, insertAfterElement, intersectRanges, ScrollComponent, matchCellWidths, uncompensateScroll, compensateScroll, subtractInnerElHeight, distributeHeight, undistributeHeight, View, Slicer, memoize, DayHeader, DaySeries, DayTable, createPlugin } from '@fullcalendar/core'; - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; - -var DayGridDateProfileGenerator = /** @class */ (function (_super) { - __extends(DayGridDateProfileGenerator, _super); - function DayGridDateProfileGenerator() { - return _super !== null && _super.apply(this, arguments) || this; - } - // Computes the date range that will be rendered. - DayGridDateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) { - var dateEnv = this.dateEnv; - var renderRange = _super.prototype.buildRenderRange.call(this, currentRange, currentRangeUnit, isRangeAllDay); - var start = renderRange.start; - var end = renderRange.end; - var endOfWeek; - // year and month views should be aligned with weeks. this is already done for week - if (/^(year|month)$/.test(currentRangeUnit)) { - start = dateEnv.startOfWeek(start); - // make end-of-week if not already - endOfWeek = dateEnv.startOfWeek(end); - if (endOfWeek.valueOf() !== end.valueOf()) { - end = addWeeks(endOfWeek, 1); - } - } - // ensure 6 weeks - if (this.options.monthMode && - this.options.fixedWeekCount) { - var rowCnt = Math.ceil(// could be partial weeks due to hiddenDays - diffWeeks(start, end)); - end = addWeeks(end, 6 - rowCnt); - } - return { start: start, end: end }; - }; - return DayGridDateProfileGenerator; -}(DateProfileGenerator)); - -/* A rectangular panel that is absolutely positioned over other content ------------------------------------------------------------------------------------------------------------------------- -Options: - - className (string) - - content (HTML string, element, or element array) - - parentEl - - top - - left - - right (the x coord of where the right edge should be. not a "CSS" right) - - autoHide (boolean) - - show (callback) - - hide (callback) -*/ -var Popover = /** @class */ (function () { - function Popover(options) { - var _this = this; - this.isHidden = true; - this.margin = 10; // the space required between the popover and the edges of the scroll container - // Triggered when the user clicks *anywhere* in the document, for the autoHide feature - this.documentMousedown = function (ev) { - // only hide the popover if the click happened outside the popover - if (_this.el && !_this.el.contains(ev.target)) { - _this.hide(); - } - }; - this.options = options; - } - // Shows the popover on the specified position. Renders it if not already - Popover.prototype.show = function () { - if (this.isHidden) { - if (!this.el) { - this.render(); - } - this.el.style.display = ''; - this.position(); - this.isHidden = false; - this.trigger('show'); - } - }; - // Hides the popover, through CSS, but does not remove it from the DOM - Popover.prototype.hide = function () { - if (!this.isHidden) { - this.el.style.display = 'none'; - this.isHidden = true; - this.trigger('hide'); - } - }; - // Creates `this.el` and renders content inside of it - Popover.prototype.render = function () { - var _this = this; - var options = this.options; - var el = this.el = createElement('div', { - className: 'fc-popover ' + (options.className || ''), - style: { - top: '0', - left: '0' - } - }); - if (typeof options.content === 'function') { - options.content(el); - } - options.parentEl.appendChild(el); - // when a click happens on anything inside with a 'fc-close' className, hide the popover - listenBySelector(el, 'click', '.fc-close', function (ev) { - _this.hide(); - }); - if (options.autoHide) { - document.addEventListener('mousedown', this.documentMousedown); - } - }; - // Hides and unregisters any handlers - Popover.prototype.destroy = function () { - this.hide(); - if (this.el) { - removeElement(this.el); - this.el = null; - } - document.removeEventListener('mousedown', this.documentMousedown); - }; - // Positions the popover optimally, using the top/left/right options - Popover.prototype.position = function () { - var options = this.options; - var el = this.el; - var elDims = el.getBoundingClientRect(); // only used for width,height - var origin = computeRect(el.offsetParent); - var clippingRect = computeClippingRect(options.parentEl); - var top; // the "position" (not "offset") values for the popover - var left; // - // compute top and left - top = options.top || 0; - if (options.left !== undefined) { - left = options.left; - } - else if (options.right !== undefined) { - left = options.right - elDims.width; // derive the left value from the right value - } - else { - left = 0; - } - // constrain to the view port. if constrained by two edges, give precedence to top/left - top = Math.min(top, clippingRect.bottom - elDims.height - this.margin); - top = Math.max(top, clippingRect.top + this.margin); - left = Math.min(left, clippingRect.right - elDims.width - this.margin); - left = Math.max(left, clippingRect.left + this.margin); - applyStyle(el, { - top: top - origin.top, - left: left - origin.left - }); - }; - // Triggers a callback. Calls a function in the option hash of the same name. - // Arguments beyond the first `name` are forwarded on. - // TODO: better code reuse for this. Repeat code - // can kill this??? - Popover.prototype.trigger = function (name) { - if (this.options[name]) { - this.options[name].apply(this, Array.prototype.slice.call(arguments, 1)); - } - }; - return Popover; -}()); - -/* Event-rendering methods for the DayGrid class -----------------------------------------------------------------------------------------------------------------------*/ -// "Simple" is bad a name. has nothing to do with SimpleDayGrid -var SimpleDayGridEventRenderer = /** @class */ (function (_super) { - __extends(SimpleDayGridEventRenderer, _super); - function SimpleDayGridEventRenderer() { - return _super !== null && _super.apply(this, arguments) || this; - } - // Builds the HTML to be used for the default element for an individual segment - SimpleDayGridEventRenderer.prototype.renderSegHtml = function (seg, mirrorInfo) { - var _a = this.context, view = _a.view, options = _a.options; - var eventRange = seg.eventRange; - var eventDef = eventRange.def; - var eventUi = eventRange.ui; - var allDay = eventDef.allDay; - var isDraggable = view.computeEventDraggable(eventDef, eventUi); - var isResizableFromStart = allDay && seg.isStart && view.computeEventStartResizable(eventDef, eventUi); - var isResizableFromEnd = allDay && seg.isEnd && view.computeEventEndResizable(eventDef, eventUi); - var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd, mirrorInfo); - var skinCss = cssToStr(this.getSkinCss(eventUi)); - var timeHtml = ''; - var timeText; - var titleHtml; - classes.unshift('fc-day-grid-event', 'fc-h-event'); - // Only display a timed events time if it is the starting segment - if (seg.isStart) { - timeText = this.getTimeText(eventRange); - if (timeText) { - timeHtml = '' + htmlEscape(timeText) + ''; - } - } - titleHtml = - '' + - (htmlEscape(eventDef.title || '') || ' ') + // we always want one line of height - ''; - return '' + - '
' + - (options.dir === 'rtl' ? - titleHtml + ' ' + timeHtml : // put a natural space in between - timeHtml + ' ' + titleHtml // - ) + - '
' + - (isResizableFromStart ? - '
' : - '') + - (isResizableFromEnd ? - '
' : - '') + - '
'; - }; - // Computes a default event time formatting string if `eventTimeFormat` is not explicitly defined - SimpleDayGridEventRenderer.prototype.computeEventTimeFormat = function () { - return { - hour: 'numeric', - minute: '2-digit', - omitZeroMinute: true, - meridiem: 'narrow' - }; - }; - SimpleDayGridEventRenderer.prototype.computeDisplayEventEnd = function () { - return false; // TODO: somehow consider the originating DayGrid's column count - }; - return SimpleDayGridEventRenderer; -}(FgEventRenderer)); - -/* Event-rendering methods for the DayGrid class -----------------------------------------------------------------------------------------------------------------------*/ -var DayGridEventRenderer = /** @class */ (function (_super) { - __extends(DayGridEventRenderer, _super); - function DayGridEventRenderer(dayGrid) { - var _this = _super.call(this, dayGrid.context) || this; - _this.dayGrid = dayGrid; - return _this; - } - // Renders the given foreground event segments onto the grid - DayGridEventRenderer.prototype.attachSegs = function (segs, mirrorInfo) { - var rowStructs = this.rowStructs = this.renderSegRows(segs); - // append to each row's content skeleton - this.dayGrid.rowEls.forEach(function (rowNode, i) { - rowNode.querySelector('.fc-content-skeleton > table').appendChild(rowStructs[i].tbodyEl); - }); - // removes the "more.." events popover - if (!mirrorInfo) { - this.dayGrid.removeSegPopover(); - } - }; - // Unrenders all currently rendered foreground event segments - DayGridEventRenderer.prototype.detachSegs = function () { - var rowStructs = this.rowStructs || []; - var rowStruct; - while ((rowStruct = rowStructs.pop())) { - removeElement(rowStruct.tbodyEl); - } - this.rowStructs = null; - }; - // Uses the given events array to generate elements that should be appended to each row's content skeleton. - // Returns an array of rowStruct objects (see the bottom of `renderSegRow`). - // PRECONDITION: each segment shoud already have a rendered and assigned `.el` - DayGridEventRenderer.prototype.renderSegRows = function (segs) { - var rowStructs = []; - var segRows; - var row; - segRows = this.groupSegRows(segs); // group into nested arrays - // iterate each row of segment groupings - for (row = 0; row < segRows.length; row++) { - rowStructs.push(this.renderSegRow(row, segRows[row])); - } - return rowStructs; - }; - // Given a row # and an array of segments all in the same row, render a element, a skeleton that contains - // the segments. Returns object with a bunch of internal data about how the render was calculated. - // NOTE: modifies rowSegs - DayGridEventRenderer.prototype.renderSegRow = function (row, rowSegs) { - var dayGrid = this.dayGrid; - var colCnt = dayGrid.colCnt, isRtl = dayGrid.isRtl; - var segLevels = this.buildSegLevels(rowSegs); // group into sub-arrays of levels - var levelCnt = Math.max(1, segLevels.length); // ensure at least one level - var tbody = document.createElement('tbody'); - var segMatrix = []; // lookup for which segments are rendered into which level+col cells - var cellMatrix = []; // lookup for all elements of the level+col matrix - var loneCellMatrix = []; // lookup for elements that only take up a single column - var i; - var levelSegs; - var col; - var tr; - var j; - var seg; - var td; - // populates empty cells from the current column (`col`) to `endCol` - function emptyCellsUntil(endCol) { - while (col < endCol) { - // try to grab a cell from the level above and extend its rowspan. otherwise, create a fresh cell - td = (loneCellMatrix[i - 1] || [])[col]; - if (td) { - td.rowSpan = (td.rowSpan || 1) + 1; - } - else { - td = document.createElement('td'); - tr.appendChild(td); - } - cellMatrix[i][col] = td; - loneCellMatrix[i][col] = td; - col++; - } - } - for (i = 0; i < levelCnt; i++) { // iterate through all levels - levelSegs = segLevels[i]; - col = 0; - tr = document.createElement('tr'); - segMatrix.push([]); - cellMatrix.push([]); - loneCellMatrix.push([]); - // levelCnt might be 1 even though there are no actual levels. protect against this. - // this single empty row is useful for styling. - if (levelSegs) { - for (j = 0; j < levelSegs.length; j++) { // iterate through segments in level - seg = levelSegs[j]; - var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; - var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol; - emptyCellsUntil(leftCol); - // create a container that occupies or more columns. append the event element. - td = createElement('td', { className: 'fc-event-container' }, seg.el); - if (leftCol !== rightCol) { - td.colSpan = rightCol - leftCol + 1; - } - else { // a single-column segment - loneCellMatrix[i][col] = td; - } - while (col <= rightCol) { - cellMatrix[i][col] = td; - segMatrix[i][col] = seg; - col++; - } - tr.appendChild(td); - } - } - emptyCellsUntil(colCnt); // finish off the row - var introHtml = dayGrid.renderProps.renderIntroHtml(); - if (introHtml) { - if (dayGrid.isRtl) { - appendToElement(tr, introHtml); - } - else { - prependToElement(tr, introHtml); - } - } - tbody.appendChild(tr); - } - return { - row: row, - tbodyEl: tbody, - cellMatrix: cellMatrix, - segMatrix: segMatrix, - segLevels: segLevels, - segs: rowSegs - }; - }; - // Stacks a flat array of segments, which are all assumed to be in the same row, into subarrays of vertical levels. - // NOTE: modifies segs - DayGridEventRenderer.prototype.buildSegLevels = function (segs) { - var _a = this.dayGrid, isRtl = _a.isRtl, colCnt = _a.colCnt; - var levels = []; - var i; - var seg; - var j; - // Give preference to elements with certain criteria, so they have - // a chance to be closer to the top. - segs = this.sortEventSegs(segs); - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - // loop through levels, starting with the topmost, until the segment doesn't collide with other segments - for (j = 0; j < levels.length; j++) { - if (!isDaySegCollision(seg, levels[j])) { - break; - } - } - // `j` now holds the desired subrow index - seg.level = j; - seg.leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; // for sorting only - seg.rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol // for sorting only - ; - (levels[j] || (levels[j] = [])).push(seg); - } - // order segments left-to-right. very important if calendar is RTL - for (j = 0; j < levels.length; j++) { - levels[j].sort(compareDaySegCols); - } - return levels; - }; - // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's row - DayGridEventRenderer.prototype.groupSegRows = function (segs) { - var segRows = []; - var i; - for (i = 0; i < this.dayGrid.rowCnt; i++) { - segRows.push([]); - } - for (i = 0; i < segs.length; i++) { - segRows[segs[i].row].push(segs[i]); - } - return segRows; - }; - // Computes a default `displayEventEnd` value if one is not expliclty defined - DayGridEventRenderer.prototype.computeDisplayEventEnd = function () { - return this.dayGrid.colCnt === 1; // we'll likely have space if there's only one day - }; - return DayGridEventRenderer; -}(SimpleDayGridEventRenderer)); -// Computes whether two segments' columns collide. They are assumed to be in the same row. -function isDaySegCollision(seg, otherSegs) { - var i; - var otherSeg; - for (i = 0; i < otherSegs.length; i++) { - otherSeg = otherSegs[i]; - if (otherSeg.firstCol <= seg.lastCol && - otherSeg.lastCol >= seg.firstCol) { - return true; - } - } - return false; -} -// A cmp function for determining the leftmost event -function compareDaySegCols(a, b) { - return a.leftCol - b.leftCol; -} - -var DayGridMirrorRenderer = /** @class */ (function (_super) { - __extends(DayGridMirrorRenderer, _super); - function DayGridMirrorRenderer() { - return _super !== null && _super.apply(this, arguments) || this; - } - DayGridMirrorRenderer.prototype.attachSegs = function (segs, mirrorInfo) { - var sourceSeg = mirrorInfo.sourceSeg; - var rowStructs = this.rowStructs = this.renderSegRows(segs); - // inject each new event skeleton into each associated row - this.dayGrid.rowEls.forEach(function (rowNode, row) { - var skeletonEl = htmlToElement('
'); // will be absolutely positioned - var skeletonTopEl; - var skeletonTop; - // If there is an original segment, match the top position. Otherwise, put it at the row's top level - if (sourceSeg && sourceSeg.row === row) { - skeletonTopEl = sourceSeg.el; - } - else { - skeletonTopEl = rowNode.querySelector('.fc-content-skeleton tbody'); - if (!skeletonTopEl) { // when no events - skeletonTopEl = rowNode.querySelector('.fc-content-skeleton table'); - } - } - skeletonTop = skeletonTopEl.getBoundingClientRect().top - - rowNode.getBoundingClientRect().top; // the offsetParent origin - skeletonEl.style.top = skeletonTop + 'px'; - skeletonEl.querySelector('table').appendChild(rowStructs[row].tbodyEl); - rowNode.appendChild(skeletonEl); - }); - }; - return DayGridMirrorRenderer; -}(DayGridEventRenderer)); - -var EMPTY_CELL_HTML = ''; -var DayGridFillRenderer = /** @class */ (function (_super) { - __extends(DayGridFillRenderer, _super); - function DayGridFillRenderer(dayGrid) { - var _this = _super.call(this, dayGrid.context) || this; - _this.fillSegTag = 'td'; // override the default tag name - _this.dayGrid = dayGrid; - return _this; - } - DayGridFillRenderer.prototype.renderSegs = function (type, segs) { - // don't render timed background events - if (type === 'bgEvent') { - segs = segs.filter(function (seg) { - return seg.eventRange.def.allDay; - }); - } - _super.prototype.renderSegs.call(this, type, segs); - }; - DayGridFillRenderer.prototype.attachSegs = function (type, segs) { - var els = []; - var i; - var seg; - var skeletonEl; - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - skeletonEl = this.renderFillRow(type, seg); - this.dayGrid.rowEls[seg.row].appendChild(skeletonEl); - els.push(skeletonEl); - } - return els; - }; - // Generates the HTML needed for one row of a fill. Requires the seg's el to be rendered. - DayGridFillRenderer.prototype.renderFillRow = function (type, seg) { - var dayGrid = this.dayGrid; - var colCnt = dayGrid.colCnt, isRtl = dayGrid.isRtl; - var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; - var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol; - var startCol = leftCol; - var endCol = rightCol + 1; - var className; - var skeletonEl; - var trEl; - if (type === 'businessHours') { - className = 'bgevent'; - } - else { - className = type.toLowerCase(); - } - skeletonEl = htmlToElement('
' + - '
' + - '
'); - trEl = skeletonEl.getElementsByTagName('tr')[0]; - if (startCol > 0) { - appendToElement(trEl, - // will create (startCol + 1) td's - new Array(startCol + 1).join(EMPTY_CELL_HTML)); - } - seg.el.colSpan = endCol - startCol; - trEl.appendChild(seg.el); - if (endCol < colCnt) { - appendToElement(trEl, - // will create (colCnt - endCol) td's - new Array(colCnt - endCol + 1).join(EMPTY_CELL_HTML)); - } - var introHtml = dayGrid.renderProps.renderIntroHtml(); - if (introHtml) { - if (dayGrid.isRtl) { - appendToElement(trEl, introHtml); - } - else { - prependToElement(trEl, introHtml); - } - } - return skeletonEl; - }; - return DayGridFillRenderer; -}(FillRenderer)); - -var DayTile = /** @class */ (function (_super) { - __extends(DayTile, _super); - function DayTile(context, el) { - var _this = _super.call(this, context, el) || this; - var eventRenderer = _this.eventRenderer = new DayTileEventRenderer(_this); - var renderFrame = _this.renderFrame = memoizeRendering(_this._renderFrame); - _this.renderFgEvents = memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderFrame]); - _this.renderEventSelection = memoizeRendering(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]); - _this.renderEventDrag = memoizeRendering(eventRenderer.hideByHash.bind(eventRenderer), eventRenderer.showByHash.bind(eventRenderer), [renderFrame]); - _this.renderEventResize = memoizeRendering(eventRenderer.hideByHash.bind(eventRenderer), eventRenderer.showByHash.bind(eventRenderer), [renderFrame]); - context.calendar.registerInteractiveComponent(_this, { - el: _this.el, - useEventCenter: false - }); - return _this; - } - DayTile.prototype.render = function (props) { - this.renderFrame(props.date); - this.renderFgEvents(props.fgSegs); - this.renderEventSelection(props.eventSelection); - this.renderEventDrag(props.eventDragInstances); - this.renderEventResize(props.eventResizeInstances); - }; - DayTile.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderFrame.unrender(); // should unrender everything else - this.calendar.unregisterInteractiveComponent(this); - }; - DayTile.prototype._renderFrame = function (date) { - var _a = this, theme = _a.theme, dateEnv = _a.dateEnv; - var title = dateEnv.format(date, createFormatter(this.opt('dayPopoverFormat')) // TODO: cache - ); - this.el.innerHTML = - '
' + - '' + - htmlEscape(title) + - '' + - '' + - '
' + - '
' + - '
' + - '
'; - this.segContainerEl = this.el.querySelector('.fc-event-container'); - }; - DayTile.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) { - var date = this.props.date; // HACK - if (positionLeft < elWidth && positionTop < elHeight) { - return { - component: this, - dateSpan: { - allDay: true, - range: { start: date, end: addDays(date, 1) } - }, - dayEl: this.el, - rect: { - left: 0, - top: 0, - right: elWidth, - bottom: elHeight - }, - layer: 1 - }; - } - }; - return DayTile; -}(DateComponent)); -var DayTileEventRenderer = /** @class */ (function (_super) { - __extends(DayTileEventRenderer, _super); - function DayTileEventRenderer(dayTile) { - var _this = _super.call(this, dayTile.context) || this; - _this.dayTile = dayTile; - return _this; - } - DayTileEventRenderer.prototype.attachSegs = function (segs) { - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - this.dayTile.segContainerEl.appendChild(seg.el); - } - }; - DayTileEventRenderer.prototype.detachSegs = function (segs) { - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - removeElement(seg.el); - } - }; - return DayTileEventRenderer; -}(SimpleDayGridEventRenderer)); - -var DayBgRow = /** @class */ (function () { - function DayBgRow(context) { - this.context = context; - } - DayBgRow.prototype.renderHtml = function (props) { - var parts = []; - if (props.renderIntroHtml) { - parts.push(props.renderIntroHtml()); - } - for (var _i = 0, _a = props.cells; _i < _a.length; _i++) { - var cell = _a[_i]; - parts.push(renderCellHtml(cell.date, props.dateProfile, this.context, cell.htmlAttrs)); - } - if (!props.cells.length) { - parts.push(''); - } - if (this.context.options.dir === 'rtl') { - parts.reverse(); - } - return '' + parts.join('') + ''; - }; - return DayBgRow; -}()); -function renderCellHtml(date, dateProfile, context, otherAttrs) { - var dateEnv = context.dateEnv, theme = context.theme; - var isDateValid = rangeContainsMarker(dateProfile.activeRange, date); // TODO: called too frequently. cache somehow. - var classes = getDayClasses(date, dateProfile, context); - classes.unshift('fc-day', theme.getClass('widgetContent')); - return ''; -} - -var DAY_NUM_FORMAT = createFormatter({ day: 'numeric' }); -var WEEK_NUM_FORMAT = createFormatter({ week: 'numeric' }); -var DayGrid = /** @class */ (function (_super) { - __extends(DayGrid, _super); - function DayGrid(context, el, renderProps) { - var _this = _super.call(this, context, el) || this; - _this.bottomCoordPadding = 0; // hack for extending the hit area for the last row of the coordinate grid - _this.isCellSizesDirty = false; - var eventRenderer = _this.eventRenderer = new DayGridEventRenderer(_this); - var fillRenderer = _this.fillRenderer = new DayGridFillRenderer(_this); - _this.mirrorRenderer = new DayGridMirrorRenderer(_this); - var renderCells = _this.renderCells = memoizeRendering(_this._renderCells, _this._unrenderCells); - _this.renderBusinessHours = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'businessHours'), fillRenderer.unrender.bind(fillRenderer, 'businessHours'), [renderCells]); - _this.renderDateSelection = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'highlight'), fillRenderer.unrender.bind(fillRenderer, 'highlight'), [renderCells]); - _this.renderBgEvents = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'bgEvent'), fillRenderer.unrender.bind(fillRenderer, 'bgEvent'), [renderCells]); - _this.renderFgEvents = memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderCells]); - _this.renderEventSelection = memoizeRendering(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]); - _this.renderEventDrag = memoizeRendering(_this._renderEventDrag, _this._unrenderEventDrag, [renderCells]); - _this.renderEventResize = memoizeRendering(_this._renderEventResize, _this._unrenderEventResize, [renderCells]); - _this.renderProps = renderProps; - return _this; - } - DayGrid.prototype.render = function (props) { - var cells = props.cells; - this.rowCnt = cells.length; - this.colCnt = cells[0].length; - this.renderCells(cells, props.isRigid); - this.renderBusinessHours(props.businessHourSegs); - this.renderDateSelection(props.dateSelectionSegs); - this.renderBgEvents(props.bgEventSegs); - this.renderFgEvents(props.fgEventSegs); - this.renderEventSelection(props.eventSelection); - this.renderEventDrag(props.eventDrag); - this.renderEventResize(props.eventResize); - if (this.segPopoverTile) { - this.updateSegPopoverTile(); - } - }; - DayGrid.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderCells.unrender(); // will unrender everything else - }; - DayGrid.prototype.getCellRange = function (row, col) { - var start = this.props.cells[row][col].date; - var end = addDays(start, 1); - return { start: start, end: end }; - }; - DayGrid.prototype.updateSegPopoverTile = function (date, segs) { - var ownProps = this.props; - this.segPopoverTile.receiveProps({ - date: date || this.segPopoverTile.props.date, - fgSegs: segs || this.segPopoverTile.props.fgSegs, - eventSelection: ownProps.eventSelection, - eventDragInstances: ownProps.eventDrag ? ownProps.eventDrag.affectedInstances : null, - eventResizeInstances: ownProps.eventResize ? ownProps.eventResize.affectedInstances : null - }); - }; - /* Date Rendering - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype._renderCells = function (cells, isRigid) { - var _a = this, view = _a.view, dateEnv = _a.dateEnv; - var _b = this, rowCnt = _b.rowCnt, colCnt = _b.colCnt; - var html = ''; - var row; - var col; - for (row = 0; row < rowCnt; row++) { - html += this.renderDayRowHtml(row, isRigid); - } - this.el.innerHTML = html; - this.rowEls = findElements(this.el, '.fc-row'); - this.cellEls = findElements(this.el, '.fc-day, .fc-disabled-day'); - if (this.isRtl) { - this.cellEls.reverse(); - } - this.rowPositions = new PositionCache(this.el, this.rowEls, false, true // vertical - ); - this.colPositions = new PositionCache(this.el, this.cellEls.slice(0, colCnt), // only the first row - true, false // horizontal - ); - // trigger dayRender with each cell's element - for (row = 0; row < rowCnt; row++) { - for (col = 0; col < colCnt; col++) { - this.publiclyTrigger('dayRender', [ - { - date: dateEnv.toDate(cells[row][col].date), - el: this.getCellEl(row, col), - view: view - } - ]); - } - } - this.isCellSizesDirty = true; - }; - DayGrid.prototype._unrenderCells = function () { - this.removeSegPopover(); - }; - // Generates the HTML for a single row, which is a div that wraps a table. - // `row` is the row number. - DayGrid.prototype.renderDayRowHtml = function (row, isRigid) { - var theme = this.theme; - var classes = ['fc-row', 'fc-week', theme.getClass('dayRow')]; - if (isRigid) { - classes.push('fc-rigid'); - } - var bgRow = new DayBgRow(this.context); - return '' + - '
' + - '
' + - '' + - bgRow.renderHtml({ - cells: this.props.cells[row], - dateProfile: this.props.dateProfile, - renderIntroHtml: this.renderProps.renderBgIntroHtml - }) + - '
' + - '
' + - '
' + - '' + - (this.getIsNumbersVisible() ? - '' + - this.renderNumberTrHtml(row) + - '' : - '') + - '
' + - '
' + - '
'; - }; - DayGrid.prototype.getIsNumbersVisible = function () { - return this.getIsDayNumbersVisible() || - this.renderProps.cellWeekNumbersVisible || - this.renderProps.colWeekNumbersVisible; - }; - DayGrid.prototype.getIsDayNumbersVisible = function () { - return this.rowCnt > 1; - }; - /* Grid Number Rendering - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.renderNumberTrHtml = function (row) { - var intro = this.renderProps.renderNumberIntroHtml(row, this); - return '' + - '' + - (this.isRtl ? '' : intro) + - this.renderNumberCellsHtml(row) + - (this.isRtl ? intro : '') + - ''; - }; - DayGrid.prototype.renderNumberCellsHtml = function (row) { - var htmls = []; - var col; - var date; - for (col = 0; col < this.colCnt; col++) { - date = this.props.cells[row][col].date; - htmls.push(this.renderNumberCellHtml(date)); - } - if (this.isRtl) { - htmls.reverse(); - } - return htmls.join(''); - }; - // Generates the HTML for the s of the "number" row in the DayGrid's content skeleton. - // The number row will only exist if either day numbers or week numbers are turned on. - DayGrid.prototype.renderNumberCellHtml = function (date) { - var _a = this, view = _a.view, dateEnv = _a.dateEnv; - var html = ''; - var isDateValid = rangeContainsMarker(this.props.dateProfile.activeRange, date); // TODO: called too frequently. cache somehow. - var isDayNumberVisible = this.getIsDayNumbersVisible() && isDateValid; - var classes; - var weekCalcFirstDow; - if (!isDayNumberVisible && !this.renderProps.cellWeekNumbersVisible) { - // no numbers in day cell (week number must be along the side) - return ''; // will create an empty space above events :( - } - classes = getDayClasses(date, this.props.dateProfile, this.context); - classes.unshift('fc-day-top'); - if (this.renderProps.cellWeekNumbersVisible) { - weekCalcFirstDow = dateEnv.weekDow; - } - html += ''; - if (this.renderProps.cellWeekNumbersVisible && (date.getUTCDay() === weekCalcFirstDow)) { - html += buildGotoAnchorHtml(view, { date: date, type: 'week' }, { 'class': 'fc-week-number' }, dateEnv.format(date, WEEK_NUM_FORMAT) // inner HTML - ); - } - if (isDayNumberVisible) { - html += buildGotoAnchorHtml(view, date, { 'class': 'fc-day-number' }, dateEnv.format(date, DAY_NUM_FORMAT) // inner HTML - ); - } - html += ''; - return html; - }; - /* Sizing - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.updateSize = function (isResize) { - var _a = this, fillRenderer = _a.fillRenderer, eventRenderer = _a.eventRenderer, mirrorRenderer = _a.mirrorRenderer; - if (isResize || - this.isCellSizesDirty || - this.view.calendar.isEventsUpdated // hack - ) { - this.buildPositionCaches(); - this.isCellSizesDirty = false; - } - fillRenderer.computeSizes(isResize); - eventRenderer.computeSizes(isResize); - mirrorRenderer.computeSizes(isResize); - fillRenderer.assignSizes(isResize); - eventRenderer.assignSizes(isResize); - mirrorRenderer.assignSizes(isResize); - }; - DayGrid.prototype.buildPositionCaches = function () { - this.buildColPositions(); - this.buildRowPositions(); - }; - DayGrid.prototype.buildColPositions = function () { - this.colPositions.build(); - }; - DayGrid.prototype.buildRowPositions = function () { - this.rowPositions.build(); - this.rowPositions.bottoms[this.rowCnt - 1] += this.bottomCoordPadding; // hack - }; - /* Hit System - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.positionToHit = function (leftPosition, topPosition) { - var _a = this, colPositions = _a.colPositions, rowPositions = _a.rowPositions; - var col = colPositions.leftToIndex(leftPosition); - var row = rowPositions.topToIndex(topPosition); - if (row != null && col != null) { - return { - row: row, - col: col, - dateSpan: { - range: this.getCellRange(row, col), - allDay: true - }, - dayEl: this.getCellEl(row, col), - relativeRect: { - left: colPositions.lefts[col], - right: colPositions.rights[col], - top: rowPositions.tops[row], - bottom: rowPositions.bottoms[row] - } - }; - } - }; - /* Cell System - ------------------------------------------------------------------------------------------------------------------*/ - // FYI: the first column is the leftmost column, regardless of date - DayGrid.prototype.getCellEl = function (row, col) { - return this.cellEls[row * this.colCnt + col]; - }; - /* Event Drag Visualization - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype._renderEventDrag = function (state) { - if (state) { - this.eventRenderer.hideByHash(state.affectedInstances); - this.fillRenderer.renderSegs('highlight', state.segs); - } - }; - DayGrid.prototype._unrenderEventDrag = function (state) { - if (state) { - this.eventRenderer.showByHash(state.affectedInstances); - this.fillRenderer.unrender('highlight'); - } - }; - /* Event Resize Visualization - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype._renderEventResize = function (state) { - if (state) { - this.eventRenderer.hideByHash(state.affectedInstances); - this.fillRenderer.renderSegs('highlight', state.segs); - this.mirrorRenderer.renderSegs(state.segs, { isResizing: true, sourceSeg: state.sourceSeg }); - } - }; - DayGrid.prototype._unrenderEventResize = function (state) { - if (state) { - this.eventRenderer.showByHash(state.affectedInstances); - this.fillRenderer.unrender('highlight'); - this.mirrorRenderer.unrender(state.segs, { isResizing: true, sourceSeg: state.sourceSeg }); - } - }; - /* More+ Link Popover - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.removeSegPopover = function () { - if (this.segPopover) { - this.segPopover.hide(); // in handler, will call segPopover's removeElement - } - }; - // Limits the number of "levels" (vertically stacking layers of events) for each row of the grid. - // `levelLimit` can be false (don't limit), a number, or true (should be computed). - DayGrid.prototype.limitRows = function (levelLimit) { - var rowStructs = this.eventRenderer.rowStructs || []; - var row; // row # - var rowLevelLimit; - for (row = 0; row < rowStructs.length; row++) { - this.unlimitRow(row); - if (!levelLimit) { - rowLevelLimit = false; - } - else if (typeof levelLimit === 'number') { - rowLevelLimit = levelLimit; - } - else { - rowLevelLimit = this.computeRowLevelLimit(row); - } - if (rowLevelLimit !== false) { - this.limitRow(row, rowLevelLimit); - } - } - }; - // Computes the number of levels a row will accomodate without going outside its bounds. - // Assumes the row is "rigid" (maintains a constant height regardless of what is inside). - // `row` is the row number. - DayGrid.prototype.computeRowLevelLimit = function (row) { - var rowEl = this.rowEls[row]; // the containing "fake" row div - var rowBottom = rowEl.getBoundingClientRect().bottom; // relative to viewport! - var trEls = findChildren(this.eventRenderer.rowStructs[row].tbodyEl); - var i; - var trEl; - // Reveal one level at a time and stop when we find one out of bounds - for (i = 0; i < trEls.length; i++) { - trEl = trEls[i]; - trEl.classList.remove('fc-limited'); // reset to original state (reveal) - if (trEl.getBoundingClientRect().bottom > rowBottom) { - return i; - } - } - return false; // should not limit at all - }; - // Limits the given grid row to the maximum number of levels and injects "more" links if necessary. - // `row` is the row number. - // `levelLimit` is a number for the maximum (inclusive) number of levels allowed. - DayGrid.prototype.limitRow = function (row, levelLimit) { - var _this = this; - var _a = this, colCnt = _a.colCnt, isRtl = _a.isRtl; - var rowStruct = this.eventRenderer.rowStructs[row]; - var moreNodes = []; // array of "more" links and DOM nodes - var col = 0; // col #, left-to-right (not chronologically) - var levelSegs; // array of segment objects in the last allowable level, ordered left-to-right - var cellMatrix; // a matrix (by level, then column) of all elements in the row - var limitedNodes; // array of temporarily hidden level and segment DOM nodes - var i; - var seg; - var segsBelow; // array of segment objects below `seg` in the current `col` - var totalSegsBelow; // total number of segments below `seg` in any of the columns `seg` occupies - var colSegsBelow; // array of segment arrays, below seg, one for each column (offset from segs's first column) - var td; - var rowSpan; - var segMoreNodes; // array of "more" cells that will stand-in for the current seg's cell - var j; - var moreTd; - var moreWrap; - var moreLink; - // Iterates through empty level cells and places "more" links inside if need be - var emptyCellsUntil = function (endCol) { - while (col < endCol) { - segsBelow = _this.getCellSegs(row, col, levelLimit); - if (segsBelow.length) { - td = cellMatrix[levelLimit - 1][col]; - moreLink = _this.renderMoreLink(row, col, segsBelow); - moreWrap = createElement('div', null, moreLink); - td.appendChild(moreWrap); - moreNodes.push(moreWrap); - } - col++; - } - }; - if (levelLimit && levelLimit < rowStruct.segLevels.length) { // is it actually over the limit? - levelSegs = rowStruct.segLevels[levelLimit - 1]; - cellMatrix = rowStruct.cellMatrix; - limitedNodes = findChildren(rowStruct.tbodyEl).slice(levelLimit); // get level elements past the limit - limitedNodes.forEach(function (node) { - node.classList.add('fc-limited'); // hide elements and get a simple DOM-nodes array - }); - // iterate though segments in the last allowable level - for (i = 0; i < levelSegs.length; i++) { - seg = levelSegs[i]; - var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; - var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol; - emptyCellsUntil(leftCol); // process empty cells before the segment - // determine *all* segments below `seg` that occupy the same columns - colSegsBelow = []; - totalSegsBelow = 0; - while (col <= rightCol) { - segsBelow = this.getCellSegs(row, col, levelLimit); - colSegsBelow.push(segsBelow); - totalSegsBelow += segsBelow.length; - col++; - } - if (totalSegsBelow) { // do we need to replace this segment with one or many "more" links? - td = cellMatrix[levelLimit - 1][leftCol]; // the segment's parent cell - rowSpan = td.rowSpan || 1; - segMoreNodes = []; - // make a replacement for each column the segment occupies. will be one for each colspan - for (j = 0; j < colSegsBelow.length; j++) { - moreTd = createElement('td', { className: 'fc-more-cell', rowSpan: rowSpan }); - segsBelow = colSegsBelow[j]; - moreLink = this.renderMoreLink(row, leftCol + j, [seg].concat(segsBelow) // count seg as hidden too - ); - moreWrap = createElement('div', null, moreLink); - moreTd.appendChild(moreWrap); - segMoreNodes.push(moreTd); - moreNodes.push(moreTd); - } - td.classList.add('fc-limited'); - insertAfterElement(td, segMoreNodes); - limitedNodes.push(td); - } - } - emptyCellsUntil(this.colCnt); // finish off the level - rowStruct.moreEls = moreNodes; // for easy undoing later - rowStruct.limitedEls = limitedNodes; // for easy undoing later - } - }; - // Reveals all levels and removes all "more"-related elements for a grid's row. - // `row` is a row number. - DayGrid.prototype.unlimitRow = function (row) { - var rowStruct = this.eventRenderer.rowStructs[row]; - if (rowStruct.moreEls) { - rowStruct.moreEls.forEach(removeElement); - rowStruct.moreEls = null; - } - if (rowStruct.limitedEls) { - rowStruct.limitedEls.forEach(function (limitedEl) { - limitedEl.classList.remove('fc-limited'); - }); - rowStruct.limitedEls = null; - } - }; - // Renders an element that represents hidden event element for a cell. - // Responsible for attaching click handler as well. - DayGrid.prototype.renderMoreLink = function (row, col, hiddenSegs) { - var _this = this; - var _a = this, view = _a.view, dateEnv = _a.dateEnv; - var a = createElement('a', { className: 'fc-more' }); - a.innerText = this.getMoreLinkText(hiddenSegs.length); - a.addEventListener('click', function (ev) { - var clickOption = _this.opt('eventLimitClick'); - var _col = _this.isRtl ? _this.colCnt - col - 1 : col; // HACK: props.cells has different dir system? - var date = _this.props.cells[row][_col].date; - var moreEl = ev.currentTarget; - var dayEl = _this.getCellEl(row, col); - var allSegs = _this.getCellSegs(row, col); - // rescope the segments to be within the cell's date - var reslicedAllSegs = _this.resliceDaySegs(allSegs, date); - var reslicedHiddenSegs = _this.resliceDaySegs(hiddenSegs, date); - if (typeof clickOption === 'function') { - // the returned value can be an atomic option - clickOption = _this.publiclyTrigger('eventLimitClick', [ - { - date: dateEnv.toDate(date), - allDay: true, - dayEl: dayEl, - moreEl: moreEl, - segs: reslicedAllSegs, - hiddenSegs: reslicedHiddenSegs, - jsEvent: ev, - view: view - } - ]); - } - if (clickOption === 'popover') { - _this.showSegPopover(row, col, moreEl, reslicedAllSegs); - } - else if (typeof clickOption === 'string') { // a view name - view.calendar.zoomTo(date, clickOption); - } - }); - return a; - }; - // Reveals the popover that displays all events within a cell - DayGrid.prototype.showSegPopover = function (row, col, moreLink, segs) { - var _this = this; - var _a = this, calendar = _a.calendar, view = _a.view, theme = _a.theme; - var _col = this.isRtl ? this.colCnt - col - 1 : col; // HACK: props.cells has different dir system? - var moreWrap = moreLink.parentNode; // the
wrapper around the - var topEl; // the element we want to match the top coordinate of - var options; - if (this.rowCnt === 1) { - topEl = view.el; // will cause the popover to cover any sort of header - } - else { - topEl = this.rowEls[row]; // will align with top of row - } - options = { - className: 'fc-more-popover ' + theme.getClass('popover'), - parentEl: view.el, - top: computeRect(topEl).top, - autoHide: true, - content: function (el) { - _this.segPopoverTile = new DayTile(_this.context, el); - _this.updateSegPopoverTile(_this.props.cells[row][_col].date, segs); - }, - hide: function () { - _this.segPopoverTile.destroy(); - _this.segPopoverTile = null; - _this.segPopover.destroy(); - _this.segPopover = null; - } - }; - // Determine horizontal coordinate. - // We use the moreWrap instead of the to avoid border confusion. - if (this.isRtl) { - options.right = computeRect(moreWrap).right + 1; // +1 to be over cell border - } - else { - options.left = computeRect(moreWrap).left - 1; // -1 to be over cell border - } - this.segPopover = new Popover(options); - this.segPopover.show(); - calendar.releaseAfterSizingTriggers(); // hack for eventPositioned - }; - // Given the events within an array of segment objects, reslice them to be in a single day - DayGrid.prototype.resliceDaySegs = function (segs, dayDate) { - var dayStart = dayDate; - var dayEnd = addDays(dayStart, 1); - var dayRange = { start: dayStart, end: dayEnd }; - var newSegs = []; - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - var eventRange = seg.eventRange; - var origRange = eventRange.range; - var slicedRange = intersectRanges(origRange, dayRange); - if (slicedRange) { - newSegs.push(__assign({}, seg, { eventRange: { - def: eventRange.def, - ui: __assign({}, eventRange.ui, { durationEditable: false }), - instance: eventRange.instance, - range: slicedRange - }, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() })); - } - } - return newSegs; - }; - // Generates the text that should be inside a "more" link, given the number of events it represents - DayGrid.prototype.getMoreLinkText = function (num) { - var opt = this.opt('eventLimitText'); - if (typeof opt === 'function') { - return opt(num); - } - else { - return '+' + num + ' ' + opt; - } - }; - // Returns segments within a given cell. - // If `startLevel` is specified, returns only events including and below that level. Otherwise returns all segs. - DayGrid.prototype.getCellSegs = function (row, col, startLevel) { - var segMatrix = this.eventRenderer.rowStructs[row].segMatrix; - var level = startLevel || 0; - var segs = []; - var seg; - while (level < segMatrix.length) { - seg = segMatrix[level][col]; - if (seg) { - segs.push(seg); - } - level++; - } - return segs; - }; - return DayGrid; -}(DateComponent)); - -var WEEK_NUM_FORMAT$1 = createFormatter({ week: 'numeric' }); -/* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells. -----------------------------------------------------------------------------------------------------------------------*/ -// It is a manager for a DayGrid subcomponent, which does most of the heavy lifting. -// It is responsible for managing width/height. -var DayGridView = /** @class */ (function (_super) { - __extends(DayGridView, _super); - function DayGridView(context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, context, viewSpec, dateProfileGenerator, parentEl) || this; - /* Header Rendering - ------------------------------------------------------------------------------------------------------------------*/ - // Generates the HTML that will go before the day-of week header cells - _this.renderHeadIntroHtml = function () { - var theme = _this.theme; - if (_this.colWeekNumbersVisible) { - return '' + - '' + - '' + // needed for matchCellWidths - htmlEscape(_this.opt('weekLabel')) + - '' + - ''; - } - return ''; - }; - /* Day Grid Rendering - ------------------------------------------------------------------------------------------------------------------*/ - // Generates the HTML that will go before content-skeleton cells that display the day/week numbers - _this.renderDayGridNumberIntroHtml = function (row, dayGrid) { - var dateEnv = _this.dateEnv; - var weekStart = dayGrid.props.cells[row][0].date; - if (_this.colWeekNumbersVisible) { - return '' + - '' + - buildGotoAnchorHtml(// aside from link, important for matchCellWidths - _this, { date: weekStart, type: 'week', forceOff: dayGrid.colCnt === 1 }, dateEnv.format(weekStart, WEEK_NUM_FORMAT$1) // inner HTML - ) + - ''; - } - return ''; - }; - // Generates the HTML that goes before the day bg cells for each day-row - _this.renderDayGridBgIntroHtml = function () { - var theme = _this.theme; - if (_this.colWeekNumbersVisible) { - return ''; - } - return ''; - }; - // Generates the HTML that goes before every other type of row generated by DayGrid. - // Affects mirror-skeleton and highlight-skeleton rows. - _this.renderDayGridIntroHtml = function () { - if (_this.colWeekNumbersVisible) { - return ''; - } - return ''; - }; - _this.el.classList.add('fc-dayGrid-view'); - _this.el.innerHTML = _this.renderSkeletonHtml(); - _this.scroller = new ScrollComponent('hidden', // overflow x - 'auto' // overflow y - ); - var dayGridContainerEl = _this.scroller.el; - _this.el.querySelector('.fc-body > tr > td').appendChild(dayGridContainerEl); - dayGridContainerEl.classList.add('fc-day-grid-container'); - var dayGridEl = createElement('div', { className: 'fc-day-grid' }); - dayGridContainerEl.appendChild(dayGridEl); - var cellWeekNumbersVisible; - if (_this.opt('weekNumbers')) { - if (_this.opt('weekNumbersWithinDays')) { - cellWeekNumbersVisible = true; - _this.colWeekNumbersVisible = false; - } - else { - cellWeekNumbersVisible = false; - _this.colWeekNumbersVisible = true; - } - } - else { - _this.colWeekNumbersVisible = false; - cellWeekNumbersVisible = false; - } - _this.dayGrid = new DayGrid(_this.context, dayGridEl, { - renderNumberIntroHtml: _this.renderDayGridNumberIntroHtml, - renderBgIntroHtml: _this.renderDayGridBgIntroHtml, - renderIntroHtml: _this.renderDayGridIntroHtml, - colWeekNumbersVisible: _this.colWeekNumbersVisible, - cellWeekNumbersVisible: cellWeekNumbersVisible - }); - return _this; - } - DayGridView.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.dayGrid.destroy(); - this.scroller.destroy(); - }; - // Builds the HTML skeleton for the view. - // The day-grid component will render inside of a container defined by this HTML. - DayGridView.prototype.renderSkeletonHtml = function () { - var theme = this.theme; - return '' + - '' + - (this.opt('columnHeader') ? - '' + - '' + - '' + - '' + - '' : - '') + - '' + - '' + - '' + - '' + - '' + - '
 
'; - }; - // Generates an HTML attribute string for setting the width of the week number column, if it is known - DayGridView.prototype.weekNumberStyleAttr = function () { - if (this.weekNumberWidth != null) { - return 'style="width:' + this.weekNumberWidth + 'px"'; - } - return ''; - }; - // Determines whether each row should have a constant height - DayGridView.prototype.hasRigidRows = function () { - var eventLimit = this.opt('eventLimit'); - return eventLimit && typeof eventLimit !== 'number'; - }; - /* Dimensions - ------------------------------------------------------------------------------------------------------------------*/ - DayGridView.prototype.updateSize = function (isResize, viewHeight, isAuto) { - _super.prototype.updateSize.call(this, isResize, viewHeight, isAuto); // will call updateBaseSize. important that executes first - this.dayGrid.updateSize(isResize); - }; - // Refreshes the horizontal dimensions of the view - DayGridView.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) { - var dayGrid = this.dayGrid; - var eventLimit = this.opt('eventLimit'); - var headRowEl = this.header ? this.header.el : null; // HACK - var scrollerHeight; - var scrollbarWidths; - // hack to give the view some height prior to dayGrid's columns being rendered - // TODO: separate setting height from scroller VS dayGrid. - if (!dayGrid.rowEls) { - if (!isAuto) { - scrollerHeight = this.computeScrollerHeight(viewHeight); - this.scroller.setHeight(scrollerHeight); - } - return; - } - if (this.colWeekNumbersVisible) { - // Make sure all week number cells running down the side have the same width. - this.weekNumberWidth = matchCellWidths(findElements(this.el, '.fc-week-number')); - } - // reset all heights to be natural - this.scroller.clear(); - if (headRowEl) { - uncompensateScroll(headRowEl); - } - dayGrid.removeSegPopover(); // kill the "more" popover if displayed - // is the event limit a constant level number? - if (eventLimit && typeof eventLimit === 'number') { - dayGrid.limitRows(eventLimit); // limit the levels first so the height can redistribute after - } - // distribute the height to the rows - // (viewHeight is a "recommended" value if isAuto) - scrollerHeight = this.computeScrollerHeight(viewHeight); - this.setGridHeight(scrollerHeight, isAuto); - // is the event limit dynamically calculated? - if (eventLimit && typeof eventLimit !== 'number') { - dayGrid.limitRows(eventLimit); // limit the levels after the grid's row heights have been set - } - if (!isAuto) { // should we force dimensions of the scroll container? - this.scroller.setHeight(scrollerHeight); - scrollbarWidths = this.scroller.getScrollbarWidths(); - if (scrollbarWidths.left || scrollbarWidths.right) { // using scrollbars? - if (headRowEl) { - compensateScroll(headRowEl, scrollbarWidths); - } - // doing the scrollbar compensation might have created text overflow which created more height. redo - scrollerHeight = this.computeScrollerHeight(viewHeight); - this.scroller.setHeight(scrollerHeight); - } - // guarantees the same scrollbar widths - this.scroller.lockOverflow(scrollbarWidths); - } - }; - // given a desired total height of the view, returns what the height of the scroller should be - DayGridView.prototype.computeScrollerHeight = function (viewHeight) { - return viewHeight - - subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller - }; - // Sets the height of just the DayGrid component in this view - DayGridView.prototype.setGridHeight = function (height, isAuto) { - if (this.opt('monthMode')) { - // if auto, make the height of each row the height that it would be if there were 6 weeks - if (isAuto) { - height *= this.dayGrid.rowCnt / 6; - } - distributeHeight(this.dayGrid.rowEls, height, !isAuto); // if auto, don't compensate for height-hogging rows - } - else { - if (isAuto) { - undistributeHeight(this.dayGrid.rowEls); // let the rows be their natural height with no expanding - } - else { - distributeHeight(this.dayGrid.rowEls, height, true); // true = compensate for height-hogging rows - } - } - }; - /* Scroll - ------------------------------------------------------------------------------------------------------------------*/ - DayGridView.prototype.computeDateScroll = function (duration) { - return { top: 0 }; - }; - DayGridView.prototype.queryDateScroll = function () { - return { top: this.scroller.getScrollTop() }; - }; - DayGridView.prototype.applyDateScroll = function (scroll) { - if (scroll.top !== undefined) { - this.scroller.setScrollTop(scroll.top); - } - }; - return DayGridView; -}(View)); -DayGridView.prototype.dateProfileGeneratorClass = DayGridDateProfileGenerator; - -var SimpleDayGrid = /** @class */ (function (_super) { - __extends(SimpleDayGrid, _super); - function SimpleDayGrid(context, dayGrid) { - var _this = _super.call(this, context, dayGrid.el) || this; - _this.slicer = new DayGridSlicer(); - _this.dayGrid = dayGrid; - context.calendar.registerInteractiveComponent(_this, { el: _this.dayGrid.el }); - return _this; - } - SimpleDayGrid.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.calendar.unregisterInteractiveComponent(this); - }; - SimpleDayGrid.prototype.render = function (props) { - var dayGrid = this.dayGrid; - var dateProfile = props.dateProfile, dayTable = props.dayTable; - dayGrid.receiveProps(__assign({}, this.slicer.sliceProps(props, dateProfile, props.nextDayThreshold, dayGrid, dayTable), { dateProfile: dateProfile, cells: dayTable.cells, isRigid: props.isRigid })); - }; - SimpleDayGrid.prototype.buildPositionCaches = function () { - this.dayGrid.buildPositionCaches(); - }; - SimpleDayGrid.prototype.queryHit = function (positionLeft, positionTop) { - var rawHit = this.dayGrid.positionToHit(positionLeft, positionTop); - if (rawHit) { - return { - component: this.dayGrid, - dateSpan: rawHit.dateSpan, - dayEl: rawHit.dayEl, - rect: { - left: rawHit.relativeRect.left, - right: rawHit.relativeRect.right, - top: rawHit.relativeRect.top, - bottom: rawHit.relativeRect.bottom - }, - layer: 0 - }; - } - }; - return SimpleDayGrid; -}(DateComponent)); -var DayGridSlicer = /** @class */ (function (_super) { - __extends(DayGridSlicer, _super); - function DayGridSlicer() { - return _super !== null && _super.apply(this, arguments) || this; - } - DayGridSlicer.prototype.sliceRange = function (dateRange, dayTable) { - return dayTable.sliceRange(dateRange); - }; - return DayGridSlicer; -}(Slicer)); - -var DayGridView$1 = /** @class */ (function (_super) { - __extends(DayGridView, _super); - function DayGridView(_context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, _context, viewSpec, dateProfileGenerator, parentEl) || this; - _this.buildDayTable = memoize(buildDayTable); - if (_this.opt('columnHeader')) { - _this.header = new DayHeader(_this.context, _this.el.querySelector('.fc-head-container')); - } - _this.simpleDayGrid = new SimpleDayGrid(_this.context, _this.dayGrid); - return _this; - } - DayGridView.prototype.destroy = function () { - _super.prototype.destroy.call(this); - if (this.header) { - this.header.destroy(); - } - this.simpleDayGrid.destroy(); - }; - DayGridView.prototype.render = function (props) { - _super.prototype.render.call(this, props); - var dateProfile = this.props.dateProfile; - var dayTable = this.dayTable = - this.buildDayTable(dateProfile, this.dateProfileGenerator); - if (this.header) { - this.header.receiveProps({ - dateProfile: dateProfile, - dates: dayTable.headerDates, - datesRepDistinctDays: dayTable.rowCnt === 1, - renderIntroHtml: this.renderHeadIntroHtml - }); - } - this.simpleDayGrid.receiveProps({ - dateProfile: dateProfile, - dayTable: dayTable, - businessHours: props.businessHours, - dateSelection: props.dateSelection, - eventStore: props.eventStore, - eventUiBases: props.eventUiBases, - eventSelection: props.eventSelection, - eventDrag: props.eventDrag, - eventResize: props.eventResize, - isRigid: this.hasRigidRows(), - nextDayThreshold: this.nextDayThreshold - }); - }; - return DayGridView; -}(DayGridView)); -function buildDayTable(dateProfile, dateProfileGenerator) { - var daySeries = new DaySeries(dateProfile.renderRange, dateProfileGenerator); - return new DayTable(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit)); -} - -var main = createPlugin({ - defaultView: 'dayGridMonth', - views: { - dayGrid: DayGridView$1, - dayGridDay: { - type: 'dayGrid', - duration: { days: 1 } - }, - dayGridWeek: { - type: 'dayGrid', - duration: { weeks: 1 } - }, - dayGridMonth: { - type: 'dayGrid', - duration: { months: 1 }, - monthMode: true, - fixedWeekCount: true - } - } -}); - -export default main; -export { DayGridView as AbstractDayGridView, DayBgRow, DayGrid, DayGridSlicer, DayGridView$1 as DayGridView, SimpleDayGrid, buildDayTable as buildBasicDayTable }; diff --git a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.js b/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.js deleted file mode 100644 index d1cc407f..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.js +++ /dev/null @@ -1,1641 +0,0 @@ -/*! -FullCalendar Day Grid Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@fullcalendar/core')) : - typeof define === 'function' && define.amd ? define(['exports', '@fullcalendar/core'], factory) : - (global = global || self, factory(global.FullCalendarDayGrid = {}, global.FullCalendar)); -}(this, function (exports, core) { 'use strict'; - - /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */ - /* global Reflect, Promise */ - - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - - function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - } - - var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); - }; - - var DayGridDateProfileGenerator = /** @class */ (function (_super) { - __extends(DayGridDateProfileGenerator, _super); - function DayGridDateProfileGenerator() { - return _super !== null && _super.apply(this, arguments) || this; - } - // Computes the date range that will be rendered. - DayGridDateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) { - var dateEnv = this.dateEnv; - var renderRange = _super.prototype.buildRenderRange.call(this, currentRange, currentRangeUnit, isRangeAllDay); - var start = renderRange.start; - var end = renderRange.end; - var endOfWeek; - // year and month views should be aligned with weeks. this is already done for week - if (/^(year|month)$/.test(currentRangeUnit)) { - start = dateEnv.startOfWeek(start); - // make end-of-week if not already - endOfWeek = dateEnv.startOfWeek(end); - if (endOfWeek.valueOf() !== end.valueOf()) { - end = core.addWeeks(endOfWeek, 1); - } - } - // ensure 6 weeks - if (this.options.monthMode && - this.options.fixedWeekCount) { - var rowCnt = Math.ceil(// could be partial weeks due to hiddenDays - core.diffWeeks(start, end)); - end = core.addWeeks(end, 6 - rowCnt); - } - return { start: start, end: end }; - }; - return DayGridDateProfileGenerator; - }(core.DateProfileGenerator)); - - /* A rectangular panel that is absolutely positioned over other content - ------------------------------------------------------------------------------------------------------------------------ - Options: - - className (string) - - content (HTML string, element, or element array) - - parentEl - - top - - left - - right (the x coord of where the right edge should be. not a "CSS" right) - - autoHide (boolean) - - show (callback) - - hide (callback) - */ - var Popover = /** @class */ (function () { - function Popover(options) { - var _this = this; - this.isHidden = true; - this.margin = 10; // the space required between the popover and the edges of the scroll container - // Triggered when the user clicks *anywhere* in the document, for the autoHide feature - this.documentMousedown = function (ev) { - // only hide the popover if the click happened outside the popover - if (_this.el && !_this.el.contains(ev.target)) { - _this.hide(); - } - }; - this.options = options; - } - // Shows the popover on the specified position. Renders it if not already - Popover.prototype.show = function () { - if (this.isHidden) { - if (!this.el) { - this.render(); - } - this.el.style.display = ''; - this.position(); - this.isHidden = false; - this.trigger('show'); - } - }; - // Hides the popover, through CSS, but does not remove it from the DOM - Popover.prototype.hide = function () { - if (!this.isHidden) { - this.el.style.display = 'none'; - this.isHidden = true; - this.trigger('hide'); - } - }; - // Creates `this.el` and renders content inside of it - Popover.prototype.render = function () { - var _this = this; - var options = this.options; - var el = this.el = core.createElement('div', { - className: 'fc-popover ' + (options.className || ''), - style: { - top: '0', - left: '0' - } - }); - if (typeof options.content === 'function') { - options.content(el); - } - options.parentEl.appendChild(el); - // when a click happens on anything inside with a 'fc-close' className, hide the popover - core.listenBySelector(el, 'click', '.fc-close', function (ev) { - _this.hide(); - }); - if (options.autoHide) { - document.addEventListener('mousedown', this.documentMousedown); - } - }; - // Hides and unregisters any handlers - Popover.prototype.destroy = function () { - this.hide(); - if (this.el) { - core.removeElement(this.el); - this.el = null; - } - document.removeEventListener('mousedown', this.documentMousedown); - }; - // Positions the popover optimally, using the top/left/right options - Popover.prototype.position = function () { - var options = this.options; - var el = this.el; - var elDims = el.getBoundingClientRect(); // only used for width,height - var origin = core.computeRect(el.offsetParent); - var clippingRect = core.computeClippingRect(options.parentEl); - var top; // the "position" (not "offset") values for the popover - var left; // - // compute top and left - top = options.top || 0; - if (options.left !== undefined) { - left = options.left; - } - else if (options.right !== undefined) { - left = options.right - elDims.width; // derive the left value from the right value - } - else { - left = 0; - } - // constrain to the view port. if constrained by two edges, give precedence to top/left - top = Math.min(top, clippingRect.bottom - elDims.height - this.margin); - top = Math.max(top, clippingRect.top + this.margin); - left = Math.min(left, clippingRect.right - elDims.width - this.margin); - left = Math.max(left, clippingRect.left + this.margin); - core.applyStyle(el, { - top: top - origin.top, - left: left - origin.left - }); - }; - // Triggers a callback. Calls a function in the option hash of the same name. - // Arguments beyond the first `name` are forwarded on. - // TODO: better code reuse for this. Repeat code - // can kill this??? - Popover.prototype.trigger = function (name) { - if (this.options[name]) { - this.options[name].apply(this, Array.prototype.slice.call(arguments, 1)); - } - }; - return Popover; - }()); - - /* Event-rendering methods for the DayGrid class - ----------------------------------------------------------------------------------------------------------------------*/ - // "Simple" is bad a name. has nothing to do with SimpleDayGrid - var SimpleDayGridEventRenderer = /** @class */ (function (_super) { - __extends(SimpleDayGridEventRenderer, _super); - function SimpleDayGridEventRenderer() { - return _super !== null && _super.apply(this, arguments) || this; - } - // Builds the HTML to be used for the default element for an individual segment - SimpleDayGridEventRenderer.prototype.renderSegHtml = function (seg, mirrorInfo) { - var _a = this.context, view = _a.view, options = _a.options; - var eventRange = seg.eventRange; - var eventDef = eventRange.def; - var eventUi = eventRange.ui; - var allDay = eventDef.allDay; - var isDraggable = view.computeEventDraggable(eventDef, eventUi); - var isResizableFromStart = allDay && seg.isStart && view.computeEventStartResizable(eventDef, eventUi); - var isResizableFromEnd = allDay && seg.isEnd && view.computeEventEndResizable(eventDef, eventUi); - var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd, mirrorInfo); - var skinCss = core.cssToStr(this.getSkinCss(eventUi)); - var timeHtml = ''; - var timeText; - var titleHtml; - classes.unshift('fc-day-grid-event', 'fc-h-event'); - // Only display a timed events time if it is the starting segment - if (seg.isStart) { - timeText = this.getTimeText(eventRange); - if (timeText) { - timeHtml = '' + core.htmlEscape(timeText) + ''; - } - } - titleHtml = - '' + - (core.htmlEscape(eventDef.title || '') || ' ') + // we always want one line of height - ''; - return '
' + - '
' + - (options.dir === 'rtl' ? - titleHtml + ' ' + timeHtml : // put a natural space in between - timeHtml + ' ' + titleHtml // - ) + - '
' + - (isResizableFromStart ? - '
' : - '') + - (isResizableFromEnd ? - '
' : - '') + - '
'; - }; - // Computes a default event time formatting string if `eventTimeFormat` is not explicitly defined - SimpleDayGridEventRenderer.prototype.computeEventTimeFormat = function () { - return { - hour: 'numeric', - minute: '2-digit', - omitZeroMinute: true, - meridiem: 'narrow' - }; - }; - SimpleDayGridEventRenderer.prototype.computeDisplayEventEnd = function () { - return false; // TODO: somehow consider the originating DayGrid's column count - }; - return SimpleDayGridEventRenderer; - }(core.FgEventRenderer)); - - /* Event-rendering methods for the DayGrid class - ----------------------------------------------------------------------------------------------------------------------*/ - var DayGridEventRenderer = /** @class */ (function (_super) { - __extends(DayGridEventRenderer, _super); - function DayGridEventRenderer(dayGrid) { - var _this = _super.call(this, dayGrid.context) || this; - _this.dayGrid = dayGrid; - return _this; - } - // Renders the given foreground event segments onto the grid - DayGridEventRenderer.prototype.attachSegs = function (segs, mirrorInfo) { - var rowStructs = this.rowStructs = this.renderSegRows(segs); - // append to each row's content skeleton - this.dayGrid.rowEls.forEach(function (rowNode, i) { - rowNode.querySelector('.fc-content-skeleton > table').appendChild(rowStructs[i].tbodyEl); - }); - // removes the "more.." events popover - if (!mirrorInfo) { - this.dayGrid.removeSegPopover(); - } - }; - // Unrenders all currently rendered foreground event segments - DayGridEventRenderer.prototype.detachSegs = function () { - var rowStructs = this.rowStructs || []; - var rowStruct; - while ((rowStruct = rowStructs.pop())) { - core.removeElement(rowStruct.tbodyEl); - } - this.rowStructs = null; - }; - // Uses the given events array to generate elements that should be appended to each row's content skeleton. - // Returns an array of rowStruct objects (see the bottom of `renderSegRow`). - // PRECONDITION: each segment shoud already have a rendered and assigned `.el` - DayGridEventRenderer.prototype.renderSegRows = function (segs) { - var rowStructs = []; - var segRows; - var row; - segRows = this.groupSegRows(segs); // group into nested arrays - // iterate each row of segment groupings - for (row = 0; row < segRows.length; row++) { - rowStructs.push(this.renderSegRow(row, segRows[row])); - } - return rowStructs; - }; - // Given a row # and an array of segments all in the same row, render a element, a skeleton that contains - // the segments. Returns object with a bunch of internal data about how the render was calculated. - // NOTE: modifies rowSegs - DayGridEventRenderer.prototype.renderSegRow = function (row, rowSegs) { - var dayGrid = this.dayGrid; - var colCnt = dayGrid.colCnt, isRtl = dayGrid.isRtl; - var segLevels = this.buildSegLevels(rowSegs); // group into sub-arrays of levels - var levelCnt = Math.max(1, segLevels.length); // ensure at least one level - var tbody = document.createElement('tbody'); - var segMatrix = []; // lookup for which segments are rendered into which level+col cells - var cellMatrix = []; // lookup for all elements of the level+col matrix - var loneCellMatrix = []; // lookup for elements that only take up a single column - var i; - var levelSegs; - var col; - var tr; - var j; - var seg; - var td; - // populates empty cells from the current column (`col`) to `endCol` - function emptyCellsUntil(endCol) { - while (col < endCol) { - // try to grab a cell from the level above and extend its rowspan. otherwise, create a fresh cell - td = (loneCellMatrix[i - 1] || [])[col]; - if (td) { - td.rowSpan = (td.rowSpan || 1) + 1; - } - else { - td = document.createElement('td'); - tr.appendChild(td); - } - cellMatrix[i][col] = td; - loneCellMatrix[i][col] = td; - col++; - } - } - for (i = 0; i < levelCnt; i++) { // iterate through all levels - levelSegs = segLevels[i]; - col = 0; - tr = document.createElement('tr'); - segMatrix.push([]); - cellMatrix.push([]); - loneCellMatrix.push([]); - // levelCnt might be 1 even though there are no actual levels. protect against this. - // this single empty row is useful for styling. - if (levelSegs) { - for (j = 0; j < levelSegs.length; j++) { // iterate through segments in level - seg = levelSegs[j]; - var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; - var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol; - emptyCellsUntil(leftCol); - // create a container that occupies or more columns. append the event element. - td = core.createElement('td', { className: 'fc-event-container' }, seg.el); - if (leftCol !== rightCol) { - td.colSpan = rightCol - leftCol + 1; - } - else { // a single-column segment - loneCellMatrix[i][col] = td; - } - while (col <= rightCol) { - cellMatrix[i][col] = td; - segMatrix[i][col] = seg; - col++; - } - tr.appendChild(td); - } - } - emptyCellsUntil(colCnt); // finish off the row - var introHtml = dayGrid.renderProps.renderIntroHtml(); - if (introHtml) { - if (dayGrid.isRtl) { - core.appendToElement(tr, introHtml); - } - else { - core.prependToElement(tr, introHtml); - } - } - tbody.appendChild(tr); - } - return { - row: row, - tbodyEl: tbody, - cellMatrix: cellMatrix, - segMatrix: segMatrix, - segLevels: segLevels, - segs: rowSegs - }; - }; - // Stacks a flat array of segments, which are all assumed to be in the same row, into subarrays of vertical levels. - // NOTE: modifies segs - DayGridEventRenderer.prototype.buildSegLevels = function (segs) { - var _a = this.dayGrid, isRtl = _a.isRtl, colCnt = _a.colCnt; - var levels = []; - var i; - var seg; - var j; - // Give preference to elements with certain criteria, so they have - // a chance to be closer to the top. - segs = this.sortEventSegs(segs); - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - // loop through levels, starting with the topmost, until the segment doesn't collide with other segments - for (j = 0; j < levels.length; j++) { - if (!isDaySegCollision(seg, levels[j])) { - break; - } - } - // `j` now holds the desired subrow index - seg.level = j; - seg.leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; // for sorting only - seg.rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol // for sorting only - ; - (levels[j] || (levels[j] = [])).push(seg); - } - // order segments left-to-right. very important if calendar is RTL - for (j = 0; j < levels.length; j++) { - levels[j].sort(compareDaySegCols); - } - return levels; - }; - // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's row - DayGridEventRenderer.prototype.groupSegRows = function (segs) { - var segRows = []; - var i; - for (i = 0; i < this.dayGrid.rowCnt; i++) { - segRows.push([]); - } - for (i = 0; i < segs.length; i++) { - segRows[segs[i].row].push(segs[i]); - } - return segRows; - }; - // Computes a default `displayEventEnd` value if one is not expliclty defined - DayGridEventRenderer.prototype.computeDisplayEventEnd = function () { - return this.dayGrid.colCnt === 1; // we'll likely have space if there's only one day - }; - return DayGridEventRenderer; - }(SimpleDayGridEventRenderer)); - // Computes whether two segments' columns collide. They are assumed to be in the same row. - function isDaySegCollision(seg, otherSegs) { - var i; - var otherSeg; - for (i = 0; i < otherSegs.length; i++) { - otherSeg = otherSegs[i]; - if (otherSeg.firstCol <= seg.lastCol && - otherSeg.lastCol >= seg.firstCol) { - return true; - } - } - return false; - } - // A cmp function for determining the leftmost event - function compareDaySegCols(a, b) { - return a.leftCol - b.leftCol; - } - - var DayGridMirrorRenderer = /** @class */ (function (_super) { - __extends(DayGridMirrorRenderer, _super); - function DayGridMirrorRenderer() { - return _super !== null && _super.apply(this, arguments) || this; - } - DayGridMirrorRenderer.prototype.attachSegs = function (segs, mirrorInfo) { - var sourceSeg = mirrorInfo.sourceSeg; - var rowStructs = this.rowStructs = this.renderSegRows(segs); - // inject each new event skeleton into each associated row - this.dayGrid.rowEls.forEach(function (rowNode, row) { - var skeletonEl = core.htmlToElement('
'); // will be absolutely positioned - var skeletonTopEl; - var skeletonTop; - // If there is an original segment, match the top position. Otherwise, put it at the row's top level - if (sourceSeg && sourceSeg.row === row) { - skeletonTopEl = sourceSeg.el; - } - else { - skeletonTopEl = rowNode.querySelector('.fc-content-skeleton tbody'); - if (!skeletonTopEl) { // when no events - skeletonTopEl = rowNode.querySelector('.fc-content-skeleton table'); - } - } - skeletonTop = skeletonTopEl.getBoundingClientRect().top - - rowNode.getBoundingClientRect().top; // the offsetParent origin - skeletonEl.style.top = skeletonTop + 'px'; - skeletonEl.querySelector('table').appendChild(rowStructs[row].tbodyEl); - rowNode.appendChild(skeletonEl); - }); - }; - return DayGridMirrorRenderer; - }(DayGridEventRenderer)); - - var EMPTY_CELL_HTML = ''; - var DayGridFillRenderer = /** @class */ (function (_super) { - __extends(DayGridFillRenderer, _super); - function DayGridFillRenderer(dayGrid) { - var _this = _super.call(this, dayGrid.context) || this; - _this.fillSegTag = 'td'; // override the default tag name - _this.dayGrid = dayGrid; - return _this; - } - DayGridFillRenderer.prototype.renderSegs = function (type, segs) { - // don't render timed background events - if (type === 'bgEvent') { - segs = segs.filter(function (seg) { - return seg.eventRange.def.allDay; - }); - } - _super.prototype.renderSegs.call(this, type, segs); - }; - DayGridFillRenderer.prototype.attachSegs = function (type, segs) { - var els = []; - var i; - var seg; - var skeletonEl; - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - skeletonEl = this.renderFillRow(type, seg); - this.dayGrid.rowEls[seg.row].appendChild(skeletonEl); - els.push(skeletonEl); - } - return els; - }; - // Generates the HTML needed for one row of a fill. Requires the seg's el to be rendered. - DayGridFillRenderer.prototype.renderFillRow = function (type, seg) { - var dayGrid = this.dayGrid; - var colCnt = dayGrid.colCnt, isRtl = dayGrid.isRtl; - var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; - var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol; - var startCol = leftCol; - var endCol = rightCol + 1; - var className; - var skeletonEl; - var trEl; - if (type === 'businessHours') { - className = 'bgevent'; - } - else { - className = type.toLowerCase(); - } - skeletonEl = core.htmlToElement('
' + - '
' + - '
'); - trEl = skeletonEl.getElementsByTagName('tr')[0]; - if (startCol > 0) { - core.appendToElement(trEl, - // will create (startCol + 1) td's - new Array(startCol + 1).join(EMPTY_CELL_HTML)); - } - seg.el.colSpan = endCol - startCol; - trEl.appendChild(seg.el); - if (endCol < colCnt) { - core.appendToElement(trEl, - // will create (colCnt - endCol) td's - new Array(colCnt - endCol + 1).join(EMPTY_CELL_HTML)); - } - var introHtml = dayGrid.renderProps.renderIntroHtml(); - if (introHtml) { - if (dayGrid.isRtl) { - core.appendToElement(trEl, introHtml); - } - else { - core.prependToElement(trEl, introHtml); - } - } - return skeletonEl; - }; - return DayGridFillRenderer; - }(core.FillRenderer)); - - var DayTile = /** @class */ (function (_super) { - __extends(DayTile, _super); - function DayTile(context, el) { - var _this = _super.call(this, context, el) || this; - var eventRenderer = _this.eventRenderer = new DayTileEventRenderer(_this); - var renderFrame = _this.renderFrame = core.memoizeRendering(_this._renderFrame); - _this.renderFgEvents = core.memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderFrame]); - _this.renderEventSelection = core.memoizeRendering(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]); - _this.renderEventDrag = core.memoizeRendering(eventRenderer.hideByHash.bind(eventRenderer), eventRenderer.showByHash.bind(eventRenderer), [renderFrame]); - _this.renderEventResize = core.memoizeRendering(eventRenderer.hideByHash.bind(eventRenderer), eventRenderer.showByHash.bind(eventRenderer), [renderFrame]); - context.calendar.registerInteractiveComponent(_this, { - el: _this.el, - useEventCenter: false - }); - return _this; - } - DayTile.prototype.render = function (props) { - this.renderFrame(props.date); - this.renderFgEvents(props.fgSegs); - this.renderEventSelection(props.eventSelection); - this.renderEventDrag(props.eventDragInstances); - this.renderEventResize(props.eventResizeInstances); - }; - DayTile.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderFrame.unrender(); // should unrender everything else - this.calendar.unregisterInteractiveComponent(this); - }; - DayTile.prototype._renderFrame = function (date) { - var _a = this, theme = _a.theme, dateEnv = _a.dateEnv; - var title = dateEnv.format(date, core.createFormatter(this.opt('dayPopoverFormat')) // TODO: cache - ); - this.el.innerHTML = - '
' + - '' + - core.htmlEscape(title) + - '' + - '' + - '
' + - '
' + - '
' + - '
'; - this.segContainerEl = this.el.querySelector('.fc-event-container'); - }; - DayTile.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) { - var date = this.props.date; // HACK - if (positionLeft < elWidth && positionTop < elHeight) { - return { - component: this, - dateSpan: { - allDay: true, - range: { start: date, end: core.addDays(date, 1) } - }, - dayEl: this.el, - rect: { - left: 0, - top: 0, - right: elWidth, - bottom: elHeight - }, - layer: 1 - }; - } - }; - return DayTile; - }(core.DateComponent)); - var DayTileEventRenderer = /** @class */ (function (_super) { - __extends(DayTileEventRenderer, _super); - function DayTileEventRenderer(dayTile) { - var _this = _super.call(this, dayTile.context) || this; - _this.dayTile = dayTile; - return _this; - } - DayTileEventRenderer.prototype.attachSegs = function (segs) { - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - this.dayTile.segContainerEl.appendChild(seg.el); - } - }; - DayTileEventRenderer.prototype.detachSegs = function (segs) { - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - core.removeElement(seg.el); - } - }; - return DayTileEventRenderer; - }(SimpleDayGridEventRenderer)); - - var DayBgRow = /** @class */ (function () { - function DayBgRow(context) { - this.context = context; - } - DayBgRow.prototype.renderHtml = function (props) { - var parts = []; - if (props.renderIntroHtml) { - parts.push(props.renderIntroHtml()); - } - for (var _i = 0, _a = props.cells; _i < _a.length; _i++) { - var cell = _a[_i]; - parts.push(renderCellHtml(cell.date, props.dateProfile, this.context, cell.htmlAttrs)); - } - if (!props.cells.length) { - parts.push(''); - } - if (this.context.options.dir === 'rtl') { - parts.reverse(); - } - return '' + parts.join('') + ''; - }; - return DayBgRow; - }()); - function renderCellHtml(date, dateProfile, context, otherAttrs) { - var dateEnv = context.dateEnv, theme = context.theme; - var isDateValid = core.rangeContainsMarker(dateProfile.activeRange, date); // TODO: called too frequently. cache somehow. - var classes = core.getDayClasses(date, dateProfile, context); - classes.unshift('fc-day', theme.getClass('widgetContent')); - return ''; - } - - var DAY_NUM_FORMAT = core.createFormatter({ day: 'numeric' }); - var WEEK_NUM_FORMAT = core.createFormatter({ week: 'numeric' }); - var DayGrid = /** @class */ (function (_super) { - __extends(DayGrid, _super); - function DayGrid(context, el, renderProps) { - var _this = _super.call(this, context, el) || this; - _this.bottomCoordPadding = 0; // hack for extending the hit area for the last row of the coordinate grid - _this.isCellSizesDirty = false; - var eventRenderer = _this.eventRenderer = new DayGridEventRenderer(_this); - var fillRenderer = _this.fillRenderer = new DayGridFillRenderer(_this); - _this.mirrorRenderer = new DayGridMirrorRenderer(_this); - var renderCells = _this.renderCells = core.memoizeRendering(_this._renderCells, _this._unrenderCells); - _this.renderBusinessHours = core.memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'businessHours'), fillRenderer.unrender.bind(fillRenderer, 'businessHours'), [renderCells]); - _this.renderDateSelection = core.memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'highlight'), fillRenderer.unrender.bind(fillRenderer, 'highlight'), [renderCells]); - _this.renderBgEvents = core.memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'bgEvent'), fillRenderer.unrender.bind(fillRenderer, 'bgEvent'), [renderCells]); - _this.renderFgEvents = core.memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderCells]); - _this.renderEventSelection = core.memoizeRendering(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]); - _this.renderEventDrag = core.memoizeRendering(_this._renderEventDrag, _this._unrenderEventDrag, [renderCells]); - _this.renderEventResize = core.memoizeRendering(_this._renderEventResize, _this._unrenderEventResize, [renderCells]); - _this.renderProps = renderProps; - return _this; - } - DayGrid.prototype.render = function (props) { - var cells = props.cells; - this.rowCnt = cells.length; - this.colCnt = cells[0].length; - this.renderCells(cells, props.isRigid); - this.renderBusinessHours(props.businessHourSegs); - this.renderDateSelection(props.dateSelectionSegs); - this.renderBgEvents(props.bgEventSegs); - this.renderFgEvents(props.fgEventSegs); - this.renderEventSelection(props.eventSelection); - this.renderEventDrag(props.eventDrag); - this.renderEventResize(props.eventResize); - if (this.segPopoverTile) { - this.updateSegPopoverTile(); - } - }; - DayGrid.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderCells.unrender(); // will unrender everything else - }; - DayGrid.prototype.getCellRange = function (row, col) { - var start = this.props.cells[row][col].date; - var end = core.addDays(start, 1); - return { start: start, end: end }; - }; - DayGrid.prototype.updateSegPopoverTile = function (date, segs) { - var ownProps = this.props; - this.segPopoverTile.receiveProps({ - date: date || this.segPopoverTile.props.date, - fgSegs: segs || this.segPopoverTile.props.fgSegs, - eventSelection: ownProps.eventSelection, - eventDragInstances: ownProps.eventDrag ? ownProps.eventDrag.affectedInstances : null, - eventResizeInstances: ownProps.eventResize ? ownProps.eventResize.affectedInstances : null - }); - }; - /* Date Rendering - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype._renderCells = function (cells, isRigid) { - var _a = this, view = _a.view, dateEnv = _a.dateEnv; - var _b = this, rowCnt = _b.rowCnt, colCnt = _b.colCnt; - var html = ''; - var row; - var col; - for (row = 0; row < rowCnt; row++) { - html += this.renderDayRowHtml(row, isRigid); - } - this.el.innerHTML = html; - this.rowEls = core.findElements(this.el, '.fc-row'); - this.cellEls = core.findElements(this.el, '.fc-day, .fc-disabled-day'); - if (this.isRtl) { - this.cellEls.reverse(); - } - this.rowPositions = new core.PositionCache(this.el, this.rowEls, false, true // vertical - ); - this.colPositions = new core.PositionCache(this.el, this.cellEls.slice(0, colCnt), // only the first row - true, false // horizontal - ); - // trigger dayRender with each cell's element - for (row = 0; row < rowCnt; row++) { - for (col = 0; col < colCnt; col++) { - this.publiclyTrigger('dayRender', [ - { - date: dateEnv.toDate(cells[row][col].date), - el: this.getCellEl(row, col), - view: view - } - ]); - } - } - this.isCellSizesDirty = true; - }; - DayGrid.prototype._unrenderCells = function () { - this.removeSegPopover(); - }; - // Generates the HTML for a single row, which is a div that wraps a table. - // `row` is the row number. - DayGrid.prototype.renderDayRowHtml = function (row, isRigid) { - var theme = this.theme; - var classes = ['fc-row', 'fc-week', theme.getClass('dayRow')]; - if (isRigid) { - classes.push('fc-rigid'); - } - var bgRow = new DayBgRow(this.context); - return '' + - '
' + - '
' + - '' + - bgRow.renderHtml({ - cells: this.props.cells[row], - dateProfile: this.props.dateProfile, - renderIntroHtml: this.renderProps.renderBgIntroHtml - }) + - '
' + - '
' + - '
' + - '' + - (this.getIsNumbersVisible() ? - '' + - this.renderNumberTrHtml(row) + - '' : - '') + - '
' + - '
' + - '
'; - }; - DayGrid.prototype.getIsNumbersVisible = function () { - return this.getIsDayNumbersVisible() || - this.renderProps.cellWeekNumbersVisible || - this.renderProps.colWeekNumbersVisible; - }; - DayGrid.prototype.getIsDayNumbersVisible = function () { - return this.rowCnt > 1; - }; - /* Grid Number Rendering - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.renderNumberTrHtml = function (row) { - var intro = this.renderProps.renderNumberIntroHtml(row, this); - return '' + - '' + - (this.isRtl ? '' : intro) + - this.renderNumberCellsHtml(row) + - (this.isRtl ? intro : '') + - ''; - }; - DayGrid.prototype.renderNumberCellsHtml = function (row) { - var htmls = []; - var col; - var date; - for (col = 0; col < this.colCnt; col++) { - date = this.props.cells[row][col].date; - htmls.push(this.renderNumberCellHtml(date)); - } - if (this.isRtl) { - htmls.reverse(); - } - return htmls.join(''); - }; - // Generates the HTML for the s of the "number" row in the DayGrid's content skeleton. - // The number row will only exist if either day numbers or week numbers are turned on. - DayGrid.prototype.renderNumberCellHtml = function (date) { - var _a = this, view = _a.view, dateEnv = _a.dateEnv; - var html = ''; - var isDateValid = core.rangeContainsMarker(this.props.dateProfile.activeRange, date); // TODO: called too frequently. cache somehow. - var isDayNumberVisible = this.getIsDayNumbersVisible() && isDateValid; - var classes; - var weekCalcFirstDow; - if (!isDayNumberVisible && !this.renderProps.cellWeekNumbersVisible) { - // no numbers in day cell (week number must be along the side) - return ''; // will create an empty space above events :( - } - classes = core.getDayClasses(date, this.props.dateProfile, this.context); - classes.unshift('fc-day-top'); - if (this.renderProps.cellWeekNumbersVisible) { - weekCalcFirstDow = dateEnv.weekDow; - } - html += ''; - if (this.renderProps.cellWeekNumbersVisible && (date.getUTCDay() === weekCalcFirstDow)) { - html += core.buildGotoAnchorHtml(view, { date: date, type: 'week' }, { 'class': 'fc-week-number' }, dateEnv.format(date, WEEK_NUM_FORMAT) // inner HTML - ); - } - if (isDayNumberVisible) { - html += core.buildGotoAnchorHtml(view, date, { 'class': 'fc-day-number' }, dateEnv.format(date, DAY_NUM_FORMAT) // inner HTML - ); - } - html += ''; - return html; - }; - /* Sizing - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.updateSize = function (isResize) { - var _a = this, fillRenderer = _a.fillRenderer, eventRenderer = _a.eventRenderer, mirrorRenderer = _a.mirrorRenderer; - if (isResize || - this.isCellSizesDirty || - this.view.calendar.isEventsUpdated // hack - ) { - this.buildPositionCaches(); - this.isCellSizesDirty = false; - } - fillRenderer.computeSizes(isResize); - eventRenderer.computeSizes(isResize); - mirrorRenderer.computeSizes(isResize); - fillRenderer.assignSizes(isResize); - eventRenderer.assignSizes(isResize); - mirrorRenderer.assignSizes(isResize); - }; - DayGrid.prototype.buildPositionCaches = function () { - this.buildColPositions(); - this.buildRowPositions(); - }; - DayGrid.prototype.buildColPositions = function () { - this.colPositions.build(); - }; - DayGrid.prototype.buildRowPositions = function () { - this.rowPositions.build(); - this.rowPositions.bottoms[this.rowCnt - 1] += this.bottomCoordPadding; // hack - }; - /* Hit System - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.positionToHit = function (leftPosition, topPosition) { - var _a = this, colPositions = _a.colPositions, rowPositions = _a.rowPositions; - var col = colPositions.leftToIndex(leftPosition); - var row = rowPositions.topToIndex(topPosition); - if (row != null && col != null) { - return { - row: row, - col: col, - dateSpan: { - range: this.getCellRange(row, col), - allDay: true - }, - dayEl: this.getCellEl(row, col), - relativeRect: { - left: colPositions.lefts[col], - right: colPositions.rights[col], - top: rowPositions.tops[row], - bottom: rowPositions.bottoms[row] - } - }; - } - }; - /* Cell System - ------------------------------------------------------------------------------------------------------------------*/ - // FYI: the first column is the leftmost column, regardless of date - DayGrid.prototype.getCellEl = function (row, col) { - return this.cellEls[row * this.colCnt + col]; - }; - /* Event Drag Visualization - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype._renderEventDrag = function (state) { - if (state) { - this.eventRenderer.hideByHash(state.affectedInstances); - this.fillRenderer.renderSegs('highlight', state.segs); - } - }; - DayGrid.prototype._unrenderEventDrag = function (state) { - if (state) { - this.eventRenderer.showByHash(state.affectedInstances); - this.fillRenderer.unrender('highlight'); - } - }; - /* Event Resize Visualization - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype._renderEventResize = function (state) { - if (state) { - this.eventRenderer.hideByHash(state.affectedInstances); - this.fillRenderer.renderSegs('highlight', state.segs); - this.mirrorRenderer.renderSegs(state.segs, { isResizing: true, sourceSeg: state.sourceSeg }); - } - }; - DayGrid.prototype._unrenderEventResize = function (state) { - if (state) { - this.eventRenderer.showByHash(state.affectedInstances); - this.fillRenderer.unrender('highlight'); - this.mirrorRenderer.unrender(state.segs, { isResizing: true, sourceSeg: state.sourceSeg }); - } - }; - /* More+ Link Popover - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.removeSegPopover = function () { - if (this.segPopover) { - this.segPopover.hide(); // in handler, will call segPopover's removeElement - } - }; - // Limits the number of "levels" (vertically stacking layers of events) for each row of the grid. - // `levelLimit` can be false (don't limit), a number, or true (should be computed). - DayGrid.prototype.limitRows = function (levelLimit) { - var rowStructs = this.eventRenderer.rowStructs || []; - var row; // row # - var rowLevelLimit; - for (row = 0; row < rowStructs.length; row++) { - this.unlimitRow(row); - if (!levelLimit) { - rowLevelLimit = false; - } - else if (typeof levelLimit === 'number') { - rowLevelLimit = levelLimit; - } - else { - rowLevelLimit = this.computeRowLevelLimit(row); - } - if (rowLevelLimit !== false) { - this.limitRow(row, rowLevelLimit); - } - } - }; - // Computes the number of levels a row will accomodate without going outside its bounds. - // Assumes the row is "rigid" (maintains a constant height regardless of what is inside). - // `row` is the row number. - DayGrid.prototype.computeRowLevelLimit = function (row) { - var rowEl = this.rowEls[row]; // the containing "fake" row div - var rowBottom = rowEl.getBoundingClientRect().bottom; // relative to viewport! - var trEls = core.findChildren(this.eventRenderer.rowStructs[row].tbodyEl); - var i; - var trEl; - // Reveal one level at a time and stop when we find one out of bounds - for (i = 0; i < trEls.length; i++) { - trEl = trEls[i]; - trEl.classList.remove('fc-limited'); // reset to original state (reveal) - if (trEl.getBoundingClientRect().bottom > rowBottom) { - return i; - } - } - return false; // should not limit at all - }; - // Limits the given grid row to the maximum number of levels and injects "more" links if necessary. - // `row` is the row number. - // `levelLimit` is a number for the maximum (inclusive) number of levels allowed. - DayGrid.prototype.limitRow = function (row, levelLimit) { - var _this = this; - var _a = this, colCnt = _a.colCnt, isRtl = _a.isRtl; - var rowStruct = this.eventRenderer.rowStructs[row]; - var moreNodes = []; // array of "more" links and DOM nodes - var col = 0; // col #, left-to-right (not chronologically) - var levelSegs; // array of segment objects in the last allowable level, ordered left-to-right - var cellMatrix; // a matrix (by level, then column) of all elements in the row - var limitedNodes; // array of temporarily hidden level and segment DOM nodes - var i; - var seg; - var segsBelow; // array of segment objects below `seg` in the current `col` - var totalSegsBelow; // total number of segments below `seg` in any of the columns `seg` occupies - var colSegsBelow; // array of segment arrays, below seg, one for each column (offset from segs's first column) - var td; - var rowSpan; - var segMoreNodes; // array of "more" cells that will stand-in for the current seg's cell - var j; - var moreTd; - var moreWrap; - var moreLink; - // Iterates through empty level cells and places "more" links inside if need be - var emptyCellsUntil = function (endCol) { - while (col < endCol) { - segsBelow = _this.getCellSegs(row, col, levelLimit); - if (segsBelow.length) { - td = cellMatrix[levelLimit - 1][col]; - moreLink = _this.renderMoreLink(row, col, segsBelow); - moreWrap = core.createElement('div', null, moreLink); - td.appendChild(moreWrap); - moreNodes.push(moreWrap); - } - col++; - } - }; - if (levelLimit && levelLimit < rowStruct.segLevels.length) { // is it actually over the limit? - levelSegs = rowStruct.segLevels[levelLimit - 1]; - cellMatrix = rowStruct.cellMatrix; - limitedNodes = core.findChildren(rowStruct.tbodyEl).slice(levelLimit); // get level elements past the limit - limitedNodes.forEach(function (node) { - node.classList.add('fc-limited'); // hide elements and get a simple DOM-nodes array - }); - // iterate though segments in the last allowable level - for (i = 0; i < levelSegs.length; i++) { - seg = levelSegs[i]; - var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; - var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol; - emptyCellsUntil(leftCol); // process empty cells before the segment - // determine *all* segments below `seg` that occupy the same columns - colSegsBelow = []; - totalSegsBelow = 0; - while (col <= rightCol) { - segsBelow = this.getCellSegs(row, col, levelLimit); - colSegsBelow.push(segsBelow); - totalSegsBelow += segsBelow.length; - col++; - } - if (totalSegsBelow) { // do we need to replace this segment with one or many "more" links? - td = cellMatrix[levelLimit - 1][leftCol]; // the segment's parent cell - rowSpan = td.rowSpan || 1; - segMoreNodes = []; - // make a replacement for each column the segment occupies. will be one for each colspan - for (j = 0; j < colSegsBelow.length; j++) { - moreTd = core.createElement('td', { className: 'fc-more-cell', rowSpan: rowSpan }); - segsBelow = colSegsBelow[j]; - moreLink = this.renderMoreLink(row, leftCol + j, [seg].concat(segsBelow) // count seg as hidden too - ); - moreWrap = core.createElement('div', null, moreLink); - moreTd.appendChild(moreWrap); - segMoreNodes.push(moreTd); - moreNodes.push(moreTd); - } - td.classList.add('fc-limited'); - core.insertAfterElement(td, segMoreNodes); - limitedNodes.push(td); - } - } - emptyCellsUntil(this.colCnt); // finish off the level - rowStruct.moreEls = moreNodes; // for easy undoing later - rowStruct.limitedEls = limitedNodes; // for easy undoing later - } - }; - // Reveals all levels and removes all "more"-related elements for a grid's row. - // `row` is a row number. - DayGrid.prototype.unlimitRow = function (row) { - var rowStruct = this.eventRenderer.rowStructs[row]; - if (rowStruct.moreEls) { - rowStruct.moreEls.forEach(core.removeElement); - rowStruct.moreEls = null; - } - if (rowStruct.limitedEls) { - rowStruct.limitedEls.forEach(function (limitedEl) { - limitedEl.classList.remove('fc-limited'); - }); - rowStruct.limitedEls = null; - } - }; - // Renders an element that represents hidden event element for a cell. - // Responsible for attaching click handler as well. - DayGrid.prototype.renderMoreLink = function (row, col, hiddenSegs) { - var _this = this; - var _a = this, view = _a.view, dateEnv = _a.dateEnv; - var a = core.createElement('a', { className: 'fc-more' }); - a.innerText = this.getMoreLinkText(hiddenSegs.length); - a.addEventListener('click', function (ev) { - var clickOption = _this.opt('eventLimitClick'); - var _col = _this.isRtl ? _this.colCnt - col - 1 : col; // HACK: props.cells has different dir system? - var date = _this.props.cells[row][_col].date; - var moreEl = ev.currentTarget; - var dayEl = _this.getCellEl(row, col); - var allSegs = _this.getCellSegs(row, col); - // rescope the segments to be within the cell's date - var reslicedAllSegs = _this.resliceDaySegs(allSegs, date); - var reslicedHiddenSegs = _this.resliceDaySegs(hiddenSegs, date); - if (typeof clickOption === 'function') { - // the returned value can be an atomic option - clickOption = _this.publiclyTrigger('eventLimitClick', [ - { - date: dateEnv.toDate(date), - allDay: true, - dayEl: dayEl, - moreEl: moreEl, - segs: reslicedAllSegs, - hiddenSegs: reslicedHiddenSegs, - jsEvent: ev, - view: view - } - ]); - } - if (clickOption === 'popover') { - _this.showSegPopover(row, col, moreEl, reslicedAllSegs); - } - else if (typeof clickOption === 'string') { // a view name - view.calendar.zoomTo(date, clickOption); - } - }); - return a; - }; - // Reveals the popover that displays all events within a cell - DayGrid.prototype.showSegPopover = function (row, col, moreLink, segs) { - var _this = this; - var _a = this, calendar = _a.calendar, view = _a.view, theme = _a.theme; - var _col = this.isRtl ? this.colCnt - col - 1 : col; // HACK: props.cells has different dir system? - var moreWrap = moreLink.parentNode; // the
wrapper around the - var topEl; // the element we want to match the top coordinate of - var options; - if (this.rowCnt === 1) { - topEl = view.el; // will cause the popover to cover any sort of header - } - else { - topEl = this.rowEls[row]; // will align with top of row - } - options = { - className: 'fc-more-popover ' + theme.getClass('popover'), - parentEl: view.el, - top: core.computeRect(topEl).top, - autoHide: true, - content: function (el) { - _this.segPopoverTile = new DayTile(_this.context, el); - _this.updateSegPopoverTile(_this.props.cells[row][_col].date, segs); - }, - hide: function () { - _this.segPopoverTile.destroy(); - _this.segPopoverTile = null; - _this.segPopover.destroy(); - _this.segPopover = null; - } - }; - // Determine horizontal coordinate. - // We use the moreWrap instead of the to avoid border confusion. - if (this.isRtl) { - options.right = core.computeRect(moreWrap).right + 1; // +1 to be over cell border - } - else { - options.left = core.computeRect(moreWrap).left - 1; // -1 to be over cell border - } - this.segPopover = new Popover(options); - this.segPopover.show(); - calendar.releaseAfterSizingTriggers(); // hack for eventPositioned - }; - // Given the events within an array of segment objects, reslice them to be in a single day - DayGrid.prototype.resliceDaySegs = function (segs, dayDate) { - var dayStart = dayDate; - var dayEnd = core.addDays(dayStart, 1); - var dayRange = { start: dayStart, end: dayEnd }; - var newSegs = []; - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - var eventRange = seg.eventRange; - var origRange = eventRange.range; - var slicedRange = core.intersectRanges(origRange, dayRange); - if (slicedRange) { - newSegs.push(__assign({}, seg, { eventRange: { - def: eventRange.def, - ui: __assign({}, eventRange.ui, { durationEditable: false }), - instance: eventRange.instance, - range: slicedRange - }, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() })); - } - } - return newSegs; - }; - // Generates the text that should be inside a "more" link, given the number of events it represents - DayGrid.prototype.getMoreLinkText = function (num) { - var opt = this.opt('eventLimitText'); - if (typeof opt === 'function') { - return opt(num); - } - else { - return '+' + num + ' ' + opt; - } - }; - // Returns segments within a given cell. - // If `startLevel` is specified, returns only events including and below that level. Otherwise returns all segs. - DayGrid.prototype.getCellSegs = function (row, col, startLevel) { - var segMatrix = this.eventRenderer.rowStructs[row].segMatrix; - var level = startLevel || 0; - var segs = []; - var seg; - while (level < segMatrix.length) { - seg = segMatrix[level][col]; - if (seg) { - segs.push(seg); - } - level++; - } - return segs; - }; - return DayGrid; - }(core.DateComponent)); - - var WEEK_NUM_FORMAT$1 = core.createFormatter({ week: 'numeric' }); - /* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells. - ----------------------------------------------------------------------------------------------------------------------*/ - // It is a manager for a DayGrid subcomponent, which does most of the heavy lifting. - // It is responsible for managing width/height. - var DayGridView = /** @class */ (function (_super) { - __extends(DayGridView, _super); - function DayGridView(context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, context, viewSpec, dateProfileGenerator, parentEl) || this; - /* Header Rendering - ------------------------------------------------------------------------------------------------------------------*/ - // Generates the HTML that will go before the day-of week header cells - _this.renderHeadIntroHtml = function () { - var theme = _this.theme; - if (_this.colWeekNumbersVisible) { - return '' + - '' + - '' + // needed for matchCellWidths - core.htmlEscape(_this.opt('weekLabel')) + - '' + - ''; - } - return ''; - }; - /* Day Grid Rendering - ------------------------------------------------------------------------------------------------------------------*/ - // Generates the HTML that will go before content-skeleton cells that display the day/week numbers - _this.renderDayGridNumberIntroHtml = function (row, dayGrid) { - var dateEnv = _this.dateEnv; - var weekStart = dayGrid.props.cells[row][0].date; - if (_this.colWeekNumbersVisible) { - return '' + - '' + - core.buildGotoAnchorHtml(// aside from link, important for matchCellWidths - _this, { date: weekStart, type: 'week', forceOff: dayGrid.colCnt === 1 }, dateEnv.format(weekStart, WEEK_NUM_FORMAT$1) // inner HTML - ) + - ''; - } - return ''; - }; - // Generates the HTML that goes before the day bg cells for each day-row - _this.renderDayGridBgIntroHtml = function () { - var theme = _this.theme; - if (_this.colWeekNumbersVisible) { - return ''; - } - return ''; - }; - // Generates the HTML that goes before every other type of row generated by DayGrid. - // Affects mirror-skeleton and highlight-skeleton rows. - _this.renderDayGridIntroHtml = function () { - if (_this.colWeekNumbersVisible) { - return ''; - } - return ''; - }; - _this.el.classList.add('fc-dayGrid-view'); - _this.el.innerHTML = _this.renderSkeletonHtml(); - _this.scroller = new core.ScrollComponent('hidden', // overflow x - 'auto' // overflow y - ); - var dayGridContainerEl = _this.scroller.el; - _this.el.querySelector('.fc-body > tr > td').appendChild(dayGridContainerEl); - dayGridContainerEl.classList.add('fc-day-grid-container'); - var dayGridEl = core.createElement('div', { className: 'fc-day-grid' }); - dayGridContainerEl.appendChild(dayGridEl); - var cellWeekNumbersVisible; - if (_this.opt('weekNumbers')) { - if (_this.opt('weekNumbersWithinDays')) { - cellWeekNumbersVisible = true; - _this.colWeekNumbersVisible = false; - } - else { - cellWeekNumbersVisible = false; - _this.colWeekNumbersVisible = true; - } - } - else { - _this.colWeekNumbersVisible = false; - cellWeekNumbersVisible = false; - } - _this.dayGrid = new DayGrid(_this.context, dayGridEl, { - renderNumberIntroHtml: _this.renderDayGridNumberIntroHtml, - renderBgIntroHtml: _this.renderDayGridBgIntroHtml, - renderIntroHtml: _this.renderDayGridIntroHtml, - colWeekNumbersVisible: _this.colWeekNumbersVisible, - cellWeekNumbersVisible: cellWeekNumbersVisible - }); - return _this; - } - DayGridView.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.dayGrid.destroy(); - this.scroller.destroy(); - }; - // Builds the HTML skeleton for the view. - // The day-grid component will render inside of a container defined by this HTML. - DayGridView.prototype.renderSkeletonHtml = function () { - var theme = this.theme; - return '' + - '' + - (this.opt('columnHeader') ? - '' + - '' + - '' + - '' + - '' : - '') + - '' + - '' + - '' + - '' + - '' + - '
 
'; - }; - // Generates an HTML attribute string for setting the width of the week number column, if it is known - DayGridView.prototype.weekNumberStyleAttr = function () { - if (this.weekNumberWidth != null) { - return 'style="width:' + this.weekNumberWidth + 'px"'; - } - return ''; - }; - // Determines whether each row should have a constant height - DayGridView.prototype.hasRigidRows = function () { - var eventLimit = this.opt('eventLimit'); - return eventLimit && typeof eventLimit !== 'number'; - }; - /* Dimensions - ------------------------------------------------------------------------------------------------------------------*/ - DayGridView.prototype.updateSize = function (isResize, viewHeight, isAuto) { - _super.prototype.updateSize.call(this, isResize, viewHeight, isAuto); // will call updateBaseSize. important that executes first - this.dayGrid.updateSize(isResize); - }; - // Refreshes the horizontal dimensions of the view - DayGridView.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) { - var dayGrid = this.dayGrid; - var eventLimit = this.opt('eventLimit'); - var headRowEl = this.header ? this.header.el : null; // HACK - var scrollerHeight; - var scrollbarWidths; - // hack to give the view some height prior to dayGrid's columns being rendered - // TODO: separate setting height from scroller VS dayGrid. - if (!dayGrid.rowEls) { - if (!isAuto) { - scrollerHeight = this.computeScrollerHeight(viewHeight); - this.scroller.setHeight(scrollerHeight); - } - return; - } - if (this.colWeekNumbersVisible) { - // Make sure all week number cells running down the side have the same width. - this.weekNumberWidth = core.matchCellWidths(core.findElements(this.el, '.fc-week-number')); - } - // reset all heights to be natural - this.scroller.clear(); - if (headRowEl) { - core.uncompensateScroll(headRowEl); - } - dayGrid.removeSegPopover(); // kill the "more" popover if displayed - // is the event limit a constant level number? - if (eventLimit && typeof eventLimit === 'number') { - dayGrid.limitRows(eventLimit); // limit the levels first so the height can redistribute after - } - // distribute the height to the rows - // (viewHeight is a "recommended" value if isAuto) - scrollerHeight = this.computeScrollerHeight(viewHeight); - this.setGridHeight(scrollerHeight, isAuto); - // is the event limit dynamically calculated? - if (eventLimit && typeof eventLimit !== 'number') { - dayGrid.limitRows(eventLimit); // limit the levels after the grid's row heights have been set - } - if (!isAuto) { // should we force dimensions of the scroll container? - this.scroller.setHeight(scrollerHeight); - scrollbarWidths = this.scroller.getScrollbarWidths(); - if (scrollbarWidths.left || scrollbarWidths.right) { // using scrollbars? - if (headRowEl) { - core.compensateScroll(headRowEl, scrollbarWidths); - } - // doing the scrollbar compensation might have created text overflow which created more height. redo - scrollerHeight = this.computeScrollerHeight(viewHeight); - this.scroller.setHeight(scrollerHeight); - } - // guarantees the same scrollbar widths - this.scroller.lockOverflow(scrollbarWidths); - } - }; - // given a desired total height of the view, returns what the height of the scroller should be - DayGridView.prototype.computeScrollerHeight = function (viewHeight) { - return viewHeight - - core.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller - }; - // Sets the height of just the DayGrid component in this view - DayGridView.prototype.setGridHeight = function (height, isAuto) { - if (this.opt('monthMode')) { - // if auto, make the height of each row the height that it would be if there were 6 weeks - if (isAuto) { - height *= this.dayGrid.rowCnt / 6; - } - core.distributeHeight(this.dayGrid.rowEls, height, !isAuto); // if auto, don't compensate for height-hogging rows - } - else { - if (isAuto) { - core.undistributeHeight(this.dayGrid.rowEls); // let the rows be their natural height with no expanding - } - else { - core.distributeHeight(this.dayGrid.rowEls, height, true); // true = compensate for height-hogging rows - } - } - }; - /* Scroll - ------------------------------------------------------------------------------------------------------------------*/ - DayGridView.prototype.computeDateScroll = function (duration) { - return { top: 0 }; - }; - DayGridView.prototype.queryDateScroll = function () { - return { top: this.scroller.getScrollTop() }; - }; - DayGridView.prototype.applyDateScroll = function (scroll) { - if (scroll.top !== undefined) { - this.scroller.setScrollTop(scroll.top); - } - }; - return DayGridView; - }(core.View)); - DayGridView.prototype.dateProfileGeneratorClass = DayGridDateProfileGenerator; - - var SimpleDayGrid = /** @class */ (function (_super) { - __extends(SimpleDayGrid, _super); - function SimpleDayGrid(context, dayGrid) { - var _this = _super.call(this, context, dayGrid.el) || this; - _this.slicer = new DayGridSlicer(); - _this.dayGrid = dayGrid; - context.calendar.registerInteractiveComponent(_this, { el: _this.dayGrid.el }); - return _this; - } - SimpleDayGrid.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.calendar.unregisterInteractiveComponent(this); - }; - SimpleDayGrid.prototype.render = function (props) { - var dayGrid = this.dayGrid; - var dateProfile = props.dateProfile, dayTable = props.dayTable; - dayGrid.receiveProps(__assign({}, this.slicer.sliceProps(props, dateProfile, props.nextDayThreshold, dayGrid, dayTable), { dateProfile: dateProfile, cells: dayTable.cells, isRigid: props.isRigid })); - }; - SimpleDayGrid.prototype.buildPositionCaches = function () { - this.dayGrid.buildPositionCaches(); - }; - SimpleDayGrid.prototype.queryHit = function (positionLeft, positionTop) { - var rawHit = this.dayGrid.positionToHit(positionLeft, positionTop); - if (rawHit) { - return { - component: this.dayGrid, - dateSpan: rawHit.dateSpan, - dayEl: rawHit.dayEl, - rect: { - left: rawHit.relativeRect.left, - right: rawHit.relativeRect.right, - top: rawHit.relativeRect.top, - bottom: rawHit.relativeRect.bottom - }, - layer: 0 - }; - } - }; - return SimpleDayGrid; - }(core.DateComponent)); - var DayGridSlicer = /** @class */ (function (_super) { - __extends(DayGridSlicer, _super); - function DayGridSlicer() { - return _super !== null && _super.apply(this, arguments) || this; - } - DayGridSlicer.prototype.sliceRange = function (dateRange, dayTable) { - return dayTable.sliceRange(dateRange); - }; - return DayGridSlicer; - }(core.Slicer)); - - var DayGridView$1 = /** @class */ (function (_super) { - __extends(DayGridView, _super); - function DayGridView(_context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, _context, viewSpec, dateProfileGenerator, parentEl) || this; - _this.buildDayTable = core.memoize(buildDayTable); - if (_this.opt('columnHeader')) { - _this.header = new core.DayHeader(_this.context, _this.el.querySelector('.fc-head-container')); - } - _this.simpleDayGrid = new SimpleDayGrid(_this.context, _this.dayGrid); - return _this; - } - DayGridView.prototype.destroy = function () { - _super.prototype.destroy.call(this); - if (this.header) { - this.header.destroy(); - } - this.simpleDayGrid.destroy(); - }; - DayGridView.prototype.render = function (props) { - _super.prototype.render.call(this, props); - var dateProfile = this.props.dateProfile; - var dayTable = this.dayTable = - this.buildDayTable(dateProfile, this.dateProfileGenerator); - if (this.header) { - this.header.receiveProps({ - dateProfile: dateProfile, - dates: dayTable.headerDates, - datesRepDistinctDays: dayTable.rowCnt === 1, - renderIntroHtml: this.renderHeadIntroHtml - }); - } - this.simpleDayGrid.receiveProps({ - dateProfile: dateProfile, - dayTable: dayTable, - businessHours: props.businessHours, - dateSelection: props.dateSelection, - eventStore: props.eventStore, - eventUiBases: props.eventUiBases, - eventSelection: props.eventSelection, - eventDrag: props.eventDrag, - eventResize: props.eventResize, - isRigid: this.hasRigidRows(), - nextDayThreshold: this.nextDayThreshold - }); - }; - return DayGridView; - }(DayGridView)); - function buildDayTable(dateProfile, dateProfileGenerator) { - var daySeries = new core.DaySeries(dateProfile.renderRange, dateProfileGenerator); - return new core.DayTable(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit)); - } - - var main = core.createPlugin({ - defaultView: 'dayGridMonth', - views: { - dayGrid: DayGridView$1, - dayGridDay: { - type: 'dayGrid', - duration: { days: 1 } - }, - dayGridWeek: { - type: 'dayGrid', - duration: { weeks: 1 } - }, - dayGridMonth: { - type: 'dayGrid', - duration: { months: 1 }, - monthMode: true, - fixedWeekCount: true - } - } - }); - - exports.AbstractDayGridView = DayGridView; - exports.DayBgRow = DayBgRow; - exports.DayGrid = DayGrid; - exports.DayGridSlicer = DayGridSlicer; - exports.DayGridView = DayGridView$1; - exports.SimpleDayGrid = SimpleDayGrid; - exports.buildBasicDayTable = buildDayTable; - exports.default = main; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.min.css b/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.min.css deleted file mode 100644 index 55a57241..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.min.css +++ /dev/null @@ -1 +0,0 @@ -.fc-dayGridDay-view .fc-content-skeleton,.fc-dayGridWeek-view .fc-content-skeleton{padding-bottom:1em}.fc-dayGrid-view .fc-body .fc-row{min-height:4em}.fc-row.fc-rigid{overflow:hidden}.fc-row.fc-rigid .fc-content-skeleton{position:absolute;top:0;left:0;right:0}.fc-day-top.fc-other-month{opacity:.3}.fc-dayGrid-view .fc-day-number,.fc-dayGrid-view .fc-week-number{padding:2px}.fc-dayGrid-view th.fc-day-number,.fc-dayGrid-view th.fc-week-number{padding:0 2px}.fc-ltr .fc-dayGrid-view .fc-day-top .fc-day-number{float:right}.fc-rtl .fc-dayGrid-view .fc-day-top .fc-day-number{float:left}.fc-ltr .fc-dayGrid-view .fc-day-top .fc-week-number{float:left;border-radius:0 0 3px}.fc-rtl .fc-dayGrid-view .fc-day-top .fc-week-number{float:right;border-radius:0 0 0 3px}.fc-dayGrid-view .fc-day-top .fc-week-number{min-width:1.5em;text-align:center;background-color:#f2f2f2;color:grey}.fc-dayGrid-view td.fc-week-number{text-align:center}.fc-dayGrid-view td.fc-week-number>*{display:inline-block;min-width:1.25em} \ No newline at end of file diff --git a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.min.js b/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.min.js deleted file mode 100644 index 2f4c0d45..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! -FullCalendar Day Grid Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@fullcalendar/core")):"function"==typeof define&&define.amd?define(["exports","@fullcalendar/core"],t):t((e=e||self).FullCalendarDayGrid={},e.FullCalendar)}(this,function(e,t){"use strict";var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function n(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var i=function(){return(i=Object.assign||function(e){for(var t,r=1,n=arguments.length;r'+t.htmlEscape(n)+""),i=''+(t.htmlEscape(d.title||"")||" ")+"",'
'+("rtl"===l.dir?i+" "+y:y+" "+i)+"
"+(u?'
':"")+(f?'
':"")+"
"},r.prototype.computeEventTimeFormat=function(){return{hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"narrow"}},r.prototype.computeDisplayEventEnd=function(){return!1},r}(t.FgEventRenderer),a=function(e){function r(t){var r=e.call(this,t.context)||this;return r.dayGrid=t,r}return n(r,e),r.prototype.attachSegs=function(e,t){var r=this.rowStructs=this.renderSegRows(e);this.dayGrid.rowEls.forEach(function(e,t){e.querySelector(".fc-content-skeleton > table").appendChild(r[t].tbodyEl)}),t||this.dayGrid.removeSegPopover()},r.prototype.detachSegs=function(){for(var e,r=this.rowStructs||[];e=r.pop();)t.removeElement(e.tbodyEl);this.rowStructs=null},r.prototype.renderSegRows=function(e){var t,r,n=[];for(t=this.groupSegRows(e),r=0;r=e.firstCol)return!0;return!1}function c(e,t){return e.leftCol-t.leftCol}var h=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return n(r,e),r.prototype.attachSegs=function(e,r){var n=r.sourceSeg,i=this.rowStructs=this.renderSegRows(e);this.dayGrid.rowEls.forEach(function(e,r){var o,s,l=t.htmlToElement('
');n&&n.row===r?o=n.el:(o=e.querySelector(".fc-content-skeleton tbody"))||(o=e.querySelector(".fc-content-skeleton table")),s=o.getBoundingClientRect().top-e.getBoundingClientRect().top,l.style.top=s+"px",l.querySelector("table").appendChild(i[r].tbodyEl),e.appendChild(l)})},r}(a),p=function(e){function r(t){var r=e.call(this,t.context)||this;return r.fillSegTag="td",r.dayGrid=t,r}return n(r,e),r.prototype.renderSegs=function(t,r){"bgEvent"===t&&(r=r.filter(function(e){return e.eventRange.def.allDay})),e.prototype.renderSegs.call(this,t,r)},r.prototype.attachSegs=function(e,t){var r,n,i,o=[];for(r=0;r
')).getElementsByTagName("tr")[0],d>0&&t.appendToElement(o,new Array(d+1).join('')),r.el.colSpan=c-d,o.appendChild(r.el),c'));var h=s.renderProps.renderIntroHtml();return h&&(s.isRtl?t.appendToElement(o,h):t.prependToElement(o,h)),i},r}(t.FillRenderer),u=function(e){function r(r,n){var i=e.call(this,r,n)||this,o=i.eventRenderer=new f(i),s=i.renderFrame=t.memoizeRendering(i._renderFrame);return i.renderFgEvents=t.memoizeRendering(o.renderSegs.bind(o),o.unrender.bind(o),[s]),i.renderEventSelection=t.memoizeRendering(o.selectByInstanceId.bind(o),o.unselectByInstanceId.bind(o),[i.renderFgEvents]),i.renderEventDrag=t.memoizeRendering(o.hideByHash.bind(o),o.showByHash.bind(o),[s]),i.renderEventResize=t.memoizeRendering(o.hideByHash.bind(o),o.showByHash.bind(o),[s]),r.calendar.registerInteractiveComponent(i,{el:i.el,useEventCenter:!1}),i}return n(r,e),r.prototype.render=function(e){this.renderFrame(e.date),this.renderFgEvents(e.fgSegs),this.renderEventSelection(e.eventSelection),this.renderEventDrag(e.eventDragInstances),this.renderEventResize(e.eventResizeInstances)},r.prototype.destroy=function(){e.prototype.destroy.call(this),this.renderFrame.unrender(),this.calendar.unregisterInteractiveComponent(this)},r.prototype._renderFrame=function(e){var r=this.theme,n=this.dateEnv.format(e,t.createFormatter(this.opt("dayPopoverFormat")));this.el.innerHTML='
'+t.htmlEscape(n)+'
',this.segContainerEl=this.el.querySelector(".fc-event-container")},r.prototype.queryHit=function(e,r,n,i){var o=this.props.date;if(e'),"rtl"===this.context.options.dir&&t.reverse(),""+t.join("")+""},e}();function m(e,r,n,i){var o=n.dateEnv,s=n.theme,l=t.rangeContainsMarker(r.activeRange,e),a=t.getDayClasses(e,r,n);return a.unshift("fc-day",s.getClass("widgetContent")),'"}var y=t.createFormatter({day:"numeric"}),v=t.createFormatter({week:"numeric"}),b=function(e){function r(r,n,i){var o=e.call(this,r,n)||this;o.bottomCoordPadding=0,o.isCellSizesDirty=!1;var s=o.eventRenderer=new a(o),l=o.fillRenderer=new p(o);o.mirrorRenderer=new h(o);var d=o.renderCells=t.memoizeRendering(o._renderCells,o._unrenderCells);return o.renderBusinessHours=t.memoizeRendering(l.renderSegs.bind(l,"businessHours"),l.unrender.bind(l,"businessHours"),[d]),o.renderDateSelection=t.memoizeRendering(l.renderSegs.bind(l,"highlight"),l.unrender.bind(l,"highlight"),[d]),o.renderBgEvents=t.memoizeRendering(l.renderSegs.bind(l,"bgEvent"),l.unrender.bind(l,"bgEvent"),[d]),o.renderFgEvents=t.memoizeRendering(s.renderSegs.bind(s),s.unrender.bind(s),[d]),o.renderEventSelection=t.memoizeRendering(s.selectByInstanceId.bind(s),s.unselectByInstanceId.bind(s),[o.renderFgEvents]),o.renderEventDrag=t.memoizeRendering(o._renderEventDrag,o._unrenderEventDrag,[d]),o.renderEventResize=t.memoizeRendering(o._renderEventResize,o._unrenderEventResize,[d]),o.renderProps=i,o}return n(r,e),r.prototype.render=function(e){var t=e.cells;this.rowCnt=t.length,this.colCnt=t[0].length,this.renderCells(t,e.isRigid),this.renderBusinessHours(e.businessHourSegs),this.renderDateSelection(e.dateSelectionSegs),this.renderBgEvents(e.bgEventSegs),this.renderFgEvents(e.fgEventSegs),this.renderEventSelection(e.eventSelection),this.renderEventDrag(e.eventDrag),this.renderEventResize(e.eventResize),this.segPopoverTile&&this.updateSegPopoverTile()},r.prototype.destroy=function(){e.prototype.destroy.call(this),this.renderCells.unrender()},r.prototype.getCellRange=function(e,r){var n=this.props.cells[e][r].date;return{start:n,end:t.addDays(n,1)}},r.prototype.updateSegPopoverTile=function(e,t){var r=this.props;this.segPopoverTile.receiveProps({date:e||this.segPopoverTile.props.date,fgSegs:t||this.segPopoverTile.props.fgSegs,eventSelection:r.eventSelection,eventDragInstances:r.eventDrag?r.eventDrag.affectedInstances:null,eventResizeInstances:r.eventResize?r.eventResize.affectedInstances:null})},r.prototype._renderCells=function(e,r){var n,i,o=this.view,s=this.dateEnv,l=this.rowCnt,a=this.colCnt,d="";for(n=0;n
'+i.renderHtml({cells:this.props.cells[e],dateProfile:this.props.dateProfile,renderIntroHtml:this.renderProps.renderBgIntroHtml})+'
'+(this.getIsNumbersVisible()?""+this.renderNumberTrHtml(e)+"":"")+"
"},r.prototype.getIsNumbersVisible=function(){return this.getIsDayNumbersVisible()||this.renderProps.cellWeekNumbersVisible||this.renderProps.colWeekNumbersVisible},r.prototype.getIsDayNumbersVisible=function(){return this.rowCnt>1},r.prototype.renderNumberTrHtml=function(e){var t=this.renderProps.renderNumberIntroHtml(e,this);return""+(this.isRtl?"":t)+this.renderNumberCellsHtml(e)+(this.isRtl?t:"")+""},r.prototype.renderNumberCellsHtml=function(e){var t,r,n=[];for(t=0;t",this.renderProps.cellWeekNumbersVisible&&e.getUTCDay()===n&&(s+=t.buildGotoAnchorHtml(i,{date:e,type:"week"},{class:"fc-week-number"},o.format(e,v))),a&&(s+=t.buildGotoAnchorHtml(i,e,{class:"fc-day-number"},o.format(e,y))),s+=""):""},r.prototype.updateSize=function(e){var t=this.fillRenderer,r=this.eventRenderer,n=this.mirrorRenderer;(e||this.isCellSizesDirty||this.view.calendar.isEventsUpdated)&&(this.buildPositionCaches(),this.isCellSizesDirty=!1),t.computeSizes(e),r.computeSizes(e),n.computeSizes(e),t.assignSizes(e),r.assignSizes(e),n.assignSizes(e)},r.prototype.buildPositionCaches=function(){this.buildColPositions(),this.buildRowPositions()},r.prototype.buildColPositions=function(){this.colPositions.build()},r.prototype.buildRowPositions=function(){this.rowPositions.build(),this.rowPositions.bottoms[this.rowCnt-1]+=this.bottomCoordPadding},r.prototype.positionToHit=function(e,t){var r=this.colPositions,n=this.rowPositions,i=r.leftToIndex(e),o=n.topToIndex(t);if(null!=o&&null!=i)return{row:o,col:i,dateSpan:{range:this.getCellRange(o,i),allDay:!0},dayEl:this.getCellEl(o,i),relativeRect:{left:r.lefts[i],right:r.rights[i],top:n.tops[o],bottom:n.bottoms[o]}}},r.prototype.getCellEl=function(e,t){return this.cellEls[e*this.colCnt+t]},r.prototype._renderEventDrag=function(e){e&&(this.eventRenderer.hideByHash(e.affectedInstances),this.fillRenderer.renderSegs("highlight",e.segs))},r.prototype._unrenderEventDrag=function(e){e&&(this.eventRenderer.showByHash(e.affectedInstances),this.fillRenderer.unrender("highlight"))},r.prototype._renderEventResize=function(e){e&&(this.eventRenderer.hideByHash(e.affectedInstances),this.fillRenderer.renderSegs("highlight",e.segs),this.mirrorRenderer.renderSegs(e.segs,{isResizing:!0,sourceSeg:e.sourceSeg}))},r.prototype._unrenderEventResize=function(e){e&&(this.eventRenderer.showByHash(e.affectedInstances),this.fillRenderer.unrender("highlight"),this.mirrorRenderer.unrender(e.segs,{isResizing:!0,sourceSeg:e.sourceSeg}))},r.prototype.removeSegPopover=function(){this.segPopover&&this.segPopover.hide()},r.prototype.limitRows=function(e){var t,r,n=this.eventRenderer.rowStructs||[];for(t=0;ti)return r;return!1},r.prototype.limitRow=function(e,r){var n,i,o,s,l,a,d,c,h,p,u,f,g,m,y,v=this,b=this.colCnt,w=this.isRtl,S=this.eventRenderer.rowStructs[e],C=[],E=0,R=function(n){for(;E"+t.htmlEscape(s.opt("weekLabel"))+"":""},s.renderDayGridNumberIntroHtml=function(e,r){var n=s.dateEnv,i=r.props.cells[e][0].date;return s.colWeekNumbersVisible?'"+t.buildGotoAnchorHtml(s,{date:i,type:"week",forceOff:1===r.colCnt},n.format(i,w))+"":""},s.renderDayGridBgIntroHtml=function(){var e=s.theme;return s.colWeekNumbersVisible?'":""},s.renderDayGridIntroHtml=function(){return s.colWeekNumbersVisible?'":""},s.el.classList.add("fc-dayGrid-view"),s.el.innerHTML=s.renderSkeletonHtml(),s.scroller=new t.ScrollComponent("hidden","auto");var l=s.scroller.el;s.el.querySelector(".fc-body > tr > td").appendChild(l),l.classList.add("fc-day-grid-container");var a,d=t.createElement("div",{className:"fc-day-grid"});return l.appendChild(d),s.opt("weekNumbers")?s.opt("weekNumbersWithinDays")?(a=!0,s.colWeekNumbersVisible=!1):(a=!1,s.colWeekNumbersVisible=!0):(s.colWeekNumbersVisible=!1,a=!1),s.dayGrid=new b(s.context,d,{renderNumberIntroHtml:s.renderDayGridNumberIntroHtml,renderBgIntroHtml:s.renderDayGridBgIntroHtml,renderIntroHtml:s.renderDayGridIntroHtml,colWeekNumbersVisible:s.colWeekNumbersVisible,cellWeekNumbersVisible:a}),s}return n(r,e),r.prototype.destroy=function(){e.prototype.destroy.call(this),this.dayGrid.destroy(),this.scroller.destroy()},r.prototype.renderSkeletonHtml=function(){var e=this.theme;return''+(this.opt("columnHeader")?'':"")+'
 
'},r.prototype.weekNumberStyleAttr=function(){return null!=this.weekNumberWidth?'style="width:'+this.weekNumberWidth+'px"':""},r.prototype.hasRigidRows=function(){var e=this.opt("eventLimit");return e&&"number"!=typeof e},r.prototype.updateSize=function(t,r,n){e.prototype.updateSize.call(this,t,r,n),this.dayGrid.updateSize(t)},r.prototype.updateBaseSize=function(e,r,n){var i,o,s=this.dayGrid,l=this.opt("eventLimit"),a=this.header?this.header.el:null;s.rowEls?(this.colWeekNumbersVisible&&(this.weekNumberWidth=t.matchCellWidths(t.findElements(this.el,".fc-week-number"))),this.scroller.clear(),a&&t.uncompensateScroll(a),s.removeSegPopover(),l&&"number"==typeof l&&s.limitRows(l),i=this.computeScrollerHeight(r),this.setGridHeight(i,n),l&&"number"!=typeof l&&s.limitRows(l),n||(this.scroller.setHeight(i),((o=this.scroller.getScrollbarWidths()).left||o.right)&&(a&&t.compensateScroll(a,o),i=this.computeScrollerHeight(r),this.scroller.setHeight(i)),this.scroller.lockOverflow(o))):n||(i=this.computeScrollerHeight(r),this.scroller.setHeight(i))},r.prototype.computeScrollerHeight=function(e){return e-t.subtractInnerElHeight(this.el,this.scroller.el)},r.prototype.setGridHeight=function(e,r){this.opt("monthMode")?(r&&(e*=this.dayGrid.rowCnt/6),t.distributeHeight(this.dayGrid.rowEls,e,!r)):r?t.undistributeHeight(this.dayGrid.rowEls):t.distributeHeight(this.dayGrid.rowEls,e,!0)},r.prototype.computeDateScroll=function(e){return{top:0}},r.prototype.queryDateScroll=function(){return{top:this.scroller.getScrollTop()}},r.prototype.applyDateScroll=function(e){void 0!==e.top&&this.scroller.setScrollTop(e.top)},r}(t.View);S.prototype.dateProfileGeneratorClass=o;var C=function(e){function t(t,r){var n=e.call(this,t,r.el)||this;return n.slicer=new E,n.dayGrid=r,t.calendar.registerInteractiveComponent(n,{el:n.dayGrid.el}),n}return n(t,e),t.prototype.destroy=function(){e.prototype.destroy.call(this),this.calendar.unregisterInteractiveComponent(this)},t.prototype.render=function(e){var t=this.dayGrid,r=e.dateProfile,n=e.dayTable;t.receiveProps(i({},this.slicer.sliceProps(e,r,e.nextDayThreshold,t,n),{dateProfile:r,cells:n.cells,isRigid:e.isRigid}))},t.prototype.buildPositionCaches=function(){this.dayGrid.buildPositionCaches()},t.prototype.queryHit=function(e,t){var r=this.dayGrid.positionToHit(e,t);if(r)return{component:this.dayGrid,dateSpan:r.dateSpan,dayEl:r.dayEl,rect:{left:r.relativeRect.left,right:r.relativeRect.right,top:r.relativeRect.top,bottom:r.relativeRect.bottom},layer:0}},t}(t.DateComponent),E=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.sliceRange=function(e,t){return t.sliceRange(e)},t}(t.Slicer),R=function(e){function r(r,n,i,o){var s=e.call(this,r,n,i,o)||this;return s.buildDayTable=t.memoize(H),s.opt("columnHeader")&&(s.header=new t.DayHeader(s.context,s.el.querySelector(".fc-head-container"))),s.simpleDayGrid=new C(s.context,s.dayGrid),s}return n(r,e),r.prototype.destroy=function(){e.prototype.destroy.call(this),this.header&&this.header.destroy(),this.simpleDayGrid.destroy()},r.prototype.render=function(t){e.prototype.render.call(this,t);var r=this.props.dateProfile,n=this.dayTable=this.buildDayTable(r,this.dateProfileGenerator);this.header&&this.header.receiveProps({dateProfile:r,dates:n.headerDates,datesRepDistinctDays:1===n.rowCnt,renderIntroHtml:this.renderHeadIntroHtml}),this.simpleDayGrid.receiveProps({dateProfile:r,dayTable:n,businessHours:t.businessHours,dateSelection:t.dateSelection,eventStore:t.eventStore,eventUiBases:t.eventUiBases,eventSelection:t.eventSelection,eventDrag:t.eventDrag,eventResize:t.eventResize,isRigid:this.hasRigidRows(),nextDayThreshold:this.nextDayThreshold})},r}(S);function H(e,r){var n=new t.DaySeries(e.renderRange,r);return new t.DayTable(n,/year|month|week/.test(e.currentRangeUnit))}var D=t.createPlugin({defaultView:"dayGridMonth",views:{dayGrid:R,dayGridDay:{type:"dayGrid",duration:{days:1}},dayGridWeek:{type:"dayGrid",duration:{weeks:1}},dayGridMonth:{type:"dayGrid",duration:{months:1},monthMode:!0,fixedWeekCount:!0}}});e.AbstractDayGridView=S,e.DayBgRow=g,e.DayGrid=b,e.DayGridSlicer=E,e.DayGridView=R,e.SimpleDayGrid=C,e.buildBasicDayTable=H,e.default=D,Object.defineProperty(e,"__esModule",{value:!0})}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/package.json b/htdocs/public/high/plugins/fullcalendar/packages/daygrid/package.json deleted file mode 100644 index c6e16ce1..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "@fullcalendar/daygrid", - "version": "4.3.0", - "title": "FullCalendar Day Grid Plugin", - "description": "Display events on Month view or DayGrid view", - "keywords": [ - "calendar", - "event", - "full-sized" - ], - "homepage": "https://fullcalendar.io/", - "docs": "https://fullcalendar.io/docs/month-view", - "bugs": "https://fullcalendar.io/reporting-bugs", - "repository": { - "type": "git", - "url": "https://github.com/fullcalendar/fullcalendar.git", - "homepage": "https://github.com/fullcalendar/fullcalendar" - }, - "license": "MIT", - "author": { - "name": "Adam Shaw", - "email": "arshaw@arshaw.com", - "url": "http://arshaw.com/" - }, - "copyright": "2019 Adam Shaw", - "peerDependencies": { - "@fullcalendar/core": "~4.3.0" - }, - "main": "main.js", - "module": "main.esm.js", - "unpkg": "main.min.js", - "types": "main.d.ts" -} diff --git a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/LICENSE.txt b/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/LICENSE.txt deleted file mode 100644 index 2149cfbe..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/LICENSE.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2019 Adam Shaw - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/README.md b/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/README.md deleted file mode 100644 index a4d6c5cc..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/README.md +++ /dev/null @@ -1,8 +0,0 @@ - -# FullCalendar Google Calendar Plugin - -Fetch events from a public Google Calendar feed - -[View the docs »](https://fullcalendar.io/docs/google-calendar) - -This package was created from the [FullCalendar monorepo »](https://github.com/fullcalendar/fullcalendar) diff --git a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.d.ts b/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.d.ts deleted file mode 100644 index 105a6c6d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -// Generated by dts-bundle v0.7.3-fork.1 -// Dependencies for this module: -// main.d.ts - -declare module '@fullcalendar/google-calendar' { - module '@fullcalendar/core' { - interface OptionsInput { - googleCalendarApiKey?: string; - } - } - module '@fullcalendar/core/structs/event-source' { - interface ExtendedEventSourceInput { - googleCalendarApiKey?: string; - googleCalendarId?: string; - } - } - const _default: import("@fullcalendar/core").PluginDef; - export default _default; -} - diff --git a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.esm.js b/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.esm.js deleted file mode 100644 index 274fc5df..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.esm.js +++ /dev/null @@ -1,162 +0,0 @@ -/*! -FullCalendar Google Calendar Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -import { createPlugin, refineProps, requestJson, addDays } from '@fullcalendar/core'; - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ - -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; - -// TODO: expose somehow -var API_BASE = 'https://www.googleapis.com/calendar/v3/calendars'; -var STANDARD_PROPS = { - url: String, - googleCalendarApiKey: String, - googleCalendarId: String, - data: null -}; -var eventSourceDef = { - parseMeta: function (raw) { - if (typeof raw === 'string') { - raw = { url: raw }; - } - if (typeof raw === 'object') { - var standardProps = refineProps(raw, STANDARD_PROPS); - if (!standardProps.googleCalendarId && standardProps.url) { - standardProps.googleCalendarId = parseGoogleCalendarId(standardProps.url); - } - delete standardProps.url; - if (standardProps.googleCalendarId) { - return standardProps; - } - } - return null; - }, - fetch: function (arg, onSuccess, onFailure) { - var calendar = arg.calendar; - var meta = arg.eventSource.meta; - var apiKey = meta.googleCalendarApiKey || calendar.opt('googleCalendarApiKey'); - if (!apiKey) { - onFailure({ - message: 'Specify a googleCalendarApiKey. See http://fullcalendar.io/docs/google_calendar/' - }); - } - else { - var url = buildUrl(meta); - var requestParams_1 = buildRequestParams(arg.range, apiKey, meta.data, calendar.dateEnv); - requestJson('GET', url, requestParams_1, function (body, xhr) { - if (body.error) { - onFailure({ - message: 'Google Calendar API: ' + body.error.message, - errors: body.error.errors, - xhr: xhr - }); - } - else { - onSuccess({ - rawEvents: gcalItemsToRawEventDefs(body.items, requestParams_1.timeZone), - xhr: xhr - }); - } - }, function (message, xhr) { - onFailure({ message: message, xhr: xhr }); - }); - } - } -}; -function parseGoogleCalendarId(url) { - var match; - // detect if the ID was specified as a single string. - // will match calendars like "asdf1234@calendar.google.com" in addition to person email calendars. - if (/^[^\/]+@([^\/\.]+\.)*(google|googlemail|gmail)\.com$/.test(url)) { - return url; - } - else if ((match = /^https:\/\/www.googleapis.com\/calendar\/v3\/calendars\/([^\/]*)/.exec(url)) || - (match = /^https?:\/\/www.google.com\/calendar\/feeds\/([^\/]*)/.exec(url))) { - return decodeURIComponent(match[1]); - } -} -function buildUrl(meta) { - return API_BASE + '/' + encodeURIComponent(meta.googleCalendarId) + '/events'; -} -function buildRequestParams(range, apiKey, extraParams, dateEnv) { - var params; - var startStr; - var endStr; - if (dateEnv.canComputeOffset) { - // strings will naturally have offsets, which GCal needs - startStr = dateEnv.formatIso(range.start); - endStr = dateEnv.formatIso(range.end); - } - else { - // when timezone isn't known, we don't know what the UTC offset should be, so ask for +/- 1 day - // from the UTC day-start to guarantee we're getting all the events - // (start/end will be UTC-coerced dates, so toISOString is okay) - startStr = addDays(range.start, -1).toISOString(); - endStr = addDays(range.end, 1).toISOString(); - } - params = __assign({}, (extraParams || {}), { key: apiKey, timeMin: startStr, timeMax: endStr, singleEvents: true, maxResults: 9999 }); - if (dateEnv.timeZone !== 'local') { - params.timeZone = dateEnv.timeZone; - } - return params; -} -function gcalItemsToRawEventDefs(items, gcalTimezone) { - return items.map(function (item) { - return gcalItemToRawEventDef(item, gcalTimezone); - }); -} -function gcalItemToRawEventDef(item, gcalTimezone) { - var url = item.htmlLink || null; - // make the URLs for each event show times in the correct timezone - if (url && gcalTimezone) { - url = injectQsComponent(url, 'ctz=' + gcalTimezone); - } - return { - id: item.id, - title: item.summary, - start: item.start.dateTime || item.start.date, - end: item.end.dateTime || item.end.date, - url: url, - location: item.location, - description: item.description - }; -} -// Injects a string like "arg=value" into the querystring of a URL -// TODO: move to a general util file? -function injectQsComponent(url, component) { - // inject it after the querystring but before the fragment - return url.replace(/(\?.*?)?(#|$)/, function (whole, qs, hash) { - return (qs ? qs + '&' : '?') + component + hash; - }); -} -var main = createPlugin({ - eventSourceDefs: [eventSourceDef] -}); - -export default main; diff --git a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.js b/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.js deleted file mode 100644 index fca85d45..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.js +++ /dev/null @@ -1,170 +0,0 @@ -/*! -FullCalendar Google Calendar Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@fullcalendar/core')) : - typeof define === 'function' && define.amd ? define(['exports', '@fullcalendar/core'], factory) : - (global = global || self, factory(global.FullCalendarGoogleCalendar = {}, global.FullCalendar)); -}(this, function (exports, core) { 'use strict'; - - /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */ - - var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); - }; - - // TODO: expose somehow - var API_BASE = 'https://www.googleapis.com/calendar/v3/calendars'; - var STANDARD_PROPS = { - url: String, - googleCalendarApiKey: String, - googleCalendarId: String, - data: null - }; - var eventSourceDef = { - parseMeta: function (raw) { - if (typeof raw === 'string') { - raw = { url: raw }; - } - if (typeof raw === 'object') { - var standardProps = core.refineProps(raw, STANDARD_PROPS); - if (!standardProps.googleCalendarId && standardProps.url) { - standardProps.googleCalendarId = parseGoogleCalendarId(standardProps.url); - } - delete standardProps.url; - if (standardProps.googleCalendarId) { - return standardProps; - } - } - return null; - }, - fetch: function (arg, onSuccess, onFailure) { - var calendar = arg.calendar; - var meta = arg.eventSource.meta; - var apiKey = meta.googleCalendarApiKey || calendar.opt('googleCalendarApiKey'); - if (!apiKey) { - onFailure({ - message: 'Specify a googleCalendarApiKey. See http://fullcalendar.io/docs/google_calendar/' - }); - } - else { - var url = buildUrl(meta); - var requestParams_1 = buildRequestParams(arg.range, apiKey, meta.data, calendar.dateEnv); - core.requestJson('GET', url, requestParams_1, function (body, xhr) { - if (body.error) { - onFailure({ - message: 'Google Calendar API: ' + body.error.message, - errors: body.error.errors, - xhr: xhr - }); - } - else { - onSuccess({ - rawEvents: gcalItemsToRawEventDefs(body.items, requestParams_1.timeZone), - xhr: xhr - }); - } - }, function (message, xhr) { - onFailure({ message: message, xhr: xhr }); - }); - } - } - }; - function parseGoogleCalendarId(url) { - var match; - // detect if the ID was specified as a single string. - // will match calendars like "asdf1234@calendar.google.com" in addition to person email calendars. - if (/^[^\/]+@([^\/\.]+\.)*(google|googlemail|gmail)\.com$/.test(url)) { - return url; - } - else if ((match = /^https:\/\/www.googleapis.com\/calendar\/v3\/calendars\/([^\/]*)/.exec(url)) || - (match = /^https?:\/\/www.google.com\/calendar\/feeds\/([^\/]*)/.exec(url))) { - return decodeURIComponent(match[1]); - } - } - function buildUrl(meta) { - return API_BASE + '/' + encodeURIComponent(meta.googleCalendarId) + '/events'; - } - function buildRequestParams(range, apiKey, extraParams, dateEnv) { - var params; - var startStr; - var endStr; - if (dateEnv.canComputeOffset) { - // strings will naturally have offsets, which GCal needs - startStr = dateEnv.formatIso(range.start); - endStr = dateEnv.formatIso(range.end); - } - else { - // when timezone isn't known, we don't know what the UTC offset should be, so ask for +/- 1 day - // from the UTC day-start to guarantee we're getting all the events - // (start/end will be UTC-coerced dates, so toISOString is okay) - startStr = core.addDays(range.start, -1).toISOString(); - endStr = core.addDays(range.end, 1).toISOString(); - } - params = __assign({}, (extraParams || {}), { key: apiKey, timeMin: startStr, timeMax: endStr, singleEvents: true, maxResults: 9999 }); - if (dateEnv.timeZone !== 'local') { - params.timeZone = dateEnv.timeZone; - } - return params; - } - function gcalItemsToRawEventDefs(items, gcalTimezone) { - return items.map(function (item) { - return gcalItemToRawEventDef(item, gcalTimezone); - }); - } - function gcalItemToRawEventDef(item, gcalTimezone) { - var url = item.htmlLink || null; - // make the URLs for each event show times in the correct timezone - if (url && gcalTimezone) { - url = injectQsComponent(url, 'ctz=' + gcalTimezone); - } - return { - id: item.id, - title: item.summary, - start: item.start.dateTime || item.start.date, - end: item.end.dateTime || item.end.date, - url: url, - location: item.location, - description: item.description - }; - } - // Injects a string like "arg=value" into the querystring of a URL - // TODO: move to a general util file? - function injectQsComponent(url, component) { - // inject it after the querystring but before the fragment - return url.replace(/(\?.*?)?(#|$)/, function (whole, qs, hash) { - return (qs ? qs + '&' : '?') + component + hash; - }); - } - var main = core.createPlugin({ - eventSourceDefs: [eventSourceDef] - }); - - exports.default = main; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.min.js b/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.min.js deleted file mode 100644 index e7626129..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! -FullCalendar Google Calendar Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ -!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@fullcalendar/core")):"function"==typeof define&&define.amd?define(["exports","@fullcalendar/core"],r):r((e=e||self).FullCalendarGoogleCalendar={},e.FullCalendar)}(this,function(e,r){"use strict";var t=function(){return(t=Object.assign||function(e){for(var r,t=1,n=arguments.length;t void; - onPointerMove: (ev: PointerDragEvent) => void; - onPointerUp: (ev: PointerDragEvent) => void; - startDelay(ev: PointerDragEvent): void; - handleDelayEnd(ev: PointerDragEvent): void; - handleDistanceSurpassed(ev: PointerDragEvent): void; - tryStartDrag(ev: PointerDragEvent): void; - tryStopDrag(ev: PointerDragEvent): void; - stopDrag(ev: PointerDragEvent): void; - setIgnoreMove(bool: boolean): void; - setMirrorIsVisible(bool: boolean): void; - setMirrorNeedsRevert(bool: boolean): void; - setAutoScrollEnabled(bool: boolean): void; - } -} - -declare module '@fullcalendar/interaction/dnd/PointerDragging' { - import { EmitterMixin, PointerDragEvent } from '@fullcalendar/core'; - export { PointerDragging as default, PointerDragging }; - class PointerDragging { - containerEl: EventTarget; - subjectEl: HTMLElement | null; - downEl: HTMLElement | null; - emitter: EmitterMixin; - selector: string; - handleSelector: string; - shouldIgnoreMove: boolean; - shouldWatchScroll: boolean; - isDragging: boolean; - isTouchDragging: boolean; - wasTouchScroll: boolean; - origPageX: number; - origPageY: number; - prevPageX: number; - prevPageY: number; - prevScrollX: number; - prevScrollY: number; - constructor(containerEl: EventTarget); - destroy(): void; - tryStart(ev: UIEvent): boolean; - cleanup(): void; - querySubjectEl(ev: UIEvent): HTMLElement; - handleMouseDown: (ev: MouseEvent) => void; - handleMouseMove: (ev: MouseEvent) => void; - handleMouseUp: (ev: MouseEvent) => void; - shouldIgnoreMouse(): number | boolean; - handleTouchStart: (ev: TouchEvent) => void; - handleTouchMove: (ev: TouchEvent) => void; - handleTouchEnd: (ev: TouchEvent) => void; - handleTouchScroll: () => void; - cancelTouchScroll(): void; - initScrollWatch(ev: PointerDragEvent): void; - recordCoords(ev: PointerDragEvent): void; - handleScroll: (ev: UIEvent) => void; - destroyScrollWatch(): void; - createEventFromMouse(ev: MouseEvent, isFirst?: boolean): PointerDragEvent; - createEventFromTouch(ev: TouchEvent, isFirst?: boolean): PointerDragEvent; - } -} - -declare module '@fullcalendar/interaction/interactions-external/ExternalDraggable' { - import { PointerDragEvent } from '@fullcalendar/core'; - import FeaturefulElementDragging from '@fullcalendar/interaction/dnd/FeaturefulElementDragging'; - import { DragMetaGenerator } from '@fullcalendar/interaction/interactions-external/ExternalElementDragging'; - export interface ExternalDraggableSettings { - eventData?: DragMetaGenerator; - itemSelector?: string; - minDistance?: number; - longPressDelay?: number; - appendTo?: HTMLElement; - } - export { ExternalDraggable as default, ExternalDraggable }; - class ExternalDraggable { - dragging: FeaturefulElementDragging; - settings: ExternalDraggableSettings; - constructor(el: HTMLElement, settings?: ExternalDraggableSettings); - handlePointerDown: (ev: PointerDragEvent) => void; - handleDragStart: (ev: PointerDragEvent) => void; - destroy(): void; - } -} - -declare module '@fullcalendar/interaction/interactions-external/ThirdPartyDraggable' { - import { DragMetaGenerator } from '@fullcalendar/interaction/interactions-external/ExternalElementDragging'; - import InferredElementDragging from '@fullcalendar/interaction/interactions-external/InferredElementDragging'; - export interface ThirdPartyDraggableSettings { - eventData?: DragMetaGenerator; - itemSelector?: string; - mirrorSelector?: string; - } - export { ThirdPartyDraggable as default, ThirdPartyDraggable }; - class ThirdPartyDraggable { - dragging: InferredElementDragging; - constructor(containerOrSettings?: EventTarget | ThirdPartyDraggableSettings, settings?: ThirdPartyDraggableSettings); - destroy(): void; - } -} - -declare module '@fullcalendar/interaction/dnd/ElementMirror' { - import { Rect } from '@fullcalendar/core'; - export { ElementMirror as default, ElementMirror }; - class ElementMirror { - isVisible: boolean; - origScreenX?: number; - origScreenY?: number; - deltaX?: number; - deltaY?: number; - sourceEl: HTMLElement | null; - mirrorEl: HTMLElement | null; - sourceElRect: Rect | null; - parentNode: HTMLElement; - zIndex: number; - revertDuration: number; - start(sourceEl: HTMLElement, pageX: number, pageY: number): void; - handleMove(pageX: number, pageY: number): void; - setIsVisible(bool: boolean): void; - stop(needsRevertAnimation: boolean, callback: () => void): void; - doRevertAnimation(callback: () => void, revertDuration: number): void; - cleanup(): void; - updateElPosition(): void; - getMirrorEl(): HTMLElement; - } -} - -declare module '@fullcalendar/interaction/dnd/AutoScroller' { - import { ScrollGeomCache } from '@fullcalendar/interaction/scroll-geom-cache'; - export { AutoScroller as default, AutoScroller }; - class AutoScroller { - isEnabled: boolean; - scrollQuery: (Window | string)[]; - edgeThreshold: number; - maxVelocity: number; - pointerScreenX: number | null; - pointerScreenY: number | null; - isAnimating: boolean; - scrollCaches: ScrollGeomCache[] | null; - msSinceRequest?: number; - everMovedUp: boolean; - everMovedDown: boolean; - everMovedLeft: boolean; - everMovedRight: boolean; - start(pageX: number, pageY: number): void; - handleMove(pageX: number, pageY: number): void; - stop(): void; - requestAnimation(now: number): void; - } -} - -declare module '@fullcalendar/interaction/interactions-external/ExternalElementDragging' { - import { Hit, PointerDragEvent, EventTuple, DatePointApi, Calendar, EventInteractionState, DragMetaInput, DragMeta, View, ElementDragging } from '@fullcalendar/core'; - import HitDragging from '@fullcalendar/interaction/interactions/HitDragging'; - export type DragMetaGenerator = DragMetaInput | ((el: HTMLElement) => DragMetaInput); - export interface ExternalDropApi extends DatePointApi { - draggedEl: HTMLElement; - jsEvent: UIEvent; - view: View; - } - export { ExternalElementDragging as default, ExternalElementDragging }; - class ExternalElementDragging { - hitDragging: HitDragging; - receivingCalendar: Calendar | null; - droppableEvent: EventTuple | null; - suppliedDragMeta: DragMetaGenerator | null; - dragMeta: DragMeta | null; - constructor(dragging: ElementDragging, suppliedDragMeta?: DragMetaGenerator); - handleDragStart: (ev: PointerDragEvent) => void; - buildDragMeta(subjectEl: HTMLElement): DragMeta; - handleHitUpdate: (hit: Hit, isFinal: boolean, ev: PointerDragEvent) => void; - handleDragEnd: (pev: PointerDragEvent) => void; - displayDrag(nextCalendar: Calendar | null, state: EventInteractionState): void; - clearDrag(): void; - canDropElOnCalendar(el: HTMLElement, receivingCalendar: Calendar): boolean; - } -} - -declare module '@fullcalendar/interaction/interactions-external/InferredElementDragging' { - import { PointerDragEvent, ElementDragging } from '@fullcalendar/core'; - import PointerDragging from '@fullcalendar/interaction/dnd/PointerDragging'; - export { InferredElementDragging as default, InferredElementDragging }; - class InferredElementDragging extends ElementDragging { - pointer: PointerDragging; - shouldIgnoreMove: boolean; - mirrorSelector: string; - currentMirrorEl: HTMLElement | null; - constructor(containerEl: HTMLElement); - destroy(): void; - handlePointerDown: (ev: PointerDragEvent) => void; - handlePointerMove: (ev: PointerDragEvent) => void; - handlePointerUp: (ev: PointerDragEvent) => void; - setIgnoreMove(bool: boolean): void; - setMirrorIsVisible(bool: boolean): void; - } -} - -declare module '@fullcalendar/interaction/scroll-geom-cache' { - import { Rect, ScrollController } from '@fullcalendar/core'; - export abstract class ScrollGeomCache extends ScrollController { - clientRect: Rect; - origScrollTop: number; - origScrollLeft: number; - protected scrollController: ScrollController; - protected doesListening: boolean; - protected scrollTop: number; - protected scrollLeft: number; - protected scrollWidth: number; - protected scrollHeight: number; - protected clientWidth: number; - protected clientHeight: number; - constructor(scrollController: ScrollController, doesListening: boolean); - abstract getEventTarget(): EventTarget; - abstract computeClientRect(): Rect; - destroy(): void; - handleScroll: () => void; - getScrollTop(): number; - getScrollLeft(): number; - setScrollTop(top: number): void; - setScrollLeft(top: number): void; - getClientWidth(): number; - getClientHeight(): number; - getScrollWidth(): number; - getScrollHeight(): number; - handleScrollChange(): void; - } - export class ElementScrollGeomCache extends ScrollGeomCache { - constructor(el: HTMLElement, doesListening: boolean); - getEventTarget(): EventTarget; - computeClientRect(): { - left: number; - right: number; - top: number; - bottom: number; - }; - } - export class WindowScrollGeomCache extends ScrollGeomCache { - constructor(doesListening: boolean); - getEventTarget(): EventTarget; - computeClientRect(): Rect; - handleScrollChange(): void; - } -} - -declare module '@fullcalendar/interaction/interactions/HitDragging' { - import { EmitterMixin, PointerDragEvent, Point, Hit, InteractionSettingsStore, ElementDragging } from '@fullcalendar/core'; - import OffsetTracker from '@fullcalendar/interaction/OffsetTracker'; - export { HitDragging as default, HitDragging }; - class HitDragging { - droppableStore: InteractionSettingsStore; - dragging: ElementDragging; - emitter: EmitterMixin; - useSubjectCenter: boolean; - requireInitial: boolean; - offsetTrackers: { - [componentUid: string]: OffsetTracker; - }; - initialHit: Hit | null; - movingHit: Hit | null; - finalHit: Hit | null; - coordAdjust?: Point; - constructor(dragging: ElementDragging, droppableStore: InteractionSettingsStore); - handlePointerDown: (ev: PointerDragEvent) => void; - processFirstCoord(ev: PointerDragEvent): void; - handleDragStart: (ev: PointerDragEvent) => void; - handleDragMove: (ev: PointerDragEvent) => void; - handlePointerUp: (ev: PointerDragEvent) => void; - handleDragEnd: (ev: PointerDragEvent) => void; - handleMove(ev: PointerDragEvent, forceHandle?: boolean): void; - prepareHits(): void; - releaseHits(): void; - queryHitForOffset(offsetLeft: number, offsetTop: number): Hit | null; - } - export function isHitsEqual(hit0: Hit | null, hit1: Hit | null): boolean; -} - -declare module '@fullcalendar/interaction/OffsetTracker' { - import { Rect } from '@fullcalendar/core'; - import { ElementScrollGeomCache } from '@fullcalendar/interaction/scroll-geom-cache'; - export { OffsetTracker as default, OffsetTracker }; - class OffsetTracker { - scrollCaches: ElementScrollGeomCache[]; - origRect: Rect; - constructor(el: HTMLElement); - destroy(): void; - computeLeft(): number; - computeTop(): number; - isWithinClipping(pageX: number, pageY: number): boolean; - } -} - diff --git a/htdocs/public/high/plugins/fullcalendar/packages/interaction/main.esm.js b/htdocs/public/high/plugins/fullcalendar/packages/interaction/main.esm.js deleted file mode 100644 index 13f834e7..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/interaction/main.esm.js +++ /dev/null @@ -1,2132 +0,0 @@ -/*! -FullCalendar Interaction Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -import { config, elementClosest, EmitterMixin, applyStyle, whenTransitionDone, removeElement, ScrollController, ElementScrollController, computeInnerRect, WindowScrollController, preventSelection, preventContextMenu, allowSelection, allowContextMenu, ElementDragging, computeRect, getClippingParents, pointInsideRect, isDateSpansEqual, constrainPoint, intersectRects, getRectCenter, diffPoints, mapHash, rangeContainsRange, interactionSettingsToStore, Interaction, enableCursor, disableCursor, compareNumbers, getElSeg, getRelevantEvents, EventApi, createEmptyEventStore, applyMutationToEventStore, interactionSettingsStore, startOfDay, diffDates, createDuration, eventTupleToStore, isInteractionValid, parseDragMeta, elementMatches, parseEventDef, createEventInstance, globalDefaults, createPlugin } from '@fullcalendar/core'; - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; - -config.touchMouseIgnoreWait = 500; -var ignoreMouseDepth = 0; -var listenerCnt = 0; -var isWindowTouchMoveCancelled = false; -/* -Uses a "pointer" abstraction, which monitors UI events for both mouse and touch. -Tracks when the pointer "drags" on a certain element, meaning down+move+up. - -Also, tracks if there was touch-scrolling. -Also, can prevent touch-scrolling from happening. -Also, can fire pointermove events when scrolling happens underneath, even when no real pointer movement. - -emits: -- pointerdown -- pointermove -- pointerup -*/ -var PointerDragging = /** @class */ (function () { - function PointerDragging(containerEl) { - var _this = this; - this.subjectEl = null; - this.downEl = null; - // options that can be directly assigned by caller - this.selector = ''; // will cause subjectEl in all emitted events to be this element - this.handleSelector = ''; - this.shouldIgnoreMove = false; - this.shouldWatchScroll = true; // for simulating pointermove on scroll - // internal states - this.isDragging = false; - this.isTouchDragging = false; - this.wasTouchScroll = false; - // Mouse - // ---------------------------------------------------------------------------------------------------- - this.handleMouseDown = function (ev) { - if (!_this.shouldIgnoreMouse() && - isPrimaryMouseButton(ev) && - _this.tryStart(ev)) { - var pev = _this.createEventFromMouse(ev, true); - _this.emitter.trigger('pointerdown', pev); - _this.initScrollWatch(pev); - if (!_this.shouldIgnoreMove) { - document.addEventListener('mousemove', _this.handleMouseMove); - } - document.addEventListener('mouseup', _this.handleMouseUp); - } - }; - this.handleMouseMove = function (ev) { - var pev = _this.createEventFromMouse(ev); - _this.recordCoords(pev); - _this.emitter.trigger('pointermove', pev); - }; - this.handleMouseUp = function (ev) { - document.removeEventListener('mousemove', _this.handleMouseMove); - document.removeEventListener('mouseup', _this.handleMouseUp); - _this.emitter.trigger('pointerup', _this.createEventFromMouse(ev)); - _this.cleanup(); // call last so that pointerup has access to props - }; - // Touch - // ---------------------------------------------------------------------------------------------------- - this.handleTouchStart = function (ev) { - if (_this.tryStart(ev)) { - _this.isTouchDragging = true; - var pev = _this.createEventFromTouch(ev, true); - _this.emitter.trigger('pointerdown', pev); - _this.initScrollWatch(pev); - // unlike mouse, need to attach to target, not document - // https://stackoverflow.com/a/45760014 - var target = ev.target; - if (!_this.shouldIgnoreMove) { - target.addEventListener('touchmove', _this.handleTouchMove); - } - target.addEventListener('touchend', _this.handleTouchEnd); - target.addEventListener('touchcancel', _this.handleTouchEnd); // treat it as a touch end - // attach a handler to get called when ANY scroll action happens on the page. - // this was impossible to do with normal on/off because 'scroll' doesn't bubble. - // http://stackoverflow.com/a/32954565/96342 - window.addEventListener('scroll', _this.handleTouchScroll, true // useCapture - ); - } - }; - this.handleTouchMove = function (ev) { - var pev = _this.createEventFromTouch(ev); - _this.recordCoords(pev); - _this.emitter.trigger('pointermove', pev); - }; - this.handleTouchEnd = function (ev) { - if (_this.isDragging) { // done to guard against touchend followed by touchcancel - var target = ev.target; - target.removeEventListener('touchmove', _this.handleTouchMove); - target.removeEventListener('touchend', _this.handleTouchEnd); - target.removeEventListener('touchcancel', _this.handleTouchEnd); - window.removeEventListener('scroll', _this.handleTouchScroll, true); // useCaptured=true - _this.emitter.trigger('pointerup', _this.createEventFromTouch(ev)); - _this.cleanup(); // call last so that pointerup has access to props - _this.isTouchDragging = false; - startIgnoringMouse(); - } - }; - this.handleTouchScroll = function () { - _this.wasTouchScroll = true; - }; - this.handleScroll = function (ev) { - if (!_this.shouldIgnoreMove) { - var pageX = (window.pageXOffset - _this.prevScrollX) + _this.prevPageX; - var pageY = (window.pageYOffset - _this.prevScrollY) + _this.prevPageY; - _this.emitter.trigger('pointermove', { - origEvent: ev, - isTouch: _this.isTouchDragging, - subjectEl: _this.subjectEl, - pageX: pageX, - pageY: pageY, - deltaX: pageX - _this.origPageX, - deltaY: pageY - _this.origPageY - }); - } - }; - this.containerEl = containerEl; - this.emitter = new EmitterMixin(); - containerEl.addEventListener('mousedown', this.handleMouseDown); - containerEl.addEventListener('touchstart', this.handleTouchStart, { passive: true }); - listenerCreated(); - } - PointerDragging.prototype.destroy = function () { - this.containerEl.removeEventListener('mousedown', this.handleMouseDown); - this.containerEl.removeEventListener('touchstart', this.handleTouchStart, { passive: true }); - listenerDestroyed(); - }; - PointerDragging.prototype.tryStart = function (ev) { - var subjectEl = this.querySubjectEl(ev); - var downEl = ev.target; - if (subjectEl && - (!this.handleSelector || elementClosest(downEl, this.handleSelector))) { - this.subjectEl = subjectEl; - this.downEl = downEl; - this.isDragging = true; // do this first so cancelTouchScroll will work - this.wasTouchScroll = false; - return true; - } - return false; - }; - PointerDragging.prototype.cleanup = function () { - isWindowTouchMoveCancelled = false; - this.isDragging = false; - this.subjectEl = null; - this.downEl = null; - // keep wasTouchScroll around for later access - this.destroyScrollWatch(); - }; - PointerDragging.prototype.querySubjectEl = function (ev) { - if (this.selector) { - return elementClosest(ev.target, this.selector); - } - else { - return this.containerEl; - } - }; - PointerDragging.prototype.shouldIgnoreMouse = function () { - return ignoreMouseDepth || this.isTouchDragging; - }; - // can be called by user of this class, to cancel touch-based scrolling for the current drag - PointerDragging.prototype.cancelTouchScroll = function () { - if (this.isDragging) { - isWindowTouchMoveCancelled = true; - } - }; - // Scrolling that simulates pointermoves - // ---------------------------------------------------------------------------------------------------- - PointerDragging.prototype.initScrollWatch = function (ev) { - if (this.shouldWatchScroll) { - this.recordCoords(ev); - window.addEventListener('scroll', this.handleScroll, true); // useCapture=true - } - }; - PointerDragging.prototype.recordCoords = function (ev) { - if (this.shouldWatchScroll) { - this.prevPageX = ev.pageX; - this.prevPageY = ev.pageY; - this.prevScrollX = window.pageXOffset; - this.prevScrollY = window.pageYOffset; - } - }; - PointerDragging.prototype.destroyScrollWatch = function () { - if (this.shouldWatchScroll) { - window.removeEventListener('scroll', this.handleScroll, true); // useCaptured=true - } - }; - // Event Normalization - // ---------------------------------------------------------------------------------------------------- - PointerDragging.prototype.createEventFromMouse = function (ev, isFirst) { - var deltaX = 0; - var deltaY = 0; - // TODO: repeat code - if (isFirst) { - this.origPageX = ev.pageX; - this.origPageY = ev.pageY; - } - else { - deltaX = ev.pageX - this.origPageX; - deltaY = ev.pageY - this.origPageY; - } - return { - origEvent: ev, - isTouch: false, - subjectEl: this.subjectEl, - pageX: ev.pageX, - pageY: ev.pageY, - deltaX: deltaX, - deltaY: deltaY - }; - }; - PointerDragging.prototype.createEventFromTouch = function (ev, isFirst) { - var touches = ev.touches; - var pageX; - var pageY; - var deltaX = 0; - var deltaY = 0; - // if touch coords available, prefer, - // because FF would give bad ev.pageX ev.pageY - if (touches && touches.length) { - pageX = touches[0].pageX; - pageY = touches[0].pageY; - } - else { - pageX = ev.pageX; - pageY = ev.pageY; - } - // TODO: repeat code - if (isFirst) { - this.origPageX = pageX; - this.origPageY = pageY; - } - else { - deltaX = pageX - this.origPageX; - deltaY = pageY - this.origPageY; - } - return { - origEvent: ev, - isTouch: true, - subjectEl: this.subjectEl, - pageX: pageX, - pageY: pageY, - deltaX: deltaX, - deltaY: deltaY - }; - }; - return PointerDragging; -}()); -// Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac) -function isPrimaryMouseButton(ev) { - return ev.button === 0 && !ev.ctrlKey; -} -// Ignoring fake mouse events generated by touch -// ---------------------------------------------------------------------------------------------------- -function startIgnoringMouse() { - ignoreMouseDepth++; - setTimeout(function () { - ignoreMouseDepth--; - }, config.touchMouseIgnoreWait); -} -// We want to attach touchmove as early as possible for Safari -// ---------------------------------------------------------------------------------------------------- -function listenerCreated() { - if (!(listenerCnt++)) { - window.addEventListener('touchmove', onWindowTouchMove, { passive: false }); - } -} -function listenerDestroyed() { - if (!(--listenerCnt)) { - window.removeEventListener('touchmove', onWindowTouchMove, { passive: false }); - } -} -function onWindowTouchMove(ev) { - if (isWindowTouchMoveCancelled) { - ev.preventDefault(); - } -} - -/* -An effect in which an element follows the movement of a pointer across the screen. -The moving element is a clone of some other element. -Must call start + handleMove + stop. -*/ -var ElementMirror = /** @class */ (function () { - function ElementMirror() { - this.isVisible = false; // must be explicitly enabled - this.sourceEl = null; - this.mirrorEl = null; - this.sourceElRect = null; // screen coords relative to viewport - // options that can be set directly by caller - this.parentNode = document.body; - this.zIndex = 9999; - this.revertDuration = 0; - } - ElementMirror.prototype.start = function (sourceEl, pageX, pageY) { - this.sourceEl = sourceEl; - this.sourceElRect = this.sourceEl.getBoundingClientRect(); - this.origScreenX = pageX - window.pageXOffset; - this.origScreenY = pageY - window.pageYOffset; - this.deltaX = 0; - this.deltaY = 0; - this.updateElPosition(); - }; - ElementMirror.prototype.handleMove = function (pageX, pageY) { - this.deltaX = (pageX - window.pageXOffset) - this.origScreenX; - this.deltaY = (pageY - window.pageYOffset) - this.origScreenY; - this.updateElPosition(); - }; - // can be called before start - ElementMirror.prototype.setIsVisible = function (bool) { - if (bool) { - if (!this.isVisible) { - if (this.mirrorEl) { - this.mirrorEl.style.display = ''; - } - this.isVisible = bool; // needs to happen before updateElPosition - this.updateElPosition(); // because was not updating the position while invisible - } - } - else { - if (this.isVisible) { - if (this.mirrorEl) { - this.mirrorEl.style.display = 'none'; - } - this.isVisible = bool; - } - } - }; - // always async - ElementMirror.prototype.stop = function (needsRevertAnimation, callback) { - var _this = this; - var done = function () { - _this.cleanup(); - callback(); - }; - if (needsRevertAnimation && - this.mirrorEl && - this.isVisible && - this.revertDuration && // if 0, transition won't work - (this.deltaX || this.deltaY) // if same coords, transition won't work - ) { - this.doRevertAnimation(done, this.revertDuration); - } - else { - setTimeout(done, 0); - } - }; - ElementMirror.prototype.doRevertAnimation = function (callback, revertDuration) { - var mirrorEl = this.mirrorEl; - var finalSourceElRect = this.sourceEl.getBoundingClientRect(); // because autoscrolling might have happened - mirrorEl.style.transition = - 'top ' + revertDuration + 'ms,' + - 'left ' + revertDuration + 'ms'; - applyStyle(mirrorEl, { - left: finalSourceElRect.left, - top: finalSourceElRect.top - }); - whenTransitionDone(mirrorEl, function () { - mirrorEl.style.transition = ''; - callback(); - }); - }; - ElementMirror.prototype.cleanup = function () { - if (this.mirrorEl) { - removeElement(this.mirrorEl); - this.mirrorEl = null; - } - this.sourceEl = null; - }; - ElementMirror.prototype.updateElPosition = function () { - if (this.sourceEl && this.isVisible) { - applyStyle(this.getMirrorEl(), { - left: this.sourceElRect.left + this.deltaX, - top: this.sourceElRect.top + this.deltaY - }); - } - }; - ElementMirror.prototype.getMirrorEl = function () { - var sourceElRect = this.sourceElRect; - var mirrorEl = this.mirrorEl; - if (!mirrorEl) { - mirrorEl = this.mirrorEl = this.sourceEl.cloneNode(true); // cloneChildren=true - // we don't want long taps or any mouse interaction causing selection/menus. - // would use preventSelection(), but that prevents selectstart, causing problems. - mirrorEl.classList.add('fc-unselectable'); - mirrorEl.classList.add('fc-dragging'); - applyStyle(mirrorEl, { - position: 'fixed', - zIndex: this.zIndex, - visibility: '', - boxSizing: 'border-box', - width: sourceElRect.right - sourceElRect.left, - height: sourceElRect.bottom - sourceElRect.top, - right: 'auto', - bottom: 'auto', - margin: 0 - }); - this.parentNode.appendChild(mirrorEl); - } - return mirrorEl; - }; - return ElementMirror; -}()); - -/* -Is a cache for a given element's scroll information (all the info that ScrollController stores) -in addition the "client rectangle" of the element.. the area within the scrollbars. - -The cache can be in one of two modes: -- doesListening:false - ignores when the container is scrolled by someone else -- doesListening:true - watch for scrolling and update the cache -*/ -var ScrollGeomCache = /** @class */ (function (_super) { - __extends(ScrollGeomCache, _super); - function ScrollGeomCache(scrollController, doesListening) { - var _this = _super.call(this) || this; - _this.handleScroll = function () { - _this.scrollTop = _this.scrollController.getScrollTop(); - _this.scrollLeft = _this.scrollController.getScrollLeft(); - _this.handleScrollChange(); - }; - _this.scrollController = scrollController; - _this.doesListening = doesListening; - _this.scrollTop = _this.origScrollTop = scrollController.getScrollTop(); - _this.scrollLeft = _this.origScrollLeft = scrollController.getScrollLeft(); - _this.scrollWidth = scrollController.getScrollWidth(); - _this.scrollHeight = scrollController.getScrollHeight(); - _this.clientWidth = scrollController.getClientWidth(); - _this.clientHeight = scrollController.getClientHeight(); - _this.clientRect = _this.computeClientRect(); // do last in case it needs cached values - if (_this.doesListening) { - _this.getEventTarget().addEventListener('scroll', _this.handleScroll); - } - return _this; - } - ScrollGeomCache.prototype.destroy = function () { - if (this.doesListening) { - this.getEventTarget().removeEventListener('scroll', this.handleScroll); - } - }; - ScrollGeomCache.prototype.getScrollTop = function () { - return this.scrollTop; - }; - ScrollGeomCache.prototype.getScrollLeft = function () { - return this.scrollLeft; - }; - ScrollGeomCache.prototype.setScrollTop = function (top) { - this.scrollController.setScrollTop(top); - if (!this.doesListening) { - // we are not relying on the element to normalize out-of-bounds scroll values - // so we need to sanitize ourselves - this.scrollTop = Math.max(Math.min(top, this.getMaxScrollTop()), 0); - this.handleScrollChange(); - } - }; - ScrollGeomCache.prototype.setScrollLeft = function (top) { - this.scrollController.setScrollLeft(top); - if (!this.doesListening) { - // we are not relying on the element to normalize out-of-bounds scroll values - // so we need to sanitize ourselves - this.scrollLeft = Math.max(Math.min(top, this.getMaxScrollLeft()), 0); - this.handleScrollChange(); - } - }; - ScrollGeomCache.prototype.getClientWidth = function () { - return this.clientWidth; - }; - ScrollGeomCache.prototype.getClientHeight = function () { - return this.clientHeight; - }; - ScrollGeomCache.prototype.getScrollWidth = function () { - return this.scrollWidth; - }; - ScrollGeomCache.prototype.getScrollHeight = function () { - return this.scrollHeight; - }; - ScrollGeomCache.prototype.handleScrollChange = function () { - }; - return ScrollGeomCache; -}(ScrollController)); -var ElementScrollGeomCache = /** @class */ (function (_super) { - __extends(ElementScrollGeomCache, _super); - function ElementScrollGeomCache(el, doesListening) { - return _super.call(this, new ElementScrollController(el), doesListening) || this; - } - ElementScrollGeomCache.prototype.getEventTarget = function () { - return this.scrollController.el; - }; - ElementScrollGeomCache.prototype.computeClientRect = function () { - return computeInnerRect(this.scrollController.el); - }; - return ElementScrollGeomCache; -}(ScrollGeomCache)); -var WindowScrollGeomCache = /** @class */ (function (_super) { - __extends(WindowScrollGeomCache, _super); - function WindowScrollGeomCache(doesListening) { - return _super.call(this, new WindowScrollController(), doesListening) || this; - } - WindowScrollGeomCache.prototype.getEventTarget = function () { - return window; - }; - WindowScrollGeomCache.prototype.computeClientRect = function () { - return { - left: this.scrollLeft, - right: this.scrollLeft + this.clientWidth, - top: this.scrollTop, - bottom: this.scrollTop + this.clientHeight - }; - }; - // the window is the only scroll object that changes it's rectangle relative - // to the document's topleft as it scrolls - WindowScrollGeomCache.prototype.handleScrollChange = function () { - this.clientRect = this.computeClientRect(); - }; - return WindowScrollGeomCache; -}(ScrollGeomCache)); - -// If available we are using native "performance" API instead of "Date" -// Read more about it on MDN: -// https://developer.mozilla.org/en-US/docs/Web/API/Performance -var getTime = typeof performance === 'function' ? performance.now : Date.now; -/* -For a pointer interaction, automatically scrolls certain scroll containers when the pointer -approaches the edge. - -The caller must call start + handleMove + stop. -*/ -var AutoScroller = /** @class */ (function () { - function AutoScroller() { - var _this = this; - // options that can be set by caller - this.isEnabled = true; - this.scrollQuery = [window, '.fc-scroller']; - this.edgeThreshold = 50; // pixels - this.maxVelocity = 300; // pixels per second - // internal state - this.pointerScreenX = null; - this.pointerScreenY = null; - this.isAnimating = false; - this.scrollCaches = null; - // protect against the initial pointerdown being too close to an edge and starting the scroll - this.everMovedUp = false; - this.everMovedDown = false; - this.everMovedLeft = false; - this.everMovedRight = false; - this.animate = function () { - if (_this.isAnimating) { // wasn't cancelled between animation calls - var edge = _this.computeBestEdge(_this.pointerScreenX + window.pageXOffset, _this.pointerScreenY + window.pageYOffset); - if (edge) { - var now = getTime(); - _this.handleSide(edge, (now - _this.msSinceRequest) / 1000); - _this.requestAnimation(now); - } - else { - _this.isAnimating = false; // will stop animation - } - } - }; - } - AutoScroller.prototype.start = function (pageX, pageY) { - if (this.isEnabled) { - this.scrollCaches = this.buildCaches(); - this.pointerScreenX = null; - this.pointerScreenY = null; - this.everMovedUp = false; - this.everMovedDown = false; - this.everMovedLeft = false; - this.everMovedRight = false; - this.handleMove(pageX, pageY); - } - }; - AutoScroller.prototype.handleMove = function (pageX, pageY) { - if (this.isEnabled) { - var pointerScreenX = pageX - window.pageXOffset; - var pointerScreenY = pageY - window.pageYOffset; - var yDelta = this.pointerScreenY === null ? 0 : pointerScreenY - this.pointerScreenY; - var xDelta = this.pointerScreenX === null ? 0 : pointerScreenX - this.pointerScreenX; - if (yDelta < 0) { - this.everMovedUp = true; - } - else if (yDelta > 0) { - this.everMovedDown = true; - } - if (xDelta < 0) { - this.everMovedLeft = true; - } - else if (xDelta > 0) { - this.everMovedRight = true; - } - this.pointerScreenX = pointerScreenX; - this.pointerScreenY = pointerScreenY; - if (!this.isAnimating) { - this.isAnimating = true; - this.requestAnimation(getTime()); - } - } - }; - AutoScroller.prototype.stop = function () { - if (this.isEnabled) { - this.isAnimating = false; // will stop animation - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - scrollCache.destroy(); - } - this.scrollCaches = null; - } - }; - AutoScroller.prototype.requestAnimation = function (now) { - this.msSinceRequest = now; - requestAnimationFrame(this.animate); - }; - AutoScroller.prototype.handleSide = function (edge, seconds) { - var scrollCache = edge.scrollCache; - var edgeThreshold = this.edgeThreshold; - var invDistance = edgeThreshold - edge.distance; - var velocity = // the closer to the edge, the faster we scroll - (invDistance * invDistance) / (edgeThreshold * edgeThreshold) * // quadratic - this.maxVelocity * seconds; - var sign = 1; - switch (edge.name) { - case 'left': - sign = -1; - // falls through - case 'right': - scrollCache.setScrollLeft(scrollCache.getScrollLeft() + velocity * sign); - break; - case 'top': - sign = -1; - // falls through - case 'bottom': - scrollCache.setScrollTop(scrollCache.getScrollTop() + velocity * sign); - break; - } - }; - // left/top are relative to document topleft - AutoScroller.prototype.computeBestEdge = function (left, top) { - var edgeThreshold = this.edgeThreshold; - var bestSide = null; - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - var rect = scrollCache.clientRect; - var leftDist = left - rect.left; - var rightDist = rect.right - left; - var topDist = top - rect.top; - var bottomDist = rect.bottom - top; - // completely within the rect? - if (leftDist >= 0 && rightDist >= 0 && topDist >= 0 && bottomDist >= 0) { - if (topDist <= edgeThreshold && this.everMovedUp && scrollCache.canScrollUp() && - (!bestSide || bestSide.distance > topDist)) { - bestSide = { scrollCache: scrollCache, name: 'top', distance: topDist }; - } - if (bottomDist <= edgeThreshold && this.everMovedDown && scrollCache.canScrollDown() && - (!bestSide || bestSide.distance > bottomDist)) { - bestSide = { scrollCache: scrollCache, name: 'bottom', distance: bottomDist }; - } - if (leftDist <= edgeThreshold && this.everMovedLeft && scrollCache.canScrollLeft() && - (!bestSide || bestSide.distance > leftDist)) { - bestSide = { scrollCache: scrollCache, name: 'left', distance: leftDist }; - } - if (rightDist <= edgeThreshold && this.everMovedRight && scrollCache.canScrollRight() && - (!bestSide || bestSide.distance > rightDist)) { - bestSide = { scrollCache: scrollCache, name: 'right', distance: rightDist }; - } - } - } - return bestSide; - }; - AutoScroller.prototype.buildCaches = function () { - return this.queryScrollEls().map(function (el) { - if (el === window) { - return new WindowScrollGeomCache(false); // false = don't listen to user-generated scrolls - } - else { - return new ElementScrollGeomCache(el, false); // false = don't listen to user-generated scrolls - } - }); - }; - AutoScroller.prototype.queryScrollEls = function () { - var els = []; - for (var _i = 0, _a = this.scrollQuery; _i < _a.length; _i++) { - var query = _a[_i]; - if (typeof query === 'object') { - els.push(query); - } - else { - els.push.apply(els, Array.prototype.slice.call(document.querySelectorAll(query))); - } - } - return els; - }; - return AutoScroller; -}()); - -/* -Monitors dragging on an element. Has a number of high-level features: -- minimum distance required before dragging -- minimum wait time ("delay") before dragging -- a mirror element that follows the pointer -*/ -var FeaturefulElementDragging = /** @class */ (function (_super) { - __extends(FeaturefulElementDragging, _super); - function FeaturefulElementDragging(containerEl) { - var _this = _super.call(this, containerEl) || this; - // options that can be directly set by caller - // the caller can also set the PointerDragging's options as well - _this.delay = null; - _this.minDistance = 0; - _this.touchScrollAllowed = true; // prevents drag from starting and blocks scrolling during drag - _this.mirrorNeedsRevert = false; - _this.isInteracting = false; // is the user validly moving the pointer? lasts until pointerup - _this.isDragging = false; // is it INTENTFULLY dragging? lasts until after revert animation - _this.isDelayEnded = false; - _this.isDistanceSurpassed = false; - _this.delayTimeoutId = null; - _this.onPointerDown = function (ev) { - if (!_this.isDragging) { // so new drag doesn't happen while revert animation is going - _this.isInteracting = true; - _this.isDelayEnded = false; - _this.isDistanceSurpassed = false; - preventSelection(document.body); - preventContextMenu(document.body); - // prevent links from being visited if there's an eventual drag. - // also prevents selection in older browsers (maybe?). - // not necessary for touch, besides, browser would complain about passiveness. - if (!ev.isTouch) { - ev.origEvent.preventDefault(); - } - _this.emitter.trigger('pointerdown', ev); - if (!_this.pointer.shouldIgnoreMove) { - // actions related to initiating dragstart+dragmove+dragend... - _this.mirror.setIsVisible(false); // reset. caller must set-visible - _this.mirror.start(ev.subjectEl, ev.pageX, ev.pageY); // must happen on first pointer down - _this.startDelay(ev); - if (!_this.minDistance) { - _this.handleDistanceSurpassed(ev); - } - } - } - }; - _this.onPointerMove = function (ev) { - if (_this.isInteracting) { // if false, still waiting for previous drag's revert - _this.emitter.trigger('pointermove', ev); - if (!_this.isDistanceSurpassed) { - var minDistance = _this.minDistance; - var distanceSq = void 0; // current distance from the origin, squared - var deltaX = ev.deltaX, deltaY = ev.deltaY; - distanceSq = deltaX * deltaX + deltaY * deltaY; - if (distanceSq >= minDistance * minDistance) { // use pythagorean theorem - _this.handleDistanceSurpassed(ev); - } - } - if (_this.isDragging) { - // a real pointer move? (not one simulated by scrolling) - if (ev.origEvent.type !== 'scroll') { - _this.mirror.handleMove(ev.pageX, ev.pageY); - _this.autoScroller.handleMove(ev.pageX, ev.pageY); - } - _this.emitter.trigger('dragmove', ev); - } - } - }; - _this.onPointerUp = function (ev) { - if (_this.isInteracting) { // if false, still waiting for previous drag's revert - _this.isInteracting = false; - allowSelection(document.body); - allowContextMenu(document.body); - _this.emitter.trigger('pointerup', ev); // can potentially set mirrorNeedsRevert - if (_this.isDragging) { - _this.autoScroller.stop(); - _this.tryStopDrag(ev); // which will stop the mirror - } - if (_this.delayTimeoutId) { - clearTimeout(_this.delayTimeoutId); - _this.delayTimeoutId = null; - } - } - }; - var pointer = _this.pointer = new PointerDragging(containerEl); - pointer.emitter.on('pointerdown', _this.onPointerDown); - pointer.emitter.on('pointermove', _this.onPointerMove); - pointer.emitter.on('pointerup', _this.onPointerUp); - _this.mirror = new ElementMirror(); - _this.autoScroller = new AutoScroller(); - return _this; - } - FeaturefulElementDragging.prototype.destroy = function () { - this.pointer.destroy(); - }; - FeaturefulElementDragging.prototype.startDelay = function (ev) { - var _this = this; - if (typeof this.delay === 'number') { - this.delayTimeoutId = setTimeout(function () { - _this.delayTimeoutId = null; - _this.handleDelayEnd(ev); - }, this.delay); // not assignable to number! - } - else { - this.handleDelayEnd(ev); - } - }; - FeaturefulElementDragging.prototype.handleDelayEnd = function (ev) { - this.isDelayEnded = true; - this.tryStartDrag(ev); - }; - FeaturefulElementDragging.prototype.handleDistanceSurpassed = function (ev) { - this.isDistanceSurpassed = true; - this.tryStartDrag(ev); - }; - FeaturefulElementDragging.prototype.tryStartDrag = function (ev) { - if (this.isDelayEnded && this.isDistanceSurpassed) { - if (!this.pointer.wasTouchScroll || this.touchScrollAllowed) { - this.isDragging = true; - this.mirrorNeedsRevert = false; - this.autoScroller.start(ev.pageX, ev.pageY); - this.emitter.trigger('dragstart', ev); - if (this.touchScrollAllowed === false) { - this.pointer.cancelTouchScroll(); - } - } - } - }; - FeaturefulElementDragging.prototype.tryStopDrag = function (ev) { - // .stop() is ALWAYS asynchronous, which we NEED because we want all pointerup events - // that come from the document to fire beforehand. much more convenient this way. - this.mirror.stop(this.mirrorNeedsRevert, this.stopDrag.bind(this, ev) // bound with args - ); - }; - FeaturefulElementDragging.prototype.stopDrag = function (ev) { - this.isDragging = false; - this.emitter.trigger('dragend', ev); - }; - // fill in the implementations... - FeaturefulElementDragging.prototype.setIgnoreMove = function (bool) { - this.pointer.shouldIgnoreMove = bool; - }; - FeaturefulElementDragging.prototype.setMirrorIsVisible = function (bool) { - this.mirror.setIsVisible(bool); - }; - FeaturefulElementDragging.prototype.setMirrorNeedsRevert = function (bool) { - this.mirrorNeedsRevert = bool; - }; - FeaturefulElementDragging.prototype.setAutoScrollEnabled = function (bool) { - this.autoScroller.isEnabled = bool; - }; - return FeaturefulElementDragging; -}(ElementDragging)); - -/* -When this class is instantiated, it records the offset of an element (relative to the document topleft), -and continues to monitor scrolling, updating the cached coordinates if it needs to. -Does not access the DOM after instantiation, so highly performant. - -Also keeps track of all scrolling/overflow:hidden containers that are parents of the given element -and an determine if a given point is inside the combined clipping rectangle. -*/ -var OffsetTracker = /** @class */ (function () { - function OffsetTracker(el) { - this.origRect = computeRect(el); - // will work fine for divs that have overflow:hidden - this.scrollCaches = getClippingParents(el).map(function (el) { - return new ElementScrollGeomCache(el, true); // listen=true - }); - } - OffsetTracker.prototype.destroy = function () { - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - scrollCache.destroy(); - } - }; - OffsetTracker.prototype.computeLeft = function () { - var left = this.origRect.left; - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - left += scrollCache.origScrollLeft - scrollCache.getScrollLeft(); - } - return left; - }; - OffsetTracker.prototype.computeTop = function () { - var top = this.origRect.top; - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - top += scrollCache.origScrollTop - scrollCache.getScrollTop(); - } - return top; - }; - OffsetTracker.prototype.isWithinClipping = function (pageX, pageY) { - var point = { left: pageX, top: pageY }; - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - if (!isIgnoredClipping(scrollCache.getEventTarget()) && - !pointInsideRect(point, scrollCache.clientRect)) { - return false; - } - } - return true; - }; - return OffsetTracker; -}()); -// certain clipping containers should never constrain interactions, like and -// https://github.com/fullcalendar/fullcalendar/issues/3615 -function isIgnoredClipping(node) { - var tagName = node.tagName; - return tagName === 'HTML' || tagName === 'BODY'; -} - -/* -Tracks movement over multiple droppable areas (aka "hits") -that exist in one or more DateComponents. -Relies on an existing draggable. - -emits: -- pointerdown -- dragstart -- hitchange - fires initially, even if not over a hit -- pointerup -- (hitchange - again, to null, if ended over a hit) -- dragend -*/ -var HitDragging = /** @class */ (function () { - function HitDragging(dragging, droppableStore) { - var _this = this; - // options that can be set by caller - this.useSubjectCenter = false; - this.requireInitial = true; // if doesn't start out on a hit, won't emit any events - this.initialHit = null; - this.movingHit = null; - this.finalHit = null; // won't ever be populated if shouldIgnoreMove - this.handlePointerDown = function (ev) { - var dragging = _this.dragging; - _this.initialHit = null; - _this.movingHit = null; - _this.finalHit = null; - _this.prepareHits(); - _this.processFirstCoord(ev); - if (_this.initialHit || !_this.requireInitial) { - dragging.setIgnoreMove(false); - _this.emitter.trigger('pointerdown', ev); // TODO: fire this before computing processFirstCoord, so listeners can cancel. this gets fired by almost every handler :( - } - else { - dragging.setIgnoreMove(true); - } - }; - this.handleDragStart = function (ev) { - _this.emitter.trigger('dragstart', ev); - _this.handleMove(ev, true); // force = fire even if initially null - }; - this.handleDragMove = function (ev) { - _this.emitter.trigger('dragmove', ev); - _this.handleMove(ev); - }; - this.handlePointerUp = function (ev) { - _this.releaseHits(); - _this.emitter.trigger('pointerup', ev); - }; - this.handleDragEnd = function (ev) { - if (_this.movingHit) { - _this.emitter.trigger('hitupdate', null, true, ev); - } - _this.finalHit = _this.movingHit; - _this.movingHit = null; - _this.emitter.trigger('dragend', ev); - }; - this.droppableStore = droppableStore; - dragging.emitter.on('pointerdown', this.handlePointerDown); - dragging.emitter.on('dragstart', this.handleDragStart); - dragging.emitter.on('dragmove', this.handleDragMove); - dragging.emitter.on('pointerup', this.handlePointerUp); - dragging.emitter.on('dragend', this.handleDragEnd); - this.dragging = dragging; - this.emitter = new EmitterMixin(); - } - // sets initialHit - // sets coordAdjust - HitDragging.prototype.processFirstCoord = function (ev) { - var origPoint = { left: ev.pageX, top: ev.pageY }; - var adjustedPoint = origPoint; - var subjectEl = ev.subjectEl; - var subjectRect; - if (subjectEl !== document) { - subjectRect = computeRect(subjectEl); - adjustedPoint = constrainPoint(adjustedPoint, subjectRect); - } - var initialHit = this.initialHit = this.queryHitForOffset(adjustedPoint.left, adjustedPoint.top); - if (initialHit) { - if (this.useSubjectCenter && subjectRect) { - var slicedSubjectRect = intersectRects(subjectRect, initialHit.rect); - if (slicedSubjectRect) { - adjustedPoint = getRectCenter(slicedSubjectRect); - } - } - this.coordAdjust = diffPoints(adjustedPoint, origPoint); - } - else { - this.coordAdjust = { left: 0, top: 0 }; - } - }; - HitDragging.prototype.handleMove = function (ev, forceHandle) { - var hit = this.queryHitForOffset(ev.pageX + this.coordAdjust.left, ev.pageY + this.coordAdjust.top); - if (forceHandle || !isHitsEqual(this.movingHit, hit)) { - this.movingHit = hit; - this.emitter.trigger('hitupdate', hit, false, ev); - } - }; - HitDragging.prototype.prepareHits = function () { - this.offsetTrackers = mapHash(this.droppableStore, function (interactionSettings) { - interactionSettings.component.buildPositionCaches(); - return new OffsetTracker(interactionSettings.el); - }); - }; - HitDragging.prototype.releaseHits = function () { - var offsetTrackers = this.offsetTrackers; - for (var id in offsetTrackers) { - offsetTrackers[id].destroy(); - } - this.offsetTrackers = {}; - }; - HitDragging.prototype.queryHitForOffset = function (offsetLeft, offsetTop) { - var _a = this, droppableStore = _a.droppableStore, offsetTrackers = _a.offsetTrackers; - var bestHit = null; - for (var id in droppableStore) { - var component = droppableStore[id].component; - var offsetTracker = offsetTrackers[id]; - if (offsetTracker.isWithinClipping(offsetLeft, offsetTop)) { - var originLeft = offsetTracker.computeLeft(); - var originTop = offsetTracker.computeTop(); - var positionLeft = offsetLeft - originLeft; - var positionTop = offsetTop - originTop; - var origRect = offsetTracker.origRect; - var width = origRect.right - origRect.left; - var height = origRect.bottom - origRect.top; - if ( - // must be within the element's bounds - positionLeft >= 0 && positionLeft < width && - positionTop >= 0 && positionTop < height) { - var hit = component.queryHit(positionLeft, positionTop, width, height); - if (hit && - ( - // make sure the hit is within activeRange, meaning it's not a deal cell - !component.props.dateProfile || // hack for DayTile - rangeContainsRange(component.props.dateProfile.activeRange, hit.dateSpan.range)) && - (!bestHit || hit.layer > bestHit.layer)) { - // TODO: better way to re-orient rectangle - hit.rect.left += originLeft; - hit.rect.right += originLeft; - hit.rect.top += originTop; - hit.rect.bottom += originTop; - bestHit = hit; - } - } - } - } - return bestHit; - }; - return HitDragging; -}()); -function isHitsEqual(hit0, hit1) { - if (!hit0 && !hit1) { - return true; - } - if (Boolean(hit0) !== Boolean(hit1)) { - return false; - } - return isDateSpansEqual(hit0.dateSpan, hit1.dateSpan); -} - -/* -Monitors when the user clicks on a specific date/time of a component. -A pointerdown+pointerup on the same "hit" constitutes a click. -*/ -var DateClicking = /** @class */ (function (_super) { - __extends(DateClicking, _super); - function DateClicking(settings) { - var _this = _super.call(this, settings) || this; - _this.handlePointerDown = function (ev) { - var dragging = _this.dragging; - // do this in pointerdown (not dragend) because DOM might be mutated by the time dragend is fired - dragging.setIgnoreMove(!_this.component.isValidDateDownEl(dragging.pointer.downEl)); - }; - // won't even fire if moving was ignored - _this.handleDragEnd = function (ev) { - var component = _this.component; - var pointer = _this.dragging.pointer; - if (!pointer.wasTouchScroll) { - var _a = _this.hitDragging, initialHit = _a.initialHit, finalHit = _a.finalHit; - if (initialHit && finalHit && isHitsEqual(initialHit, finalHit)) { - component.calendar.triggerDateClick(initialHit.dateSpan, initialHit.dayEl, component.view, ev.origEvent); - } - } - }; - var component = settings.component; - // we DO want to watch pointer moves because otherwise finalHit won't get populated - _this.dragging = new FeaturefulElementDragging(component.el); - _this.dragging.autoScroller.isEnabled = false; - var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, interactionSettingsToStore(settings)); - hitDragging.emitter.on('pointerdown', _this.handlePointerDown); - hitDragging.emitter.on('dragend', _this.handleDragEnd); - return _this; - } - DateClicking.prototype.destroy = function () { - this.dragging.destroy(); - }; - return DateClicking; -}(Interaction)); - -/* -Tracks when the user selects a portion of time of a component, -constituted by a drag over date cells, with a possible delay at the beginning of the drag. -*/ -var DateSelecting = /** @class */ (function (_super) { - __extends(DateSelecting, _super); - function DateSelecting(settings) { - var _this = _super.call(this, settings) || this; - _this.dragSelection = null; - _this.handlePointerDown = function (ev) { - var _a = _this, component = _a.component, dragging = _a.dragging; - var canSelect = component.opt('selectable') && - component.isValidDateDownEl(ev.origEvent.target); - // don't bother to watch expensive moves if component won't do selection - dragging.setIgnoreMove(!canSelect); - // if touch, require user to hold down - dragging.delay = ev.isTouch ? getComponentTouchDelay(component) : null; - }; - _this.handleDragStart = function (ev) { - _this.component.calendar.unselect(ev); // unselect previous selections - }; - _this.handleHitUpdate = function (hit, isFinal) { - var calendar = _this.component.calendar; - var dragSelection = null; - var isInvalid = false; - if (hit) { - dragSelection = joinHitsIntoSelection(_this.hitDragging.initialHit, hit, calendar.pluginSystem.hooks.dateSelectionTransformers); - if (!dragSelection || !_this.component.isDateSelectionValid(dragSelection)) { - isInvalid = true; - dragSelection = null; - } - } - if (dragSelection) { - calendar.dispatch({ type: 'SELECT_DATES', selection: dragSelection }); - } - else if (!isFinal) { // only unselect if moved away while dragging - calendar.dispatch({ type: 'UNSELECT_DATES' }); - } - if (!isInvalid) { - enableCursor(); - } - else { - disableCursor(); - } - if (!isFinal) { - _this.dragSelection = dragSelection; // only clear if moved away from all hits while dragging - } - }; - _this.handlePointerUp = function (pev) { - if (_this.dragSelection) { - // selection is already rendered, so just need to report selection - _this.component.calendar.triggerDateSelect(_this.dragSelection, pev); - _this.dragSelection = null; - } - }; - var component = settings.component; - var dragging = _this.dragging = new FeaturefulElementDragging(component.el); - dragging.touchScrollAllowed = false; - dragging.minDistance = component.opt('selectMinDistance') || 0; - dragging.autoScroller.isEnabled = component.opt('dragScroll'); - var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, interactionSettingsToStore(settings)); - hitDragging.emitter.on('pointerdown', _this.handlePointerDown); - hitDragging.emitter.on('dragstart', _this.handleDragStart); - hitDragging.emitter.on('hitupdate', _this.handleHitUpdate); - hitDragging.emitter.on('pointerup', _this.handlePointerUp); - return _this; - } - DateSelecting.prototype.destroy = function () { - this.dragging.destroy(); - }; - return DateSelecting; -}(Interaction)); -function getComponentTouchDelay(component) { - var delay = component.opt('selectLongPressDelay'); - if (delay == null) { - delay = component.opt('longPressDelay'); - } - return delay; -} -function joinHitsIntoSelection(hit0, hit1, dateSelectionTransformers) { - var dateSpan0 = hit0.dateSpan; - var dateSpan1 = hit1.dateSpan; - var ms = [ - dateSpan0.range.start, - dateSpan0.range.end, - dateSpan1.range.start, - dateSpan1.range.end - ]; - ms.sort(compareNumbers); - var props = {}; - for (var _i = 0, dateSelectionTransformers_1 = dateSelectionTransformers; _i < dateSelectionTransformers_1.length; _i++) { - var transformer = dateSelectionTransformers_1[_i]; - var res = transformer(hit0, hit1); - if (res === false) { - return null; - } - else if (res) { - __assign(props, res); - } - } - props.range = { start: ms[0], end: ms[3] }; - props.allDay = dateSpan0.allDay; - return props; -} - -var EventDragging = /** @class */ (function (_super) { - __extends(EventDragging, _super); - function EventDragging(settings) { - var _this = _super.call(this, settings) || this; - // internal state - _this.subjectSeg = null; // the seg being selected/dragged - _this.isDragging = false; - _this.eventRange = null; - _this.relevantEvents = null; // the events being dragged - _this.receivingCalendar = null; - _this.validMutation = null; - _this.mutatedRelevantEvents = null; - _this.handlePointerDown = function (ev) { - var origTarget = ev.origEvent.target; - var _a = _this, component = _a.component, dragging = _a.dragging; - var mirror = dragging.mirror; - var initialCalendar = component.calendar; - var subjectSeg = _this.subjectSeg = getElSeg(ev.subjectEl); - var eventRange = _this.eventRange = subjectSeg.eventRange; - var eventInstanceId = eventRange.instance.instanceId; - _this.relevantEvents = getRelevantEvents(initialCalendar.state.eventStore, eventInstanceId); - dragging.minDistance = ev.isTouch ? 0 : component.opt('eventDragMinDistance'); - dragging.delay = - // only do a touch delay if touch and this event hasn't been selected yet - (ev.isTouch && eventInstanceId !== component.props.eventSelection) ? - getComponentTouchDelay$1(component) : - null; - mirror.parentNode = initialCalendar.el; - mirror.revertDuration = component.opt('dragRevertDuration'); - var isValid = component.isValidSegDownEl(origTarget) && - !elementClosest(origTarget, '.fc-resizer'); // NOT on a resizer - dragging.setIgnoreMove(!isValid); - // disable dragging for elements that are resizable (ie, selectable) - // but are not draggable - _this.isDragging = isValid && - ev.subjectEl.classList.contains('fc-draggable'); - }; - _this.handleDragStart = function (ev) { - var initialCalendar = _this.component.calendar; - var eventRange = _this.eventRange; - var eventInstanceId = eventRange.instance.instanceId; - if (ev.isTouch) { - // need to select a different event? - if (eventInstanceId !== _this.component.props.eventSelection) { - initialCalendar.dispatch({ type: 'SELECT_EVENT', eventInstanceId: eventInstanceId }); - } - } - else { - // if now using mouse, but was previous touch interaction, clear selected event - initialCalendar.dispatch({ type: 'UNSELECT_EVENT' }); - } - if (_this.isDragging) { - initialCalendar.unselect(ev); // unselect *date* selection - initialCalendar.publiclyTrigger('eventDragStart', [ - { - el: _this.subjectSeg.el, - event: new EventApi(initialCalendar, eventRange.def, eventRange.instance), - jsEvent: ev.origEvent, - view: _this.component.view - } - ]); - } - }; - _this.handleHitUpdate = function (hit, isFinal) { - if (!_this.isDragging) { - return; - } - var relevantEvents = _this.relevantEvents; - var initialHit = _this.hitDragging.initialHit; - var initialCalendar = _this.component.calendar; - // states based on new hit - var receivingCalendar = null; - var mutation = null; - var mutatedRelevantEvents = null; - var isInvalid = false; - var interaction = { - affectedEvents: relevantEvents, - mutatedEvents: createEmptyEventStore(), - isEvent: true, - origSeg: _this.subjectSeg - }; - if (hit) { - var receivingComponent = hit.component; - receivingCalendar = receivingComponent.calendar; - if (initialCalendar === receivingCalendar || - receivingComponent.opt('editable') && receivingComponent.opt('droppable')) { - mutation = computeEventMutation(initialHit, hit, receivingCalendar.pluginSystem.hooks.eventDragMutationMassagers); - if (mutation) { - mutatedRelevantEvents = applyMutationToEventStore(relevantEvents, receivingCalendar.eventUiBases, mutation, receivingCalendar); - interaction.mutatedEvents = mutatedRelevantEvents; - if (!receivingComponent.isInteractionValid(interaction)) { - isInvalid = true; - mutation = null; - mutatedRelevantEvents = null; - interaction.mutatedEvents = createEmptyEventStore(); - } - } - } - else { - receivingCalendar = null; - } - } - _this.displayDrag(receivingCalendar, interaction); - if (!isInvalid) { - enableCursor(); - } - else { - disableCursor(); - } - if (!isFinal) { - if (initialCalendar === receivingCalendar && // TODO: write test for this - isHitsEqual(initialHit, hit)) { - mutation = null; - } - _this.dragging.setMirrorNeedsRevert(!mutation); - // render the mirror if no already-rendered mirror - // TODO: wish we could somehow wait for dispatch to guarantee render - _this.dragging.setMirrorIsVisible(!hit || !document.querySelector('.fc-mirror')); - // assign states based on new hit - _this.receivingCalendar = receivingCalendar; - _this.validMutation = mutation; - _this.mutatedRelevantEvents = mutatedRelevantEvents; - } - }; - _this.handlePointerUp = function () { - if (!_this.isDragging) { - _this.cleanup(); // because handleDragEnd won't fire - } - }; - _this.handleDragEnd = function (ev) { - if (_this.isDragging) { - var initialCalendar_1 = _this.component.calendar; - var initialView = _this.component.view; - var _a = _this, receivingCalendar = _a.receivingCalendar, validMutation = _a.validMutation; - var eventDef = _this.eventRange.def; - var eventInstance = _this.eventRange.instance; - var eventApi = new EventApi(initialCalendar_1, eventDef, eventInstance); - var relevantEvents_1 = _this.relevantEvents; - var mutatedRelevantEvents = _this.mutatedRelevantEvents; - var finalHit = _this.hitDragging.finalHit; - _this.clearDrag(); // must happen after revert animation - initialCalendar_1.publiclyTrigger('eventDragStop', [ - { - el: _this.subjectSeg.el, - event: eventApi, - jsEvent: ev.origEvent, - view: initialView - } - ]); - if (validMutation) { - // dropped within same calendar - if (receivingCalendar === initialCalendar_1) { - initialCalendar_1.dispatch({ - type: 'MERGE_EVENTS', - eventStore: mutatedRelevantEvents - }); - var transformed = {}; - for (var _i = 0, _b = initialCalendar_1.pluginSystem.hooks.eventDropTransformers; _i < _b.length; _i++) { - var transformer = _b[_i]; - __assign(transformed, transformer(validMutation, initialCalendar_1)); - } - var eventDropArg = __assign({}, transformed, { el: ev.subjectEl, delta: validMutation.datesDelta, oldEvent: eventApi, event: new EventApi(// the data AFTER the mutation - initialCalendar_1, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null), revert: function () { - initialCalendar_1.dispatch({ - type: 'MERGE_EVENTS', - eventStore: relevantEvents_1 - }); - }, jsEvent: ev.origEvent, view: initialView }); - initialCalendar_1.publiclyTrigger('eventDrop', [eventDropArg]); - // dropped in different calendar - } - else if (receivingCalendar) { - initialCalendar_1.publiclyTrigger('eventLeave', [ - { - draggedEl: ev.subjectEl, - event: eventApi, - view: initialView - } - ]); - initialCalendar_1.dispatch({ - type: 'REMOVE_EVENT_INSTANCES', - instances: _this.mutatedRelevantEvents.instances - }); - receivingCalendar.dispatch({ - type: 'MERGE_EVENTS', - eventStore: _this.mutatedRelevantEvents - }); - if (ev.isTouch) { - receivingCalendar.dispatch({ - type: 'SELECT_EVENT', - eventInstanceId: eventInstance.instanceId - }); - } - var dropArg = __assign({}, receivingCalendar.buildDatePointApi(finalHit.dateSpan), { draggedEl: ev.subjectEl, jsEvent: ev.origEvent, view: finalHit.component // should this be finalHit.component.view? See #4644 - }); - receivingCalendar.publiclyTrigger('drop', [dropArg]); - receivingCalendar.publiclyTrigger('eventReceive', [ - { - draggedEl: ev.subjectEl, - event: new EventApi(// the data AFTER the mutation - receivingCalendar, mutatedRelevantEvents.defs[eventDef.defId], mutatedRelevantEvents.instances[eventInstance.instanceId]), - view: finalHit.component // should this be finalHit.component.view? See #4644 - } - ]); - } - } - else { - initialCalendar_1.publiclyTrigger('_noEventDrop'); - } - } - _this.cleanup(); - }; - var component = _this.component; - var dragging = _this.dragging = new FeaturefulElementDragging(component.el); - dragging.pointer.selector = EventDragging.SELECTOR; - dragging.touchScrollAllowed = false; - dragging.autoScroller.isEnabled = component.opt('dragScroll'); - var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, interactionSettingsStore); - hitDragging.useSubjectCenter = settings.useEventCenter; - hitDragging.emitter.on('pointerdown', _this.handlePointerDown); - hitDragging.emitter.on('dragstart', _this.handleDragStart); - hitDragging.emitter.on('hitupdate', _this.handleHitUpdate); - hitDragging.emitter.on('pointerup', _this.handlePointerUp); - hitDragging.emitter.on('dragend', _this.handleDragEnd); - return _this; - } - EventDragging.prototype.destroy = function () { - this.dragging.destroy(); - }; - // render a drag state on the next receivingCalendar - EventDragging.prototype.displayDrag = function (nextCalendar, state) { - var initialCalendar = this.component.calendar; - var prevCalendar = this.receivingCalendar; - // does the previous calendar need to be cleared? - if (prevCalendar && prevCalendar !== nextCalendar) { - // does the initial calendar need to be cleared? - // if so, don't clear all the way. we still need to to hide the affectedEvents - if (prevCalendar === initialCalendar) { - prevCalendar.dispatch({ - type: 'SET_EVENT_DRAG', - state: { - affectedEvents: state.affectedEvents, - mutatedEvents: createEmptyEventStore(), - isEvent: true, - origSeg: state.origSeg - } - }); - // completely clear the old calendar if it wasn't the initial - } - else { - prevCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - } - if (nextCalendar) { - nextCalendar.dispatch({ type: 'SET_EVENT_DRAG', state: state }); - } - }; - EventDragging.prototype.clearDrag = function () { - var initialCalendar = this.component.calendar; - var receivingCalendar = this.receivingCalendar; - if (receivingCalendar) { - receivingCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - // the initial calendar might have an dummy drag state from displayDrag - if (initialCalendar !== receivingCalendar) { - initialCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - }; - EventDragging.prototype.cleanup = function () { - this.subjectSeg = null; - this.isDragging = false; - this.eventRange = null; - this.relevantEvents = null; - this.receivingCalendar = null; - this.validMutation = null; - this.mutatedRelevantEvents = null; - }; - EventDragging.SELECTOR = '.fc-draggable, .fc-resizable'; // TODO: test this in IE11 - return EventDragging; -}(Interaction)); -function computeEventMutation(hit0, hit1, massagers) { - var dateSpan0 = hit0.dateSpan; - var dateSpan1 = hit1.dateSpan; - var date0 = dateSpan0.range.start; - var date1 = dateSpan1.range.start; - var standardProps = {}; - if (dateSpan0.allDay !== dateSpan1.allDay) { - standardProps.allDay = dateSpan1.allDay; - standardProps.hasEnd = hit1.component.opt('allDayMaintainDuration'); - if (dateSpan1.allDay) { - // means date1 is already start-of-day, - // but date0 needs to be converted - date0 = startOfDay(date0); - } - } - var delta = diffDates(date0, date1, hit0.component.dateEnv, hit0.component === hit1.component ? - hit0.component.largeUnit : - null); - if (delta.milliseconds) { // has hours/minutes/seconds - standardProps.allDay = false; - } - var mutation = { - datesDelta: delta, - standardProps: standardProps - }; - for (var _i = 0, massagers_1 = massagers; _i < massagers_1.length; _i++) { - var massager = massagers_1[_i]; - massager(mutation, hit0, hit1); - } - return mutation; -} -function getComponentTouchDelay$1(component) { - var delay = component.opt('eventLongPressDelay'); - if (delay == null) { - delay = component.opt('longPressDelay'); - } - return delay; -} - -var EventDragging$1 = /** @class */ (function (_super) { - __extends(EventDragging, _super); - function EventDragging(settings) { - var _this = _super.call(this, settings) || this; - // internal state - _this.draggingSeg = null; // TODO: rename to resizingSeg? subjectSeg? - _this.eventRange = null; - _this.relevantEvents = null; - _this.validMutation = null; - _this.mutatedRelevantEvents = null; - _this.handlePointerDown = function (ev) { - var component = _this.component; - var seg = _this.querySeg(ev); - var eventRange = _this.eventRange = seg.eventRange; - _this.dragging.minDistance = component.opt('eventDragMinDistance'); - // if touch, need to be working with a selected event - _this.dragging.setIgnoreMove(!_this.component.isValidSegDownEl(ev.origEvent.target) || - (ev.isTouch && _this.component.props.eventSelection !== eventRange.instance.instanceId)); - }; - _this.handleDragStart = function (ev) { - var calendar = _this.component.calendar; - var eventRange = _this.eventRange; - _this.relevantEvents = getRelevantEvents(calendar.state.eventStore, _this.eventRange.instance.instanceId); - _this.draggingSeg = _this.querySeg(ev); - calendar.unselect(); - calendar.publiclyTrigger('eventResizeStart', [ - { - el: _this.draggingSeg.el, - event: new EventApi(calendar, eventRange.def, eventRange.instance), - jsEvent: ev.origEvent, - view: _this.component.view - } - ]); - }; - _this.handleHitUpdate = function (hit, isFinal, ev) { - var calendar = _this.component.calendar; - var relevantEvents = _this.relevantEvents; - var initialHit = _this.hitDragging.initialHit; - var eventInstance = _this.eventRange.instance; - var mutation = null; - var mutatedRelevantEvents = null; - var isInvalid = false; - var interaction = { - affectedEvents: relevantEvents, - mutatedEvents: createEmptyEventStore(), - isEvent: true, - origSeg: _this.draggingSeg - }; - if (hit) { - mutation = computeMutation(initialHit, hit, ev.subjectEl.classList.contains('fc-start-resizer'), eventInstance.range, calendar.pluginSystem.hooks.eventResizeJoinTransforms); - } - if (mutation) { - mutatedRelevantEvents = applyMutationToEventStore(relevantEvents, calendar.eventUiBases, mutation, calendar); - interaction.mutatedEvents = mutatedRelevantEvents; - if (!_this.component.isInteractionValid(interaction)) { - isInvalid = true; - mutation = null; - mutatedRelevantEvents = null; - interaction.mutatedEvents = null; - } - } - if (mutatedRelevantEvents) { - calendar.dispatch({ - type: 'SET_EVENT_RESIZE', - state: interaction - }); - } - else { - calendar.dispatch({ type: 'UNSET_EVENT_RESIZE' }); - } - if (!isInvalid) { - enableCursor(); - } - else { - disableCursor(); - } - if (!isFinal) { - if (mutation && isHitsEqual(initialHit, hit)) { - mutation = null; - } - _this.validMutation = mutation; - _this.mutatedRelevantEvents = mutatedRelevantEvents; - } - }; - _this.handleDragEnd = function (ev) { - var calendar = _this.component.calendar; - var view = _this.component.view; - var eventDef = _this.eventRange.def; - var eventInstance = _this.eventRange.instance; - var eventApi = new EventApi(calendar, eventDef, eventInstance); - var relevantEvents = _this.relevantEvents; - var mutatedRelevantEvents = _this.mutatedRelevantEvents; - calendar.publiclyTrigger('eventResizeStop', [ - { - el: _this.draggingSeg.el, - event: eventApi, - jsEvent: ev.origEvent, - view: view - } - ]); - if (_this.validMutation) { - calendar.dispatch({ - type: 'MERGE_EVENTS', - eventStore: mutatedRelevantEvents - }); - calendar.publiclyTrigger('eventResize', [ - { - el: _this.draggingSeg.el, - startDelta: _this.validMutation.startDelta || createDuration(0), - endDelta: _this.validMutation.endDelta || createDuration(0), - prevEvent: eventApi, - event: new EventApi(// the data AFTER the mutation - calendar, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null), - revert: function () { - calendar.dispatch({ - type: 'MERGE_EVENTS', - eventStore: relevantEvents - }); - }, - jsEvent: ev.origEvent, - view: view - } - ]); - } - else { - calendar.publiclyTrigger('_noEventResize'); - } - // reset all internal state - _this.draggingSeg = null; - _this.relevantEvents = null; - _this.validMutation = null; - // okay to keep eventInstance around. useful to set it in handlePointerDown - }; - var component = settings.component; - var dragging = _this.dragging = new FeaturefulElementDragging(component.el); - dragging.pointer.selector = '.fc-resizer'; - dragging.touchScrollAllowed = false; - dragging.autoScroller.isEnabled = component.opt('dragScroll'); - var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, interactionSettingsToStore(settings)); - hitDragging.emitter.on('pointerdown', _this.handlePointerDown); - hitDragging.emitter.on('dragstart', _this.handleDragStart); - hitDragging.emitter.on('hitupdate', _this.handleHitUpdate); - hitDragging.emitter.on('dragend', _this.handleDragEnd); - return _this; - } - EventDragging.prototype.destroy = function () { - this.dragging.destroy(); - }; - EventDragging.prototype.querySeg = function (ev) { - return getElSeg(elementClosest(ev.subjectEl, this.component.fgSegSelector)); - }; - return EventDragging; -}(Interaction)); -function computeMutation(hit0, hit1, isFromStart, instanceRange, transforms) { - var dateEnv = hit0.component.dateEnv; - var date0 = hit0.dateSpan.range.start; - var date1 = hit1.dateSpan.range.start; - var delta = diffDates(date0, date1, dateEnv, hit0.component.largeUnit); - var props = {}; - for (var _i = 0, transforms_1 = transforms; _i < transforms_1.length; _i++) { - var transform = transforms_1[_i]; - var res = transform(hit0, hit1); - if (res === false) { - return null; - } - else if (res) { - __assign(props, res); - } - } - if (isFromStart) { - if (dateEnv.add(instanceRange.start, delta) < instanceRange.end) { - props.startDelta = delta; - return props; - } - } - else { - if (dateEnv.add(instanceRange.end, delta) > instanceRange.start) { - props.endDelta = delta; - return props; - } - } - return null; -} - -var UnselectAuto = /** @class */ (function () { - function UnselectAuto(calendar) { - var _this = this; - this.isRecentPointerDateSelect = false; // wish we could use a selector to detect date selection, but uses hit system - this.onSelect = function (selectInfo) { - if (selectInfo.jsEvent) { - _this.isRecentPointerDateSelect = true; - } - }; - this.onDocumentPointerUp = function (pev) { - var _a = _this, calendar = _a.calendar, documentPointer = _a.documentPointer; - var state = calendar.state; - // touch-scrolling should never unfocus any type of selection - if (!documentPointer.wasTouchScroll) { - if (state.dateSelection && // an existing date selection? - !_this.isRecentPointerDateSelect // a new pointer-initiated date selection since last onDocumentPointerUp? - ) { - var unselectAuto = calendar.viewOpt('unselectAuto'); - var unselectCancel = calendar.viewOpt('unselectCancel'); - if (unselectAuto && (!unselectAuto || !elementClosest(documentPointer.downEl, unselectCancel))) { - calendar.unselect(pev); - } - } - if (state.eventSelection && // an existing event selected? - !elementClosest(documentPointer.downEl, EventDragging.SELECTOR) // interaction DIDN'T start on an event - ) { - calendar.dispatch({ type: 'UNSELECT_EVENT' }); - } - } - _this.isRecentPointerDateSelect = false; - }; - this.calendar = calendar; - var documentPointer = this.documentPointer = new PointerDragging(document); - documentPointer.shouldIgnoreMove = true; - documentPointer.shouldWatchScroll = false; - documentPointer.emitter.on('pointerup', this.onDocumentPointerUp); - /* - TODO: better way to know about whether there was a selection with the pointer - */ - calendar.on('select', this.onSelect); - } - UnselectAuto.prototype.destroy = function () { - this.calendar.off('select', this.onSelect); - this.documentPointer.destroy(); - }; - return UnselectAuto; -}()); - -/* -Given an already instantiated draggable object for one-or-more elements, -Interprets any dragging as an attempt to drag an events that lives outside -of a calendar onto a calendar. -*/ -var ExternalElementDragging = /** @class */ (function () { - function ExternalElementDragging(dragging, suppliedDragMeta) { - var _this = this; - this.receivingCalendar = null; - this.droppableEvent = null; // will exist for all drags, even if create:false - this.suppliedDragMeta = null; - this.dragMeta = null; - this.handleDragStart = function (ev) { - _this.dragMeta = _this.buildDragMeta(ev.subjectEl); - }; - this.handleHitUpdate = function (hit, isFinal, ev) { - var dragging = _this.hitDragging.dragging; - var receivingCalendar = null; - var droppableEvent = null; - var isInvalid = false; - var interaction = { - affectedEvents: createEmptyEventStore(), - mutatedEvents: createEmptyEventStore(), - isEvent: _this.dragMeta.create, - origSeg: null - }; - if (hit) { - receivingCalendar = hit.component.calendar; - if (_this.canDropElOnCalendar(ev.subjectEl, receivingCalendar)) { - droppableEvent = computeEventForDateSpan(hit.dateSpan, _this.dragMeta, receivingCalendar); - interaction.mutatedEvents = eventTupleToStore(droppableEvent); - isInvalid = !isInteractionValid(interaction, receivingCalendar); - if (isInvalid) { - interaction.mutatedEvents = createEmptyEventStore(); - droppableEvent = null; - } - } - } - _this.displayDrag(receivingCalendar, interaction); - // show mirror if no already-rendered mirror element OR if we are shutting down the mirror (?) - // TODO: wish we could somehow wait for dispatch to guarantee render - dragging.setMirrorIsVisible(isFinal || !droppableEvent || !document.querySelector('.fc-mirror')); - if (!isInvalid) { - enableCursor(); - } - else { - disableCursor(); - } - if (!isFinal) { - dragging.setMirrorNeedsRevert(!droppableEvent); - _this.receivingCalendar = receivingCalendar; - _this.droppableEvent = droppableEvent; - } - }; - this.handleDragEnd = function (pev) { - var _a = _this, receivingCalendar = _a.receivingCalendar, droppableEvent = _a.droppableEvent; - _this.clearDrag(); - if (receivingCalendar && droppableEvent) { - var finalHit = _this.hitDragging.finalHit; - var finalView = finalHit.component.view; - var dragMeta = _this.dragMeta; - var arg = __assign({}, receivingCalendar.buildDatePointApi(finalHit.dateSpan), { draggedEl: pev.subjectEl, jsEvent: pev.origEvent, view: finalView }); - receivingCalendar.publiclyTrigger('drop', [arg]); - if (dragMeta.create) { - receivingCalendar.dispatch({ - type: 'MERGE_EVENTS', - eventStore: eventTupleToStore(droppableEvent) - }); - if (pev.isTouch) { - receivingCalendar.dispatch({ - type: 'SELECT_EVENT', - eventInstanceId: droppableEvent.instance.instanceId - }); - } - // signal that an external event landed - receivingCalendar.publiclyTrigger('eventReceive', [ - { - draggedEl: pev.subjectEl, - event: new EventApi(receivingCalendar, droppableEvent.def, droppableEvent.instance), - view: finalView - } - ]); - } - } - _this.receivingCalendar = null; - _this.droppableEvent = null; - }; - var hitDragging = this.hitDragging = new HitDragging(dragging, interactionSettingsStore); - hitDragging.requireInitial = false; // will start outside of a component - hitDragging.emitter.on('dragstart', this.handleDragStart); - hitDragging.emitter.on('hitupdate', this.handleHitUpdate); - hitDragging.emitter.on('dragend', this.handleDragEnd); - this.suppliedDragMeta = suppliedDragMeta; - } - ExternalElementDragging.prototype.buildDragMeta = function (subjectEl) { - if (typeof this.suppliedDragMeta === 'object') { - return parseDragMeta(this.suppliedDragMeta); - } - else if (typeof this.suppliedDragMeta === 'function') { - return parseDragMeta(this.suppliedDragMeta(subjectEl)); - } - else { - return getDragMetaFromEl(subjectEl); - } - }; - ExternalElementDragging.prototype.displayDrag = function (nextCalendar, state) { - var prevCalendar = this.receivingCalendar; - if (prevCalendar && prevCalendar !== nextCalendar) { - prevCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - if (nextCalendar) { - nextCalendar.dispatch({ type: 'SET_EVENT_DRAG', state: state }); - } - }; - ExternalElementDragging.prototype.clearDrag = function () { - if (this.receivingCalendar) { - this.receivingCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - }; - ExternalElementDragging.prototype.canDropElOnCalendar = function (el, receivingCalendar) { - var dropAccept = receivingCalendar.opt('dropAccept'); - if (typeof dropAccept === 'function') { - return dropAccept(el); - } - else if (typeof dropAccept === 'string' && dropAccept) { - return Boolean(elementMatches(el, dropAccept)); - } - return true; - }; - return ExternalElementDragging; -}()); -// Utils for computing event store from the DragMeta -// ---------------------------------------------------------------------------------------------------- -function computeEventForDateSpan(dateSpan, dragMeta, calendar) { - var defProps = __assign({}, dragMeta.leftoverProps); - for (var _i = 0, _a = calendar.pluginSystem.hooks.externalDefTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(defProps, transform(dateSpan, dragMeta)); - } - var def = parseEventDef(defProps, dragMeta.sourceId, dateSpan.allDay, calendar.opt('forceEventDuration') || Boolean(dragMeta.duration), // hasEnd - calendar); - var start = dateSpan.range.start; - // only rely on time info if drop zone is all-day, - // otherwise, we already know the time - if (dateSpan.allDay && dragMeta.startTime) { - start = calendar.dateEnv.add(start, dragMeta.startTime); - } - var end = dragMeta.duration ? - calendar.dateEnv.add(start, dragMeta.duration) : - calendar.getDefaultEventEnd(dateSpan.allDay, start); - var instance = createEventInstance(def.defId, { start: start, end: end }); - return { def: def, instance: instance }; -} -// Utils for extracting data from element -// ---------------------------------------------------------------------------------------------------- -function getDragMetaFromEl(el) { - var str = getEmbeddedElData(el, 'event'); - var obj = str ? - JSON.parse(str) : - { create: false }; // if no embedded data, assume no event creation - return parseDragMeta(obj); -} -config.dataAttrPrefix = ''; -function getEmbeddedElData(el, name) { - var prefix = config.dataAttrPrefix; - var prefixedName = (prefix ? prefix + '-' : '') + name; - return el.getAttribute('data-' + prefixedName) || ''; -} - -/* -Makes an element (that is *external* to any calendar) draggable. -Can pass in data that determines how an event will be created when dropped onto a calendar. -Leverages FullCalendar's internal drag-n-drop functionality WITHOUT a third-party drag system. -*/ -var ExternalDraggable = /** @class */ (function () { - function ExternalDraggable(el, settings) { - var _this = this; - if (settings === void 0) { settings = {}; } - this.handlePointerDown = function (ev) { - var dragging = _this.dragging; - var _a = _this.settings, minDistance = _a.minDistance, longPressDelay = _a.longPressDelay; - dragging.minDistance = - minDistance != null ? - minDistance : - (ev.isTouch ? 0 : globalDefaults.eventDragMinDistance); - dragging.delay = - ev.isTouch ? // TODO: eventually read eventLongPressDelay instead vvv - (longPressDelay != null ? longPressDelay : globalDefaults.longPressDelay) : - 0; - }; - this.handleDragStart = function (ev) { - if (ev.isTouch && - _this.dragging.delay && - ev.subjectEl.classList.contains('fc-event')) { - _this.dragging.mirror.getMirrorEl().classList.add('fc-selected'); - } - }; - this.settings = settings; - var dragging = this.dragging = new FeaturefulElementDragging(el); - dragging.touchScrollAllowed = false; - if (settings.itemSelector != null) { - dragging.pointer.selector = settings.itemSelector; - } - if (settings.appendTo != null) { - dragging.mirror.parentNode = settings.appendTo; // TODO: write tests - } - dragging.emitter.on('pointerdown', this.handlePointerDown); - dragging.emitter.on('dragstart', this.handleDragStart); - new ExternalElementDragging(dragging, settings.eventData); - } - ExternalDraggable.prototype.destroy = function () { - this.dragging.destroy(); - }; - return ExternalDraggable; -}()); - -/* -Detects when a *THIRD-PARTY* drag-n-drop system interacts with elements. -The third-party system is responsible for drawing the visuals effects of the drag. -This class simply monitors for pointer movements and fires events. -It also has the ability to hide the moving element (the "mirror") during the drag. -*/ -var InferredElementDragging = /** @class */ (function (_super) { - __extends(InferredElementDragging, _super); - function InferredElementDragging(containerEl) { - var _this = _super.call(this, containerEl) || this; - _this.shouldIgnoreMove = false; - _this.mirrorSelector = ''; - _this.currentMirrorEl = null; - _this.handlePointerDown = function (ev) { - _this.emitter.trigger('pointerdown', ev); - if (!_this.shouldIgnoreMove) { - // fire dragstart right away. does not support delay or min-distance - _this.emitter.trigger('dragstart', ev); - } - }; - _this.handlePointerMove = function (ev) { - if (!_this.shouldIgnoreMove) { - _this.emitter.trigger('dragmove', ev); - } - }; - _this.handlePointerUp = function (ev) { - _this.emitter.trigger('pointerup', ev); - if (!_this.shouldIgnoreMove) { - // fire dragend right away. does not support a revert animation - _this.emitter.trigger('dragend', ev); - } - }; - var pointer = _this.pointer = new PointerDragging(containerEl); - pointer.emitter.on('pointerdown', _this.handlePointerDown); - pointer.emitter.on('pointermove', _this.handlePointerMove); - pointer.emitter.on('pointerup', _this.handlePointerUp); - return _this; - } - InferredElementDragging.prototype.destroy = function () { - this.pointer.destroy(); - }; - InferredElementDragging.prototype.setIgnoreMove = function (bool) { - this.shouldIgnoreMove = bool; - }; - InferredElementDragging.prototype.setMirrorIsVisible = function (bool) { - if (bool) { - // restore a previously hidden element. - // use the reference in case the selector class has already been removed. - if (this.currentMirrorEl) { - this.currentMirrorEl.style.visibility = ''; - this.currentMirrorEl = null; - } - } - else { - var mirrorEl = this.mirrorSelector ? - document.querySelector(this.mirrorSelector) : - null; - if (mirrorEl) { - this.currentMirrorEl = mirrorEl; - mirrorEl.style.visibility = 'hidden'; - } - } - }; - return InferredElementDragging; -}(ElementDragging)); - -/* -Bridges third-party drag-n-drop systems with FullCalendar. -Must be instantiated and destroyed by caller. -*/ -var ThirdPartyDraggable = /** @class */ (function () { - function ThirdPartyDraggable(containerOrSettings, settings) { - var containerEl = document; - if ( - // wish we could just test instanceof EventTarget, but doesn't work in IE11 - containerOrSettings === document || - containerOrSettings instanceof Element) { - containerEl = containerOrSettings; - settings = settings || {}; - } - else { - settings = (containerOrSettings || {}); - } - var dragging = this.dragging = new InferredElementDragging(containerEl); - if (typeof settings.itemSelector === 'string') { - dragging.pointer.selector = settings.itemSelector; - } - else if (containerEl === document) { - dragging.pointer.selector = '[data-event]'; - } - if (typeof settings.mirrorSelector === 'string') { - dragging.mirrorSelector = settings.mirrorSelector; - } - new ExternalElementDragging(dragging, settings.eventData); - } - ThirdPartyDraggable.prototype.destroy = function () { - this.dragging.destroy(); - }; - return ThirdPartyDraggable; -}()); - -var main = createPlugin({ - componentInteractions: [DateClicking, DateSelecting, EventDragging, EventDragging$1], - calendarInteractions: [UnselectAuto], - elementDraggingImpl: FeaturefulElementDragging -}); - -export default main; -export { ExternalDraggable as Draggable, FeaturefulElementDragging, PointerDragging, ThirdPartyDraggable }; diff --git a/htdocs/public/high/plugins/fullcalendar/packages/interaction/main.js b/htdocs/public/high/plugins/fullcalendar/packages/interaction/main.js deleted file mode 100644 index 10589f28..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/interaction/main.js +++ /dev/null @@ -1,2143 +0,0 @@ -/*! -FullCalendar Interaction Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@fullcalendar/core')) : - typeof define === 'function' && define.amd ? define(['exports', '@fullcalendar/core'], factory) : - (global = global || self, factory(global.FullCalendarInteraction = {}, global.FullCalendar)); -}(this, function (exports, core) { 'use strict'; - - /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */ - /* global Reflect, Promise */ - - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - - function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - } - - var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); - }; - - core.config.touchMouseIgnoreWait = 500; - var ignoreMouseDepth = 0; - var listenerCnt = 0; - var isWindowTouchMoveCancelled = false; - /* - Uses a "pointer" abstraction, which monitors UI events for both mouse and touch. - Tracks when the pointer "drags" on a certain element, meaning down+move+up. - - Also, tracks if there was touch-scrolling. - Also, can prevent touch-scrolling from happening. - Also, can fire pointermove events when scrolling happens underneath, even when no real pointer movement. - - emits: - - pointerdown - - pointermove - - pointerup - */ - var PointerDragging = /** @class */ (function () { - function PointerDragging(containerEl) { - var _this = this; - this.subjectEl = null; - this.downEl = null; - // options that can be directly assigned by caller - this.selector = ''; // will cause subjectEl in all emitted events to be this element - this.handleSelector = ''; - this.shouldIgnoreMove = false; - this.shouldWatchScroll = true; // for simulating pointermove on scroll - // internal states - this.isDragging = false; - this.isTouchDragging = false; - this.wasTouchScroll = false; - // Mouse - // ---------------------------------------------------------------------------------------------------- - this.handleMouseDown = function (ev) { - if (!_this.shouldIgnoreMouse() && - isPrimaryMouseButton(ev) && - _this.tryStart(ev)) { - var pev = _this.createEventFromMouse(ev, true); - _this.emitter.trigger('pointerdown', pev); - _this.initScrollWatch(pev); - if (!_this.shouldIgnoreMove) { - document.addEventListener('mousemove', _this.handleMouseMove); - } - document.addEventListener('mouseup', _this.handleMouseUp); - } - }; - this.handleMouseMove = function (ev) { - var pev = _this.createEventFromMouse(ev); - _this.recordCoords(pev); - _this.emitter.trigger('pointermove', pev); - }; - this.handleMouseUp = function (ev) { - document.removeEventListener('mousemove', _this.handleMouseMove); - document.removeEventListener('mouseup', _this.handleMouseUp); - _this.emitter.trigger('pointerup', _this.createEventFromMouse(ev)); - _this.cleanup(); // call last so that pointerup has access to props - }; - // Touch - // ---------------------------------------------------------------------------------------------------- - this.handleTouchStart = function (ev) { - if (_this.tryStart(ev)) { - _this.isTouchDragging = true; - var pev = _this.createEventFromTouch(ev, true); - _this.emitter.trigger('pointerdown', pev); - _this.initScrollWatch(pev); - // unlike mouse, need to attach to target, not document - // https://stackoverflow.com/a/45760014 - var target = ev.target; - if (!_this.shouldIgnoreMove) { - target.addEventListener('touchmove', _this.handleTouchMove); - } - target.addEventListener('touchend', _this.handleTouchEnd); - target.addEventListener('touchcancel', _this.handleTouchEnd); // treat it as a touch end - // attach a handler to get called when ANY scroll action happens on the page. - // this was impossible to do with normal on/off because 'scroll' doesn't bubble. - // http://stackoverflow.com/a/32954565/96342 - window.addEventListener('scroll', _this.handleTouchScroll, true // useCapture - ); - } - }; - this.handleTouchMove = function (ev) { - var pev = _this.createEventFromTouch(ev); - _this.recordCoords(pev); - _this.emitter.trigger('pointermove', pev); - }; - this.handleTouchEnd = function (ev) { - if (_this.isDragging) { // done to guard against touchend followed by touchcancel - var target = ev.target; - target.removeEventListener('touchmove', _this.handleTouchMove); - target.removeEventListener('touchend', _this.handleTouchEnd); - target.removeEventListener('touchcancel', _this.handleTouchEnd); - window.removeEventListener('scroll', _this.handleTouchScroll, true); // useCaptured=true - _this.emitter.trigger('pointerup', _this.createEventFromTouch(ev)); - _this.cleanup(); // call last so that pointerup has access to props - _this.isTouchDragging = false; - startIgnoringMouse(); - } - }; - this.handleTouchScroll = function () { - _this.wasTouchScroll = true; - }; - this.handleScroll = function (ev) { - if (!_this.shouldIgnoreMove) { - var pageX = (window.pageXOffset - _this.prevScrollX) + _this.prevPageX; - var pageY = (window.pageYOffset - _this.prevScrollY) + _this.prevPageY; - _this.emitter.trigger('pointermove', { - origEvent: ev, - isTouch: _this.isTouchDragging, - subjectEl: _this.subjectEl, - pageX: pageX, - pageY: pageY, - deltaX: pageX - _this.origPageX, - deltaY: pageY - _this.origPageY - }); - } - }; - this.containerEl = containerEl; - this.emitter = new core.EmitterMixin(); - containerEl.addEventListener('mousedown', this.handleMouseDown); - containerEl.addEventListener('touchstart', this.handleTouchStart, { passive: true }); - listenerCreated(); - } - PointerDragging.prototype.destroy = function () { - this.containerEl.removeEventListener('mousedown', this.handleMouseDown); - this.containerEl.removeEventListener('touchstart', this.handleTouchStart, { passive: true }); - listenerDestroyed(); - }; - PointerDragging.prototype.tryStart = function (ev) { - var subjectEl = this.querySubjectEl(ev); - var downEl = ev.target; - if (subjectEl && - (!this.handleSelector || core.elementClosest(downEl, this.handleSelector))) { - this.subjectEl = subjectEl; - this.downEl = downEl; - this.isDragging = true; // do this first so cancelTouchScroll will work - this.wasTouchScroll = false; - return true; - } - return false; - }; - PointerDragging.prototype.cleanup = function () { - isWindowTouchMoveCancelled = false; - this.isDragging = false; - this.subjectEl = null; - this.downEl = null; - // keep wasTouchScroll around for later access - this.destroyScrollWatch(); - }; - PointerDragging.prototype.querySubjectEl = function (ev) { - if (this.selector) { - return core.elementClosest(ev.target, this.selector); - } - else { - return this.containerEl; - } - }; - PointerDragging.prototype.shouldIgnoreMouse = function () { - return ignoreMouseDepth || this.isTouchDragging; - }; - // can be called by user of this class, to cancel touch-based scrolling for the current drag - PointerDragging.prototype.cancelTouchScroll = function () { - if (this.isDragging) { - isWindowTouchMoveCancelled = true; - } - }; - // Scrolling that simulates pointermoves - // ---------------------------------------------------------------------------------------------------- - PointerDragging.prototype.initScrollWatch = function (ev) { - if (this.shouldWatchScroll) { - this.recordCoords(ev); - window.addEventListener('scroll', this.handleScroll, true); // useCapture=true - } - }; - PointerDragging.prototype.recordCoords = function (ev) { - if (this.shouldWatchScroll) { - this.prevPageX = ev.pageX; - this.prevPageY = ev.pageY; - this.prevScrollX = window.pageXOffset; - this.prevScrollY = window.pageYOffset; - } - }; - PointerDragging.prototype.destroyScrollWatch = function () { - if (this.shouldWatchScroll) { - window.removeEventListener('scroll', this.handleScroll, true); // useCaptured=true - } - }; - // Event Normalization - // ---------------------------------------------------------------------------------------------------- - PointerDragging.prototype.createEventFromMouse = function (ev, isFirst) { - var deltaX = 0; - var deltaY = 0; - // TODO: repeat code - if (isFirst) { - this.origPageX = ev.pageX; - this.origPageY = ev.pageY; - } - else { - deltaX = ev.pageX - this.origPageX; - deltaY = ev.pageY - this.origPageY; - } - return { - origEvent: ev, - isTouch: false, - subjectEl: this.subjectEl, - pageX: ev.pageX, - pageY: ev.pageY, - deltaX: deltaX, - deltaY: deltaY - }; - }; - PointerDragging.prototype.createEventFromTouch = function (ev, isFirst) { - var touches = ev.touches; - var pageX; - var pageY; - var deltaX = 0; - var deltaY = 0; - // if touch coords available, prefer, - // because FF would give bad ev.pageX ev.pageY - if (touches && touches.length) { - pageX = touches[0].pageX; - pageY = touches[0].pageY; - } - else { - pageX = ev.pageX; - pageY = ev.pageY; - } - // TODO: repeat code - if (isFirst) { - this.origPageX = pageX; - this.origPageY = pageY; - } - else { - deltaX = pageX - this.origPageX; - deltaY = pageY - this.origPageY; - } - return { - origEvent: ev, - isTouch: true, - subjectEl: this.subjectEl, - pageX: pageX, - pageY: pageY, - deltaX: deltaX, - deltaY: deltaY - }; - }; - return PointerDragging; - }()); - // Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac) - function isPrimaryMouseButton(ev) { - return ev.button === 0 && !ev.ctrlKey; - } - // Ignoring fake mouse events generated by touch - // ---------------------------------------------------------------------------------------------------- - function startIgnoringMouse() { - ignoreMouseDepth++; - setTimeout(function () { - ignoreMouseDepth--; - }, core.config.touchMouseIgnoreWait); - } - // We want to attach touchmove as early as possible for Safari - // ---------------------------------------------------------------------------------------------------- - function listenerCreated() { - if (!(listenerCnt++)) { - window.addEventListener('touchmove', onWindowTouchMove, { passive: false }); - } - } - function listenerDestroyed() { - if (!(--listenerCnt)) { - window.removeEventListener('touchmove', onWindowTouchMove, { passive: false }); - } - } - function onWindowTouchMove(ev) { - if (isWindowTouchMoveCancelled) { - ev.preventDefault(); - } - } - - /* - An effect in which an element follows the movement of a pointer across the screen. - The moving element is a clone of some other element. - Must call start + handleMove + stop. - */ - var ElementMirror = /** @class */ (function () { - function ElementMirror() { - this.isVisible = false; // must be explicitly enabled - this.sourceEl = null; - this.mirrorEl = null; - this.sourceElRect = null; // screen coords relative to viewport - // options that can be set directly by caller - this.parentNode = document.body; - this.zIndex = 9999; - this.revertDuration = 0; - } - ElementMirror.prototype.start = function (sourceEl, pageX, pageY) { - this.sourceEl = sourceEl; - this.sourceElRect = this.sourceEl.getBoundingClientRect(); - this.origScreenX = pageX - window.pageXOffset; - this.origScreenY = pageY - window.pageYOffset; - this.deltaX = 0; - this.deltaY = 0; - this.updateElPosition(); - }; - ElementMirror.prototype.handleMove = function (pageX, pageY) { - this.deltaX = (pageX - window.pageXOffset) - this.origScreenX; - this.deltaY = (pageY - window.pageYOffset) - this.origScreenY; - this.updateElPosition(); - }; - // can be called before start - ElementMirror.prototype.setIsVisible = function (bool) { - if (bool) { - if (!this.isVisible) { - if (this.mirrorEl) { - this.mirrorEl.style.display = ''; - } - this.isVisible = bool; // needs to happen before updateElPosition - this.updateElPosition(); // because was not updating the position while invisible - } - } - else { - if (this.isVisible) { - if (this.mirrorEl) { - this.mirrorEl.style.display = 'none'; - } - this.isVisible = bool; - } - } - }; - // always async - ElementMirror.prototype.stop = function (needsRevertAnimation, callback) { - var _this = this; - var done = function () { - _this.cleanup(); - callback(); - }; - if (needsRevertAnimation && - this.mirrorEl && - this.isVisible && - this.revertDuration && // if 0, transition won't work - (this.deltaX || this.deltaY) // if same coords, transition won't work - ) { - this.doRevertAnimation(done, this.revertDuration); - } - else { - setTimeout(done, 0); - } - }; - ElementMirror.prototype.doRevertAnimation = function (callback, revertDuration) { - var mirrorEl = this.mirrorEl; - var finalSourceElRect = this.sourceEl.getBoundingClientRect(); // because autoscrolling might have happened - mirrorEl.style.transition = - 'top ' + revertDuration + 'ms,' + - 'left ' + revertDuration + 'ms'; - core.applyStyle(mirrorEl, { - left: finalSourceElRect.left, - top: finalSourceElRect.top - }); - core.whenTransitionDone(mirrorEl, function () { - mirrorEl.style.transition = ''; - callback(); - }); - }; - ElementMirror.prototype.cleanup = function () { - if (this.mirrorEl) { - core.removeElement(this.mirrorEl); - this.mirrorEl = null; - } - this.sourceEl = null; - }; - ElementMirror.prototype.updateElPosition = function () { - if (this.sourceEl && this.isVisible) { - core.applyStyle(this.getMirrorEl(), { - left: this.sourceElRect.left + this.deltaX, - top: this.sourceElRect.top + this.deltaY - }); - } - }; - ElementMirror.prototype.getMirrorEl = function () { - var sourceElRect = this.sourceElRect; - var mirrorEl = this.mirrorEl; - if (!mirrorEl) { - mirrorEl = this.mirrorEl = this.sourceEl.cloneNode(true); // cloneChildren=true - // we don't want long taps or any mouse interaction causing selection/menus. - // would use preventSelection(), but that prevents selectstart, causing problems. - mirrorEl.classList.add('fc-unselectable'); - mirrorEl.classList.add('fc-dragging'); - core.applyStyle(mirrorEl, { - position: 'fixed', - zIndex: this.zIndex, - visibility: '', - boxSizing: 'border-box', - width: sourceElRect.right - sourceElRect.left, - height: sourceElRect.bottom - sourceElRect.top, - right: 'auto', - bottom: 'auto', - margin: 0 - }); - this.parentNode.appendChild(mirrorEl); - } - return mirrorEl; - }; - return ElementMirror; - }()); - - /* - Is a cache for a given element's scroll information (all the info that ScrollController stores) - in addition the "client rectangle" of the element.. the area within the scrollbars. - - The cache can be in one of two modes: - - doesListening:false - ignores when the container is scrolled by someone else - - doesListening:true - watch for scrolling and update the cache - */ - var ScrollGeomCache = /** @class */ (function (_super) { - __extends(ScrollGeomCache, _super); - function ScrollGeomCache(scrollController, doesListening) { - var _this = _super.call(this) || this; - _this.handleScroll = function () { - _this.scrollTop = _this.scrollController.getScrollTop(); - _this.scrollLeft = _this.scrollController.getScrollLeft(); - _this.handleScrollChange(); - }; - _this.scrollController = scrollController; - _this.doesListening = doesListening; - _this.scrollTop = _this.origScrollTop = scrollController.getScrollTop(); - _this.scrollLeft = _this.origScrollLeft = scrollController.getScrollLeft(); - _this.scrollWidth = scrollController.getScrollWidth(); - _this.scrollHeight = scrollController.getScrollHeight(); - _this.clientWidth = scrollController.getClientWidth(); - _this.clientHeight = scrollController.getClientHeight(); - _this.clientRect = _this.computeClientRect(); // do last in case it needs cached values - if (_this.doesListening) { - _this.getEventTarget().addEventListener('scroll', _this.handleScroll); - } - return _this; - } - ScrollGeomCache.prototype.destroy = function () { - if (this.doesListening) { - this.getEventTarget().removeEventListener('scroll', this.handleScroll); - } - }; - ScrollGeomCache.prototype.getScrollTop = function () { - return this.scrollTop; - }; - ScrollGeomCache.prototype.getScrollLeft = function () { - return this.scrollLeft; - }; - ScrollGeomCache.prototype.setScrollTop = function (top) { - this.scrollController.setScrollTop(top); - if (!this.doesListening) { - // we are not relying on the element to normalize out-of-bounds scroll values - // so we need to sanitize ourselves - this.scrollTop = Math.max(Math.min(top, this.getMaxScrollTop()), 0); - this.handleScrollChange(); - } - }; - ScrollGeomCache.prototype.setScrollLeft = function (top) { - this.scrollController.setScrollLeft(top); - if (!this.doesListening) { - // we are not relying on the element to normalize out-of-bounds scroll values - // so we need to sanitize ourselves - this.scrollLeft = Math.max(Math.min(top, this.getMaxScrollLeft()), 0); - this.handleScrollChange(); - } - }; - ScrollGeomCache.prototype.getClientWidth = function () { - return this.clientWidth; - }; - ScrollGeomCache.prototype.getClientHeight = function () { - return this.clientHeight; - }; - ScrollGeomCache.prototype.getScrollWidth = function () { - return this.scrollWidth; - }; - ScrollGeomCache.prototype.getScrollHeight = function () { - return this.scrollHeight; - }; - ScrollGeomCache.prototype.handleScrollChange = function () { - }; - return ScrollGeomCache; - }(core.ScrollController)); - var ElementScrollGeomCache = /** @class */ (function (_super) { - __extends(ElementScrollGeomCache, _super); - function ElementScrollGeomCache(el, doesListening) { - return _super.call(this, new core.ElementScrollController(el), doesListening) || this; - } - ElementScrollGeomCache.prototype.getEventTarget = function () { - return this.scrollController.el; - }; - ElementScrollGeomCache.prototype.computeClientRect = function () { - return core.computeInnerRect(this.scrollController.el); - }; - return ElementScrollGeomCache; - }(ScrollGeomCache)); - var WindowScrollGeomCache = /** @class */ (function (_super) { - __extends(WindowScrollGeomCache, _super); - function WindowScrollGeomCache(doesListening) { - return _super.call(this, new core.WindowScrollController(), doesListening) || this; - } - WindowScrollGeomCache.prototype.getEventTarget = function () { - return window; - }; - WindowScrollGeomCache.prototype.computeClientRect = function () { - return { - left: this.scrollLeft, - right: this.scrollLeft + this.clientWidth, - top: this.scrollTop, - bottom: this.scrollTop + this.clientHeight - }; - }; - // the window is the only scroll object that changes it's rectangle relative - // to the document's topleft as it scrolls - WindowScrollGeomCache.prototype.handleScrollChange = function () { - this.clientRect = this.computeClientRect(); - }; - return WindowScrollGeomCache; - }(ScrollGeomCache)); - - // If available we are using native "performance" API instead of "Date" - // Read more about it on MDN: - // https://developer.mozilla.org/en-US/docs/Web/API/Performance - var getTime = typeof performance === 'function' ? performance.now : Date.now; - /* - For a pointer interaction, automatically scrolls certain scroll containers when the pointer - approaches the edge. - - The caller must call start + handleMove + stop. - */ - var AutoScroller = /** @class */ (function () { - function AutoScroller() { - var _this = this; - // options that can be set by caller - this.isEnabled = true; - this.scrollQuery = [window, '.fc-scroller']; - this.edgeThreshold = 50; // pixels - this.maxVelocity = 300; // pixels per second - // internal state - this.pointerScreenX = null; - this.pointerScreenY = null; - this.isAnimating = false; - this.scrollCaches = null; - // protect against the initial pointerdown being too close to an edge and starting the scroll - this.everMovedUp = false; - this.everMovedDown = false; - this.everMovedLeft = false; - this.everMovedRight = false; - this.animate = function () { - if (_this.isAnimating) { // wasn't cancelled between animation calls - var edge = _this.computeBestEdge(_this.pointerScreenX + window.pageXOffset, _this.pointerScreenY + window.pageYOffset); - if (edge) { - var now = getTime(); - _this.handleSide(edge, (now - _this.msSinceRequest) / 1000); - _this.requestAnimation(now); - } - else { - _this.isAnimating = false; // will stop animation - } - } - }; - } - AutoScroller.prototype.start = function (pageX, pageY) { - if (this.isEnabled) { - this.scrollCaches = this.buildCaches(); - this.pointerScreenX = null; - this.pointerScreenY = null; - this.everMovedUp = false; - this.everMovedDown = false; - this.everMovedLeft = false; - this.everMovedRight = false; - this.handleMove(pageX, pageY); - } - }; - AutoScroller.prototype.handleMove = function (pageX, pageY) { - if (this.isEnabled) { - var pointerScreenX = pageX - window.pageXOffset; - var pointerScreenY = pageY - window.pageYOffset; - var yDelta = this.pointerScreenY === null ? 0 : pointerScreenY - this.pointerScreenY; - var xDelta = this.pointerScreenX === null ? 0 : pointerScreenX - this.pointerScreenX; - if (yDelta < 0) { - this.everMovedUp = true; - } - else if (yDelta > 0) { - this.everMovedDown = true; - } - if (xDelta < 0) { - this.everMovedLeft = true; - } - else if (xDelta > 0) { - this.everMovedRight = true; - } - this.pointerScreenX = pointerScreenX; - this.pointerScreenY = pointerScreenY; - if (!this.isAnimating) { - this.isAnimating = true; - this.requestAnimation(getTime()); - } - } - }; - AutoScroller.prototype.stop = function () { - if (this.isEnabled) { - this.isAnimating = false; // will stop animation - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - scrollCache.destroy(); - } - this.scrollCaches = null; - } - }; - AutoScroller.prototype.requestAnimation = function (now) { - this.msSinceRequest = now; - requestAnimationFrame(this.animate); - }; - AutoScroller.prototype.handleSide = function (edge, seconds) { - var scrollCache = edge.scrollCache; - var edgeThreshold = this.edgeThreshold; - var invDistance = edgeThreshold - edge.distance; - var velocity = // the closer to the edge, the faster we scroll - (invDistance * invDistance) / (edgeThreshold * edgeThreshold) * // quadratic - this.maxVelocity * seconds; - var sign = 1; - switch (edge.name) { - case 'left': - sign = -1; - // falls through - case 'right': - scrollCache.setScrollLeft(scrollCache.getScrollLeft() + velocity * sign); - break; - case 'top': - sign = -1; - // falls through - case 'bottom': - scrollCache.setScrollTop(scrollCache.getScrollTop() + velocity * sign); - break; - } - }; - // left/top are relative to document topleft - AutoScroller.prototype.computeBestEdge = function (left, top) { - var edgeThreshold = this.edgeThreshold; - var bestSide = null; - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - var rect = scrollCache.clientRect; - var leftDist = left - rect.left; - var rightDist = rect.right - left; - var topDist = top - rect.top; - var bottomDist = rect.bottom - top; - // completely within the rect? - if (leftDist >= 0 && rightDist >= 0 && topDist >= 0 && bottomDist >= 0) { - if (topDist <= edgeThreshold && this.everMovedUp && scrollCache.canScrollUp() && - (!bestSide || bestSide.distance > topDist)) { - bestSide = { scrollCache: scrollCache, name: 'top', distance: topDist }; - } - if (bottomDist <= edgeThreshold && this.everMovedDown && scrollCache.canScrollDown() && - (!bestSide || bestSide.distance > bottomDist)) { - bestSide = { scrollCache: scrollCache, name: 'bottom', distance: bottomDist }; - } - if (leftDist <= edgeThreshold && this.everMovedLeft && scrollCache.canScrollLeft() && - (!bestSide || bestSide.distance > leftDist)) { - bestSide = { scrollCache: scrollCache, name: 'left', distance: leftDist }; - } - if (rightDist <= edgeThreshold && this.everMovedRight && scrollCache.canScrollRight() && - (!bestSide || bestSide.distance > rightDist)) { - bestSide = { scrollCache: scrollCache, name: 'right', distance: rightDist }; - } - } - } - return bestSide; - }; - AutoScroller.prototype.buildCaches = function () { - return this.queryScrollEls().map(function (el) { - if (el === window) { - return new WindowScrollGeomCache(false); // false = don't listen to user-generated scrolls - } - else { - return new ElementScrollGeomCache(el, false); // false = don't listen to user-generated scrolls - } - }); - }; - AutoScroller.prototype.queryScrollEls = function () { - var els = []; - for (var _i = 0, _a = this.scrollQuery; _i < _a.length; _i++) { - var query = _a[_i]; - if (typeof query === 'object') { - els.push(query); - } - else { - els.push.apply(els, Array.prototype.slice.call(document.querySelectorAll(query))); - } - } - return els; - }; - return AutoScroller; - }()); - - /* - Monitors dragging on an element. Has a number of high-level features: - - minimum distance required before dragging - - minimum wait time ("delay") before dragging - - a mirror element that follows the pointer - */ - var FeaturefulElementDragging = /** @class */ (function (_super) { - __extends(FeaturefulElementDragging, _super); - function FeaturefulElementDragging(containerEl) { - var _this = _super.call(this, containerEl) || this; - // options that can be directly set by caller - // the caller can also set the PointerDragging's options as well - _this.delay = null; - _this.minDistance = 0; - _this.touchScrollAllowed = true; // prevents drag from starting and blocks scrolling during drag - _this.mirrorNeedsRevert = false; - _this.isInteracting = false; // is the user validly moving the pointer? lasts until pointerup - _this.isDragging = false; // is it INTENTFULLY dragging? lasts until after revert animation - _this.isDelayEnded = false; - _this.isDistanceSurpassed = false; - _this.delayTimeoutId = null; - _this.onPointerDown = function (ev) { - if (!_this.isDragging) { // so new drag doesn't happen while revert animation is going - _this.isInteracting = true; - _this.isDelayEnded = false; - _this.isDistanceSurpassed = false; - core.preventSelection(document.body); - core.preventContextMenu(document.body); - // prevent links from being visited if there's an eventual drag. - // also prevents selection in older browsers (maybe?). - // not necessary for touch, besides, browser would complain about passiveness. - if (!ev.isTouch) { - ev.origEvent.preventDefault(); - } - _this.emitter.trigger('pointerdown', ev); - if (!_this.pointer.shouldIgnoreMove) { - // actions related to initiating dragstart+dragmove+dragend... - _this.mirror.setIsVisible(false); // reset. caller must set-visible - _this.mirror.start(ev.subjectEl, ev.pageX, ev.pageY); // must happen on first pointer down - _this.startDelay(ev); - if (!_this.minDistance) { - _this.handleDistanceSurpassed(ev); - } - } - } - }; - _this.onPointerMove = function (ev) { - if (_this.isInteracting) { // if false, still waiting for previous drag's revert - _this.emitter.trigger('pointermove', ev); - if (!_this.isDistanceSurpassed) { - var minDistance = _this.minDistance; - var distanceSq = void 0; // current distance from the origin, squared - var deltaX = ev.deltaX, deltaY = ev.deltaY; - distanceSq = deltaX * deltaX + deltaY * deltaY; - if (distanceSq >= minDistance * minDistance) { // use pythagorean theorem - _this.handleDistanceSurpassed(ev); - } - } - if (_this.isDragging) { - // a real pointer move? (not one simulated by scrolling) - if (ev.origEvent.type !== 'scroll') { - _this.mirror.handleMove(ev.pageX, ev.pageY); - _this.autoScroller.handleMove(ev.pageX, ev.pageY); - } - _this.emitter.trigger('dragmove', ev); - } - } - }; - _this.onPointerUp = function (ev) { - if (_this.isInteracting) { // if false, still waiting for previous drag's revert - _this.isInteracting = false; - core.allowSelection(document.body); - core.allowContextMenu(document.body); - _this.emitter.trigger('pointerup', ev); // can potentially set mirrorNeedsRevert - if (_this.isDragging) { - _this.autoScroller.stop(); - _this.tryStopDrag(ev); // which will stop the mirror - } - if (_this.delayTimeoutId) { - clearTimeout(_this.delayTimeoutId); - _this.delayTimeoutId = null; - } - } - }; - var pointer = _this.pointer = new PointerDragging(containerEl); - pointer.emitter.on('pointerdown', _this.onPointerDown); - pointer.emitter.on('pointermove', _this.onPointerMove); - pointer.emitter.on('pointerup', _this.onPointerUp); - _this.mirror = new ElementMirror(); - _this.autoScroller = new AutoScroller(); - return _this; - } - FeaturefulElementDragging.prototype.destroy = function () { - this.pointer.destroy(); - }; - FeaturefulElementDragging.prototype.startDelay = function (ev) { - var _this = this; - if (typeof this.delay === 'number') { - this.delayTimeoutId = setTimeout(function () { - _this.delayTimeoutId = null; - _this.handleDelayEnd(ev); - }, this.delay); // not assignable to number! - } - else { - this.handleDelayEnd(ev); - } - }; - FeaturefulElementDragging.prototype.handleDelayEnd = function (ev) { - this.isDelayEnded = true; - this.tryStartDrag(ev); - }; - FeaturefulElementDragging.prototype.handleDistanceSurpassed = function (ev) { - this.isDistanceSurpassed = true; - this.tryStartDrag(ev); - }; - FeaturefulElementDragging.prototype.tryStartDrag = function (ev) { - if (this.isDelayEnded && this.isDistanceSurpassed) { - if (!this.pointer.wasTouchScroll || this.touchScrollAllowed) { - this.isDragging = true; - this.mirrorNeedsRevert = false; - this.autoScroller.start(ev.pageX, ev.pageY); - this.emitter.trigger('dragstart', ev); - if (this.touchScrollAllowed === false) { - this.pointer.cancelTouchScroll(); - } - } - } - }; - FeaturefulElementDragging.prototype.tryStopDrag = function (ev) { - // .stop() is ALWAYS asynchronous, which we NEED because we want all pointerup events - // that come from the document to fire beforehand. much more convenient this way. - this.mirror.stop(this.mirrorNeedsRevert, this.stopDrag.bind(this, ev) // bound with args - ); - }; - FeaturefulElementDragging.prototype.stopDrag = function (ev) { - this.isDragging = false; - this.emitter.trigger('dragend', ev); - }; - // fill in the implementations... - FeaturefulElementDragging.prototype.setIgnoreMove = function (bool) { - this.pointer.shouldIgnoreMove = bool; - }; - FeaturefulElementDragging.prototype.setMirrorIsVisible = function (bool) { - this.mirror.setIsVisible(bool); - }; - FeaturefulElementDragging.prototype.setMirrorNeedsRevert = function (bool) { - this.mirrorNeedsRevert = bool; - }; - FeaturefulElementDragging.prototype.setAutoScrollEnabled = function (bool) { - this.autoScroller.isEnabled = bool; - }; - return FeaturefulElementDragging; - }(core.ElementDragging)); - - /* - When this class is instantiated, it records the offset of an element (relative to the document topleft), - and continues to monitor scrolling, updating the cached coordinates if it needs to. - Does not access the DOM after instantiation, so highly performant. - - Also keeps track of all scrolling/overflow:hidden containers that are parents of the given element - and an determine if a given point is inside the combined clipping rectangle. - */ - var OffsetTracker = /** @class */ (function () { - function OffsetTracker(el) { - this.origRect = core.computeRect(el); - // will work fine for divs that have overflow:hidden - this.scrollCaches = core.getClippingParents(el).map(function (el) { - return new ElementScrollGeomCache(el, true); // listen=true - }); - } - OffsetTracker.prototype.destroy = function () { - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - scrollCache.destroy(); - } - }; - OffsetTracker.prototype.computeLeft = function () { - var left = this.origRect.left; - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - left += scrollCache.origScrollLeft - scrollCache.getScrollLeft(); - } - return left; - }; - OffsetTracker.prototype.computeTop = function () { - var top = this.origRect.top; - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - top += scrollCache.origScrollTop - scrollCache.getScrollTop(); - } - return top; - }; - OffsetTracker.prototype.isWithinClipping = function (pageX, pageY) { - var point = { left: pageX, top: pageY }; - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - if (!isIgnoredClipping(scrollCache.getEventTarget()) && - !core.pointInsideRect(point, scrollCache.clientRect)) { - return false; - } - } - return true; - }; - return OffsetTracker; - }()); - // certain clipping containers should never constrain interactions, like and - // https://github.com/fullcalendar/fullcalendar/issues/3615 - function isIgnoredClipping(node) { - var tagName = node.tagName; - return tagName === 'HTML' || tagName === 'BODY'; - } - - /* - Tracks movement over multiple droppable areas (aka "hits") - that exist in one or more DateComponents. - Relies on an existing draggable. - - emits: - - pointerdown - - dragstart - - hitchange - fires initially, even if not over a hit - - pointerup - - (hitchange - again, to null, if ended over a hit) - - dragend - */ - var HitDragging = /** @class */ (function () { - function HitDragging(dragging, droppableStore) { - var _this = this; - // options that can be set by caller - this.useSubjectCenter = false; - this.requireInitial = true; // if doesn't start out on a hit, won't emit any events - this.initialHit = null; - this.movingHit = null; - this.finalHit = null; // won't ever be populated if shouldIgnoreMove - this.handlePointerDown = function (ev) { - var dragging = _this.dragging; - _this.initialHit = null; - _this.movingHit = null; - _this.finalHit = null; - _this.prepareHits(); - _this.processFirstCoord(ev); - if (_this.initialHit || !_this.requireInitial) { - dragging.setIgnoreMove(false); - _this.emitter.trigger('pointerdown', ev); // TODO: fire this before computing processFirstCoord, so listeners can cancel. this gets fired by almost every handler :( - } - else { - dragging.setIgnoreMove(true); - } - }; - this.handleDragStart = function (ev) { - _this.emitter.trigger('dragstart', ev); - _this.handleMove(ev, true); // force = fire even if initially null - }; - this.handleDragMove = function (ev) { - _this.emitter.trigger('dragmove', ev); - _this.handleMove(ev); - }; - this.handlePointerUp = function (ev) { - _this.releaseHits(); - _this.emitter.trigger('pointerup', ev); - }; - this.handleDragEnd = function (ev) { - if (_this.movingHit) { - _this.emitter.trigger('hitupdate', null, true, ev); - } - _this.finalHit = _this.movingHit; - _this.movingHit = null; - _this.emitter.trigger('dragend', ev); - }; - this.droppableStore = droppableStore; - dragging.emitter.on('pointerdown', this.handlePointerDown); - dragging.emitter.on('dragstart', this.handleDragStart); - dragging.emitter.on('dragmove', this.handleDragMove); - dragging.emitter.on('pointerup', this.handlePointerUp); - dragging.emitter.on('dragend', this.handleDragEnd); - this.dragging = dragging; - this.emitter = new core.EmitterMixin(); - } - // sets initialHit - // sets coordAdjust - HitDragging.prototype.processFirstCoord = function (ev) { - var origPoint = { left: ev.pageX, top: ev.pageY }; - var adjustedPoint = origPoint; - var subjectEl = ev.subjectEl; - var subjectRect; - if (subjectEl !== document) { - subjectRect = core.computeRect(subjectEl); - adjustedPoint = core.constrainPoint(adjustedPoint, subjectRect); - } - var initialHit = this.initialHit = this.queryHitForOffset(adjustedPoint.left, adjustedPoint.top); - if (initialHit) { - if (this.useSubjectCenter && subjectRect) { - var slicedSubjectRect = core.intersectRects(subjectRect, initialHit.rect); - if (slicedSubjectRect) { - adjustedPoint = core.getRectCenter(slicedSubjectRect); - } - } - this.coordAdjust = core.diffPoints(adjustedPoint, origPoint); - } - else { - this.coordAdjust = { left: 0, top: 0 }; - } - }; - HitDragging.prototype.handleMove = function (ev, forceHandle) { - var hit = this.queryHitForOffset(ev.pageX + this.coordAdjust.left, ev.pageY + this.coordAdjust.top); - if (forceHandle || !isHitsEqual(this.movingHit, hit)) { - this.movingHit = hit; - this.emitter.trigger('hitupdate', hit, false, ev); - } - }; - HitDragging.prototype.prepareHits = function () { - this.offsetTrackers = core.mapHash(this.droppableStore, function (interactionSettings) { - interactionSettings.component.buildPositionCaches(); - return new OffsetTracker(interactionSettings.el); - }); - }; - HitDragging.prototype.releaseHits = function () { - var offsetTrackers = this.offsetTrackers; - for (var id in offsetTrackers) { - offsetTrackers[id].destroy(); - } - this.offsetTrackers = {}; - }; - HitDragging.prototype.queryHitForOffset = function (offsetLeft, offsetTop) { - var _a = this, droppableStore = _a.droppableStore, offsetTrackers = _a.offsetTrackers; - var bestHit = null; - for (var id in droppableStore) { - var component = droppableStore[id].component; - var offsetTracker = offsetTrackers[id]; - if (offsetTracker.isWithinClipping(offsetLeft, offsetTop)) { - var originLeft = offsetTracker.computeLeft(); - var originTop = offsetTracker.computeTop(); - var positionLeft = offsetLeft - originLeft; - var positionTop = offsetTop - originTop; - var origRect = offsetTracker.origRect; - var width = origRect.right - origRect.left; - var height = origRect.bottom - origRect.top; - if ( - // must be within the element's bounds - positionLeft >= 0 && positionLeft < width && - positionTop >= 0 && positionTop < height) { - var hit = component.queryHit(positionLeft, positionTop, width, height); - if (hit && - ( - // make sure the hit is within activeRange, meaning it's not a deal cell - !component.props.dateProfile || // hack for DayTile - core.rangeContainsRange(component.props.dateProfile.activeRange, hit.dateSpan.range)) && - (!bestHit || hit.layer > bestHit.layer)) { - // TODO: better way to re-orient rectangle - hit.rect.left += originLeft; - hit.rect.right += originLeft; - hit.rect.top += originTop; - hit.rect.bottom += originTop; - bestHit = hit; - } - } - } - } - return bestHit; - }; - return HitDragging; - }()); - function isHitsEqual(hit0, hit1) { - if (!hit0 && !hit1) { - return true; - } - if (Boolean(hit0) !== Boolean(hit1)) { - return false; - } - return core.isDateSpansEqual(hit0.dateSpan, hit1.dateSpan); - } - - /* - Monitors when the user clicks on a specific date/time of a component. - A pointerdown+pointerup on the same "hit" constitutes a click. - */ - var DateClicking = /** @class */ (function (_super) { - __extends(DateClicking, _super); - function DateClicking(settings) { - var _this = _super.call(this, settings) || this; - _this.handlePointerDown = function (ev) { - var dragging = _this.dragging; - // do this in pointerdown (not dragend) because DOM might be mutated by the time dragend is fired - dragging.setIgnoreMove(!_this.component.isValidDateDownEl(dragging.pointer.downEl)); - }; - // won't even fire if moving was ignored - _this.handleDragEnd = function (ev) { - var component = _this.component; - var pointer = _this.dragging.pointer; - if (!pointer.wasTouchScroll) { - var _a = _this.hitDragging, initialHit = _a.initialHit, finalHit = _a.finalHit; - if (initialHit && finalHit && isHitsEqual(initialHit, finalHit)) { - component.calendar.triggerDateClick(initialHit.dateSpan, initialHit.dayEl, component.view, ev.origEvent); - } - } - }; - var component = settings.component; - // we DO want to watch pointer moves because otherwise finalHit won't get populated - _this.dragging = new FeaturefulElementDragging(component.el); - _this.dragging.autoScroller.isEnabled = false; - var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, core.interactionSettingsToStore(settings)); - hitDragging.emitter.on('pointerdown', _this.handlePointerDown); - hitDragging.emitter.on('dragend', _this.handleDragEnd); - return _this; - } - DateClicking.prototype.destroy = function () { - this.dragging.destroy(); - }; - return DateClicking; - }(core.Interaction)); - - /* - Tracks when the user selects a portion of time of a component, - constituted by a drag over date cells, with a possible delay at the beginning of the drag. - */ - var DateSelecting = /** @class */ (function (_super) { - __extends(DateSelecting, _super); - function DateSelecting(settings) { - var _this = _super.call(this, settings) || this; - _this.dragSelection = null; - _this.handlePointerDown = function (ev) { - var _a = _this, component = _a.component, dragging = _a.dragging; - var canSelect = component.opt('selectable') && - component.isValidDateDownEl(ev.origEvent.target); - // don't bother to watch expensive moves if component won't do selection - dragging.setIgnoreMove(!canSelect); - // if touch, require user to hold down - dragging.delay = ev.isTouch ? getComponentTouchDelay(component) : null; - }; - _this.handleDragStart = function (ev) { - _this.component.calendar.unselect(ev); // unselect previous selections - }; - _this.handleHitUpdate = function (hit, isFinal) { - var calendar = _this.component.calendar; - var dragSelection = null; - var isInvalid = false; - if (hit) { - dragSelection = joinHitsIntoSelection(_this.hitDragging.initialHit, hit, calendar.pluginSystem.hooks.dateSelectionTransformers); - if (!dragSelection || !_this.component.isDateSelectionValid(dragSelection)) { - isInvalid = true; - dragSelection = null; - } - } - if (dragSelection) { - calendar.dispatch({ type: 'SELECT_DATES', selection: dragSelection }); - } - else if (!isFinal) { // only unselect if moved away while dragging - calendar.dispatch({ type: 'UNSELECT_DATES' }); - } - if (!isInvalid) { - core.enableCursor(); - } - else { - core.disableCursor(); - } - if (!isFinal) { - _this.dragSelection = dragSelection; // only clear if moved away from all hits while dragging - } - }; - _this.handlePointerUp = function (pev) { - if (_this.dragSelection) { - // selection is already rendered, so just need to report selection - _this.component.calendar.triggerDateSelect(_this.dragSelection, pev); - _this.dragSelection = null; - } - }; - var component = settings.component; - var dragging = _this.dragging = new FeaturefulElementDragging(component.el); - dragging.touchScrollAllowed = false; - dragging.minDistance = component.opt('selectMinDistance') || 0; - dragging.autoScroller.isEnabled = component.opt('dragScroll'); - var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, core.interactionSettingsToStore(settings)); - hitDragging.emitter.on('pointerdown', _this.handlePointerDown); - hitDragging.emitter.on('dragstart', _this.handleDragStart); - hitDragging.emitter.on('hitupdate', _this.handleHitUpdate); - hitDragging.emitter.on('pointerup', _this.handlePointerUp); - return _this; - } - DateSelecting.prototype.destroy = function () { - this.dragging.destroy(); - }; - return DateSelecting; - }(core.Interaction)); - function getComponentTouchDelay(component) { - var delay = component.opt('selectLongPressDelay'); - if (delay == null) { - delay = component.opt('longPressDelay'); - } - return delay; - } - function joinHitsIntoSelection(hit0, hit1, dateSelectionTransformers) { - var dateSpan0 = hit0.dateSpan; - var dateSpan1 = hit1.dateSpan; - var ms = [ - dateSpan0.range.start, - dateSpan0.range.end, - dateSpan1.range.start, - dateSpan1.range.end - ]; - ms.sort(core.compareNumbers); - var props = {}; - for (var _i = 0, dateSelectionTransformers_1 = dateSelectionTransformers; _i < dateSelectionTransformers_1.length; _i++) { - var transformer = dateSelectionTransformers_1[_i]; - var res = transformer(hit0, hit1); - if (res === false) { - return null; - } - else if (res) { - __assign(props, res); - } - } - props.range = { start: ms[0], end: ms[3] }; - props.allDay = dateSpan0.allDay; - return props; - } - - var EventDragging = /** @class */ (function (_super) { - __extends(EventDragging, _super); - function EventDragging(settings) { - var _this = _super.call(this, settings) || this; - // internal state - _this.subjectSeg = null; // the seg being selected/dragged - _this.isDragging = false; - _this.eventRange = null; - _this.relevantEvents = null; // the events being dragged - _this.receivingCalendar = null; - _this.validMutation = null; - _this.mutatedRelevantEvents = null; - _this.handlePointerDown = function (ev) { - var origTarget = ev.origEvent.target; - var _a = _this, component = _a.component, dragging = _a.dragging; - var mirror = dragging.mirror; - var initialCalendar = component.calendar; - var subjectSeg = _this.subjectSeg = core.getElSeg(ev.subjectEl); - var eventRange = _this.eventRange = subjectSeg.eventRange; - var eventInstanceId = eventRange.instance.instanceId; - _this.relevantEvents = core.getRelevantEvents(initialCalendar.state.eventStore, eventInstanceId); - dragging.minDistance = ev.isTouch ? 0 : component.opt('eventDragMinDistance'); - dragging.delay = - // only do a touch delay if touch and this event hasn't been selected yet - (ev.isTouch && eventInstanceId !== component.props.eventSelection) ? - getComponentTouchDelay$1(component) : - null; - mirror.parentNode = initialCalendar.el; - mirror.revertDuration = component.opt('dragRevertDuration'); - var isValid = component.isValidSegDownEl(origTarget) && - !core.elementClosest(origTarget, '.fc-resizer'); // NOT on a resizer - dragging.setIgnoreMove(!isValid); - // disable dragging for elements that are resizable (ie, selectable) - // but are not draggable - _this.isDragging = isValid && - ev.subjectEl.classList.contains('fc-draggable'); - }; - _this.handleDragStart = function (ev) { - var initialCalendar = _this.component.calendar; - var eventRange = _this.eventRange; - var eventInstanceId = eventRange.instance.instanceId; - if (ev.isTouch) { - // need to select a different event? - if (eventInstanceId !== _this.component.props.eventSelection) { - initialCalendar.dispatch({ type: 'SELECT_EVENT', eventInstanceId: eventInstanceId }); - } - } - else { - // if now using mouse, but was previous touch interaction, clear selected event - initialCalendar.dispatch({ type: 'UNSELECT_EVENT' }); - } - if (_this.isDragging) { - initialCalendar.unselect(ev); // unselect *date* selection - initialCalendar.publiclyTrigger('eventDragStart', [ - { - el: _this.subjectSeg.el, - event: new core.EventApi(initialCalendar, eventRange.def, eventRange.instance), - jsEvent: ev.origEvent, - view: _this.component.view - } - ]); - } - }; - _this.handleHitUpdate = function (hit, isFinal) { - if (!_this.isDragging) { - return; - } - var relevantEvents = _this.relevantEvents; - var initialHit = _this.hitDragging.initialHit; - var initialCalendar = _this.component.calendar; - // states based on new hit - var receivingCalendar = null; - var mutation = null; - var mutatedRelevantEvents = null; - var isInvalid = false; - var interaction = { - affectedEvents: relevantEvents, - mutatedEvents: core.createEmptyEventStore(), - isEvent: true, - origSeg: _this.subjectSeg - }; - if (hit) { - var receivingComponent = hit.component; - receivingCalendar = receivingComponent.calendar; - if (initialCalendar === receivingCalendar || - receivingComponent.opt('editable') && receivingComponent.opt('droppable')) { - mutation = computeEventMutation(initialHit, hit, receivingCalendar.pluginSystem.hooks.eventDragMutationMassagers); - if (mutation) { - mutatedRelevantEvents = core.applyMutationToEventStore(relevantEvents, receivingCalendar.eventUiBases, mutation, receivingCalendar); - interaction.mutatedEvents = mutatedRelevantEvents; - if (!receivingComponent.isInteractionValid(interaction)) { - isInvalid = true; - mutation = null; - mutatedRelevantEvents = null; - interaction.mutatedEvents = core.createEmptyEventStore(); - } - } - } - else { - receivingCalendar = null; - } - } - _this.displayDrag(receivingCalendar, interaction); - if (!isInvalid) { - core.enableCursor(); - } - else { - core.disableCursor(); - } - if (!isFinal) { - if (initialCalendar === receivingCalendar && // TODO: write test for this - isHitsEqual(initialHit, hit)) { - mutation = null; - } - _this.dragging.setMirrorNeedsRevert(!mutation); - // render the mirror if no already-rendered mirror - // TODO: wish we could somehow wait for dispatch to guarantee render - _this.dragging.setMirrorIsVisible(!hit || !document.querySelector('.fc-mirror')); - // assign states based on new hit - _this.receivingCalendar = receivingCalendar; - _this.validMutation = mutation; - _this.mutatedRelevantEvents = mutatedRelevantEvents; - } - }; - _this.handlePointerUp = function () { - if (!_this.isDragging) { - _this.cleanup(); // because handleDragEnd won't fire - } - }; - _this.handleDragEnd = function (ev) { - if (_this.isDragging) { - var initialCalendar_1 = _this.component.calendar; - var initialView = _this.component.view; - var _a = _this, receivingCalendar = _a.receivingCalendar, validMutation = _a.validMutation; - var eventDef = _this.eventRange.def; - var eventInstance = _this.eventRange.instance; - var eventApi = new core.EventApi(initialCalendar_1, eventDef, eventInstance); - var relevantEvents_1 = _this.relevantEvents; - var mutatedRelevantEvents = _this.mutatedRelevantEvents; - var finalHit = _this.hitDragging.finalHit; - _this.clearDrag(); // must happen after revert animation - initialCalendar_1.publiclyTrigger('eventDragStop', [ - { - el: _this.subjectSeg.el, - event: eventApi, - jsEvent: ev.origEvent, - view: initialView - } - ]); - if (validMutation) { - // dropped within same calendar - if (receivingCalendar === initialCalendar_1) { - initialCalendar_1.dispatch({ - type: 'MERGE_EVENTS', - eventStore: mutatedRelevantEvents - }); - var transformed = {}; - for (var _i = 0, _b = initialCalendar_1.pluginSystem.hooks.eventDropTransformers; _i < _b.length; _i++) { - var transformer = _b[_i]; - __assign(transformed, transformer(validMutation, initialCalendar_1)); - } - var eventDropArg = __assign({}, transformed, { el: ev.subjectEl, delta: validMutation.datesDelta, oldEvent: eventApi, event: new core.EventApi(// the data AFTER the mutation - initialCalendar_1, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null), revert: function () { - initialCalendar_1.dispatch({ - type: 'MERGE_EVENTS', - eventStore: relevantEvents_1 - }); - }, jsEvent: ev.origEvent, view: initialView }); - initialCalendar_1.publiclyTrigger('eventDrop', [eventDropArg]); - // dropped in different calendar - } - else if (receivingCalendar) { - initialCalendar_1.publiclyTrigger('eventLeave', [ - { - draggedEl: ev.subjectEl, - event: eventApi, - view: initialView - } - ]); - initialCalendar_1.dispatch({ - type: 'REMOVE_EVENT_INSTANCES', - instances: _this.mutatedRelevantEvents.instances - }); - receivingCalendar.dispatch({ - type: 'MERGE_EVENTS', - eventStore: _this.mutatedRelevantEvents - }); - if (ev.isTouch) { - receivingCalendar.dispatch({ - type: 'SELECT_EVENT', - eventInstanceId: eventInstance.instanceId - }); - } - var dropArg = __assign({}, receivingCalendar.buildDatePointApi(finalHit.dateSpan), { draggedEl: ev.subjectEl, jsEvent: ev.origEvent, view: finalHit.component // should this be finalHit.component.view? See #4644 - }); - receivingCalendar.publiclyTrigger('drop', [dropArg]); - receivingCalendar.publiclyTrigger('eventReceive', [ - { - draggedEl: ev.subjectEl, - event: new core.EventApi(// the data AFTER the mutation - receivingCalendar, mutatedRelevantEvents.defs[eventDef.defId], mutatedRelevantEvents.instances[eventInstance.instanceId]), - view: finalHit.component // should this be finalHit.component.view? See #4644 - } - ]); - } - } - else { - initialCalendar_1.publiclyTrigger('_noEventDrop'); - } - } - _this.cleanup(); - }; - var component = _this.component; - var dragging = _this.dragging = new FeaturefulElementDragging(component.el); - dragging.pointer.selector = EventDragging.SELECTOR; - dragging.touchScrollAllowed = false; - dragging.autoScroller.isEnabled = component.opt('dragScroll'); - var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, core.interactionSettingsStore); - hitDragging.useSubjectCenter = settings.useEventCenter; - hitDragging.emitter.on('pointerdown', _this.handlePointerDown); - hitDragging.emitter.on('dragstart', _this.handleDragStart); - hitDragging.emitter.on('hitupdate', _this.handleHitUpdate); - hitDragging.emitter.on('pointerup', _this.handlePointerUp); - hitDragging.emitter.on('dragend', _this.handleDragEnd); - return _this; - } - EventDragging.prototype.destroy = function () { - this.dragging.destroy(); - }; - // render a drag state on the next receivingCalendar - EventDragging.prototype.displayDrag = function (nextCalendar, state) { - var initialCalendar = this.component.calendar; - var prevCalendar = this.receivingCalendar; - // does the previous calendar need to be cleared? - if (prevCalendar && prevCalendar !== nextCalendar) { - // does the initial calendar need to be cleared? - // if so, don't clear all the way. we still need to to hide the affectedEvents - if (prevCalendar === initialCalendar) { - prevCalendar.dispatch({ - type: 'SET_EVENT_DRAG', - state: { - affectedEvents: state.affectedEvents, - mutatedEvents: core.createEmptyEventStore(), - isEvent: true, - origSeg: state.origSeg - } - }); - // completely clear the old calendar if it wasn't the initial - } - else { - prevCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - } - if (nextCalendar) { - nextCalendar.dispatch({ type: 'SET_EVENT_DRAG', state: state }); - } - }; - EventDragging.prototype.clearDrag = function () { - var initialCalendar = this.component.calendar; - var receivingCalendar = this.receivingCalendar; - if (receivingCalendar) { - receivingCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - // the initial calendar might have an dummy drag state from displayDrag - if (initialCalendar !== receivingCalendar) { - initialCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - }; - EventDragging.prototype.cleanup = function () { - this.subjectSeg = null; - this.isDragging = false; - this.eventRange = null; - this.relevantEvents = null; - this.receivingCalendar = null; - this.validMutation = null; - this.mutatedRelevantEvents = null; - }; - EventDragging.SELECTOR = '.fc-draggable, .fc-resizable'; // TODO: test this in IE11 - return EventDragging; - }(core.Interaction)); - function computeEventMutation(hit0, hit1, massagers) { - var dateSpan0 = hit0.dateSpan; - var dateSpan1 = hit1.dateSpan; - var date0 = dateSpan0.range.start; - var date1 = dateSpan1.range.start; - var standardProps = {}; - if (dateSpan0.allDay !== dateSpan1.allDay) { - standardProps.allDay = dateSpan1.allDay; - standardProps.hasEnd = hit1.component.opt('allDayMaintainDuration'); - if (dateSpan1.allDay) { - // means date1 is already start-of-day, - // but date0 needs to be converted - date0 = core.startOfDay(date0); - } - } - var delta = core.diffDates(date0, date1, hit0.component.dateEnv, hit0.component === hit1.component ? - hit0.component.largeUnit : - null); - if (delta.milliseconds) { // has hours/minutes/seconds - standardProps.allDay = false; - } - var mutation = { - datesDelta: delta, - standardProps: standardProps - }; - for (var _i = 0, massagers_1 = massagers; _i < massagers_1.length; _i++) { - var massager = massagers_1[_i]; - massager(mutation, hit0, hit1); - } - return mutation; - } - function getComponentTouchDelay$1(component) { - var delay = component.opt('eventLongPressDelay'); - if (delay == null) { - delay = component.opt('longPressDelay'); - } - return delay; - } - - var EventDragging$1 = /** @class */ (function (_super) { - __extends(EventDragging, _super); - function EventDragging(settings) { - var _this = _super.call(this, settings) || this; - // internal state - _this.draggingSeg = null; // TODO: rename to resizingSeg? subjectSeg? - _this.eventRange = null; - _this.relevantEvents = null; - _this.validMutation = null; - _this.mutatedRelevantEvents = null; - _this.handlePointerDown = function (ev) { - var component = _this.component; - var seg = _this.querySeg(ev); - var eventRange = _this.eventRange = seg.eventRange; - _this.dragging.minDistance = component.opt('eventDragMinDistance'); - // if touch, need to be working with a selected event - _this.dragging.setIgnoreMove(!_this.component.isValidSegDownEl(ev.origEvent.target) || - (ev.isTouch && _this.component.props.eventSelection !== eventRange.instance.instanceId)); - }; - _this.handleDragStart = function (ev) { - var calendar = _this.component.calendar; - var eventRange = _this.eventRange; - _this.relevantEvents = core.getRelevantEvents(calendar.state.eventStore, _this.eventRange.instance.instanceId); - _this.draggingSeg = _this.querySeg(ev); - calendar.unselect(); - calendar.publiclyTrigger('eventResizeStart', [ - { - el: _this.draggingSeg.el, - event: new core.EventApi(calendar, eventRange.def, eventRange.instance), - jsEvent: ev.origEvent, - view: _this.component.view - } - ]); - }; - _this.handleHitUpdate = function (hit, isFinal, ev) { - var calendar = _this.component.calendar; - var relevantEvents = _this.relevantEvents; - var initialHit = _this.hitDragging.initialHit; - var eventInstance = _this.eventRange.instance; - var mutation = null; - var mutatedRelevantEvents = null; - var isInvalid = false; - var interaction = { - affectedEvents: relevantEvents, - mutatedEvents: core.createEmptyEventStore(), - isEvent: true, - origSeg: _this.draggingSeg - }; - if (hit) { - mutation = computeMutation(initialHit, hit, ev.subjectEl.classList.contains('fc-start-resizer'), eventInstance.range, calendar.pluginSystem.hooks.eventResizeJoinTransforms); - } - if (mutation) { - mutatedRelevantEvents = core.applyMutationToEventStore(relevantEvents, calendar.eventUiBases, mutation, calendar); - interaction.mutatedEvents = mutatedRelevantEvents; - if (!_this.component.isInteractionValid(interaction)) { - isInvalid = true; - mutation = null; - mutatedRelevantEvents = null; - interaction.mutatedEvents = null; - } - } - if (mutatedRelevantEvents) { - calendar.dispatch({ - type: 'SET_EVENT_RESIZE', - state: interaction - }); - } - else { - calendar.dispatch({ type: 'UNSET_EVENT_RESIZE' }); - } - if (!isInvalid) { - core.enableCursor(); - } - else { - core.disableCursor(); - } - if (!isFinal) { - if (mutation && isHitsEqual(initialHit, hit)) { - mutation = null; - } - _this.validMutation = mutation; - _this.mutatedRelevantEvents = mutatedRelevantEvents; - } - }; - _this.handleDragEnd = function (ev) { - var calendar = _this.component.calendar; - var view = _this.component.view; - var eventDef = _this.eventRange.def; - var eventInstance = _this.eventRange.instance; - var eventApi = new core.EventApi(calendar, eventDef, eventInstance); - var relevantEvents = _this.relevantEvents; - var mutatedRelevantEvents = _this.mutatedRelevantEvents; - calendar.publiclyTrigger('eventResizeStop', [ - { - el: _this.draggingSeg.el, - event: eventApi, - jsEvent: ev.origEvent, - view: view - } - ]); - if (_this.validMutation) { - calendar.dispatch({ - type: 'MERGE_EVENTS', - eventStore: mutatedRelevantEvents - }); - calendar.publiclyTrigger('eventResize', [ - { - el: _this.draggingSeg.el, - startDelta: _this.validMutation.startDelta || core.createDuration(0), - endDelta: _this.validMutation.endDelta || core.createDuration(0), - prevEvent: eventApi, - event: new core.EventApi(// the data AFTER the mutation - calendar, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null), - revert: function () { - calendar.dispatch({ - type: 'MERGE_EVENTS', - eventStore: relevantEvents - }); - }, - jsEvent: ev.origEvent, - view: view - } - ]); - } - else { - calendar.publiclyTrigger('_noEventResize'); - } - // reset all internal state - _this.draggingSeg = null; - _this.relevantEvents = null; - _this.validMutation = null; - // okay to keep eventInstance around. useful to set it in handlePointerDown - }; - var component = settings.component; - var dragging = _this.dragging = new FeaturefulElementDragging(component.el); - dragging.pointer.selector = '.fc-resizer'; - dragging.touchScrollAllowed = false; - dragging.autoScroller.isEnabled = component.opt('dragScroll'); - var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, core.interactionSettingsToStore(settings)); - hitDragging.emitter.on('pointerdown', _this.handlePointerDown); - hitDragging.emitter.on('dragstart', _this.handleDragStart); - hitDragging.emitter.on('hitupdate', _this.handleHitUpdate); - hitDragging.emitter.on('dragend', _this.handleDragEnd); - return _this; - } - EventDragging.prototype.destroy = function () { - this.dragging.destroy(); - }; - EventDragging.prototype.querySeg = function (ev) { - return core.getElSeg(core.elementClosest(ev.subjectEl, this.component.fgSegSelector)); - }; - return EventDragging; - }(core.Interaction)); - function computeMutation(hit0, hit1, isFromStart, instanceRange, transforms) { - var dateEnv = hit0.component.dateEnv; - var date0 = hit0.dateSpan.range.start; - var date1 = hit1.dateSpan.range.start; - var delta = core.diffDates(date0, date1, dateEnv, hit0.component.largeUnit); - var props = {}; - for (var _i = 0, transforms_1 = transforms; _i < transforms_1.length; _i++) { - var transform = transforms_1[_i]; - var res = transform(hit0, hit1); - if (res === false) { - return null; - } - else if (res) { - __assign(props, res); - } - } - if (isFromStart) { - if (dateEnv.add(instanceRange.start, delta) < instanceRange.end) { - props.startDelta = delta; - return props; - } - } - else { - if (dateEnv.add(instanceRange.end, delta) > instanceRange.start) { - props.endDelta = delta; - return props; - } - } - return null; - } - - var UnselectAuto = /** @class */ (function () { - function UnselectAuto(calendar) { - var _this = this; - this.isRecentPointerDateSelect = false; // wish we could use a selector to detect date selection, but uses hit system - this.onSelect = function (selectInfo) { - if (selectInfo.jsEvent) { - _this.isRecentPointerDateSelect = true; - } - }; - this.onDocumentPointerUp = function (pev) { - var _a = _this, calendar = _a.calendar, documentPointer = _a.documentPointer; - var state = calendar.state; - // touch-scrolling should never unfocus any type of selection - if (!documentPointer.wasTouchScroll) { - if (state.dateSelection && // an existing date selection? - !_this.isRecentPointerDateSelect // a new pointer-initiated date selection since last onDocumentPointerUp? - ) { - var unselectAuto = calendar.viewOpt('unselectAuto'); - var unselectCancel = calendar.viewOpt('unselectCancel'); - if (unselectAuto && (!unselectAuto || !core.elementClosest(documentPointer.downEl, unselectCancel))) { - calendar.unselect(pev); - } - } - if (state.eventSelection && // an existing event selected? - !core.elementClosest(documentPointer.downEl, EventDragging.SELECTOR) // interaction DIDN'T start on an event - ) { - calendar.dispatch({ type: 'UNSELECT_EVENT' }); - } - } - _this.isRecentPointerDateSelect = false; - }; - this.calendar = calendar; - var documentPointer = this.documentPointer = new PointerDragging(document); - documentPointer.shouldIgnoreMove = true; - documentPointer.shouldWatchScroll = false; - documentPointer.emitter.on('pointerup', this.onDocumentPointerUp); - /* - TODO: better way to know about whether there was a selection with the pointer - */ - calendar.on('select', this.onSelect); - } - UnselectAuto.prototype.destroy = function () { - this.calendar.off('select', this.onSelect); - this.documentPointer.destroy(); - }; - return UnselectAuto; - }()); - - /* - Given an already instantiated draggable object for one-or-more elements, - Interprets any dragging as an attempt to drag an events that lives outside - of a calendar onto a calendar. - */ - var ExternalElementDragging = /** @class */ (function () { - function ExternalElementDragging(dragging, suppliedDragMeta) { - var _this = this; - this.receivingCalendar = null; - this.droppableEvent = null; // will exist for all drags, even if create:false - this.suppliedDragMeta = null; - this.dragMeta = null; - this.handleDragStart = function (ev) { - _this.dragMeta = _this.buildDragMeta(ev.subjectEl); - }; - this.handleHitUpdate = function (hit, isFinal, ev) { - var dragging = _this.hitDragging.dragging; - var receivingCalendar = null; - var droppableEvent = null; - var isInvalid = false; - var interaction = { - affectedEvents: core.createEmptyEventStore(), - mutatedEvents: core.createEmptyEventStore(), - isEvent: _this.dragMeta.create, - origSeg: null - }; - if (hit) { - receivingCalendar = hit.component.calendar; - if (_this.canDropElOnCalendar(ev.subjectEl, receivingCalendar)) { - droppableEvent = computeEventForDateSpan(hit.dateSpan, _this.dragMeta, receivingCalendar); - interaction.mutatedEvents = core.eventTupleToStore(droppableEvent); - isInvalid = !core.isInteractionValid(interaction, receivingCalendar); - if (isInvalid) { - interaction.mutatedEvents = core.createEmptyEventStore(); - droppableEvent = null; - } - } - } - _this.displayDrag(receivingCalendar, interaction); - // show mirror if no already-rendered mirror element OR if we are shutting down the mirror (?) - // TODO: wish we could somehow wait for dispatch to guarantee render - dragging.setMirrorIsVisible(isFinal || !droppableEvent || !document.querySelector('.fc-mirror')); - if (!isInvalid) { - core.enableCursor(); - } - else { - core.disableCursor(); - } - if (!isFinal) { - dragging.setMirrorNeedsRevert(!droppableEvent); - _this.receivingCalendar = receivingCalendar; - _this.droppableEvent = droppableEvent; - } - }; - this.handleDragEnd = function (pev) { - var _a = _this, receivingCalendar = _a.receivingCalendar, droppableEvent = _a.droppableEvent; - _this.clearDrag(); - if (receivingCalendar && droppableEvent) { - var finalHit = _this.hitDragging.finalHit; - var finalView = finalHit.component.view; - var dragMeta = _this.dragMeta; - var arg = __assign({}, receivingCalendar.buildDatePointApi(finalHit.dateSpan), { draggedEl: pev.subjectEl, jsEvent: pev.origEvent, view: finalView }); - receivingCalendar.publiclyTrigger('drop', [arg]); - if (dragMeta.create) { - receivingCalendar.dispatch({ - type: 'MERGE_EVENTS', - eventStore: core.eventTupleToStore(droppableEvent) - }); - if (pev.isTouch) { - receivingCalendar.dispatch({ - type: 'SELECT_EVENT', - eventInstanceId: droppableEvent.instance.instanceId - }); - } - // signal that an external event landed - receivingCalendar.publiclyTrigger('eventReceive', [ - { - draggedEl: pev.subjectEl, - event: new core.EventApi(receivingCalendar, droppableEvent.def, droppableEvent.instance), - view: finalView - } - ]); - } - } - _this.receivingCalendar = null; - _this.droppableEvent = null; - }; - var hitDragging = this.hitDragging = new HitDragging(dragging, core.interactionSettingsStore); - hitDragging.requireInitial = false; // will start outside of a component - hitDragging.emitter.on('dragstart', this.handleDragStart); - hitDragging.emitter.on('hitupdate', this.handleHitUpdate); - hitDragging.emitter.on('dragend', this.handleDragEnd); - this.suppliedDragMeta = suppliedDragMeta; - } - ExternalElementDragging.prototype.buildDragMeta = function (subjectEl) { - if (typeof this.suppliedDragMeta === 'object') { - return core.parseDragMeta(this.suppliedDragMeta); - } - else if (typeof this.suppliedDragMeta === 'function') { - return core.parseDragMeta(this.suppliedDragMeta(subjectEl)); - } - else { - return getDragMetaFromEl(subjectEl); - } - }; - ExternalElementDragging.prototype.displayDrag = function (nextCalendar, state) { - var prevCalendar = this.receivingCalendar; - if (prevCalendar && prevCalendar !== nextCalendar) { - prevCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - if (nextCalendar) { - nextCalendar.dispatch({ type: 'SET_EVENT_DRAG', state: state }); - } - }; - ExternalElementDragging.prototype.clearDrag = function () { - if (this.receivingCalendar) { - this.receivingCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - }; - ExternalElementDragging.prototype.canDropElOnCalendar = function (el, receivingCalendar) { - var dropAccept = receivingCalendar.opt('dropAccept'); - if (typeof dropAccept === 'function') { - return dropAccept(el); - } - else if (typeof dropAccept === 'string' && dropAccept) { - return Boolean(core.elementMatches(el, dropAccept)); - } - return true; - }; - return ExternalElementDragging; - }()); - // Utils for computing event store from the DragMeta - // ---------------------------------------------------------------------------------------------------- - function computeEventForDateSpan(dateSpan, dragMeta, calendar) { - var defProps = __assign({}, dragMeta.leftoverProps); - for (var _i = 0, _a = calendar.pluginSystem.hooks.externalDefTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(defProps, transform(dateSpan, dragMeta)); - } - var def = core.parseEventDef(defProps, dragMeta.sourceId, dateSpan.allDay, calendar.opt('forceEventDuration') || Boolean(dragMeta.duration), // hasEnd - calendar); - var start = dateSpan.range.start; - // only rely on time info if drop zone is all-day, - // otherwise, we already know the time - if (dateSpan.allDay && dragMeta.startTime) { - start = calendar.dateEnv.add(start, dragMeta.startTime); - } - var end = dragMeta.duration ? - calendar.dateEnv.add(start, dragMeta.duration) : - calendar.getDefaultEventEnd(dateSpan.allDay, start); - var instance = core.createEventInstance(def.defId, { start: start, end: end }); - return { def: def, instance: instance }; - } - // Utils for extracting data from element - // ---------------------------------------------------------------------------------------------------- - function getDragMetaFromEl(el) { - var str = getEmbeddedElData(el, 'event'); - var obj = str ? - JSON.parse(str) : - { create: false }; // if no embedded data, assume no event creation - return core.parseDragMeta(obj); - } - core.config.dataAttrPrefix = ''; - function getEmbeddedElData(el, name) { - var prefix = core.config.dataAttrPrefix; - var prefixedName = (prefix ? prefix + '-' : '') + name; - return el.getAttribute('data-' + prefixedName) || ''; - } - - /* - Makes an element (that is *external* to any calendar) draggable. - Can pass in data that determines how an event will be created when dropped onto a calendar. - Leverages FullCalendar's internal drag-n-drop functionality WITHOUT a third-party drag system. - */ - var ExternalDraggable = /** @class */ (function () { - function ExternalDraggable(el, settings) { - var _this = this; - if (settings === void 0) { settings = {}; } - this.handlePointerDown = function (ev) { - var dragging = _this.dragging; - var _a = _this.settings, minDistance = _a.minDistance, longPressDelay = _a.longPressDelay; - dragging.minDistance = - minDistance != null ? - minDistance : - (ev.isTouch ? 0 : core.globalDefaults.eventDragMinDistance); - dragging.delay = - ev.isTouch ? // TODO: eventually read eventLongPressDelay instead vvv - (longPressDelay != null ? longPressDelay : core.globalDefaults.longPressDelay) : - 0; - }; - this.handleDragStart = function (ev) { - if (ev.isTouch && - _this.dragging.delay && - ev.subjectEl.classList.contains('fc-event')) { - _this.dragging.mirror.getMirrorEl().classList.add('fc-selected'); - } - }; - this.settings = settings; - var dragging = this.dragging = new FeaturefulElementDragging(el); - dragging.touchScrollAllowed = false; - if (settings.itemSelector != null) { - dragging.pointer.selector = settings.itemSelector; - } - if (settings.appendTo != null) { - dragging.mirror.parentNode = settings.appendTo; // TODO: write tests - } - dragging.emitter.on('pointerdown', this.handlePointerDown); - dragging.emitter.on('dragstart', this.handleDragStart); - new ExternalElementDragging(dragging, settings.eventData); - } - ExternalDraggable.prototype.destroy = function () { - this.dragging.destroy(); - }; - return ExternalDraggable; - }()); - - /* - Detects when a *THIRD-PARTY* drag-n-drop system interacts with elements. - The third-party system is responsible for drawing the visuals effects of the drag. - This class simply monitors for pointer movements and fires events. - It also has the ability to hide the moving element (the "mirror") during the drag. - */ - var InferredElementDragging = /** @class */ (function (_super) { - __extends(InferredElementDragging, _super); - function InferredElementDragging(containerEl) { - var _this = _super.call(this, containerEl) || this; - _this.shouldIgnoreMove = false; - _this.mirrorSelector = ''; - _this.currentMirrorEl = null; - _this.handlePointerDown = function (ev) { - _this.emitter.trigger('pointerdown', ev); - if (!_this.shouldIgnoreMove) { - // fire dragstart right away. does not support delay or min-distance - _this.emitter.trigger('dragstart', ev); - } - }; - _this.handlePointerMove = function (ev) { - if (!_this.shouldIgnoreMove) { - _this.emitter.trigger('dragmove', ev); - } - }; - _this.handlePointerUp = function (ev) { - _this.emitter.trigger('pointerup', ev); - if (!_this.shouldIgnoreMove) { - // fire dragend right away. does not support a revert animation - _this.emitter.trigger('dragend', ev); - } - }; - var pointer = _this.pointer = new PointerDragging(containerEl); - pointer.emitter.on('pointerdown', _this.handlePointerDown); - pointer.emitter.on('pointermove', _this.handlePointerMove); - pointer.emitter.on('pointerup', _this.handlePointerUp); - return _this; - } - InferredElementDragging.prototype.destroy = function () { - this.pointer.destroy(); - }; - InferredElementDragging.prototype.setIgnoreMove = function (bool) { - this.shouldIgnoreMove = bool; - }; - InferredElementDragging.prototype.setMirrorIsVisible = function (bool) { - if (bool) { - // restore a previously hidden element. - // use the reference in case the selector class has already been removed. - if (this.currentMirrorEl) { - this.currentMirrorEl.style.visibility = ''; - this.currentMirrorEl = null; - } - } - else { - var mirrorEl = this.mirrorSelector ? - document.querySelector(this.mirrorSelector) : - null; - if (mirrorEl) { - this.currentMirrorEl = mirrorEl; - mirrorEl.style.visibility = 'hidden'; - } - } - }; - return InferredElementDragging; - }(core.ElementDragging)); - - /* - Bridges third-party drag-n-drop systems with FullCalendar. - Must be instantiated and destroyed by caller. - */ - var ThirdPartyDraggable = /** @class */ (function () { - function ThirdPartyDraggable(containerOrSettings, settings) { - var containerEl = document; - if ( - // wish we could just test instanceof EventTarget, but doesn't work in IE11 - containerOrSettings === document || - containerOrSettings instanceof Element) { - containerEl = containerOrSettings; - settings = settings || {}; - } - else { - settings = (containerOrSettings || {}); - } - var dragging = this.dragging = new InferredElementDragging(containerEl); - if (typeof settings.itemSelector === 'string') { - dragging.pointer.selector = settings.itemSelector; - } - else if (containerEl === document) { - dragging.pointer.selector = '[data-event]'; - } - if (typeof settings.mirrorSelector === 'string') { - dragging.mirrorSelector = settings.mirrorSelector; - } - new ExternalElementDragging(dragging, settings.eventData); - } - ThirdPartyDraggable.prototype.destroy = function () { - this.dragging.destroy(); - }; - return ThirdPartyDraggable; - }()); - - var main = core.createPlugin({ - componentInteractions: [DateClicking, DateSelecting, EventDragging, EventDragging$1], - calendarInteractions: [UnselectAuto], - elementDraggingImpl: FeaturefulElementDragging - }); - - exports.Draggable = ExternalDraggable; - exports.FeaturefulElementDragging = FeaturefulElementDragging; - exports.PointerDragging = PointerDragging; - exports.ThirdPartyDraggable = ThirdPartyDraggable; - exports.default = main; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/interaction/main.min.js b/htdocs/public/high/plugins/fullcalendar/packages/interaction/main.min.js deleted file mode 100644 index 7a36731f..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/interaction/main.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! -FullCalendar Interaction Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@fullcalendar/core")):"function"==typeof define&&define.amd?define(["exports","@fullcalendar/core"],t):t((e=e||self).FullCalendarInteraction={},e.FullCalendar)}(this,function(e,t){"use strict";var n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function r(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var i=function(){return(i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(this.everMovedDown=!0),o<0?this.everMovedLeft=!0:o>0&&(this.everMovedRight=!0),this.pointerScreenX=n,this.pointerScreenY=r,this.isAnimating||(this.isAnimating=!0,this.requestAnimation(p()))}},e.prototype.stop=function(){if(this.isEnabled){this.isAnimating=!1;for(var e=0,t=this.scrollCaches;e=0&&c>=0&&d>=0&&g>=0&&(d<=n&&this.everMovedUp&&a.canScrollUp()&&(!r||r.distance>d)&&(r={scrollCache:a,name:"top",distance:d}),g<=n&&this.everMovedDown&&a.canScrollDown()&&(!r||r.distance>g)&&(r={scrollCache:a,name:"bottom",distance:g}),s<=n&&this.everMovedLeft&&a.canScrollLeft()&&(!r||r.distance>s)&&(r={scrollCache:a,name:"left",distance:s}),c<=n&&this.everMovedRight&&a.canScrollRight()&&(!r||r.distance>c)&&(r={scrollCache:a,name:"right",distance:c}))}return r},e.prototype.buildCaches=function(){return this.queryScrollEls().map(function(e){return e===window?new h(!1):new u(e,!1)})},e.prototype.queryScrollEls=function(){for(var e=[],t=0,n=this.scrollQuery;t=t*t&&r.handleDistanceSurpassed(e)}r.isDragging&&("scroll"!==e.origEvent.type&&(r.mirror.handleMove(e.pageX,e.pageY),r.autoScroller.handleMove(e.pageX,e.pageY)),r.emitter.trigger("dragmove",e))}},r.onPointerUp=function(e){r.isInteracting&&(r.isInteracting=!1,t.allowSelection(document.body),t.allowContextMenu(document.body),r.emitter.trigger("pointerup",e),r.isDragging&&(r.autoScroller.stop(),r.tryStopDrag(e)),r.delayTimeoutId&&(clearTimeout(r.delayTimeoutId),r.delayTimeoutId=null))};var i=r.pointer=new s(n);return i.emitter.on("pointerdown",r.onPointerDown),i.emitter.on("pointermove",r.onPointerMove),i.emitter.on("pointerup",r.onPointerUp),r.mirror=new d,r.autoScroller=new v,r}return r(n,e),n.prototype.destroy=function(){this.pointer.destroy()},n.prototype.startDelay=function(e){var t=this;"number"==typeof this.delay?this.delayTimeoutId=setTimeout(function(){t.delayTimeoutId=null,t.handleDelayEnd(e)},this.delay):this.handleDelayEnd(e)},n.prototype.handleDelayEnd=function(e){this.isDelayEnded=!0,this.tryStartDrag(e)},n.prototype.handleDistanceSurpassed=function(e){this.isDistanceSurpassed=!0,this.tryStartDrag(e)},n.prototype.tryStartDrag=function(e){this.isDelayEnded&&this.isDistanceSurpassed&&(this.pointer.wasTouchScroll&&!this.touchScrollAllowed||(this.isDragging=!0,this.mirrorNeedsRevert=!1,this.autoScroller.start(e.pageX,e.pageY),this.emitter.trigger("dragstart",e),!1===this.touchScrollAllowed&&this.pointer.cancelTouchScroll()))},n.prototype.tryStopDrag=function(e){this.mirror.stop(this.mirrorNeedsRevert,this.stopDrag.bind(this,e))},n.prototype.stopDrag=function(e){this.isDragging=!1,this.emitter.trigger("dragend",e)},n.prototype.setIgnoreMove=function(e){this.pointer.shouldIgnoreMove=e},n.prototype.setMirrorIsVisible=function(e){this.mirror.setIsVisible(e)},n.prototype.setMirrorNeedsRevert=function(e){this.mirrorNeedsRevert=e},n.prototype.setAutoScrollEnabled=function(e){this.autoScroller.isEnabled=e},n}(t.ElementDragging),E=function(){function e(e){this.origRect=t.computeRect(e),this.scrollCaches=t.getClippingParents(e).map(function(e){return new u(e,!0)})}return e.prototype.destroy=function(){for(var e=0,t=this.scrollCaches;e=0&&g=0&&uo.layer)||(f.rect.left+=c,f.rect.right+=c,f.rect.top+=d,f.rect.bottom+=d,o=f)}}}return o},e}();function S(e,n){return!e&&!n||Boolean(e)===Boolean(n)&&t.isDateSpansEqual(e.dateSpan,n.dateSpan)}var y=function(e){function n(n){var r=e.call(this,n)||this;r.handlePointerDown=function(e){var t=r.dragging;t.setIgnoreMove(!r.component.isValidDateDownEl(t.pointer.downEl))},r.handleDragEnd=function(e){var t=r.component;if(!r.dragging.pointer.wasTouchScroll){var n=r.hitDragging,i=n.initialHit,o=n.finalHit;i&&o&&S(i,o)&&t.calendar.triggerDateClick(i.dateSpan,i.dayEl,t.view,e.origEvent)}};var i=n.component;r.dragging=new f(i.el),r.dragging.autoScroller.isEnabled=!1;var o=r.hitDragging=new m(r.dragging,t.interactionSettingsToStore(n));return o.emitter.on("pointerdown",r.handlePointerDown),o.emitter.on("dragend",r.handleDragEnd),r}return r(n,e),n.prototype.destroy=function(){this.dragging.destroy()},n}(t.Interaction),D=function(e){function n(n){var r=e.call(this,n)||this;r.dragSelection=null,r.handlePointerDown=function(e){var t=r,n=t.component,i=t.dragging,o=n.opt("selectable")&&n.isValidDateDownEl(e.origEvent.target);i.setIgnoreMove(!o),i.delay=e.isTouch?function(e){var t=e.opt("selectLongPressDelay");null==t&&(t=e.opt("longPressDelay"));return t}(n):null},r.handleDragStart=function(e){r.component.calendar.unselect(e)},r.handleHitUpdate=function(e,n){var o=r.component.calendar,a=null,l=!1;e&&((a=function(e,n,r){var o=e.dateSpan,a=n.dateSpan,l=[o.range.start,o.range.end,a.range.start,a.range.end];l.sort(t.compareNumbers);for(var s={},c=0,d=r;co.start)return g.endDelta=d,g;return null}(s,e,o.subjectEl.classList.contains("fc-start-resizer"),c.range,a.pluginSystem.hooks.eventResizeJoinTransforms)),d&&(g=t.applyMutationToEventStore(l,a.eventUiBases,d,a),h.mutatedEvents=g,r.component.isInteractionValid(h)||(u=!0,d=null,g=null,h.mutatedEvents=null)),g?a.dispatch({type:"SET_EVENT_RESIZE",state:h}):a.dispatch({type:"UNSET_EVENT_RESIZE"}),u?t.disableCursor():t.enableCursor(),n||(d&&S(s,e)&&(d=null),r.validMutation=d,r.mutatedRelevantEvents=g)},r.handleDragEnd=function(e){var n=r.component.calendar,i=r.component.view,o=r.eventRange.def,a=r.eventRange.instance,l=new t.EventApi(n,o,a),s=r.relevantEvents,c=r.mutatedRelevantEvents;n.publiclyTrigger("eventResizeStop",[{el:r.draggingSeg.el,event:l,jsEvent:e.origEvent,view:i}]),r.validMutation?(n.dispatch({type:"MERGE_EVENTS",eventStore:c}),n.publiclyTrigger("eventResize",[{el:r.draggingSeg.el,startDelta:r.validMutation.startDelta||t.createDuration(0),endDelta:r.validMutation.endDelta||t.createDuration(0),prevEvent:l,event:new t.EventApi(n,c.defs[o.defId],a?c.instances[a.instanceId]:null),revert:function(){n.dispatch({type:"MERGE_EVENTS",eventStore:s})},jsEvent:e.origEvent,view:i}])):n.publiclyTrigger("_noEventResize"),r.draggingSeg=null,r.relevantEvents=null,r.validMutation=null};var o=n.component,a=r.dragging=new f(o.el);a.pointer.selector=".fc-resizer",a.touchScrollAllowed=!1,a.autoScroller.isEnabled=o.opt("dragScroll");var l=r.hitDragging=new m(r.dragging,t.interactionSettingsToStore(n));return l.emitter.on("pointerdown",r.handlePointerDown),l.emitter.on("dragstart",r.handleDragStart),l.emitter.on("hitupdate",r.handleHitUpdate),l.emitter.on("dragend",r.handleDragEnd),r}return r(n,e),n.prototype.destroy=function(){this.dragging.destroy()},n.prototype.querySeg=function(e){return t.getElSeg(t.elementClosest(e.subjectEl,this.component.fgSegSelector))},n}(t.Interaction);var M=function(){function e(e){var n=this;this.isRecentPointerDateSelect=!1,this.onSelect=function(e){e.jsEvent&&(n.isRecentPointerDateSelect=!0)},this.onDocumentPointerUp=function(e){var r=n,i=r.calendar,o=r.documentPointer,a=i.state;if(!o.wasTouchScroll){if(a.dateSelection&&!n.isRecentPointerDateSelect){var l=i.viewOpt("unselectAuto"),s=i.viewOpt("unselectCancel");!l||l&&t.elementClosest(o.downEl,s)||i.unselect(e)}a.eventSelection&&!t.elementClosest(o.downEl,w.SELECTOR)&&i.dispatch({type:"UNSELECT_EVENT"})}n.isRecentPointerDateSelect=!1},this.calendar=e;var r=this.documentPointer=new s(document);r.shouldIgnoreMove=!0,r.shouldWatchScroll=!1,r.emitter.on("pointerup",this.onDocumentPointerUp),e.on("select",this.onSelect)}return e.prototype.destroy=function(){this.calendar.off("select",this.onSelect),this.documentPointer.destroy()},e}(),b=function(){function e(e,n){var r=this;this.receivingCalendar=null,this.droppableEvent=null,this.suppliedDragMeta=null,this.dragMeta=null,this.handleDragStart=function(e){r.dragMeta=r.buildDragMeta(e.subjectEl)},this.handleHitUpdate=function(e,n,o){var a=r.hitDragging.dragging,l=null,s=null,c=!1,d={affectedEvents:t.createEmptyEventStore(),mutatedEvents:t.createEmptyEventStore(),isEvent:r.dragMeta.create,origSeg:null};e&&(l=e.component.calendar,r.canDropElOnCalendar(o.subjectEl,l)&&(s=function(e,n,r){for(var o=i({},n.leftoverProps),a=0,l=r.pluginSystem.hooks.externalDefTransforms;a tag */ - text-decoration: none; - color: inherit; -} - -.fc-list-item-title a[href]:hover { - /* hover effect only on titles with hrefs */ - text-decoration: underline; -} - -/* message when no events */ -.fc-list-empty-wrap2 { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; -} - -.fc-list-empty-wrap1 { - width: 100%; - height: 100%; - display: table; -} - -.fc-list-empty { - display: table-cell; - vertical-align: middle; - text-align: center; -} - -.fc-unthemed .fc-list-empty { - /* theme will provide own background */ - background-color: #eee; -} diff --git a/htdocs/public/high/plugins/fullcalendar/packages/list/main.d.ts b/htdocs/public/high/plugins/fullcalendar/packages/list/main.d.ts deleted file mode 100644 index 78aeb2e1..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/list/main.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -// Generated by dts-bundle v0.7.3-fork.1 -// Dependencies for this module: -// ../../../../../@fullcalendar/core - -declare module '@fullcalendar/list' { - import ListView from '@fullcalendar/list/ListView'; - export { ListView }; - const _default: import("@fullcalendar/core").PluginDef; - export default _default; -} - -declare module '@fullcalendar/list/ListView' { - import { View, ViewProps, ScrollComponent, DateMarker, DateRange, DateProfileGenerator, ComponentContext, ViewSpec, EventUiHash, EventRenderRange, EventStore, Seg } from '@fullcalendar/core'; - export { ListView as default, ListView }; - class ListView extends View { - scroller: ScrollComponent; - contentEl: HTMLElement; - dayDates: DateMarker[]; - constructor(context: ComponentContext, viewSpec: ViewSpec, dateProfileGenerator: DateProfileGenerator, parentEl: HTMLElement); - render(props: ViewProps): void; - destroy(): void; - updateSize(isResize: any, viewHeight: any, isAuto: any): void; - computeScrollerHeight(viewHeight: any): number; - _eventStoreToSegs(eventStore: EventStore, eventUiBases: EventUiHash, dayRanges: DateRange[]): Seg[]; - eventRangesToSegs(eventRanges: EventRenderRange[], dayRanges: DateRange[]): any[]; - eventRangeToSegs(eventRange: EventRenderRange, dayRanges: DateRange[]): any[]; - renderEmptyMessage(): void; - renderSegList(allSegs: any): void; - groupSegsByDay(segs: any): any[]; - buildDayHeaderRow(dayDate: any): HTMLTableRowElement; - } -} - diff --git a/htdocs/public/high/plugins/fullcalendar/packages/list/main.esm.js b/htdocs/public/high/plugins/fullcalendar/packages/list/main.esm.js deleted file mode 100644 index 87b9eb2e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/list/main.esm.js +++ /dev/null @@ -1,335 +0,0 @@ -/*! -FullCalendar List View Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -import { getAllDayHtml, isMultiDayRange, htmlEscape, FgEventRenderer, memoize, memoizeRendering, ScrollComponent, subtractInnerElHeight, sliceEventStore, intersectRanges, htmlToElement, createFormatter, createElement, buildGotoAnchorHtml, View, startOfDay, addDays, createPlugin } from '@fullcalendar/core'; - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -var ListEventRenderer = /** @class */ (function (_super) { - __extends(ListEventRenderer, _super); - function ListEventRenderer(listView) { - var _this = _super.call(this, listView.context) || this; - _this.listView = listView; - return _this; - } - ListEventRenderer.prototype.attachSegs = function (segs) { - if (!segs.length) { - this.listView.renderEmptyMessage(); - } - else { - this.listView.renderSegList(segs); - } - }; - ListEventRenderer.prototype.detachSegs = function () { - }; - // generates the HTML for a single event row - ListEventRenderer.prototype.renderSegHtml = function (seg) { - var _a = this.context, view = _a.view, theme = _a.theme; - var eventRange = seg.eventRange; - var eventDef = eventRange.def; - var eventInstance = eventRange.instance; - var eventUi = eventRange.ui; - var url = eventDef.url; - var classes = ['fc-list-item'].concat(eventUi.classNames); - var bgColor = eventUi.backgroundColor; - var timeHtml; - if (eventDef.allDay) { - timeHtml = getAllDayHtml(view); - } - else if (isMultiDayRange(eventRange.range)) { - if (seg.isStart) { - timeHtml = htmlEscape(this._getTimeText(eventInstance.range.start, seg.end, false // allDay - )); - } - else if (seg.isEnd) { - timeHtml = htmlEscape(this._getTimeText(seg.start, eventInstance.range.end, false // allDay - )); - } - else { // inner segment that lasts the whole day - timeHtml = getAllDayHtml(view); - } - } - else { - // Display the normal time text for the *event's* times - timeHtml = htmlEscape(this.getTimeText(eventRange)); - } - if (url) { - classes.push('fc-has-url'); - } - return '' + - (this.displayEventTime ? - '' + - (timeHtml || '') + - '' : - '') + - '' + - '' + - '' + - '' + - '' + - htmlEscape(eventDef.title || '') + - '' + - '' + - ''; - }; - // like "4:00am" - ListEventRenderer.prototype.computeEventTimeFormat = function () { - return { - hour: 'numeric', - minute: '2-digit', - meridiem: 'short' - }; - }; - return ListEventRenderer; -}(FgEventRenderer)); - -/* -Responsible for the scroller, and forwarding event-related actions into the "grid". -*/ -var ListView = /** @class */ (function (_super) { - __extends(ListView, _super); - function ListView(context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, context, viewSpec, dateProfileGenerator, parentEl) || this; - _this.computeDateVars = memoize(computeDateVars); - _this.eventStoreToSegs = memoize(_this._eventStoreToSegs); - var eventRenderer = _this.eventRenderer = new ListEventRenderer(_this); - _this.renderContent = memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer)); - _this.el.classList.add('fc-list-view'); - var listViewClassNames = (_this.theme.getClass('listView') || '').split(' '); // wish we didn't have to do this - for (var _i = 0, listViewClassNames_1 = listViewClassNames; _i < listViewClassNames_1.length; _i++) { - var listViewClassName = listViewClassNames_1[_i]; - if (listViewClassName) { // in case input was empty string - _this.el.classList.add(listViewClassName); - } - } - _this.scroller = new ScrollComponent('hidden', // overflow x - 'auto' // overflow y - ); - _this.el.appendChild(_this.scroller.el); - _this.contentEl = _this.scroller.el; // shortcut - context.calendar.registerInteractiveComponent(_this, { - el: _this.el - // TODO: make aware that it doesn't do Hits - }); - return _this; - } - ListView.prototype.render = function (props) { - var _a = this.computeDateVars(props.dateProfile), dayDates = _a.dayDates, dayRanges = _a.dayRanges; - this.dayDates = dayDates; - this.renderContent(this.eventStoreToSegs(props.eventStore, props.eventUiBases, dayRanges)); - }; - ListView.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderContent.unrender(); - this.scroller.destroy(); // will remove the Grid too - this.calendar.unregisterInteractiveComponent(this); - }; - ListView.prototype.updateSize = function (isResize, viewHeight, isAuto) { - _super.prototype.updateSize.call(this, isResize, viewHeight, isAuto); - this.eventRenderer.computeSizes(isResize); - this.eventRenderer.assignSizes(isResize); - this.scroller.clear(); // sets height to 'auto' and clears overflow - if (!isAuto) { - this.scroller.setHeight(this.computeScrollerHeight(viewHeight)); - } - }; - ListView.prototype.computeScrollerHeight = function (viewHeight) { - return viewHeight - - subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller - }; - ListView.prototype._eventStoreToSegs = function (eventStore, eventUiBases, dayRanges) { - return this.eventRangesToSegs(sliceEventStore(eventStore, eventUiBases, this.props.dateProfile.activeRange, this.nextDayThreshold).fg, dayRanges); - }; - ListView.prototype.eventRangesToSegs = function (eventRanges, dayRanges) { - var segs = []; - for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) { - var eventRange = eventRanges_1[_i]; - segs.push.apply(segs, this.eventRangeToSegs(eventRange, dayRanges)); - } - return segs; - }; - ListView.prototype.eventRangeToSegs = function (eventRange, dayRanges) { - var _a = this, dateEnv = _a.dateEnv, nextDayThreshold = _a.nextDayThreshold; - var range = eventRange.range; - var allDay = eventRange.def.allDay; - var dayIndex; - var segRange; - var seg; - var segs = []; - for (dayIndex = 0; dayIndex < dayRanges.length; dayIndex++) { - segRange = intersectRanges(range, dayRanges[dayIndex]); - if (segRange) { - seg = { - component: this, - eventRange: eventRange, - start: segRange.start, - end: segRange.end, - isStart: eventRange.isStart && segRange.start.valueOf() === range.start.valueOf(), - isEnd: eventRange.isEnd && segRange.end.valueOf() === range.end.valueOf(), - dayIndex: dayIndex - }; - segs.push(seg); - // detect when range won't go fully into the next day, - // and mutate the latest seg to the be the end. - if (!seg.isEnd && !allDay && - dayIndex + 1 < dayRanges.length && - range.end < - dateEnv.add(dayRanges[dayIndex + 1].start, nextDayThreshold)) { - seg.end = range.end; - seg.isEnd = true; - break; - } - } - } - return segs; - }; - ListView.prototype.renderEmptyMessage = function () { - this.contentEl.innerHTML = - '
' + // TODO: try less wraps - '
' + - '
' + - htmlEscape(this.opt('noEventsMessage')) + - '
' + - '
' + - '
'; - }; - // called by ListEventRenderer - ListView.prototype.renderSegList = function (allSegs) { - var segsByDay = this.groupSegsByDay(allSegs); // sparse array - var dayIndex; - var daySegs; - var i; - var tableEl = htmlToElement('
'); - var tbodyEl = tableEl.querySelector('tbody'); - for (dayIndex = 0; dayIndex < segsByDay.length; dayIndex++) { - daySegs = segsByDay[dayIndex]; - if (daySegs) { // sparse array, so might be undefined - // append a day header - tbodyEl.appendChild(this.buildDayHeaderRow(this.dayDates[dayIndex])); - daySegs = this.eventRenderer.sortEventSegs(daySegs); - for (i = 0; i < daySegs.length; i++) { - tbodyEl.appendChild(daySegs[i].el); // append event row - } - } - } - this.contentEl.innerHTML = ''; - this.contentEl.appendChild(tableEl); - }; - // Returns a sparse array of arrays, segs grouped by their dayIndex - ListView.prototype.groupSegsByDay = function (segs) { - var segsByDay = []; // sparse array - var i; - var seg; - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - (segsByDay[seg.dayIndex] || (segsByDay[seg.dayIndex] = [])) - .push(seg); - } - return segsByDay; - }; - // generates the HTML for the day headers that live amongst the event rows - ListView.prototype.buildDayHeaderRow = function (dayDate) { - var dateEnv = this.dateEnv; - var mainFormat = createFormatter(this.opt('listDayFormat')); // TODO: cache - var altFormat = createFormatter(this.opt('listDayAltFormat')); // TODO: cache - return createElement('tr', { - className: 'fc-list-heading', - 'data-date': dateEnv.formatIso(dayDate, { omitTime: true }) - }, '' + - (mainFormat ? - buildGotoAnchorHtml(this, dayDate, { 'class': 'fc-list-heading-main' }, htmlEscape(dateEnv.format(dayDate, mainFormat)) // inner HTML - ) : - '') + - (altFormat ? - buildGotoAnchorHtml(this, dayDate, { 'class': 'fc-list-heading-alt' }, htmlEscape(dateEnv.format(dayDate, altFormat)) // inner HTML - ) : - '') + - ''); - }; - return ListView; -}(View)); -ListView.prototype.fgSegSelector = '.fc-list-item'; // which elements accept event actions -function computeDateVars(dateProfile) { - var dayStart = startOfDay(dateProfile.renderRange.start); - var viewEnd = dateProfile.renderRange.end; - var dayDates = []; - var dayRanges = []; - while (dayStart < viewEnd) { - dayDates.push(dayStart); - dayRanges.push({ - start: dayStart, - end: addDays(dayStart, 1) - }); - dayStart = addDays(dayStart, 1); - } - return { dayDates: dayDates, dayRanges: dayRanges }; -} - -var main = createPlugin({ - views: { - list: { - class: ListView, - buttonTextKey: 'list', - listDayFormat: { month: 'long', day: 'numeric', year: 'numeric' } // like "January 1, 2016" - }, - listDay: { - type: 'list', - duration: { days: 1 }, - listDayFormat: { weekday: 'long' } // day-of-week is all we need. full date is probably in header - }, - listWeek: { - type: 'list', - duration: { weeks: 1 }, - listDayFormat: { weekday: 'long' }, - listDayAltFormat: { month: 'long', day: 'numeric', year: 'numeric' } - }, - listMonth: { - type: 'list', - duration: { month: 1 }, - listDayAltFormat: { weekday: 'long' } // day-of-week is nice-to-have - }, - listYear: { - type: 'list', - duration: { year: 1 }, - listDayAltFormat: { weekday: 'long' } // day-of-week is nice-to-have - } - } -}); - -export default main; -export { ListView }; diff --git a/htdocs/public/high/plugins/fullcalendar/packages/list/main.js b/htdocs/public/high/plugins/fullcalendar/packages/list/main.js deleted file mode 100644 index b855e4e0..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/list/main.js +++ /dev/null @@ -1,343 +0,0 @@ -/*! -FullCalendar List View Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@fullcalendar/core')) : - typeof define === 'function' && define.amd ? define(['exports', '@fullcalendar/core'], factory) : - (global = global || self, factory(global.FullCalendarList = {}, global.FullCalendar)); -}(this, function (exports, core) { 'use strict'; - - /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */ - /* global Reflect, Promise */ - - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - - function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - } - - var ListEventRenderer = /** @class */ (function (_super) { - __extends(ListEventRenderer, _super); - function ListEventRenderer(listView) { - var _this = _super.call(this, listView.context) || this; - _this.listView = listView; - return _this; - } - ListEventRenderer.prototype.attachSegs = function (segs) { - if (!segs.length) { - this.listView.renderEmptyMessage(); - } - else { - this.listView.renderSegList(segs); - } - }; - ListEventRenderer.prototype.detachSegs = function () { - }; - // generates the HTML for a single event row - ListEventRenderer.prototype.renderSegHtml = function (seg) { - var _a = this.context, view = _a.view, theme = _a.theme; - var eventRange = seg.eventRange; - var eventDef = eventRange.def; - var eventInstance = eventRange.instance; - var eventUi = eventRange.ui; - var url = eventDef.url; - var classes = ['fc-list-item'].concat(eventUi.classNames); - var bgColor = eventUi.backgroundColor; - var timeHtml; - if (eventDef.allDay) { - timeHtml = core.getAllDayHtml(view); - } - else if (core.isMultiDayRange(eventRange.range)) { - if (seg.isStart) { - timeHtml = core.htmlEscape(this._getTimeText(eventInstance.range.start, seg.end, false // allDay - )); - } - else if (seg.isEnd) { - timeHtml = core.htmlEscape(this._getTimeText(seg.start, eventInstance.range.end, false // allDay - )); - } - else { // inner segment that lasts the whole day - timeHtml = core.getAllDayHtml(view); - } - } - else { - // Display the normal time text for the *event's* times - timeHtml = core.htmlEscape(this.getTimeText(eventRange)); - } - if (url) { - classes.push('fc-has-url'); - } - return '' + - (this.displayEventTime ? - '' + - (timeHtml || '') + - '' : - '') + - '' + - '' + - '' + - '' + - '' + - core.htmlEscape(eventDef.title || '') + - '' + - '' + - ''; - }; - // like "4:00am" - ListEventRenderer.prototype.computeEventTimeFormat = function () { - return { - hour: 'numeric', - minute: '2-digit', - meridiem: 'short' - }; - }; - return ListEventRenderer; - }(core.FgEventRenderer)); - - /* - Responsible for the scroller, and forwarding event-related actions into the "grid". - */ - var ListView = /** @class */ (function (_super) { - __extends(ListView, _super); - function ListView(context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, context, viewSpec, dateProfileGenerator, parentEl) || this; - _this.computeDateVars = core.memoize(computeDateVars); - _this.eventStoreToSegs = core.memoize(_this._eventStoreToSegs); - var eventRenderer = _this.eventRenderer = new ListEventRenderer(_this); - _this.renderContent = core.memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer)); - _this.el.classList.add('fc-list-view'); - var listViewClassNames = (_this.theme.getClass('listView') || '').split(' '); // wish we didn't have to do this - for (var _i = 0, listViewClassNames_1 = listViewClassNames; _i < listViewClassNames_1.length; _i++) { - var listViewClassName = listViewClassNames_1[_i]; - if (listViewClassName) { // in case input was empty string - _this.el.classList.add(listViewClassName); - } - } - _this.scroller = new core.ScrollComponent('hidden', // overflow x - 'auto' // overflow y - ); - _this.el.appendChild(_this.scroller.el); - _this.contentEl = _this.scroller.el; // shortcut - context.calendar.registerInteractiveComponent(_this, { - el: _this.el - // TODO: make aware that it doesn't do Hits - }); - return _this; - } - ListView.prototype.render = function (props) { - var _a = this.computeDateVars(props.dateProfile), dayDates = _a.dayDates, dayRanges = _a.dayRanges; - this.dayDates = dayDates; - this.renderContent(this.eventStoreToSegs(props.eventStore, props.eventUiBases, dayRanges)); - }; - ListView.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderContent.unrender(); - this.scroller.destroy(); // will remove the Grid too - this.calendar.unregisterInteractiveComponent(this); - }; - ListView.prototype.updateSize = function (isResize, viewHeight, isAuto) { - _super.prototype.updateSize.call(this, isResize, viewHeight, isAuto); - this.eventRenderer.computeSizes(isResize); - this.eventRenderer.assignSizes(isResize); - this.scroller.clear(); // sets height to 'auto' and clears overflow - if (!isAuto) { - this.scroller.setHeight(this.computeScrollerHeight(viewHeight)); - } - }; - ListView.prototype.computeScrollerHeight = function (viewHeight) { - return viewHeight - - core.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller - }; - ListView.prototype._eventStoreToSegs = function (eventStore, eventUiBases, dayRanges) { - return this.eventRangesToSegs(core.sliceEventStore(eventStore, eventUiBases, this.props.dateProfile.activeRange, this.nextDayThreshold).fg, dayRanges); - }; - ListView.prototype.eventRangesToSegs = function (eventRanges, dayRanges) { - var segs = []; - for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) { - var eventRange = eventRanges_1[_i]; - segs.push.apply(segs, this.eventRangeToSegs(eventRange, dayRanges)); - } - return segs; - }; - ListView.prototype.eventRangeToSegs = function (eventRange, dayRanges) { - var _a = this, dateEnv = _a.dateEnv, nextDayThreshold = _a.nextDayThreshold; - var range = eventRange.range; - var allDay = eventRange.def.allDay; - var dayIndex; - var segRange; - var seg; - var segs = []; - for (dayIndex = 0; dayIndex < dayRanges.length; dayIndex++) { - segRange = core.intersectRanges(range, dayRanges[dayIndex]); - if (segRange) { - seg = { - component: this, - eventRange: eventRange, - start: segRange.start, - end: segRange.end, - isStart: eventRange.isStart && segRange.start.valueOf() === range.start.valueOf(), - isEnd: eventRange.isEnd && segRange.end.valueOf() === range.end.valueOf(), - dayIndex: dayIndex - }; - segs.push(seg); - // detect when range won't go fully into the next day, - // and mutate the latest seg to the be the end. - if (!seg.isEnd && !allDay && - dayIndex + 1 < dayRanges.length && - range.end < - dateEnv.add(dayRanges[dayIndex + 1].start, nextDayThreshold)) { - seg.end = range.end; - seg.isEnd = true; - break; - } - } - } - return segs; - }; - ListView.prototype.renderEmptyMessage = function () { - this.contentEl.innerHTML = - '
' + // TODO: try less wraps - '
' + - '
' + - core.htmlEscape(this.opt('noEventsMessage')) + - '
' + - '
' + - '
'; - }; - // called by ListEventRenderer - ListView.prototype.renderSegList = function (allSegs) { - var segsByDay = this.groupSegsByDay(allSegs); // sparse array - var dayIndex; - var daySegs; - var i; - var tableEl = core.htmlToElement('
'); - var tbodyEl = tableEl.querySelector('tbody'); - for (dayIndex = 0; dayIndex < segsByDay.length; dayIndex++) { - daySegs = segsByDay[dayIndex]; - if (daySegs) { // sparse array, so might be undefined - // append a day header - tbodyEl.appendChild(this.buildDayHeaderRow(this.dayDates[dayIndex])); - daySegs = this.eventRenderer.sortEventSegs(daySegs); - for (i = 0; i < daySegs.length; i++) { - tbodyEl.appendChild(daySegs[i].el); // append event row - } - } - } - this.contentEl.innerHTML = ''; - this.contentEl.appendChild(tableEl); - }; - // Returns a sparse array of arrays, segs grouped by their dayIndex - ListView.prototype.groupSegsByDay = function (segs) { - var segsByDay = []; // sparse array - var i; - var seg; - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - (segsByDay[seg.dayIndex] || (segsByDay[seg.dayIndex] = [])) - .push(seg); - } - return segsByDay; - }; - // generates the HTML for the day headers that live amongst the event rows - ListView.prototype.buildDayHeaderRow = function (dayDate) { - var dateEnv = this.dateEnv; - var mainFormat = core.createFormatter(this.opt('listDayFormat')); // TODO: cache - var altFormat = core.createFormatter(this.opt('listDayAltFormat')); // TODO: cache - return core.createElement('tr', { - className: 'fc-list-heading', - 'data-date': dateEnv.formatIso(dayDate, { omitTime: true }) - }, '' + - (mainFormat ? - core.buildGotoAnchorHtml(this, dayDate, { 'class': 'fc-list-heading-main' }, core.htmlEscape(dateEnv.format(dayDate, mainFormat)) // inner HTML - ) : - '') + - (altFormat ? - core.buildGotoAnchorHtml(this, dayDate, { 'class': 'fc-list-heading-alt' }, core.htmlEscape(dateEnv.format(dayDate, altFormat)) // inner HTML - ) : - '') + - ''); - }; - return ListView; - }(core.View)); - ListView.prototype.fgSegSelector = '.fc-list-item'; // which elements accept event actions - function computeDateVars(dateProfile) { - var dayStart = core.startOfDay(dateProfile.renderRange.start); - var viewEnd = dateProfile.renderRange.end; - var dayDates = []; - var dayRanges = []; - while (dayStart < viewEnd) { - dayDates.push(dayStart); - dayRanges.push({ - start: dayStart, - end: core.addDays(dayStart, 1) - }); - dayStart = core.addDays(dayStart, 1); - } - return { dayDates: dayDates, dayRanges: dayRanges }; - } - - var main = core.createPlugin({ - views: { - list: { - class: ListView, - buttonTextKey: 'list', - listDayFormat: { month: 'long', day: 'numeric', year: 'numeric' } // like "January 1, 2016" - }, - listDay: { - type: 'list', - duration: { days: 1 }, - listDayFormat: { weekday: 'long' } // day-of-week is all we need. full date is probably in header - }, - listWeek: { - type: 'list', - duration: { weeks: 1 }, - listDayFormat: { weekday: 'long' }, - listDayAltFormat: { month: 'long', day: 'numeric', year: 'numeric' } - }, - listMonth: { - type: 'list', - duration: { month: 1 }, - listDayAltFormat: { weekday: 'long' } // day-of-week is nice-to-have - }, - listYear: { - type: 'list', - duration: { year: 1 }, - listDayAltFormat: { weekday: 'long' } // day-of-week is nice-to-have - } - } - }); - - exports.ListView = ListView; - exports.default = main; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/list/main.min.css b/htdocs/public/high/plugins/fullcalendar/packages/list/main.min.css deleted file mode 100644 index 18446f44..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/list/main.min.css +++ /dev/null @@ -1 +0,0 @@ -.fc-event-dot{display:inline-block;width:10px;height:10px;border-radius:5px}.fc-rtl .fc-list-view{direction:rtl}.fc-list-view{border-width:1px;border-style:solid}.fc .fc-list-table{table-layout:auto}.fc-list-table td{border-width:1px 0 0;padding:8px 14px}.fc-list-table tr:first-child td{border-top-width:0}.fc-list-heading{border-bottom-width:1px}.fc-list-heading td{font-weight:700}.fc-ltr .fc-list-heading-main{float:left}.fc-ltr .fc-list-heading-alt,.fc-rtl .fc-list-heading-main{float:right}.fc-rtl .fc-list-heading-alt{float:left}.fc-list-item.fc-has-url{cursor:pointer}.fc-list-item-marker,.fc-list-item-time{white-space:nowrap;width:1px}.fc-ltr .fc-list-item-marker{padding-right:0}.fc-rtl .fc-list-item-marker{padding-left:0}.fc-list-item-title a{text-decoration:none;color:inherit}.fc-list-item-title a[href]:hover{text-decoration:underline}.fc-list-empty-wrap2{position:absolute;top:0;left:0;right:0;bottom:0}.fc-list-empty-wrap1{width:100%;height:100%;display:table}.fc-list-empty{display:table-cell;vertical-align:middle;text-align:center}.fc-unthemed .fc-list-empty{background-color:#eee} \ No newline at end of file diff --git a/htdocs/public/high/plugins/fullcalendar/packages/list/main.min.js b/htdocs/public/high/plugins/fullcalendar/packages/list/main.min.js deleted file mode 100644 index f954aac8..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/list/main.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! -FullCalendar List View Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@fullcalendar/core")):"function"==typeof define&&define.amd?define(["exports","@fullcalendar/core"],t):t((e=e||self).FullCalendarList={},e.FullCalendar)}(this,function(e,t){"use strict";var n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function r(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var s=function(e){function n(t){var n=e.call(this,t.context)||this;return n.listView=t,n}return r(n,e),n.prototype.attachSegs=function(e){e.length?this.listView.renderSegList(e):this.listView.renderEmptyMessage()},n.prototype.detachSegs=function(){},n.prototype.renderSegHtml=function(e){var n,r=this.context,s=r.view,a=r.theme,i=e.eventRange,o=i.def,l=i.instance,d=i.ui,c=o.url,p=["fc-list-item"].concat(d.classNames),h=d.backgroundColor;return n=o.allDay?t.getAllDayHtml(s):t.isMultiDayRange(i.range)?e.isStart?t.htmlEscape(this._getTimeText(l.range.start,e.end,!1)):e.isEnd?t.htmlEscape(this._getTimeText(e.start,l.range.end,!1)):t.getAllDayHtml(s):t.htmlEscape(this.getTimeText(i)),c&&p.push("fc-has-url"),''+(this.displayEventTime?''+(n||"")+"":"")+'"+t.htmlEscape(o.title||"")+""},n.prototype.computeEventTimeFormat=function(){return{hour:"numeric",minute:"2-digit",meridiem:"short"}},n}(t.FgEventRenderer),a=function(e){function n(n,r,a,o){var l=e.call(this,n,r,a,o)||this;l.computeDateVars=t.memoize(i),l.eventStoreToSegs=t.memoize(l._eventStoreToSegs);var d=l.eventRenderer=new s(l);l.renderContent=t.memoizeRendering(d.renderSegs.bind(d),d.unrender.bind(d)),l.el.classList.add("fc-list-view");for(var c=0,p=(l.theme.getClass("listView")||"").split(" ");c
'+t.htmlEscape(this.opt("noEventsMessage"))+"
"},n.prototype.renderSegList=function(e){var n,r,s,a=this.groupSegsByDay(e),i=t.htmlToElement('
'),o=i.querySelector("tbody");for(n=0;n'+(r?t.buildGotoAnchorHtml(this,e,{class:"fc-list-heading-main"},t.htmlEscape(n.format(e,r))):"")+(s?t.buildGotoAnchorHtml(this,e,{class:"fc-list-heading-alt"},t.htmlEscape(n.format(e,s))):"")+"")},n}(t.View);function i(e){for(var n=t.startOfDay(e.renderRange.start),r=e.renderRange.end,s=[],a=[];n
',o.rootBgContainerEl=i.querySelector(".fc-bg"),o.slatContainerEl=i.querySelector(".fc-slats"),o.bottomRuleEl=i.querySelector(".fc-divider"),o.renderProps=n,o}return n(i,e),i.prototype.processOptions=function(){var e,r,i=this.opt("slotDuration"),n=this.opt("snapDuration");i=t.createDuration(i),n=n?t.createDuration(n):i,null===(e=t.wholeDivideDurations(i,n))&&(n=i,e=1),this.slotDuration=i,this.snapDuration=n,this.snapsPerSlot=e,r=this.opt("slotLabelFormat"),Array.isArray(r)&&(r=r[r.length-1]),this.labelFormat=t.createFormatter(r||{hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"short"}),r=this.opt("slotLabelInterval"),this.labelInterval=r?t.createDuration(r):this.computeLabelInterval(i)},i.prototype.computeLabelInterval=function(e){var r,i,n;for(r=u.length-1;r>=0;r--)if(i=t.createDuration(u[r]),null!==(n=t.wholeDivideDurations(i,e))&&n>1)return i;return e},i.prototype.render=function(e){var t=e.cells;this.colCnt=t.length,this.renderSlats(e.dateProfile),this.renderColumns(e.cells,e.dateProfile),this.renderBusinessHours(e.businessHourSegs),this.renderDateSelection(e.dateSelectionSegs),this.renderFgEvents(e.fgEventSegs),this.renderBgEvents(e.bgEventSegs),this.renderEventSelection(e.eventSelection),this.renderEventDrag(e.eventDrag),this.renderEventResize(e.eventResize)},i.prototype.destroy=function(){e.prototype.destroy.call(this),this.renderSlats.unrender(),this.renderColumns.unrender()},i.prototype.updateSize=function(e){var t=this.fillRenderer,r=this.eventRenderer,i=this.mirrorRenderer;(e||this.isSlatSizesDirty)&&(this.buildSlatPositions(),this.isSlatSizesDirty=!1),(e||this.isColSizesDirty)&&(this.buildColPositions(),this.isColSizesDirty=!1),t.computeSizes(e),r.computeSizes(e),i.computeSizes(e),t.assignSizes(e),r.assignSizes(e),i.assignSizes(e)},i.prototype._renderSlats=function(e){var r=this.theme;this.slatContainerEl.innerHTML=''+this.renderSlatRowHtml(e)+"
",this.slatEls=t.findElements(this.slatContainerEl,"tr"),this.slatPositions=new t.PositionCache(this.el,this.slatEls,!1,!0),this.isSlatSizesDirty=!0},i.prototype.renderSlatRowHtml=function(e){for(var r,i,n,o=this.dateEnv,s=this.theme,a=this.isRtl,l="",d=t.startOfDay(e.renderRange.start),c=e.minTime,h=t.createDuration(0);t.asRoughMs(c)'+(i?""+t.htmlEscape(o.format(r,this.labelFormat))+"":"")+"",l+='"+(a?"":n)+''+(a?n:"")+"",c=t.addDurations(c,this.slotDuration),h=t.addDurations(h,this.slotDuration);return l},i.prototype._renderColumns=function(e,i){var n=this.theme,o=this.dateEnv,s=this.view,a=new r.DayBgRow(this.context);this.rootBgContainerEl.innerHTML=''+a.renderHtml({cells:e,dateProfile:i,renderIntroHtml:this.renderProps.renderBgIntroHtml})+"
",this.colEls=t.findElements(this.el,".fc-day, .fc-disabled-day");for(var l=0;l
');this.isRtl&&r.reverse(),e=this.contentSkeletonEl=t.htmlToElement('
'+r.join("")+"
"),this.colContainerEls=t.findElements(e,".fc-content-col"),this.mirrorContainerEls=t.findElements(e,".fc-mirror-container"),this.fgContainerEls=t.findElements(e,".fc-event-container:not(.fc-mirror-container)"),this.bgContainerEls=t.findElements(e,".fc-bgevent-container"),this.highlightContainerEls=t.findElements(e,".fc-highlight-container"),this.businessContainerEls=t.findElements(e,".fc-business-container"),this.isRtl&&(this.colContainerEls.reverse(),this.mirrorContainerEls.reverse(),this.fgContainerEls.reverse(),this.bgContainerEls.reverse(),this.highlightContainerEls.reverse(),this.businessContainerEls.reverse()),this.el.appendChild(e)},i.prototype.unrenderContentSkeleton=function(){t.removeElement(this.contentSkeletonEl)},i.prototype.groupSegsByCol=function(e){var t,r=[];for(t=0;t0){var a=t.createElement("div",{className:"fc-now-indicator fc-now-indicator-arrow"});a.style.top=n+"px",this.contentSkeletonEl.appendChild(a),o.push(a)}this.nowIndicatorEls=o}},i.prototype.unrenderNowIndicator=function(){this.nowIndicatorEls&&(this.nowIndicatorEls.forEach(t.removeElement),this.nowIndicatorEls=null)},i.prototype.getTotalSlatHeight=function(){return this.slatContainerEl.getBoundingClientRect().height},i.prototype.computeDateTop=function(e,r){return r||(r=t.startOfDay(e)),this.computeTimeTop(t.createDuration(e.valueOf()-r.valueOf()))},i.prototype.computeTimeTop=function(e){var r,i,n=this.slatEls.length,o=this.props.dateProfile,s=(e.milliseconds-t.asRoughMs(o.minTime))/t.asRoughMs(this.slotDuration);return s=Math.max(0,s),s=Math.min(n,s),r=Math.floor(s),i=s-(r=Math.min(r,n-1)),this.slatPositions.tops[r]+this.slatPositions.getHeight(r)*i},i.prototype.computeSegVerticals=function(e){var t,r,i,n=this.opt("timeGridEventMinHeight");for(t=0;t"+t.buildGotoAnchorHtml(a,{date:o.start,type:"week",forceOff:s>1},t.htmlEscape(e))+""):'"},a.renderTimeGridBgIntroHtml=function(){return'"},a.renderTimeGridIntroHtml=function(){return'"},a.renderDayGridBgIntroHtml=function(){return'"+t.getAllDayHtml(a)+""},a.renderDayGridIntroHtml=function(){return'"},a.el.classList.add("fc-timeGrid-view"),a.el.innerHTML=a.renderSkeletonHtml(),a.scroller=new t.ScrollComponent("hidden","auto");var l=a.scroller.el;a.el.querySelector(".fc-body > tr > td").appendChild(l),l.classList.add("fc-time-grid-container");var d=t.createElement("div",{className:"fc-time-grid"});if(l.appendChild(d),a.timeGrid=new p(a.context,d,{renderBgIntroHtml:a.renderTimeGridBgIntroHtml,renderIntroHtml:a.renderTimeGridIntroHtml}),a.opt("allDaySlot")){a.dayGrid=new r.DayGrid(a.context,a.el.querySelector(".fc-day-grid"),{renderNumberIntroHtml:a.renderDayGridIntroHtml,renderBgIntroHtml:a.renderDayGridBgIntroHtml,renderIntroHtml:a.renderDayGridIntroHtml,colWeekNumbersVisible:!1,cellWeekNumbersVisible:!1});var c=a.el.querySelector(".fc-divider");a.dayGrid.bottomCoordPadding=c.getBoundingClientRect().height}return a}return n(i,e),i.prototype.destroy=function(){e.prototype.destroy.call(this),this.timeGrid.destroy(),this.dayGrid&&this.dayGrid.destroy(),this.scroller.destroy()},i.prototype.renderSkeletonHtml=function(){var e=this.theme;return''+(this.opt("columnHeader")?'':"")+'
 
'+(this.opt("allDaySlot")?'

':"")+"
"},i.prototype.getNowIndicatorUnit=function(){return this.timeGrid.getNowIndicatorUnit()},i.prototype.unrenderNowIndicator=function(){this.timeGrid.unrenderNowIndicator()},i.prototype.updateSize=function(t,r,i){e.prototype.updateSize.call(this,t,r,i),this.timeGrid.updateSize(t),this.dayGrid&&this.dayGrid.updateSize(t)},i.prototype.updateBaseSize=function(e,r,i){var n,o,s,a=this;if(this.axisWidth=t.matchCellWidths(t.findElements(this.el,".fc-axis")),this.timeGrid.colEls){var l=t.findElements(this.el,".fc-row").filter(function(e){return!a.scroller.el.contains(e)});this.timeGrid.bottomRuleEl.style.display="none",this.scroller.clear(),l.forEach(t.uncompensateScroll),this.dayGrid&&(this.dayGrid.removeSegPopover(),(n=this.opt("eventLimit"))&&"number"!=typeof n&&(n=5),n&&this.dayGrid.limitRows(n)),i||(o=this.computeScrollerHeight(r),this.scroller.setHeight(o),((s=this.scroller.getScrollbarWidths()).left||s.right)&&(l.forEach(function(e){t.compensateScroll(e,s)}),o=this.computeScrollerHeight(r),this.scroller.setHeight(o)),this.scroller.lockOverflow(s),this.timeGrid.getTotalSlatHeight()> 0; - if (str.length > targetLength) { - return String(str); - } - targetLength = targetLength - str.length; - if (targetLength > padString.length) { - padString += repeat(padString, targetLength / padString.length); - } - return padString.slice(0, targetLength) + String(str); -} -/** - * Python like split - */ -var split = function (str, sep, num) { - var splits = str.split(sep); - return num - ? splits.slice(0, num).concat([splits.slice(num).join(sep)]) - : splits; -}; -/** - * closure/goog/math/math.js:modulo - * Copyright 2006 The Closure Library Authors. - * The % operator in JavaScript returns the remainder of a / b, but differs from - * some other languages in that the result will have the same sign as the - * dividend. For example, -1 % 8 == -1, whereas in some other languages - * (such as Python) the result would be 7. This function emulates the more - * correct modulo behavior, which is useful for certain applications such as - * calculating an offset index in a circular list. - * - * @param {number} a The dividend. - * @param {number} b The divisor. - * @return {number} a % b where the result is between 0 and b (either 0 <= x < b - * or b < x <= 0, depending on the sign of b). - */ -var pymod = function (a, b) { - var r = a % b; - // If r and b differ in sign, add b to wrap the result to the correct sign. - return r * b < 0 ? r + b : r; -}; -/** - * @see: - */ -var divmod = function (a, b) { - return { div: Math.floor(a / b), mod: pymod(a, b) }; -}; -var empty = function (obj) { - return !isPresent(obj) || obj.length === 0; -}; -/** - * Python-like boolean - * @return {Boolean} value of an object/primitive, taking into account - * the fact that in Python an empty list's/tuple's - * boolean value is False, whereas in JS it's true - */ -var notEmpty = function (obj) { - return !empty(obj); -}; -/** - * Return true if a value is in an array - */ -var includes = function (arr, val) { - return notEmpty(arr) && arr.indexOf(val) !== -1; -}; - - -/***/ }), -/* 1 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); - -// EXTERNAL MODULE: ./src/helpers.ts -var helpers = __webpack_require__(0); - -// CONCATENATED MODULE: ./src/dateutil.ts - -/** - * General date-related utilities. - * Also handles several incompatibilities between JavaScript and Python - * - */ -var dateutil_dateutil; -(function (dateutil) { - dateutil.MONTH_DAYS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; - /** - * Number of milliseconds of one day - */ - dateutil.ONE_DAY = 1000 * 60 * 60 * 24; - /** - * @see: - */ - dateutil.MAXYEAR = 9999; - /** - * Python uses 1-Jan-1 as the base for calculating ordinals but we don't - * want to confuse the JS engine with milliseconds > Number.MAX_NUMBER, - * therefore we use 1-Jan-1970 instead - */ - dateutil.ORDINAL_BASE = new Date(Date.UTC(1970, 0, 1)); - /** - * Python: MO-SU: 0 - 6 - * JS: SU-SAT 0 - 6 - */ - dateutil.PY_WEEKDAYS = [6, 0, 1, 2, 3, 4, 5]; - /** - * py_date.timetuple()[7] - */ - dateutil.getYearDay = function (date) { - var dateNoTime = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()); - return (Math.ceil((dateNoTime.valueOf() - - new Date(date.getUTCFullYear(), 0, 1).valueOf()) / - dateutil.ONE_DAY) + 1); - }; - dateutil.isLeapYear = function (year) { - return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; - }; - dateutil.isDate = function (value) { - return value instanceof Date; - }; - dateutil.isValidDate = function (value) { - return dateutil.isDate(value) && !isNaN(value.getTime()); - }; - /** - * @return {Number} the date's timezone offset in ms - */ - dateutil.tzOffset = function (date) { - return date.getTimezoneOffset() * 60 * 1000; - }; - /** - * @see: - */ - dateutil.daysBetween = function (date1, date2) { - // The number of milliseconds in one day - // Convert both dates to milliseconds - var date1ms = date1.getTime() - dateutil.tzOffset(date1); - var date2ms = date2.getTime() - dateutil.tzOffset(date2); - // Calculate the difference in milliseconds - var differencems = date1ms - date2ms; - // Convert back to days and return - return Math.round(differencems / dateutil.ONE_DAY); - }; - /** - * @see: - */ - dateutil.toOrdinal = function (date) { - return dateutil.daysBetween(date, dateutil.ORDINAL_BASE); - }; - /** - * @see - - */ - dateutil.fromOrdinal = function (ordinal) { - return new Date(dateutil.ORDINAL_BASE.getTime() + ordinal * dateutil.ONE_DAY); - }; - dateutil.getMonthDays = function (date) { - var month = date.getUTCMonth(); - return month === 1 && dateutil.isLeapYear(date.getUTCFullYear()) - ? 29 - : dateutil.MONTH_DAYS[month]; - }; - /** - * @return {Number} python-like weekday - */ - dateutil.getWeekday = function (date) { - return dateutil.PY_WEEKDAYS[date.getUTCDay()]; - }; - /** - * @see: - */ - dateutil.monthRange = function (year, month) { - var date = new Date(Date.UTC(year, month, 1)); - return [dateutil.getWeekday(date), dateutil.getMonthDays(date)]; - }; - /** - * @see: - */ - dateutil.combine = function (date, time) { - time = time || date; - return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds())); - }; - dateutil.clone = function (date) { - var dolly = new Date(date.getTime()); - return dolly; - }; - dateutil.cloneDates = function (dates) { - var clones = []; - for (var i = 0; i < dates.length; i++) { - clones.push(dateutil.clone(dates[i])); - } - return clones; - }; - /** - * Sorts an array of Date or dateutil.Time objects - */ - dateutil.sort = function (dates) { - dates.sort(function (a, b) { - return a.getTime() - b.getTime(); - }); - }; - dateutil.timeToUntilString = function (time, utc) { - if (utc === void 0) { utc = true; } - var date = new Date(time); - return [ - Object(helpers["h" /* padStart */])(date.getUTCFullYear().toString(), 4, '0'), - Object(helpers["h" /* padStart */])(date.getUTCMonth() + 1, 2, '0'), - Object(helpers["h" /* padStart */])(date.getUTCDate(), 2, '0'), - 'T', - Object(helpers["h" /* padStart */])(date.getUTCHours(), 2, '0'), - Object(helpers["h" /* padStart */])(date.getUTCMinutes(), 2, '0'), - Object(helpers["h" /* padStart */])(date.getUTCSeconds(), 2, '0'), - utc ? 'Z' : '' - ].join(''); - }; - dateutil.untilStringToDate = function (until) { - var re = /^(\d{4})(\d{2})(\d{2})(T(\d{2})(\d{2})(\d{2})Z?)?$/; - var bits = re.exec(until); - if (!bits) - throw new Error("Invalid UNTIL value: " + until); - return new Date(Date.UTC(parseInt(bits[1], 10), parseInt(bits[2], 10) - 1, parseInt(bits[3], 10), parseInt(bits[5], 10) || 0, parseInt(bits[6], 10) || 0, parseInt(bits[7], 10) || 0)); - }; -})(dateutil_dateutil || (dateutil_dateutil = {})); -/* harmony default export */ var src_dateutil = (dateutil_dateutil); - -// CONCATENATED MODULE: ./src/iterresult.ts -/** - * This class helps us to emulate python's generators, sorta. - */ -var IterResult = /** @class */ (function () { - function IterResult(method, args) { - this.minDate = null; - this.maxDate = null; - this._result = []; - this.total = 0; - this.method = method; - this.args = args; - if (method === 'between') { - this.maxDate = args.inc - ? args.before - : new Date(args.before.getTime() - 1); - this.minDate = args.inc ? args.after : new Date(args.after.getTime() + 1); - } - else if (method === 'before') { - this.maxDate = args.inc ? args.dt : new Date(args.dt.getTime() - 1); - } - else if (method === 'after') { - this.minDate = args.inc ? args.dt : new Date(args.dt.getTime() + 1); - } - } - /** - * Possibly adds a date into the result. - * - * @param {Date} date - the date isn't necessarly added to the result - * list (if it is too late/too early) - * @return {Boolean} true if it makes sense to continue the iteration - * false if we're done. - */ - IterResult.prototype.accept = function (date) { - ++this.total; - var tooEarly = this.minDate && date < this.minDate; - var tooLate = this.maxDate && date > this.maxDate; - if (this.method === 'between') { - if (tooEarly) - return true; - if (tooLate) - return false; - } - else if (this.method === 'before') { - if (tooLate) - return false; - } - else if (this.method === 'after') { - if (tooEarly) - return true; - this.add(date); - return false; - } - return this.add(date); - }; - /** - * - * @param {Date} date that is part of the result. - * @return {Boolean} whether we are interested in more values. - */ - IterResult.prototype.add = function (date) { - this._result.push(date); - return true; - }; - /** - * 'before' and 'after' return only one date, whereas 'all' - * and 'between' an array. - * @return {Date,Array?} - */ - IterResult.prototype.getValue = function () { - var res = this._result; - switch (this.method) { - case 'all': - case 'between': - return res; - case 'before': - case 'after': - default: - return (res.length ? res[res.length - 1] : null); - } - }; - IterResult.prototype.clone = function () { - return new IterResult(this.method, this.args); - }; - return IterResult; -}()); -/* harmony default export */ var iterresult = (IterResult); - -// CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.js -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - } - return __assign.apply(this, arguments); -} - -function __rest(s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) - t[p[i]] = s[p[i]]; - return t; -} - -function __decorate(decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -} - -function __param(paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } -} - -function __metadata(metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); -} - -function __awaiter(thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -} - -function __generator(thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -} - -function __exportStar(m, exports) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} - -function __values(o) { - var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; - if (m) return m.call(o); - return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; -} - -function __read(o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; -} - -function __spread() { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; -} - -function __await(v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); -} - -function __asyncGenerator(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } -} - -function __asyncDelegator(o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } -} - -function __asyncValues(o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } -} - -function __makeTemplateObject(cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; - -function __importStar(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result.default = mod; - return result; -} - -function __importDefault(mod) { - return (mod && mod.__esModule) ? mod : { default: mod }; -} - -// CONCATENATED MODULE: ./src/callbackiterresult.ts - - -/** - * IterResult subclass that calls a callback function on each add, - * and stops iterating when the callback returns false. - */ -var callbackiterresult_CallbackIterResult = /** @class */ (function (_super) { - __extends(CallbackIterResult, _super); - function CallbackIterResult(method, args, iterator) { - var _this = _super.call(this, method, args) || this; - _this.iterator = iterator; - return _this; - } - CallbackIterResult.prototype.add = function (date) { - if (this.iterator(date, this._result.length)) { - this._result.push(date); - return true; - } - return false; - }; - return CallbackIterResult; -}(iterresult)); -/* harmony default export */ var callbackiterresult = (callbackiterresult_CallbackIterResult); - -// CONCATENATED MODULE: ./src/types.ts -var Frequency; -(function (Frequency) { - Frequency[Frequency["YEARLY"] = 0] = "YEARLY"; - Frequency[Frequency["MONTHLY"] = 1] = "MONTHLY"; - Frequency[Frequency["WEEKLY"] = 2] = "WEEKLY"; - Frequency[Frequency["DAILY"] = 3] = "DAILY"; - Frequency[Frequency["HOURLY"] = 4] = "HOURLY"; - Frequency[Frequency["MINUTELY"] = 5] = "MINUTELY"; - Frequency[Frequency["SECONDLY"] = 6] = "SECONDLY"; -})(Frequency || (Frequency = {})); -function freqIsDailyOrGreater(freq) { - return freq < Frequency.HOURLY; -} - -// CONCATENATED MODULE: ./src/weekday.ts -// ============================================================================= -// Weekday -// ============================================================================= -var WDAYS = ['MO', 'TU', 'WE', 'TH', 'FR', 'SA', 'SU']; -var Weekday = /** @class */ (function () { - function Weekday(weekday, n) { - if (n === 0) - throw new Error("Can't create weekday with n == 0"); - this.weekday = weekday; - this.n = n; - } - // __call__ - Cannot call the object directly, do it through - // e.g. RRule.TH.nth(-1) instead, - Weekday.prototype.nth = function (n) { - return this.n === n ? this : new Weekday(this.weekday, n); - }; - // __eq__ - Weekday.prototype.equals = function (other) { - return this.weekday === other.weekday && this.n === other.n; - }; - // __repr__ - Weekday.prototype.toString = function () { - var s = WDAYS[this.weekday]; - if (this.n) - s = (this.n > 0 ? '+' : '') + String(this.n) + s; - return s; - }; - Weekday.prototype.getJsWeekday = function () { - return this.weekday === 6 ? 0 : this.weekday + 1; - }; - return Weekday; -}()); - - -// CONCATENATED MODULE: ./src/datetime.ts - - - - -var Time = /** @class */ (function () { - function Time(hour, minute, second, millisecond) { - this.hour = hour; - this.minute = minute; - this.second = second; - this.millisecond = millisecond || 0; - } - Time.prototype.getHours = function () { - return this.hour; - }; - Time.prototype.getMinutes = function () { - return this.minute; - }; - Time.prototype.getSeconds = function () { - return this.second; - }; - Time.prototype.getMilliseconds = function () { - return this.millisecond; - }; - Time.prototype.getTime = function () { - return ((this.hour * 60 * 60 + this.minute * 60 + this.second) * 1000 + - this.millisecond); - }; - return Time; -}()); - -var datetime_DateTime = /** @class */ (function (_super) { - __extends(DateTime, _super); - function DateTime(year, month, day, hour, minute, second, millisecond) { - var _this = _super.call(this, hour, minute, second, millisecond) || this; - _this.year = year; - _this.month = month; - _this.day = day; - return _this; - } - DateTime.fromDate = function (date) { - return new this(date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.valueOf() % 1000); - }; - DateTime.prototype.getWeekday = function () { - return dateutil_dateutil.getWeekday(new Date(this.getTime())); - }; - DateTime.prototype.getTime = function () { - return new Date(Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second, this.millisecond)).getTime(); - }; - DateTime.prototype.getDay = function () { - return this.day; - }; - DateTime.prototype.getMonth = function () { - return this.month; - }; - DateTime.prototype.getYear = function () { - return this.year; - }; - DateTime.prototype.addYears = function (years) { - this.year += years; - }; - DateTime.prototype.addMonths = function (months) { - this.month += months; - if (this.month > 12) { - var yearDiv = Math.floor(this.month / 12); - var monthMod = Object(helpers["i" /* pymod */])(this.month, 12); - this.month = monthMod; - this.year += yearDiv; - if (this.month === 0) { - this.month = 12; - --this.year; - } - } - }; - DateTime.prototype.addWeekly = function (days, wkst) { - if (wkst > this.getWeekday()) { - this.day += -(this.getWeekday() + 1 + (6 - wkst)) + days * 7; - } - else { - this.day += -(this.getWeekday() - wkst) + days * 7; - } - this.fixDay(); - }; - DateTime.prototype.addDaily = function (days) { - this.day += days; - this.fixDay(); - }; - DateTime.prototype.addHours = function (hours, filtered, byhour) { - if (filtered) { - // Jump to one iteration before next day - this.hour += Math.floor((23 - this.hour) / hours) * hours; - } - while (true) { - this.hour += hours; - var _a = Object(helpers["a" /* divmod */])(this.hour, 24), dayDiv = _a.div, hourMod = _a.mod; - if (dayDiv) { - this.hour = hourMod; - this.addDaily(dayDiv); - } - if (Object(helpers["b" /* empty */])(byhour) || Object(helpers["c" /* includes */])(byhour, this.hour)) - break; - } - }; - DateTime.prototype.addMinutes = function (minutes, filtered, byhour, byminute) { - if (filtered) { - // Jump to one iteration before next day - this.minute += - Math.floor((1439 - (this.hour * 60 + this.minute)) / minutes) * minutes; - } - while (true) { - this.minute += minutes; - var _a = Object(helpers["a" /* divmod */])(this.minute, 60), hourDiv = _a.div, minuteMod = _a.mod; - if (hourDiv) { - this.minute = minuteMod; - this.addHours(hourDiv, false, byhour); - } - if ((Object(helpers["b" /* empty */])(byhour) || Object(helpers["c" /* includes */])(byhour, this.hour)) && - (Object(helpers["b" /* empty */])(byminute) || Object(helpers["c" /* includes */])(byminute, this.minute))) { - break; - } - } - }; - DateTime.prototype.addSeconds = function (seconds, filtered, byhour, byminute, bysecond) { - if (filtered) { - // Jump to one iteration before next day - this.second += - Math.floor((86399 - (this.hour * 3600 + this.minute * 60 + this.second)) / seconds) * seconds; - } - while (true) { - this.second += seconds; - var _a = Object(helpers["a" /* divmod */])(this.second, 60), minuteDiv = _a.div, secondMod = _a.mod; - if (minuteDiv) { - this.second = secondMod; - this.addMinutes(minuteDiv, false, byhour, byminute); - } - if ((Object(helpers["b" /* empty */])(byhour) || Object(helpers["c" /* includes */])(byhour, this.hour)) && - (Object(helpers["b" /* empty */])(byminute) || Object(helpers["c" /* includes */])(byminute, this.minute)) && - (Object(helpers["b" /* empty */])(bysecond) || Object(helpers["c" /* includes */])(bysecond, this.second))) { - break; - } - } - }; - DateTime.prototype.fixDay = function () { - if (this.day <= 28) { - return; - } - var daysinmonth = dateutil_dateutil.monthRange(this.year, this.month - 1)[1]; - if (this.day <= daysinmonth) { - return; - } - while (this.day > daysinmonth) { - this.day -= daysinmonth; - ++this.month; - if (this.month === 13) { - this.month = 1; - ++this.year; - if (this.year > dateutil_dateutil.MAXYEAR) { - return; - } - } - daysinmonth = dateutil_dateutil.monthRange(this.year, this.month - 1)[1]; - } - }; - DateTime.prototype.add = function (options, filtered) { - var freq = options.freq, interval = options.interval, wkst = options.wkst, byhour = options.byhour, byminute = options.byminute, bysecond = options.bysecond; - switch (freq) { - case Frequency.YEARLY: return this.addYears(interval); - case Frequency.MONTHLY: return this.addMonths(interval); - case Frequency.WEEKLY: return this.addWeekly(interval, wkst); - case Frequency.DAILY: return this.addDaily(interval); - case Frequency.HOURLY: return this.addHours(interval, filtered, byhour); - case Frequency.MINUTELY: return this.addMinutes(interval, filtered, byhour, byminute); - case Frequency.SECONDLY: return this.addSeconds(interval, filtered, byhour, byminute, bysecond); - } - }; - return DateTime; -}(Time)); - - -// CONCATENATED MODULE: ./src/parseoptions.ts - - - - - - -function initializeOptions(options) { - var invalid = []; - var keys = Object.keys(options); - var initializedOptions = {}; - // Shallow copy for options and origOptions and check for invalid - keys.forEach(function (key) { - var value = options[key]; - initializedOptions[key] = value; - if (!Object(helpers["c" /* includes */])(rrule_defaultKeys, key)) - invalid.push(key); - if (src_dateutil.isDate(value) && !src_dateutil.isValidDate(value)) - invalid.push(key); - }); - if (invalid.length) { - throw new Error('Invalid options: ' + invalid.join(', ')); - } - return initializedOptions; -} -function parseOptions(options) { - var opts = initializeOptions(options); - var keys = Object.keys(options); - // Merge in default options - rrule_defaultKeys.forEach(function (key) { - if (!Object(helpers["c" /* includes */])(keys, key) || !Object(helpers["f" /* isPresent */])(opts[key])) - opts[key] = DEFAULT_OPTIONS[key]; - }); - if (Object(helpers["f" /* isPresent */])(opts.byeaster)) - opts.freq = src_rrule.YEARLY; - if (!(Object(helpers["f" /* isPresent */])(opts.freq) && src_rrule.FREQUENCIES[opts.freq])) { - throw new Error("Invalid frequency: " + opts.freq + " " + options.freq); - } - if (!opts.dtstart) - opts.dtstart = new Date(new Date().setMilliseconds(0)); - if (!Object(helpers["f" /* isPresent */])(opts.wkst)) { - opts.wkst = src_rrule.MO.weekday; - } - else if (Object(helpers["e" /* isNumber */])(opts.wkst)) { - // cool, just keep it like that - } - else { - opts.wkst = opts.wkst.weekday; - } - if (Object(helpers["f" /* isPresent */])(opts.bysetpos)) { - if (Object(helpers["e" /* isNumber */])(opts.bysetpos)) - opts.bysetpos = [opts.bysetpos]; - for (var i = 0; i < opts.bysetpos.length; i++) { - var v = opts.bysetpos[i]; - if (v === 0 || !(v >= -366 && v <= 366)) { - throw new Error('bysetpos must be between 1 and 366,' + ' or between -366 and -1'); - } - } - } - if (!(Boolean(opts.byweekno) || - Object(helpers["g" /* notEmpty */])(opts.byweekno) || - Object(helpers["g" /* notEmpty */])(opts.byyearday) || - Boolean(opts.bymonthday) || - Object(helpers["g" /* notEmpty */])(opts.bymonthday) || - Object(helpers["f" /* isPresent */])(opts.byweekday) || - Object(helpers["f" /* isPresent */])(opts.byeaster))) { - switch (opts.freq) { - case src_rrule.YEARLY: - if (!opts.bymonth) - opts.bymonth = opts.dtstart.getUTCMonth() + 1; - opts.bymonthday = opts.dtstart.getUTCDate(); - break; - case src_rrule.MONTHLY: - opts.bymonthday = opts.dtstart.getUTCDate(); - break; - case src_rrule.WEEKLY: - opts.byweekday = [src_dateutil.getWeekday(opts.dtstart)]; - break; - } - } - // bymonth - if (Object(helpers["f" /* isPresent */])(opts.bymonth) && !Object(helpers["d" /* isArray */])(opts.bymonth)) { - opts.bymonth = [opts.bymonth]; - } - // byyearday - if (Object(helpers["f" /* isPresent */])(opts.byyearday) && - !Object(helpers["d" /* isArray */])(opts.byyearday) && - Object(helpers["e" /* isNumber */])(opts.byyearday)) { - opts.byyearday = [opts.byyearday]; - } - // bymonthday - if (!Object(helpers["f" /* isPresent */])(opts.bymonthday)) { - opts.bymonthday = []; - opts.bynmonthday = []; - } - else if (Object(helpers["d" /* isArray */])(opts.bymonthday)) { - var bymonthday = []; - var bynmonthday = []; - for (var i = 0; i < opts.bymonthday.length; i++) { - var v = opts.bymonthday[i]; - if (v > 0) { - bymonthday.push(v); - } - else if (v < 0) { - bynmonthday.push(v); - } - } - opts.bymonthday = bymonthday; - opts.bynmonthday = bynmonthday; - } - else if (opts.bymonthday < 0) { - opts.bynmonthday = [opts.bymonthday]; - opts.bymonthday = []; - } - else { - opts.bynmonthday = []; - opts.bymonthday = [opts.bymonthday]; - } - // byweekno - if (Object(helpers["f" /* isPresent */])(opts.byweekno) && !Object(helpers["d" /* isArray */])(opts.byweekno)) { - opts.byweekno = [opts.byweekno]; - } - // byweekday / bynweekday - if (!Object(helpers["f" /* isPresent */])(opts.byweekday)) { - opts.bynweekday = null; - } - else if (Object(helpers["e" /* isNumber */])(opts.byweekday)) { - opts.byweekday = [opts.byweekday]; - opts.bynweekday = null; - } - else if (opts.byweekday instanceof Weekday) { - if (!opts.byweekday.n || opts.freq > src_rrule.MONTHLY) { - opts.byweekday = [opts.byweekday.weekday]; - opts.bynweekday = null; - } - else { - opts.bynweekday = [[opts.byweekday.weekday, opts.byweekday.n]]; - opts.byweekday = null; - } - } - else { - var byweekday = []; - var bynweekday = []; - for (var i = 0; i < opts.byweekday.length; i++) { - var wday = opts.byweekday[i]; - if (Object(helpers["e" /* isNumber */])(wday)) { - byweekday.push(wday); - continue; - } - var wd = wday; - if (!wd.n || opts.freq > src_rrule.MONTHLY) { - byweekday.push(wd.weekday); - } - else { - bynweekday.push([wd.weekday, wd.n]); - } - } - opts.byweekday = Object(helpers["g" /* notEmpty */])(byweekday) ? byweekday : null; - opts.bynweekday = Object(helpers["g" /* notEmpty */])(bynweekday) ? bynweekday : null; - } - // byhour - if (!Object(helpers["f" /* isPresent */])(opts.byhour)) { - opts.byhour = - opts.freq < src_rrule.HOURLY ? [opts.dtstart.getUTCHours()] : null; - } - else if (Object(helpers["e" /* isNumber */])(opts.byhour)) { - opts.byhour = [opts.byhour]; - } - // byminute - if (!Object(helpers["f" /* isPresent */])(opts.byminute)) { - opts.byminute = - opts.freq < src_rrule.MINUTELY ? [opts.dtstart.getUTCMinutes()] : null; - } - else if (Object(helpers["e" /* isNumber */])(opts.byminute)) { - opts.byminute = [opts.byminute]; - } - // bysecond - if (!Object(helpers["f" /* isPresent */])(opts.bysecond)) { - opts.bysecond = - opts.freq < src_rrule.SECONDLY ? [opts.dtstart.getUTCSeconds()] : null; - } - else if (Object(helpers["e" /* isNumber */])(opts.bysecond)) { - opts.bysecond = [opts.bysecond]; - } - return { parsedOptions: opts }; -} -function buildTimeset(opts) { - var millisecondModulo = opts.dtstart.getTime() % 1000; - if (!freqIsDailyOrGreater(opts.freq)) { - return []; - } - var timeset = []; - opts.byhour.forEach(function (hour) { - opts.byminute.forEach(function (minute) { - opts.bysecond.forEach(function (second) { - timeset.push(new Time(hour, minute, second, millisecondModulo)); - }); - }); - }); - return timeset; -} - -// CONCATENATED MODULE: ./src/parsestring.ts - - - - - -function parseString(rfcString) { - var options = rfcString.split('\n').map(parseLine).filter(function (x) { return x !== null; }); - return __assign({}, options[0], options[1]); -} -function parseDtstart(line) { - var options = {}; - var dtstartWithZone = /DTSTART(?:;TZID=([^:=]+?))?(?::|=)([^;\s]+)/i.exec(line); - if (!dtstartWithZone) { - return options; - } - var _ = dtstartWithZone[0], tzid = dtstartWithZone[1], dtstart = dtstartWithZone[2]; - if (tzid) { - options.tzid = tzid; - } - options.dtstart = src_dateutil.untilStringToDate(dtstart); - return options; -} -function parseLine(rfcString) { - rfcString = rfcString.replace(/^\s+|\s+$/, ''); - if (!rfcString.length) - return null; - var header = /^([A-Z]+?)[:;]/.exec(rfcString.toUpperCase()); - if (!header) { - return parseRrule(rfcString); - } - var _ = header[0], key = header[1]; - switch (key.toUpperCase()) { - case 'RRULE': - case 'EXRULE': - return parseRrule(rfcString); - case 'DTSTART': - return parseDtstart(rfcString); - default: - throw new Error("Unsupported RFC prop " + key + " in " + rfcString); - } -} -function parseRrule(line) { - var strippedLine = line.replace(/^RRULE:/i, ''); - var options = parseDtstart(strippedLine); - var attrs = line.replace(/^(?:RRULE|EXRULE):/i, '').split(';'); - attrs.forEach(function (attr) { - var _a = attr.split('='), key = _a[0], value = _a[1]; - switch (key.toUpperCase()) { - case 'FREQ': - options.freq = Frequency[value.toUpperCase()]; - break; - case 'WKST': - options.wkst = Days[value.toUpperCase()]; - break; - case 'COUNT': - case 'INTERVAL': - case 'BYSETPOS': - case 'BYMONTH': - case 'BYMONTHDAY': - case 'BYYEARDAY': - case 'BYWEEKNO': - case 'BYHOUR': - case 'BYMINUTE': - case 'BYSECOND': - var num = parseNumber(value); - var optionKey = key.toLowerCase(); - // @ts-ignore - options[optionKey] = num; - break; - case 'BYWEEKDAY': - case 'BYDAY': - options.byweekday = parseWeekday(value); - break; - case 'DTSTART': - case 'TZID': - // for backwards compatibility - var dtstart = parseDtstart(line); - options.tzid = dtstart.tzid; - options.dtstart = dtstart.dtstart; - break; - case 'UNTIL': - options.until = src_dateutil.untilStringToDate(value); - break; - case 'BYEASTER': - options.byeaster = Number(value); - break; - default: - throw new Error("Unknown RRULE property '" + key + "'"); - } - }); - return options; -} -function parseNumber(value) { - if (value.indexOf(',') !== -1) { - var values = value.split(','); - return values.map(parseIndividualNumber); - } - return parseIndividualNumber(value); -} -function parseIndividualNumber(value) { - if (/^[+-]?\d+$/.test(value)) { - return Number(value); - } - return value; -} -function parseWeekday(value) { - var days = value.split(','); - return days.map(function (day) { - if (day.length === 2) { - // MO, TU, ... - return Days[day]; // wday instanceof Weekday - } - // -1MO, +3FR, 1SO, 13TU ... - var parts = day.match(/^([+-]?\d{1,2})([A-Z]{2})$/); - var n = Number(parts[1]); - var wdaypart = parts[2]; - var wday = Days[wdaypart].weekday; - return new Weekday(wday, n); - }); -} - -// EXTERNAL MODULE: external "luxon" -var external_luxon_ = __webpack_require__(2); - -// CONCATENATED MODULE: ./src/datewithzone.ts - - -var datewithzone_DateWithZone = /** @class */ (function () { - function DateWithZone(date, tzid) { - this.date = date; - this.tzid = tzid; - } - Object.defineProperty(DateWithZone.prototype, "isUTC", { - get: function () { - return !this.tzid || this.tzid.toUpperCase() === 'UTC'; - }, - enumerable: true, - configurable: true - }); - DateWithZone.prototype.toString = function () { - var datestr = src_dateutil.timeToUntilString(this.date.getTime(), this.isUTC); - if (!this.isUTC) { - return ";TZID=" + this.tzid + ":" + datestr; - } - return ":" + datestr; - }; - DateWithZone.prototype.getTime = function () { - return this.date.getTime(); - }; - DateWithZone.prototype.rezonedDate = function () { - if (this.isUTC) { - return this.date; - } - try { - var datetime = external_luxon_["DateTime"] - .fromJSDate(this.date); - var rezoned = datetime.setZone(this.tzid, { keepLocalTime: true }); - return rezoned.toJSDate(); - } - catch (e) { - if (e instanceof TypeError) { - console.error('Using TZID without Luxon available is unsupported. Returned times are in UTC, not the requested time zone'); - } - return this.date; - } - }; - return DateWithZone; -}()); - - -// CONCATENATED MODULE: ./src/optionstostring.ts - - - - - -function optionsToString(options) { - var rrule = []; - var dtstart = ''; - var keys = Object.keys(options); - var defaultKeys = Object.keys(DEFAULT_OPTIONS); - for (var i = 0; i < keys.length; i++) { - if (keys[i] === 'tzid') - continue; - if (!Object(helpers["c" /* includes */])(defaultKeys, keys[i])) - continue; - var key = keys[i].toUpperCase(); - var value = options[keys[i]]; - var outValue = ''; - if (!Object(helpers["f" /* isPresent */])(value) || (Object(helpers["d" /* isArray */])(value) && !value.length)) - continue; - switch (key) { - case 'FREQ': - outValue = src_rrule.FREQUENCIES[options.freq]; - break; - case 'WKST': - if (Object(helpers["e" /* isNumber */])(value)) { - outValue = new Weekday(value).toString(); - } - else { - outValue = value.toString(); - } - break; - case 'BYWEEKDAY': - /* - NOTE: BYWEEKDAY is a special case. - RRule() deconstructs the rule.options.byweekday array - into an array of Weekday arguments. - On the other hand, rule.origOptions is an array of Weekdays. - We need to handle both cases here. - It might be worth change RRule to keep the Weekdays. - - Also, BYWEEKDAY (used by RRule) vs. BYDAY (RFC) - - */ - key = 'BYDAY'; - outValue = Object(helpers["m" /* toArray */])(value).map(function (wday) { - if (wday instanceof Weekday) { - return wday; - } - if (Object(helpers["d" /* isArray */])(wday)) { - return new Weekday(wday[0], wday[1]); - } - return new Weekday(wday); - }).toString(); - break; - case 'DTSTART': - dtstart = buildDtstart(value, options.tzid); - break; - case 'UNTIL': - outValue = src_dateutil.timeToUntilString(value, !options.tzid); - break; - default: - if (Object(helpers["d" /* isArray */])(value)) { - var strValues = []; - for (var j = 0; j < value.length; j++) { - strValues[j] = String(value[j]); - } - outValue = strValues.toString(); - } - else { - outValue = String(value); - } - } - if (outValue) { - rrule.push([key, outValue]); - } - } - var rules = rrule.map(function (_a) { - var key = _a[0], value = _a[1]; - return key + "=" + value.toString(); - }).join(';'); - var ruleString = ''; - if (rules !== '') { - ruleString = "RRULE:" + rules; - } - return [dtstart, ruleString].filter(function (x) { return !!x; }).join('\n'); -} -function buildDtstart(dtstart, tzid) { - if (!dtstart) { - return ''; - } - return 'DTSTART' + new datewithzone_DateWithZone(new Date(dtstart), tzid).toString(); -} - -// CONCATENATED MODULE: ./src/cache.ts - - - -var cache_Cache = /** @class */ (function () { - function Cache() { - this.all = false; - this.before = []; - this.after = []; - this.between = []; - } - /** - * @param {String} what - all/before/after/between - * @param {Array,Date} value - an array of dates, one date, or null - * @param {Object?} args - _iter arguments - */ - Cache.prototype._cacheAdd = function (what, value, args) { - if (value) { - value = - value instanceof Date - ? src_dateutil.clone(value) - : src_dateutil.cloneDates(value); - } - if (what === 'all') { - this.all = value; - } - else { - args._value = value; - this[what].push(args); - } - }; - /** - * @return false - not in the cache - * null - cached, but zero occurrences (before/after) - * Date - cached (before/after) - * [] - cached, but zero occurrences (all/between) - * [Date1, DateN] - cached (all/between) - */ - Cache.prototype._cacheGet = function (what, args) { - var cached = false; - var argsKeys = args ? Object.keys(args) : []; - var findCacheDiff = function (item) { - for (var i = 0; i < argsKeys.length; i++) { - var key = argsKeys[i]; - if (String(args[key]) !== String(item[key])) { - return true; - } - } - return false; - }; - var cachedObject = this[what]; - if (what === 'all') { - cached = this.all; - } - else if (Object(helpers["d" /* isArray */])(cachedObject)) { - // Let's see whether we've already called the - // 'what' method with the same 'args' - for (var i = 0; i < cachedObject.length; i++) { - var item = cachedObject[i]; - if (argsKeys.length && findCacheDiff(item)) - continue; - cached = item._value; - break; - } - } - if (!cached && this.all) { - // Not in the cache, but we already know all the occurrences, - // so we can find the correct dates from the cached ones. - var iterResult = new iterresult(what, args); - for (var i = 0; i < this.all.length; i++) { - if (!iterResult.accept(this.all[i])) - break; - } - cached = iterResult.getValue(); - this._cacheAdd(what, cached, args); - } - return Object(helpers["d" /* isArray */])(cached) - ? src_dateutil.cloneDates(cached) - : cached instanceof Date - ? src_dateutil.clone(cached) - : cached; - }; - return Cache; -}()); - - -// CONCATENATED MODULE: ./src/masks.ts - -// ============================================================================= -// Date masks -// ============================================================================= -// Every mask is 7 days longer to handle cross-year weekly periods. -var M365MASK = Object(helpers["k" /* repeat */])(1, 31).concat(Object(helpers["k" /* repeat */])(2, 28), Object(helpers["k" /* repeat */])(3, 31), Object(helpers["k" /* repeat */])(4, 30), Object(helpers["k" /* repeat */])(5, 31), Object(helpers["k" /* repeat */])(6, 30), Object(helpers["k" /* repeat */])(7, 31), Object(helpers["k" /* repeat */])(8, 31), Object(helpers["k" /* repeat */])(9, 30), Object(helpers["k" /* repeat */])(10, 31), Object(helpers["k" /* repeat */])(11, 30), Object(helpers["k" /* repeat */])(12, 31), Object(helpers["k" /* repeat */])(1, 7)); -var M366MASK = Object(helpers["k" /* repeat */])(1, 31).concat(Object(helpers["k" /* repeat */])(2, 29), Object(helpers["k" /* repeat */])(3, 31), Object(helpers["k" /* repeat */])(4, 30), Object(helpers["k" /* repeat */])(5, 31), Object(helpers["k" /* repeat */])(6, 30), Object(helpers["k" /* repeat */])(7, 31), Object(helpers["k" /* repeat */])(8, 31), Object(helpers["k" /* repeat */])(9, 30), Object(helpers["k" /* repeat */])(10, 31), Object(helpers["k" /* repeat */])(11, 30), Object(helpers["k" /* repeat */])(12, 31), Object(helpers["k" /* repeat */])(1, 7)); -var M28 = Object(helpers["j" /* range */])(1, 29); -var M29 = Object(helpers["j" /* range */])(1, 30); -var M30 = Object(helpers["j" /* range */])(1, 31); -var M31 = Object(helpers["j" /* range */])(1, 32); -var MDAY366MASK = M31.concat(M29, M31, M30, M31, M30, M31, M31, M30, M31, M30, M31, M31.slice(0, 7)); -var MDAY365MASK = M31.concat(M28, M31, M30, M31, M30, M31, M31, M30, M31, M30, M31, M31.slice(0, 7)); -var NM28 = Object(helpers["j" /* range */])(-28, 0); -var NM29 = Object(helpers["j" /* range */])(-29, 0); -var NM30 = Object(helpers["j" /* range */])(-30, 0); -var NM31 = Object(helpers["j" /* range */])(-31, 0); -var NMDAY366MASK = NM31.concat(NM29, NM31, NM30, NM31, NM30, NM31, NM31, NM30, NM31, NM30, NM31, NM31.slice(0, 7)); -var NMDAY365MASK = NM31.concat(NM28, NM31, NM30, NM31, NM30, NM31, NM31, NM30, NM31, NM30, NM31, NM31.slice(0, 7)); -var M366RANGE = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366]; -var M365RANGE = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]; -var WDAYMASK = (function () { - var wdaymask = []; - for (var i = 0; i < 55; i++) - wdaymask = wdaymask.concat(Object(helpers["j" /* range */])(7)); - return wdaymask; -})(); - - -// CONCATENATED MODULE: ./src/iterinfo/yearinfo.ts - - - - -function rebuildYear(year, options) { - var firstyday = new Date(Date.UTC(year, 0, 1)); - var yearlen = src_dateutil.isLeapYear(year) ? 366 : 365; - var nextyearlen = src_dateutil.isLeapYear(year + 1) ? 366 : 365; - var yearordinal = src_dateutil.toOrdinal(firstyday); - var yearweekday = src_dateutil.getWeekday(firstyday); - var result = __assign({ yearlen: yearlen, - nextyearlen: nextyearlen, - yearordinal: yearordinal, - yearweekday: yearweekday }, baseYearMasks(year), { wnomask: null }); - if (Object(helpers["b" /* empty */])(options.byweekno)) { - return result; - } - result.wnomask = Object(helpers["k" /* repeat */])(0, yearlen + 7); - var firstwkst; - var wyearlen; - var no1wkst = firstwkst = Object(helpers["i" /* pymod */])(7 - yearweekday + options.wkst, 7); - if (no1wkst >= 4) { - no1wkst = 0; - // Number of days in the year, plus the days we got - // from last year. - wyearlen = - result.yearlen + Object(helpers["i" /* pymod */])(yearweekday - options.wkst, 7); - } - else { - // Number of days in the year, minus the days we - // left in last year. - wyearlen = yearlen - no1wkst; - } - var div = Math.floor(wyearlen / 7); - var mod = Object(helpers["i" /* pymod */])(wyearlen, 7); - var numweeks = Math.floor(div + mod / 4); - for (var j = 0; j < options.byweekno.length; j++) { - var n = options.byweekno[j]; - if (n < 0) { - n += numweeks + 1; - } - if (!(n > 0 && n <= numweeks)) { - continue; - } - var i = void 0; - if (n > 1) { - i = no1wkst + (n - 1) * 7; - if (no1wkst !== firstwkst) { - i -= 7 - firstwkst; - } - } - else { - i = no1wkst; - } - for (var k = 0; k < 7; k++) { - result.wnomask[i] = 1; - i++; - if (result.wdaymask[i] === options.wkst) - break; - } - } - if (Object(helpers["c" /* includes */])(options.byweekno, 1)) { - // Check week number 1 of next year as well - // orig-TODO : Check -numweeks for next year. - var i = no1wkst + numweeks * 7; - if (no1wkst !== firstwkst) - i -= 7 - firstwkst; - if (i < yearlen) { - // If week starts in next year, we - // don't care about it. - for (var j = 0; j < 7; j++) { - result.wnomask[i] = 1; - i += 1; - if (result.wdaymask[i] === options.wkst) - break; - } - } - } - if (no1wkst) { - // Check last week number of last year as - // well. If no1wkst is 0, either the year - // started on week start, or week number 1 - // got days from last year, so there are no - // days from last year's last week number in - // this year. - var lnumweeks = void 0; - if (!Object(helpers["c" /* includes */])(options.byweekno, -1)) { - var lyearweekday = src_dateutil.getWeekday(new Date(Date.UTC(year - 1, 0, 1))); - var lno1wkst = Object(helpers["i" /* pymod */])(7 - lyearweekday.valueOf() + options.wkst, 7); - var lyearlen = src_dateutil.isLeapYear(year - 1) ? 366 : 365; - var weekst = void 0; - if (lno1wkst >= 4) { - lno1wkst = 0; - weekst = lyearlen + Object(helpers["i" /* pymod */])(lyearweekday - options.wkst, 7); - } - else { - weekst = yearlen - no1wkst; - } - lnumweeks = Math.floor(52 + Object(helpers["i" /* pymod */])(weekst, 7) / 4); - } - else { - lnumweeks = -1; - } - if (Object(helpers["c" /* includes */])(options.byweekno, lnumweeks)) { - for (var i = 0; i < no1wkst; i++) - result.wnomask[i] = 1; - } - } - return result; -} -function baseYearMasks(year) { - var yearlen = src_dateutil.isLeapYear(year) ? 366 : 365; - var firstyday = new Date(Date.UTC(year, 0, 1)); - var wday = src_dateutil.getWeekday(firstyday); - if (yearlen === 365) { - return { - mmask: M365MASK, - mdaymask: MDAY365MASK, - nmdaymask: NMDAY365MASK, - wdaymask: WDAYMASK.slice(wday), - mrange: M365RANGE - }; - } - return { - mmask: M366MASK, - mdaymask: MDAY366MASK, - nmdaymask: NMDAY366MASK, - wdaymask: WDAYMASK.slice(wday), - mrange: M366RANGE - }; -} - -// CONCATENATED MODULE: ./src/iterinfo/monthinfo.ts - - -function rebuildMonth(year, month, yearlen, mrange, wdaymask, options) { - var result = { - lastyear: year, - lastmonth: month, - nwdaymask: [] - }; - var ranges = []; - if (options.freq === src_rrule.YEARLY) { - if (Object(helpers["b" /* empty */])(options.bymonth)) { - ranges = [[0, yearlen]]; - } - else { - for (var j = 0; j < options.bymonth.length; j++) { - month = options.bymonth[j]; - ranges.push(mrange.slice(month - 1, month + 1)); - } - } - } - else if (options.freq === src_rrule.MONTHLY) { - ranges = [mrange.slice(month - 1, month + 1)]; - } - if (Object(helpers["b" /* empty */])(ranges)) { - return result; - } - // Weekly frequency won't get here, so we may not - // care about cross-year weekly periods. - result.nwdaymask = Object(helpers["k" /* repeat */])(0, yearlen); - for (var j = 0; j < ranges.length; j++) { - var rang = ranges[j]; - var first = rang[0]; - var last = rang[1] - 1; - for (var k = 0; k < options.bynweekday.length; k++) { - var i = void 0; - var _a = options.bynweekday[k], wday = _a[0], n = _a[1]; - if (n < 0) { - i = last + (n + 1) * 7; - i -= Object(helpers["i" /* pymod */])(wdaymask[i] - wday, 7); - } - else { - i = first + (n - 1) * 7; - i += Object(helpers["i" /* pymod */])(7 - wdaymask[i] + wday, 7); - } - if (first <= i && i <= last) - result.nwdaymask[i] = 1; - } - } - return result; -} - -// CONCATENATED MODULE: ./src/iterinfo/easter.ts -function easter(y, offset) { - if (offset === void 0) { offset = 0; } - var a = y % 19; - var b = Math.floor(y / 100); - var c = y % 100; - var d = Math.floor(b / 4); - var e = b % 4; - var f = Math.floor((b + 8) / 25); - var g = Math.floor((b - f + 1) / 3); - var h = Math.floor(19 * a + b - d - g + 15) % 30; - var i = Math.floor(c / 4); - var k = c % 4; - var l = Math.floor(32 + 2 * e + 2 * i - h - k) % 7; - var m = Math.floor((a + 11 * h + 22 * l) / 451); - var month = Math.floor((h + l - 7 * m + 114) / 31); - var day = ((h + l - 7 * m + 114) % 31) + 1; - var date = Date.UTC(y, month - 1, day + offset); - var yearStart = Date.UTC(y, 0, 1); - return [Math.ceil((date - yearStart) / (1000 * 60 * 60 * 24))]; -} - -// CONCATENATED MODULE: ./src/iterinfo/index.ts - - - - - - - -// ============================================================================= -// Iterinfo -// ============================================================================= -var iterinfo_Iterinfo = /** @class */ (function () { - function Iterinfo(options) { - this.options = options; - } - Iterinfo.prototype.rebuild = function (year, month) { - var options = this.options; - if (year !== this.lastyear) { - this.yearinfo = rebuildYear(year, options); - } - if (Object(helpers["g" /* notEmpty */])(options.bynweekday) && - (month !== this.lastmonth || year !== this.lastyear)) { - var _a = this.yearinfo, yearlen = _a.yearlen, mrange = _a.mrange, wdaymask = _a.wdaymask; - this.monthinfo = rebuildMonth(year, month, yearlen, mrange, wdaymask, options); - } - if (Object(helpers["f" /* isPresent */])(options.byeaster)) { - this.eastermask = easter(year, options.byeaster); - } - }; - Object.defineProperty(Iterinfo.prototype, "lastyear", { - get: function () { - return this.monthinfo ? this.monthinfo.lastyear : null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "lastmonth", { - get: function () { - return this.monthinfo ? this.monthinfo.lastmonth : null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "yearlen", { - get: function () { - return this.yearinfo.yearlen; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "yearordinal", { - get: function () { - return this.yearinfo.yearordinal; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "mrange", { - get: function () { - return this.yearinfo.mrange; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "wdaymask", { - get: function () { - return this.yearinfo.wdaymask; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "mmask", { - get: function () { - return this.yearinfo.mmask; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "wnomask", { - get: function () { - return this.yearinfo.wnomask; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "nwdaymask", { - get: function () { - return this.monthinfo ? this.monthinfo.nwdaymask : []; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "nextyearlen", { - get: function () { - return this.yearinfo.nextyearlen; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "mdaymask", { - get: function () { - return this.yearinfo.mdaymask; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "nmdaymask", { - get: function () { - return this.yearinfo.nmdaymask; - }, - enumerable: true, - configurable: true - }); - Iterinfo.prototype.ydayset = function () { - return [Object(helpers["j" /* range */])(this.yearlen), 0, this.yearlen]; - }; - Iterinfo.prototype.mdayset = function (_, month, __) { - var start = this.mrange[month - 1]; - var end = this.mrange[month]; - var set = Object(helpers["k" /* repeat */])(null, this.yearlen); - for (var i = start; i < end; i++) - set[i] = i; - return [set, start, end]; - }; - Iterinfo.prototype.wdayset = function (year, month, day) { - // We need to handle cross-year weeks here. - var set = Object(helpers["k" /* repeat */])(null, this.yearlen + 7); - var i = src_dateutil.toOrdinal(new Date(Date.UTC(year, month - 1, day))) - - this.yearordinal; - var start = i; - for (var j = 0; j < 7; j++) { - set[i] = i; - ++i; - if (this.wdaymask[i] === this.options.wkst) - break; - } - return [set, start, i]; - }; - Iterinfo.prototype.ddayset = function (year, month, day) { - var set = Object(helpers["k" /* repeat */])(null, this.yearlen); - var i = src_dateutil.toOrdinal(new Date(Date.UTC(year, month - 1, day))) - - this.yearordinal; - set[i] = i; - return [set, i, i + 1]; - }; - Iterinfo.prototype.htimeset = function (hour, _, second, millisecond) { - var _this = this; - var set = []; - this.options.byminute.forEach(function (minute) { - set = set.concat(_this.mtimeset(hour, minute, second, millisecond)); - }); - src_dateutil.sort(set); - return set; - }; - Iterinfo.prototype.mtimeset = function (hour, minute, _, millisecond) { - var set = this.options.bysecond.map(function (second) { - return new Time(hour, minute, second, millisecond); - }); - src_dateutil.sort(set); - return set; - }; - Iterinfo.prototype.stimeset = function (hour, minute, second, millisecond) { - return [new Time(hour, minute, second, millisecond)]; - }; - Iterinfo.prototype.getdayset = function (freq) { - switch (freq) { - case Frequency.YEARLY: return this.ydayset.bind(this); - case Frequency.MONTHLY: return this.mdayset.bind(this); - case Frequency.WEEKLY: return this.wdayset.bind(this); - case Frequency.DAILY: return this.ddayset.bind(this); - default: return this.ddayset.bind(this); - } - }; - Iterinfo.prototype.gettimeset = function (freq) { - switch (freq) { - case Frequency.HOURLY: return this.htimeset.bind(this); - case Frequency.MINUTELY: return this.mtimeset.bind(this); - case Frequency.SECONDLY: return this.stimeset.bind(this); - } - }; - return Iterinfo; -}()); -/* harmony default export */ var iterinfo = (iterinfo_Iterinfo); - -// CONCATENATED MODULE: ./src/iter/poslist.ts - - -function buildPoslist(bysetpos, timeset, start, end, ii, dayset) { - var poslist = []; - for (var j = 0; j < bysetpos.length; j++) { - var daypos = void 0; - var timepos = void 0; - var pos = bysetpos[j]; - if (pos < 0) { - daypos = Math.floor(pos / timeset.length); - timepos = Object(helpers["i" /* pymod */])(pos, timeset.length); - } - else { - daypos = Math.floor((pos - 1) / timeset.length); - timepos = Object(helpers["i" /* pymod */])(pos - 1, timeset.length); - } - var tmp = []; - for (var k = start; k < end; k++) { - var val = dayset[k]; - if (!Object(helpers["f" /* isPresent */])(val)) - continue; - tmp.push(val); - } - var i = void 0; - if (daypos < 0) { - i = tmp.slice(daypos)[0]; - } - else { - i = tmp[daypos]; - } - var time = timeset[timepos]; - var date = src_dateutil.fromOrdinal(ii.yearordinal + i); - var res = src_dateutil.combine(date, time); - // XXX: can this ever be in the array? - // - compare the actual date instead? - if (!Object(helpers["c" /* includes */])(poslist, res)) - poslist.push(res); - } - src_dateutil.sort(poslist); - return poslist; -} - -// CONCATENATED MODULE: ./src/iter/index.ts - - - - - - - - - -function iter(iterResult, options) { - var dtstart = options.dtstart, freq = options.freq, interval = options.interval, until = options.until, bysetpos = options.bysetpos; - var count = options.count; - if (count === 0 || interval === 0) { - return emitResult(iterResult); - } - var counterDate = datetime_DateTime.fromDate(dtstart); - var ii = new iterinfo(options); - ii.rebuild(counterDate.year, counterDate.month); - var timeset = makeTimeset(ii, counterDate, options); - while (true) { - var _a = ii.getdayset(freq)(counterDate.year, counterDate.month, counterDate.day), dayset = _a[0], start = _a[1], end = _a[2]; - var filtered = removeFilteredDays(dayset, start, end, ii, options); - if (Object(helpers["g" /* notEmpty */])(bysetpos)) { - var poslist = buildPoslist(bysetpos, timeset, start, end, ii, dayset); - for (var j = 0; j < poslist.length; j++) { - var res = poslist[j]; - if (until && res > until) { - return emitResult(iterResult); - } - if (res >= dtstart) { - var rezonedDate = rezoneIfNeeded(res, options); - if (!iterResult.accept(rezonedDate)) { - return emitResult(iterResult); - } - if (count) { - --count; - if (!count) { - return emitResult(iterResult); - } - } - } - } - } - else { - for (var j = start; j < end; j++) { - var currentDay = dayset[j]; - if (!Object(helpers["f" /* isPresent */])(currentDay)) { - continue; - } - var date = src_dateutil.fromOrdinal(ii.yearordinal + currentDay); - for (var k = 0; k < timeset.length; k++) { - var time = timeset[k]; - var res = src_dateutil.combine(date, time); - if (until && res > until) { - return emitResult(iterResult); - } - if (res >= dtstart) { - var rezonedDate = rezoneIfNeeded(res, options); - if (!iterResult.accept(rezonedDate)) { - return emitResult(iterResult); - } - if (count) { - --count; - if (!count) { - return emitResult(iterResult); - } - } - } - } - } - } - if (options.interval === 0) { - return emitResult(iterResult); - } - // Handle frequency and interval - counterDate.add(options, filtered); - if (counterDate.year > src_dateutil.MAXYEAR) { - return emitResult(iterResult); - } - if (!freqIsDailyOrGreater(freq)) { - timeset = ii.gettimeset(freq)(counterDate.hour, counterDate.minute, counterDate.second, 0); - } - ii.rebuild(counterDate.year, counterDate.month); - } -} -function isFiltered(ii, currentDay, options) { - var bymonth = options.bymonth, byweekno = options.byweekno, byweekday = options.byweekday, byeaster = options.byeaster, bymonthday = options.bymonthday, bynmonthday = options.bynmonthday, byyearday = options.byyearday; - return ((Object(helpers["g" /* notEmpty */])(bymonth) && !Object(helpers["c" /* includes */])(bymonth, ii.mmask[currentDay])) || - (Object(helpers["g" /* notEmpty */])(byweekno) && !ii.wnomask[currentDay]) || - (Object(helpers["g" /* notEmpty */])(byweekday) && !Object(helpers["c" /* includes */])(byweekday, ii.wdaymask[currentDay])) || - (Object(helpers["g" /* notEmpty */])(ii.nwdaymask) && !ii.nwdaymask[currentDay]) || - (byeaster !== null && !Object(helpers["c" /* includes */])(ii.eastermask, currentDay)) || - ((Object(helpers["g" /* notEmpty */])(bymonthday) || Object(helpers["g" /* notEmpty */])(bynmonthday)) && - !Object(helpers["c" /* includes */])(bymonthday, ii.mdaymask[currentDay]) && - !Object(helpers["c" /* includes */])(bynmonthday, ii.nmdaymask[currentDay])) || - (Object(helpers["g" /* notEmpty */])(byyearday) && - ((currentDay < ii.yearlen && - !Object(helpers["c" /* includes */])(byyearday, currentDay + 1) && - !Object(helpers["c" /* includes */])(byyearday, -ii.yearlen + currentDay)) || - (currentDay >= ii.yearlen && - !Object(helpers["c" /* includes */])(byyearday, currentDay + 1 - ii.yearlen) && - !Object(helpers["c" /* includes */])(byyearday, -ii.nextyearlen + currentDay - ii.yearlen))))); -} -function rezoneIfNeeded(date, options) { - return new datewithzone_DateWithZone(date, options.tzid).rezonedDate(); -} -function emitResult(iterResult) { - return iterResult.getValue(); -} -function removeFilteredDays(dayset, start, end, ii, options) { - var filtered = false; - for (var dayCounter = start; dayCounter < end; dayCounter++) { - var currentDay = dayset[dayCounter]; - filtered = isFiltered(ii, currentDay, options); - if (filtered) - dayset[currentDay] = null; - } - return filtered; -} -function makeTimeset(ii, counterDate, options) { - var freq = options.freq, byhour = options.byhour, byminute = options.byminute, bysecond = options.bysecond; - if (freqIsDailyOrGreater(freq)) { - return buildTimeset(options); - } - if ((freq >= src_rrule.HOURLY && - Object(helpers["g" /* notEmpty */])(byhour) && - !Object(helpers["c" /* includes */])(byhour, counterDate.hour)) || - (freq >= src_rrule.MINUTELY && - Object(helpers["g" /* notEmpty */])(byminute) && - !Object(helpers["c" /* includes */])(byminute, counterDate.minute)) || - (freq >= src_rrule.SECONDLY && - Object(helpers["g" /* notEmpty */])(bysecond) && - !Object(helpers["c" /* includes */])(bysecond, counterDate.second))) { - return []; - } - return ii.gettimeset(freq)(counterDate.hour, counterDate.minute, counterDate.second, counterDate.millisecond); -} - -// CONCATENATED MODULE: ./src/rrule.ts - - - - - - - - - - -var getnlp = function () { - // Lazy, runtime import to avoid circular refs. - if (!getnlp._nlp) { - getnlp._nlp = __webpack_require__(3); - } - return getnlp._nlp; -}; -// ============================================================================= -// RRule -// ============================================================================= -var Days = { - MO: new Weekday(0), - TU: new Weekday(1), - WE: new Weekday(2), - TH: new Weekday(3), - FR: new Weekday(4), - SA: new Weekday(5), - SU: new Weekday(6) -}; -var DEFAULT_OPTIONS = { - freq: Frequency.YEARLY, - dtstart: null, - interval: 1, - wkst: Days.MO, - count: null, - until: null, - tzid: null, - bysetpos: null, - bymonth: null, - bymonthday: null, - bynmonthday: null, - byyearday: null, - byweekno: null, - byweekday: null, - bynweekday: null, - byhour: null, - byminute: null, - bysecond: null, - byeaster: null -}; -var rrule_defaultKeys = Object.keys(DEFAULT_OPTIONS); -/** - * - * @param {Options?} options - see - * The only required option is `freq`, one of RRule.YEARLY, RRule.MONTHLY, ... - * @constructor - */ -var rrule_RRule = /** @class */ (function () { - function RRule(options, noCache) { - if (options === void 0) { options = {}; } - if (noCache === void 0) { noCache = false; } - // RFC string - this._cache = noCache ? null : new cache_Cache(); - // used by toString() - this.origOptions = initializeOptions(options); - var parsedOptions = parseOptions(options).parsedOptions; - this.options = parsedOptions; - } - RRule.parseText = function (text, language) { - return getnlp().parseText(text, language); - }; - RRule.fromText = function (text, language) { - return getnlp().fromText(text, language); - }; - RRule.fromString = function (str) { - return new RRule(RRule.parseString(str) || undefined); - }; - RRule.prototype._iter = function (iterResult) { - return iter(iterResult, this.options); - }; - RRule.prototype._cacheGet = function (what, args) { - if (!this._cache) - return false; - return this._cache._cacheGet(what, args); - }; - RRule.prototype._cacheAdd = function (what, value, args) { - if (!this._cache) - return; - return this._cache._cacheAdd(what, value, args); - }; - /** - * @param {Function} iterator - optional function that will be called - * on each date that is added. It can return false - * to stop the iteration. - * @return Array containing all recurrences. - */ - RRule.prototype.all = function (iterator) { - if (iterator) { - return this._iter(new callbackiterresult('all', {}, iterator)); - } - var result = this._cacheGet('all'); - if (result === false) { - result = this._iter(new iterresult('all', {})); - this._cacheAdd('all', result); - } - return result; - }; - /** - * Returns all the occurrences of the rrule between after and before. - * The inc keyword defines what happens if after and/or before are - * themselves occurrences. With inc == True, they will be included in the - * list, if they are found in the recurrence set. - * @return Array - */ - RRule.prototype.between = function (after, before, inc, iterator) { - if (inc === void 0) { inc = false; } - if (!src_dateutil.isValidDate(after) || !src_dateutil.isValidDate(before)) - throw new Error('Invalid date passed in to RRule.between'); - var args = { - before: before, - after: after, - inc: inc - }; - if (iterator) { - return this._iter(new callbackiterresult('between', args, iterator)); - } - var result = this._cacheGet('between', args); - if (result === false) { - result = this._iter(new iterresult('between', args)); - this._cacheAdd('between', result, args); - } - return result; - }; - /** - * Returns the last recurrence before the given datetime instance. - * The inc keyword defines what happens if dt is an occurrence. - * With inc == True, if dt itself is an occurrence, it will be returned. - * @return Date or null - */ - RRule.prototype.before = function (dt, inc) { - if (inc === void 0) { inc = false; } - if (!src_dateutil.isValidDate(dt)) - throw new Error('Invalid date passed in to RRule.before'); - var args = { dt: dt, inc: inc }; - var result = this._cacheGet('before', args); - if (result === false) { - result = this._iter(new iterresult('before', args)); - this._cacheAdd('before', result, args); - } - return result; - }; - /** - * Returns the first recurrence after the given datetime instance. - * The inc keyword defines what happens if dt is an occurrence. - * With inc == True, if dt itself is an occurrence, it will be returned. - * @return Date or null - */ - RRule.prototype.after = function (dt, inc) { - if (inc === void 0) { inc = false; } - if (!src_dateutil.isValidDate(dt)) - throw new Error('Invalid date passed in to RRule.after'); - var args = { dt: dt, inc: inc }; - var result = this._cacheGet('after', args); - if (result === false) { - result = this._iter(new iterresult('after', args)); - this._cacheAdd('after', result, args); - } - return result; - }; - /** - * Returns the number of recurrences in this set. It will have go trough - * the whole recurrence, if this hasn't been done before. - */ - RRule.prototype.count = function () { - return this.all().length; - }; - /** - * Converts the rrule into its string representation - * @see - * @return String - */ - RRule.prototype.toString = function () { - return optionsToString(this.origOptions); - }; - /** - * Will convert all rules described in nlp:ToText - * to text. - */ - RRule.prototype.toText = function (gettext, language, dateFormatter) { - return getnlp().toText(this, gettext, language, dateFormatter); - }; - RRule.prototype.isFullyConvertibleToText = function () { - return getnlp().isFullyConvertible(this); - }; - /** - * @return a RRule instance with the same freq and options - * as this one (cache is not cloned) - */ - RRule.prototype.clone = function () { - return new RRule(this.origOptions); - }; - // RRule class 'constants' - RRule.FREQUENCIES = [ - 'YEARLY', - 'MONTHLY', - 'WEEKLY', - 'DAILY', - 'HOURLY', - 'MINUTELY', - 'SECONDLY' - ]; - RRule.YEARLY = Frequency.YEARLY; - RRule.MONTHLY = Frequency.MONTHLY; - RRule.WEEKLY = Frequency.WEEKLY; - RRule.DAILY = Frequency.DAILY; - RRule.HOURLY = Frequency.HOURLY; - RRule.MINUTELY = Frequency.MINUTELY; - RRule.SECONDLY = Frequency.SECONDLY; - RRule.MO = Days.MO; - RRule.TU = Days.TU; - RRule.WE = Days.WE; - RRule.TH = Days.TH; - RRule.FR = Days.FR; - RRule.SA = Days.SA; - RRule.SU = Days.SU; - RRule.parseString = parseString; - RRule.optionsToString = optionsToString; - return RRule; -}()); -/* harmony default export */ var src_rrule = (rrule_RRule); - -// CONCATENATED MODULE: ./src/iterset.ts - - - -function iterSet(iterResult, _rrule, _exrule, _rdate, _exdate, tzid) { - var _exdateHash = {}; - var _accept = iterResult.accept; - function evalExdate(after, before) { - _exrule.forEach(function (rrule) { - rrule.between(after, before, true).forEach(function (date) { - _exdateHash[Number(date)] = true; - }); - }); - } - _exdate.forEach(function (date) { - var zonedDate = new datewithzone_DateWithZone(date, tzid).rezonedDate(); - _exdateHash[Number(zonedDate)] = true; - }); - iterResult.accept = function (date) { - var dt = Number(date); - if (!_exdateHash[dt]) { - evalExdate(new Date(dt - 1), new Date(dt + 1)); - if (!_exdateHash[dt]) { - _exdateHash[dt] = true; - return _accept.call(this, date); - } - } - return true; - }; - if (iterResult.method === 'between') { - evalExdate(iterResult.args.after, iterResult.args.before); - iterResult.accept = function (date) { - var dt = Number(date); - if (!_exdateHash[dt]) { - _exdateHash[dt] = true; - return _accept.call(this, date); - } - return true; - }; - } - for (var i = 0; i < _rdate.length; i++) { - var zonedDate = new datewithzone_DateWithZone(_rdate[i], tzid).rezonedDate(); - if (!iterResult.accept(new Date(zonedDate.getTime()))) - break; - } - _rrule.forEach(function (rrule) { - iter(iterResult, rrule.options); - }); - var res = iterResult._result; - src_dateutil.sort(res); - switch (iterResult.method) { - case 'all': - case 'between': - return res; - case 'before': - return ((res.length && res[res.length - 1]) || null); - case 'after': - default: - return ((res.length && res[0]) || null); - } -} - -// CONCATENATED MODULE: ./src/rrulestr.ts - - - - - - -/** - * RRuleStr - * To parse a set of rrule strings - */ -var rrulestr_DEFAULT_OPTIONS = { - dtstart: null, - cache: false, - unfold: false, - forceset: false, - compatible: false, - tzid: null -}; -function parseInput(s, options) { - var rrulevals = []; - var rdatevals = []; - var exrulevals = []; - var exdatevals = []; - var _a = parseDtstart(s), dtstart = _a.dtstart, tzid = _a.tzid; - var lines = splitIntoLines(s, options.unfold); - lines.forEach(function (line) { - if (!line) - return; - var _a = breakDownLine(line), name = _a.name, parms = _a.parms, value = _a.value; - switch (name.toUpperCase()) { - case 'RRULE': - if (parms.length) { - throw new Error("unsupported RRULE parm: " + parms.join(',')); - } - rrulevals.push(parseString(line)); - break; - case 'RDATE': - var _b = /RDATE(?:;TZID=([^:=]+))?/i.exec(line), _ = _b[0], rdateTzid = _b[1]; - if (rdateTzid && !tzid) { - tzid = rdateTzid; - } - rdatevals = rdatevals.concat(parseRDate(value, parms)); - break; - case 'EXRULE': - if (parms.length) { - throw new Error("unsupported EXRULE parm: " + parms.join(',')); - } - exrulevals.push(parseString(value)); - break; - case 'EXDATE': - exdatevals = exdatevals.concat(parseRDate(value, parms)); - break; - case 'DTSTART': - break; - default: - throw new Error('unsupported property: ' + name); - } - }); - return { - dtstart: dtstart, - tzid: tzid, - rrulevals: rrulevals, - rdatevals: rdatevals, - exrulevals: exrulevals, - exdatevals: exdatevals - }; -} -function buildRule(s, options) { - var _a = parseInput(s, options), rrulevals = _a.rrulevals, rdatevals = _a.rdatevals, exrulevals = _a.exrulevals, exdatevals = _a.exdatevals, dtstart = _a.dtstart, tzid = _a.tzid; - var noCache = options.cache === false; - if (options.compatible) { - options.forceset = true; - options.unfold = true; - } - if (options.forceset || - rrulevals.length > 1 || - rdatevals.length || - exrulevals.length || - exdatevals.length) { - var rset_1 = new rruleset(noCache); - rset_1.dtstart(dtstart); - rset_1.tzid(tzid || undefined); - rrulevals.forEach(function (val) { - rset_1.rrule(new src_rrule(groomRruleOptions(val, dtstart, tzid), noCache)); - }); - rdatevals.forEach(function (date) { - rset_1.rdate(date); - }); - exrulevals.forEach(function (val) { - rset_1.exrule(new src_rrule(groomRruleOptions(val, dtstart, tzid), noCache)); - }); - exdatevals.forEach(function (date) { - rset_1.exdate(date); - }); - if (options.compatible && options.dtstart) - rset_1.rdate(dtstart); - return rset_1; - } - var val = rrulevals[0] || {}; - return new src_rrule(groomRruleOptions(val, val.dtstart || options.dtstart || dtstart, val.tzid || options.tzid || tzid), noCache); -} -function rrulestr(s, options) { - if (options === void 0) { options = {}; } - return buildRule(s, rrulestr_initializeOptions(options)); -} -function groomRruleOptions(val, dtstart, tzid) { - return __assign({}, val, { dtstart: dtstart, - tzid: tzid }); -} -function rrulestr_initializeOptions(options) { - var invalid = []; - var keys = Object.keys(options); - var defaultKeys = Object.keys(rrulestr_DEFAULT_OPTIONS); - keys.forEach(function (key) { - if (!Object(helpers["c" /* includes */])(defaultKeys, key)) - invalid.push(key); - }); - if (invalid.length) { - throw new Error('Invalid options: ' + invalid.join(', ')); - } - var initializedOptions = __assign({}, options); - // Merge in default options - defaultKeys.forEach(function (key) { - if (!Object(helpers["c" /* includes */])(keys, key)) - initializedOptions[key] = rrulestr_DEFAULT_OPTIONS[key]; - }); - return initializedOptions; -} -function extractName(line) { - if (line.indexOf(':') === -1) { - return { - name: 'RRULE', - value: line - }; - } - var _a = Object(helpers["l" /* split */])(line, ':', 1), name = _a[0], value = _a[1]; - return { - name: name, - value: value - }; -} -function breakDownLine(line) { - var _a = extractName(line), name = _a.name, value = _a.value; - var parms = name.split(';'); - if (!parms) - throw new Error('empty property name'); - return { - name: parms[0].toUpperCase(), - parms: parms.slice(1), - value: value - }; -} -function splitIntoLines(s, unfold) { - if (unfold === void 0) { unfold = false; } - s = s && s.trim(); - if (!s) - throw new Error('Invalid empty string'); - // More info about 'unfold' option - // Go head to http://www.ietf.org/rfc/rfc2445.txt - if (!unfold) { - return s.split(/\s/); - } - var lines = s.split('\n'); - var i = 0; - while (i < lines.length) { - // TODO - var line = (lines[i] = lines[i].replace(/\s+$/g, '')); - if (!line) { - lines.splice(i, 1); - } - else if (i > 0 && line[0] === ' ') { - lines[i - 1] += line.slice(1); - lines.splice(i, 1); - } - else { - i += 1; - } - } - return lines; -} -function validateDateParm(parms) { - parms.forEach(function (parm) { - if (!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(parm)) { - throw new Error('unsupported RDATE/EXDATE parm: ' + parm); - } - }); -} -function parseRDate(rdateval, parms) { - validateDateParm(parms); - return rdateval - .split(',') - .map(function (datestr) { return src_dateutil.untilStringToDate(datestr); }); -} - -// CONCATENATED MODULE: ./src/rruleset.ts - - - - - - - -function createGetterSetter(fieldName) { - var _this = this; - return function (field) { - if (field !== undefined) { - _this["_" + fieldName] = field; - } - if (_this["_" + fieldName] !== undefined) { - return _this["_" + fieldName]; - } - for (var i = 0; i < _this._rrule.length; i++) { - var field_1 = _this._rrule[i].origOptions[fieldName]; - if (field_1) { - return field_1; - } - } - }; -} -var rruleset_RRuleSet = /** @class */ (function (_super) { - __extends(RRuleSet, _super); - /** - * - * @param {Boolean?} noCache - * The same stratagy as RRule on cache, default to false - * @constructor - */ - function RRuleSet(noCache) { - if (noCache === void 0) { noCache = false; } - var _this = _super.call(this, {}, noCache) || this; - _this.dtstart = createGetterSetter.apply(_this, ['dtstart']); - _this.tzid = createGetterSetter.apply(_this, ['tzid']); - _this._rrule = []; - _this._rdate = []; - _this._exrule = []; - _this._exdate = []; - return _this; - } - RRuleSet.prototype._iter = function (iterResult) { - return iterSet(iterResult, this._rrule, this._exrule, this._rdate, this._exdate, this.tzid()); - }; - /** - * Adds an RRule to the set - * - * @param {RRule} - */ - RRuleSet.prototype.rrule = function (rrule) { - _addRule(rrule, this._rrule); - }; - /** - * Adds an EXRULE to the set - * - * @param {RRule} - */ - RRuleSet.prototype.exrule = function (rrule) { - _addRule(rrule, this._exrule); - }; - /** - * Adds an RDate to the set - * - * @param {Date} - */ - RRuleSet.prototype.rdate = function (date) { - _addDate(date, this._rdate); - }; - /** - * Adds an EXDATE to the set - * - * @param {Date} - */ - RRuleSet.prototype.exdate = function (date) { - _addDate(date, this._exdate); - }; - /** - * Get list of included rrules in this recurrence set. - * - * @return List of rrules - */ - RRuleSet.prototype.rrules = function () { - return this._rrule.map(function (e) { return rrulestr(e.toString()); }); - }; - /** - * Get list of excluded rrules in this recurrence set. - * - * @return List of exrules - */ - RRuleSet.prototype.exrules = function () { - return this._exrule.map(function (e) { return rrulestr(e.toString()); }); - }; - /** - * Get list of included datetimes in this recurrence set. - * - * @return List of rdates - */ - RRuleSet.prototype.rdates = function () { - return this._rdate.map(function (e) { return new Date(e.getTime()); }); - }; - /** - * Get list of included datetimes in this recurrence set. - * - * @return List of exdates - */ - RRuleSet.prototype.exdates = function () { - return this._exdate.map(function (e) { return new Date(e.getTime()); }); - }; - RRuleSet.prototype.valueOf = function () { - var result = []; - if (!this._rrule.length && this._dtstart) { - result = result.concat(optionsToString({ dtstart: this._dtstart })); - } - this._rrule.forEach(function (rrule) { - result = result.concat(rrule.toString().split('\n')); - }); - this._exrule.forEach(function (exrule) { - result = result.concat(exrule.toString().split('\n') - .map(function (line) { return line.replace(/^RRULE:/, 'EXRULE:'); }) - .filter(function (line) { return !/^DTSTART/.test(line); })); - }); - if (this._rdate.length) { - result.push(rdatesToString('RDATE', this._rdate, this.tzid())); - } - if (this._exdate.length) { - result.push(rdatesToString('EXDATE', this._exdate, this.tzid())); - } - return result; - }; - /** - * to generate recurrence field such as: - * DTSTART:19970902T010000Z - * RRULE:FREQ=YEARLY;COUNT=2;BYDAY=TU - * RRULE:FREQ=YEARLY;COUNT=1;BYDAY=TH - */ - RRuleSet.prototype.toString = function () { - return this.valueOf().join('\n'); - }; - /** - * Create a new RRuleSet Object completely base on current instance - */ - RRuleSet.prototype.clone = function () { - var rrs = new RRuleSet(!!this._cache); - this._rrule.forEach(function (rule) { return rrs.rrule(rule.clone()); }); - this._exrule.forEach(function (rule) { return rrs.exrule(rule.clone()); }); - this._rdate.forEach(function (date) { return rrs.rdate(new Date(date.getTime())); }); - this._exdate.forEach(function (date) { return rrs.exdate(new Date(date.getTime())); }); - return rrs; - }; - return RRuleSet; -}(src_rrule)); -/* harmony default export */ var rruleset = (rruleset_RRuleSet); -function _addRule(rrule, collection) { - if (!(rrule instanceof src_rrule)) { - throw new TypeError(String(rrule) + ' is not RRule instance'); - } - if (!Object(helpers["c" /* includes */])(collection.map(String), String(rrule))) { - collection.push(rrule); - } -} -function _addDate(date, collection) { - if (!(date instanceof Date)) { - throw new TypeError(String(date) + ' is not Date instance'); - } - if (!Object(helpers["c" /* includes */])(collection.map(Number), Number(date))) { - collection.push(date); - src_dateutil.sort(collection); - } -} -function rdatesToString(param, rdates, tzid) { - var isUTC = !tzid || tzid.toUpperCase() === 'UTC'; - var header = isUTC ? param + ":" : param + ";TZID=" + tzid + ":"; - var dateString = rdates - .map(function (rdate) { return src_dateutil.timeToUntilString(rdate.valueOf(), isUTC); }) - .join(','); - return "" + header + dateString; -} - -// CONCATENATED MODULE: ./src/index.ts -/* concated harmony reexport */__webpack_require__.d(__webpack_exports__, "Frequency", function() { return Frequency; }); -/* concated harmony reexport */__webpack_require__.d(__webpack_exports__, "Weekday", function() { return Weekday; }); -/* concated harmony reexport */__webpack_require__.d(__webpack_exports__, "RRule", function() { return src_rrule; }); -/* concated harmony reexport */__webpack_require__.d(__webpack_exports__, "RRuleSet", function() { return rruleset; }); -/* concated harmony reexport */__webpack_require__.d(__webpack_exports__, "rrulestr", function() { return rrulestr; }); -/*! - * rrule.js - Library for working with recurrence rules for calendar dates. - * https://github.com/jakubroztocil/rrule - * - * Copyright 2010, Jakub Roztocil and Lars Schoning - * Licenced under the BSD licence. - * https://github.com/jakubroztocil/rrule/blob/master/LICENCE - * - * Based on: - * python-dateutil - Extensions to the standard Python datetime module. - * Copyright (c) 2003-2011 - Gustavo Niemeyer - * Copyright (c) 2012 - Tomi Pieviläinen - * https://github.com/jakubroztocil/rrule/blob/master/LICENCE - * - */ - - - - - -// ============================================================================= -// Export -// ============================================================================= - -/* harmony default export */ var src = __webpack_exports__["default"] = (src_rrule); - - -/***/ }), -/* 2 */ -/***/ (function(module, exports) { - -module.exports = __WEBPACK_EXTERNAL_MODULE__2__; - -/***/ }), -/* 3 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); - -// CONCATENATED MODULE: ./src/nlp/i18n.ts -// ============================================================================= -// i18n -// ============================================================================= -var ENGLISH = { - dayNames: [ - 'Sunday', 'Monday', 'Tuesday', 'Wednesday', - 'Thursday', 'Friday', 'Saturday' - ], - monthNames: [ - 'January', 'February', 'March', 'April', 'May', - 'June', 'July', 'August', 'September', 'October', - 'November', 'December' - ], - tokens: { - 'SKIP': /^[ \r\n\t]+|^\.$/, - 'number': /^[1-9][0-9]*/, - 'numberAsText': /^(one|two|three)/i, - 'every': /^every/i, - 'day(s)': /^days?/i, - 'weekday(s)': /^weekdays?/i, - 'week(s)': /^weeks?/i, - 'hour(s)': /^hours?/i, - 'minute(s)': /^minutes?/i, - 'month(s)': /^months?/i, - 'year(s)': /^years?/i, - 'on': /^(on|in)/i, - 'at': /^(at)/i, - 'the': /^the/i, - 'first': /^first/i, - 'second': /^second/i, - 'third': /^third/i, - 'nth': /^([1-9][0-9]*)(\.|th|nd|rd|st)/i, - 'last': /^last/i, - 'for': /^for/i, - 'time(s)': /^times?/i, - 'until': /^(un)?til/i, - 'monday': /^mo(n(day)?)?/i, - 'tuesday': /^tu(e(s(day)?)?)?/i, - 'wednesday': /^we(d(n(esday)?)?)?/i, - 'thursday': /^th(u(r(sday)?)?)?/i, - 'friday': /^fr(i(day)?)?/i, - 'saturday': /^sa(t(urday)?)?/i, - 'sunday': /^su(n(day)?)?/i, - 'january': /^jan(uary)?/i, - 'february': /^feb(ruary)?/i, - 'march': /^mar(ch)?/i, - 'april': /^apr(il)?/i, - 'may': /^may/i, - 'june': /^june?/i, - 'july': /^july?/i, - 'august': /^aug(ust)?/i, - 'september': /^sep(t(ember)?)?/i, - 'october': /^oct(ober)?/i, - 'november': /^nov(ember)?/i, - 'december': /^dec(ember)?/i, - 'comma': /^(,\s*|(and|or)\s*)+/i - } -}; -/* harmony default export */ var i18n = (ENGLISH); - -// EXTERNAL MODULE: ./src/index.ts + 23 modules -var src = __webpack_require__(1); - -// EXTERNAL MODULE: ./src/helpers.ts -var helpers = __webpack_require__(0); - -// CONCATENATED MODULE: ./src/nlp/totext.ts - - - -// ============================================================================= -// Helper functions -// ============================================================================= -/** - * Return true if a value is in an array - */ -var contains = function (arr, val) { - return arr.indexOf(val) !== -1; -}; -var defaultGetText = function (id) { return id.toString(); }; -var defaultDateFormatter = function (year, month, day) { return month + " " + day + ", " + year; }; -/** - * - * @param {RRule} rrule - * Optional: - * @param {Function} gettext function - * @param {Object} language definition - * @constructor - */ -var totext_ToText = /** @class */ (function () { - function ToText(rrule, gettext, language, dateFormatter) { - if (gettext === void 0) { gettext = defaultGetText; } - if (language === void 0) { language = i18n; } - if (dateFormatter === void 0) { dateFormatter = defaultDateFormatter; } - this.text = []; - this.language = language || i18n; - this.gettext = gettext; - this.dateFormatter = dateFormatter; - this.rrule = rrule; - this.options = rrule.options; - this.origOptions = rrule.origOptions; - if (this.origOptions.bymonthday) { - var bymonthday = [].concat(this.options.bymonthday); - var bynmonthday = [].concat(this.options.bynmonthday); - bymonthday.sort(function (a, b) { return a - b; }); - bynmonthday.sort(function (a, b) { return b - a; }); - // 1, 2, 3, .., -5, -4, -3, .. - this.bymonthday = bymonthday.concat(bynmonthday); - if (!this.bymonthday.length) - this.bymonthday = null; - } - if (Object(helpers["f" /* isPresent */])(this.origOptions.byweekday)) { - var byweekday = !Object(helpers["d" /* isArray */])(this.origOptions.byweekday) - ? [this.origOptions.byweekday] - : this.origOptions.byweekday; - var days = String(byweekday); - this.byweekday = { - allWeeks: byweekday.filter(function (weekday) { - return !weekday.n; - }), - someWeeks: byweekday.filter(function (weekday) { - return Boolean(weekday.n); - }), - isWeekdays: days.indexOf('MO') !== -1 && - days.indexOf('TU') !== -1 && - days.indexOf('WE') !== -1 && - days.indexOf('TH') !== -1 && - days.indexOf('FR') !== -1 && - days.indexOf('SA') === -1 && - days.indexOf('SU') === -1, - isEveryDay: days.indexOf('MO') !== -1 && - days.indexOf('TU') !== -1 && - days.indexOf('WE') !== -1 && - days.indexOf('TH') !== -1 && - days.indexOf('FR') !== -1 && - days.indexOf('SA') !== -1 && - days.indexOf('SU') !== -1 - }; - var sortWeekDays = function (a, b) { - return a.weekday - b.weekday; - }; - this.byweekday.allWeeks.sort(sortWeekDays); - this.byweekday.someWeeks.sort(sortWeekDays); - if (!this.byweekday.allWeeks.length) - this.byweekday.allWeeks = null; - if (!this.byweekday.someWeeks.length) - this.byweekday.someWeeks = null; - } - else { - this.byweekday = null; - } - } - /** - * Test whether the rrule can be fully converted to text. - * @param {RRule} rrule - * @return {Boolean} - */ - ToText.isFullyConvertible = function (rrule) { - var canConvert = true; - if (!(rrule.options.freq in ToText.IMPLEMENTED)) - return false; - if (rrule.origOptions.until && rrule.origOptions.count) - return false; - for (var key in rrule.origOptions) { - if (contains(['dtstart', 'wkst', 'freq'], key)) - return true; - if (!contains(ToText.IMPLEMENTED[rrule.options.freq], key)) - return false; - } - return canConvert; - }; - ToText.prototype.isFullyConvertible = function () { - return ToText.isFullyConvertible(this.rrule); - }; - /** - * Perform the conversion. Only some of the frequencies are supported. - * If some of the rrule's options aren't supported, they'll - * be omitted from the output an "(~ approximate)" will be appended. - * @return {*} - */ - ToText.prototype.toString = function () { - var gettext = this.gettext; - if (!(this.options.freq in ToText.IMPLEMENTED)) { - return gettext('RRule error: Unable to fully convert this rrule to text'); - } - this.text = [gettext('every')]; - // @ts-ignore - this[src["default"].FREQUENCIES[this.options.freq]](); - if (this.options.until) { - this.add(gettext('until')); - var until = this.options.until; - this.add(this.dateFormatter(until.getUTCFullYear(), this.language.monthNames[until.getUTCMonth()], until.getUTCDate())); - } - else if (this.options.count) { - this.add(gettext('for')) - .add(this.options.count.toString()) - .add(this.plural(this.options.count) ? gettext('times') : gettext('time')); - } - if (!this.isFullyConvertible()) - this.add(gettext('(~ approximate)')); - return this.text.join(''); - }; - ToText.prototype.HOURLY = function () { - var gettext = this.gettext; - if (this.options.interval !== 1) - this.add(this.options.interval.toString()); - this.add(this.plural(this.options.interval) ? gettext('hours') : gettext('hour')); - }; - ToText.prototype.MINUTELY = function () { - var gettext = this.gettext; - if (this.options.interval !== 1) - this.add(this.options.interval.toString()); - this.add(this.plural(this.options.interval) - ? gettext('minutes') - : gettext('minutes')); - }; - ToText.prototype.DAILY = function () { - var gettext = this.gettext; - if (this.options.interval !== 1) - this.add(this.options.interval.toString()); - if (this.byweekday && this.byweekday.isWeekdays) { - this.add(this.plural(this.options.interval) - ? gettext('weekdays') - : gettext('weekday')); - } - else { - this.add(this.plural(this.options.interval) ? gettext('days') : gettext('day')); - } - if (this.origOptions.bymonth) { - this.add(gettext('in')); - this._bymonth(); - } - if (this.bymonthday) { - this._bymonthday(); - } - else if (this.byweekday) { - this._byweekday(); - } - else if (this.origOptions.byhour) { - this._byhour(); - } - }; - ToText.prototype.WEEKLY = function () { - var gettext = this.gettext; - if (this.options.interval !== 1) { - this.add(this.options.interval.toString()).add(this.plural(this.options.interval) ? gettext('weeks') : gettext('week')); - } - if (this.byweekday && this.byweekday.isWeekdays) { - if (this.options.interval === 1) { - this.add(this.plural(this.options.interval) - ? gettext('weekdays') - : gettext('weekday')); - } - else { - this.add(gettext('on')).add(gettext('weekdays')); - } - } - else if (this.byweekday && this.byweekday.isEveryDay) { - this.add(this.plural(this.options.interval) ? gettext('days') : gettext('day')); - } - else { - if (this.options.interval === 1) - this.add(gettext('week')); - if (this.origOptions.bymonth) { - this.add(gettext('in')); - this._bymonth(); - } - if (this.bymonthday) { - this._bymonthday(); - } - else if (this.byweekday) { - this._byweekday(); - } - } - }; - ToText.prototype.MONTHLY = function () { - var gettext = this.gettext; - if (this.origOptions.bymonth) { - if (this.options.interval !== 1) { - this.add(this.options.interval.toString()).add(gettext('months')); - if (this.plural(this.options.interval)) - this.add(gettext('in')); - } - else { - // this.add(gettext('MONTH')) - } - this._bymonth(); - } - else { - if (this.options.interval !== 1) - this.add(this.options.interval.toString()); - this.add(this.plural(this.options.interval) - ? gettext('months') - : gettext('month')); - } - if (this.bymonthday) { - this._bymonthday(); - } - else if (this.byweekday && this.byweekday.isWeekdays) { - this.add(gettext('on')).add(gettext('weekdays')); - } - else if (this.byweekday) { - this._byweekday(); - } - }; - ToText.prototype.YEARLY = function () { - var gettext = this.gettext; - if (this.origOptions.bymonth) { - if (this.options.interval !== 1) { - this.add(this.options.interval.toString()); - this.add(gettext('years')); - } - else { - // this.add(gettext('YEAR')) - } - this._bymonth(); - } - else { - if (this.options.interval !== 1) - this.add(this.options.interval.toString()); - this.add(this.plural(this.options.interval) ? gettext('years') : gettext('year')); - } - if (this.bymonthday) { - this._bymonthday(); - } - else if (this.byweekday) { - this._byweekday(); - } - if (this.options.byyearday) { - this.add(gettext('on the')) - .add(this.list(this.options.byyearday, this.nth, gettext('and'))) - .add(gettext('day')); - } - if (this.options.byweekno) { - this.add(gettext('in')) - .add(this.plural(this.options.byweekno.length) - ? gettext('weeks') - : gettext('week')) - .add(this.list(this.options.byweekno, undefined, gettext('and'))); - } - }; - ToText.prototype._bymonthday = function () { - var gettext = this.gettext; - if (this.byweekday && this.byweekday.allWeeks) { - this.add(gettext('on')) - .add(this.list(this.byweekday.allWeeks, this.weekdaytext, gettext('or'))) - .add(gettext('the')) - .add(this.list(this.bymonthday, this.nth, gettext('or'))); - } - else { - this.add(gettext('on the')).add(this.list(this.bymonthday, this.nth, gettext('and'))); - } - // this.add(gettext('DAY')) - }; - ToText.prototype._byweekday = function () { - var gettext = this.gettext; - if (this.byweekday.allWeeks && !this.byweekday.isWeekdays) { - this.add(gettext('on')).add(this.list(this.byweekday.allWeeks, this.weekdaytext)); - } - if (this.byweekday.someWeeks) { - if (this.byweekday.allWeeks) - this.add(gettext('and')); - this.add(gettext('on the')).add(this.list(this.byweekday.someWeeks, this.weekdaytext, gettext('and'))); - } - }; - ToText.prototype._byhour = function () { - var gettext = this.gettext; - this.add(gettext('at')).add(this.list(this.origOptions.byhour, undefined, gettext('and'))); - }; - ToText.prototype._bymonth = function () { - this.add(this.list(this.options.bymonth, this.monthtext, this.gettext('and'))); - }; - ToText.prototype.nth = function (n) { - n = parseInt(n.toString(), 10); - var nth; - var npos; - var gettext = this.gettext; - if (n === -1) - return gettext('last'); - npos = Math.abs(n); - switch (npos) { - case 1: - case 21: - case 31: - nth = npos + gettext('st'); - break; - case 2: - case 22: - nth = npos + gettext('nd'); - break; - case 3: - case 23: - nth = npos + gettext('rd'); - break; - default: - nth = npos + gettext('th'); - } - return n < 0 ? nth + ' ' + gettext('last') : nth; - }; - ToText.prototype.monthtext = function (m) { - return this.language.monthNames[m - 1]; - }; - ToText.prototype.weekdaytext = function (wday) { - var weekday = Object(helpers["e" /* isNumber */])(wday) ? (wday + 1) % 7 : wday.getJsWeekday(); - return ((wday.n ? this.nth(wday.n) + ' ' : '') + this.language.dayNames[weekday]); - }; - ToText.prototype.plural = function (n) { - return n % 100 !== 1; - }; - ToText.prototype.add = function (s) { - this.text.push(' '); - this.text.push(s); - return this; - }; - ToText.prototype.list = function (arr, callback, finalDelim, delim) { - if (delim === void 0) { delim = ','; } - if (!Object(helpers["d" /* isArray */])(arr)) { - arr = [arr]; - } - var delimJoin = function (array, delimiter, finalDelimiter) { - var list = ''; - for (var i = 0; i < array.length; i++) { - if (i !== 0) { - if (i === array.length - 1) { - list += ' ' + finalDelimiter + ' '; - } - else { - list += delimiter + ' '; - } - } - list += array[i]; - } - return list; - }; - callback = - callback || - function (o) { - return o.toString(); - }; - var self = this; - var realCallback = function (arg) { - return callback && callback.call(self, arg); - }; - if (finalDelim) { - return delimJoin(arr.map(realCallback), delim, finalDelim); - } - else { - return arr.map(realCallback).join(delim + ' '); - } - }; - return ToText; -}()); -/* harmony default export */ var totext = (totext_ToText); - -// CONCATENATED MODULE: ./src/nlp/parsetext.ts - - -// ============================================================================= -// Parser -// ============================================================================= -var Parser = /** @class */ (function () { - function Parser(rules) { - this.done = true; - this.rules = rules; - } - Parser.prototype.start = function (text) { - this.text = text; - this.done = false; - return this.nextSymbol(); - }; - Parser.prototype.isDone = function () { - return this.done && this.symbol === null; - }; - Parser.prototype.nextSymbol = function () { - var best; - var bestSymbol; - var p = this; - this.symbol = null; - this.value = null; - do { - if (this.done) - return false; - var rule = void 0; - best = null; - for (var name_1 in this.rules) { - rule = this.rules[name_1]; - var match = rule.exec(p.text); - if (match) { - if (best === null || match[0].length > best[0].length) { - best = match; - bestSymbol = name_1; - } - } - } - if (best != null) { - this.text = this.text.substr(best[0].length); - if (this.text === '') - this.done = true; - } - if (best == null) { - this.done = true; - this.symbol = null; - this.value = null; - return; - } - // @ts-ignore - } while (bestSymbol === 'SKIP'); - // @ts-ignore - this.symbol = bestSymbol; - this.value = best; - return true; - }; - Parser.prototype.accept = function (name) { - if (this.symbol === name) { - if (this.value) { - var v = this.value; - this.nextSymbol(); - return v; - } - this.nextSymbol(); - return true; - } - return false; - }; - Parser.prototype.acceptNumber = function () { - return this.accept('number'); - }; - Parser.prototype.expect = function (name) { - if (this.accept(name)) - return true; - throw new Error('expected ' + name + ' but found ' + this.symbol); - }; - return Parser; -}()); -function parseText(text, language) { - if (language === void 0) { language = i18n; } - var options = {}; - var ttr = new Parser(language.tokens); - if (!ttr.start(text)) - return null; - S(); - return options; - function S() { - // every [n] - ttr.expect('every'); - var n = ttr.acceptNumber(); - if (n) - options.interval = parseInt(n[0], 10); - if (ttr.isDone()) - throw new Error('Unexpected end'); - switch (ttr.symbol) { - case 'day(s)': - options.freq = src["default"].DAILY; - if (ttr.nextSymbol()) { - AT(); - F(); - } - break; - // FIXME Note: every 2 weekdays != every two weeks on weekdays. - // DAILY on weekdays is not a valid rule - case 'weekday(s)': - options.freq = src["default"].WEEKLY; - options.byweekday = [ - src["default"].MO, - src["default"].TU, - src["default"].WE, - src["default"].TH, - src["default"].FR - ]; - ttr.nextSymbol(); - F(); - break; - case 'week(s)': - options.freq = src["default"].WEEKLY; - if (ttr.nextSymbol()) { - ON(); - F(); - } - break; - case 'hour(s)': - options.freq = src["default"].HOURLY; - if (ttr.nextSymbol()) { - ON(); - F(); - } - break; - case 'minute(s)': - options.freq = src["default"].MINUTELY; - if (ttr.nextSymbol()) { - ON(); - F(); - } - break; - case 'month(s)': - options.freq = src["default"].MONTHLY; - if (ttr.nextSymbol()) { - ON(); - F(); - } - break; - case 'year(s)': - options.freq = src["default"].YEARLY; - if (ttr.nextSymbol()) { - ON(); - F(); - } - break; - case 'monday': - case 'tuesday': - case 'wednesday': - case 'thursday': - case 'friday': - case 'saturday': - case 'sunday': - options.freq = src["default"].WEEKLY; - var key = ttr.symbol.substr(0, 2).toUpperCase(); - options.byweekday = [src["default"][key]]; - if (!ttr.nextSymbol()) - return; - // TODO check for duplicates - while (ttr.accept('comma')) { - if (ttr.isDone()) - throw new Error('Unexpected end'); - var wkd = decodeWKD(); - if (!wkd) { - throw new Error('Unexpected symbol ' + ttr.symbol + ', expected weekday'); - } - // @ts-ignore - options.byweekday.push(src["default"][wkd]); - ttr.nextSymbol(); - } - MDAYs(); - F(); - break; - case 'january': - case 'february': - case 'march': - case 'april': - case 'may': - case 'june': - case 'july': - case 'august': - case 'september': - case 'october': - case 'november': - case 'december': - options.freq = src["default"].YEARLY; - options.bymonth = [decodeM()]; - if (!ttr.nextSymbol()) - return; - // TODO check for duplicates - while (ttr.accept('comma')) { - if (ttr.isDone()) - throw new Error('Unexpected end'); - var m = decodeM(); - if (!m) { - throw new Error('Unexpected symbol ' + ttr.symbol + ', expected month'); - } - options.bymonth.push(m); - ttr.nextSymbol(); - } - ON(); - F(); - break; - default: - throw new Error('Unknown symbol'); - } - } - function ON() { - var on = ttr.accept('on'); - var the = ttr.accept('the'); - if (!(on || the)) - return; - do { - var nth = decodeNTH(); - var wkd = decodeWKD(); - var m = decodeM(); - // nth | - if (nth) { - // ttr.nextSymbol() - if (wkd) { - ttr.nextSymbol(); - if (!options.byweekday) - options.byweekday = []; - // @ts-ignore - options.byweekday.push(src["default"][wkd].nth(nth)); - } - else { - if (!options.bymonthday) - options.bymonthday = []; - // @ts-ignore - options.bymonthday.push(nth); - ttr.accept('day(s)'); - } - // - } - else if (wkd) { - ttr.nextSymbol(); - if (!options.byweekday) - options.byweekday = []; - // @ts-ignore - options.byweekday.push(src["default"][wkd]); - } - else if (ttr.symbol === 'weekday(s)') { - ttr.nextSymbol(); - if (!options.byweekday) { - options.byweekday = [ - src["default"].MO, - src["default"].TU, - src["default"].WE, - src["default"].TH, - src["default"].FR - ]; - } - } - else if (ttr.symbol === 'week(s)') { - ttr.nextSymbol(); - var n = ttr.acceptNumber(); - if (!n) { - throw new Error('Unexpected symbol ' + ttr.symbol + ', expected week number'); - } - options.byweekno = [parseInt(n[0], 10)]; - while (ttr.accept('comma')) { - n = ttr.acceptNumber(); - if (!n) { - throw new Error('Unexpected symbol ' + ttr.symbol + '; expected monthday'); - } - options.byweekno.push(parseInt(n[0], 10)); - } - } - else if (m) { - ttr.nextSymbol(); - if (!options.bymonth) - options.bymonth = []; - // @ts-ignore - options.bymonth.push(m); - } - else { - return; - } - } while (ttr.accept('comma') || ttr.accept('the') || ttr.accept('on')); - } - function AT() { - var at = ttr.accept('at'); - if (!at) - return; - do { - var n = ttr.acceptNumber(); - if (!n) { - throw new Error('Unexpected symbol ' + ttr.symbol + ', expected hour'); - } - options.byhour = [parseInt(n[0], 10)]; - while (ttr.accept('comma')) { - n = ttr.acceptNumber(); - if (!n) { - throw new Error('Unexpected symbol ' + ttr.symbol + '; expected hour'); - } - options.byhour.push(parseInt(n[0], 10)); - } - } while (ttr.accept('comma') || ttr.accept('at')); - } - function decodeM() { - switch (ttr.symbol) { - case 'january': - return 1; - case 'february': - return 2; - case 'march': - return 3; - case 'april': - return 4; - case 'may': - return 5; - case 'june': - return 6; - case 'july': - return 7; - case 'august': - return 8; - case 'september': - return 9; - case 'october': - return 10; - case 'november': - return 11; - case 'december': - return 12; - default: - return false; - } - } - function decodeWKD() { - switch (ttr.symbol) { - case 'monday': - case 'tuesday': - case 'wednesday': - case 'thursday': - case 'friday': - case 'saturday': - case 'sunday': - return ttr.symbol.substr(0, 2).toUpperCase(); - default: - return false; - } - } - function decodeNTH() { - switch (ttr.symbol) { - case 'last': - ttr.nextSymbol(); - return -1; - case 'first': - ttr.nextSymbol(); - return 1; - case 'second': - ttr.nextSymbol(); - return ttr.accept('last') ? -2 : 2; - case 'third': - ttr.nextSymbol(); - return ttr.accept('last') ? -3 : 3; - case 'nth': - var v = parseInt(ttr.value[1], 10); - if (v < -366 || v > 366) - throw new Error('Nth out of range: ' + v); - ttr.nextSymbol(); - return ttr.accept('last') ? -v : v; - default: - return false; - } - } - function MDAYs() { - ttr.accept('on'); - ttr.accept('the'); - var nth = decodeNTH(); - if (!nth) - return; - options.bymonthday = [nth]; - ttr.nextSymbol(); - while (ttr.accept('comma')) { - nth = decodeNTH(); - if (!nth) { - throw new Error('Unexpected symbol ' + ttr.symbol + '; expected monthday'); - } - options.bymonthday.push(nth); - ttr.nextSymbol(); - } - } - function F() { - if (ttr.symbol === 'until') { - var date = Date.parse(ttr.text); - if (!date) - throw new Error('Cannot parse until date:' + ttr.text); - options.until = new Date(date); - } - else if (ttr.accept('for')) { - options.count = parseInt(ttr.value[0], 10); - ttr.expect('number'); - // ttr.expect('times') - } - } -} - -// CONCATENATED MODULE: ./src/nlp/index.ts -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromText", function() { return fromText; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFullyConvertible", function() { return isFullyConvertible; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toText", function() { return toText; }); -/* concated harmony reexport */__webpack_require__.d(__webpack_exports__, "parseText", function() { return parseText; }); - - - - -/*! -* rrule.js - Library for working with recurrence rules for calendar dates. -* https://github.com/jakubroztocil/rrule -* -* Copyright 2010, Jakub Roztocil and Lars Schoning -* Licenced under the BSD licence. -* https://github.com/jakubroztocil/rrule/blob/master/LICENCE -* -*/ -/** - * - * Implementation of RRule.fromText() and RRule::toText(). - * - * - * On the client side, this file needs to be included - * when those functions are used. - * - */ -// ============================================================================= -// fromText -// ============================================================================= -/** - * Will be able to convert some of the below described rules from - * text format to a rule object. - * - * - * RULES - * - * Every ([n]) - * day(s) - * | [weekday], ..., (and) [weekday] - * | weekday(s) - * | week(s) - * | month(s) - * | [month], ..., (and) [month] - * | year(s) - * - * - * Plus 0, 1, or multiple of these: - * - * on [weekday], ..., (or) [weekday] the [monthday], [monthday], ... (or) [monthday] - * - * on [weekday], ..., (and) [weekday] - * - * on the [monthday], [monthday], ... (and) [monthday] (day of the month) - * - * on the [nth-weekday], ..., (and) [nth-weekday] (of the month/year) - * - * - * Plus 0 or 1 of these: - * - * for [n] time(s) - * - * until [date] - * - * Plus (.) - * - * - * Definitely no supported for parsing: - * - * (for year): - * in week(s) [n], ..., (and) [n] - * - * on the [yearday], ..., (and) [n] day of the year - * on day [yearday], ..., (and) [n] - * - * - * NON-TERMINALS - * - * [n]: 1, 2 ..., one, two, three .. - * [month]: January, February, March, April, May, ... December - * [weekday]: Monday, ... Sunday - * [nth-weekday]: first [weekday], 2nd [weekday], ... last [weekday], ... - * [monthday]: first, 1., 2., 1st, 2nd, second, ... 31st, last day, 2nd last day, .. - * [date]: - * [month] (0-31(,) ([year])), - * (the) 0-31.(1-12.([year])), - * (the) 0-31/(1-12/([year])), - * [weekday] - * - * [year]: 0000, 0001, ... 01, 02, .. - * - * Definitely not supported for parsing: - * - * [yearday]: first, 1., 2., 1st, 2nd, second, ... 366th, last day, 2nd last day, .. - * - * @param {String} text - * @return {Object, Boolean} the rule, or null. - */ -var fromText = function (text, language) { - if (language === void 0) { language = i18n; } - return new src["default"](parseText(text, language) || undefined); -}; -var common = [ - 'count', - 'until', - 'interval', - 'byweekday', - 'bymonthday', - 'bymonth' -]; -totext.IMPLEMENTED = []; -totext.IMPLEMENTED[src["default"].HOURLY] = common; -totext.IMPLEMENTED[src["default"].MINUTELY] = common; -totext.IMPLEMENTED[src["default"].DAILY] = ['byhour'].concat(common); -totext.IMPLEMENTED[src["default"].WEEKLY] = common; -totext.IMPLEMENTED[src["default"].MONTHLY] = common; -totext.IMPLEMENTED[src["default"].YEARLY] = ['byweekno', 'byyearday'].concat(common); -// ============================================================================= -// Export -// ============================================================================= -var toText = function (rrule, gettext, language, dateFormatter) { - return new totext(rrule, gettext, language, dateFormatter).toString(); -}; -var isFullyConvertible = totext.isFullyConvertible; - - - -/***/ }) -/******/ ]); -}); -//# sourceMappingURL=rrule.js.map \ No newline at end of file diff --git a/htdocs/public/high/plugins/gmaps/gmaps.min.js b/htdocs/public/high/plugins/gmaps/gmaps.min.js deleted file mode 100644 index cf4fb63b..00000000 --- a/htdocs/public/high/plugins/gmaps/gmaps.min.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";!function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd&&define("GMaps",[],b),a.GMaps=b()}(this,function(){if("object"!=typeof window.google||!window.google.maps)throw"Google Maps API is required. Please register the following JavaScript library http://maps.google.com/maps/api/js?sensor=true.";var a=function(a,b){var c;if(a===b)return a;for(c in b)a[c]=b[c];return a},b=function(a,b){var c,d=Array.prototype.slice.call(arguments,2),e=[],f=a.length;if(Array.prototype.map&&a.map===Array.prototype.map)e=Array.prototype.map.call(a,function(a){var c=d.slice(0);return c.splice(0,0,a),b.apply(this,c)});else for(c=0;f>c;c++)callback_params=d,callback_params.splice(0,0,a[c]),e.push(b.apply(this,callback_params));return e},c=function(a){var b,c=[];for(b=0;b0&&"object"==typeof a[c][0]?a[c]=f(a[c],b):a[c]=d(a[c],b));return a},g=function(a,b){var c,d=a.replace(".","");return c="jQuery"in this&&b?$("."+d,b)[0]:document.getElementsByClassName(d)[0]},h=function(a,b){var c,a=a.replace("#","");return c="jQuery"in window&&b?$("#"+a,b)[0]:document.getElementById(a)},i=function(a){var b=0,c=0;if(a.offsetParent)do b+=a.offsetLeft,c+=a.offsetTop;while(a=a.offsetParent);return[b,c]},j=function(b){var c=document,d=function(b){if(!this)return new d(b);b.zoom=b.zoom||15,b.mapType=b.mapType||"roadmap";var e,f=this,j=["bounds_changed","center_changed","click","dblclick","drag","dragend","dragstart","idle","maptypeid_changed","projection_changed","resize","tilesloaded","zoom_changed"],k=["mousemove","mouseout","mouseover"],l=["el","lat","lng","mapType","width","height","markerClusterer","enableNewStyle"],m=b.el||b.div,n=b.markerClusterer,o=google.maps.MapTypeId[b.mapType.toUpperCase()],p=new google.maps.LatLng(b.lat,b.lng),q=b.zoomControl||!0,r=b.zoomControlOpt||{style:"DEFAULT",position:"TOP_LEFT"},s=r.style||"DEFAULT",t=r.position||"TOP_LEFT",u=b.panControl||!0,v=b.mapTypeControl||!0,w=b.scaleControl||!0,x=b.streetViewControl||!0,y=y||!0,z={},A={zoom:this.zoom,center:p,mapTypeId:o},B={panControl:u,zoomControl:q,zoomControlOptions:{style:google.maps.ZoomControlStyle[s],position:google.maps.ControlPosition[t]},mapTypeControl:v,scaleControl:w,streetViewControl:x,overviewMapControl:y};if("string"==typeof b.el||"string"==typeof b.div?m.indexOf("#")>-1?this.el=h(m,b.context):this.el=g.apply(this,[m,b.context]):this.el=m,"undefined"==typeof this.el||null===this.el)throw"No element defined.";for(window.context_menu=window.context_menu||{},window.context_menu[f.el.id]={},this.controls=[],this.overlays=[],this.layers=[],this.singleLayers={},this.markers=[],this.polylines=[],this.routes=[],this.polygons=[],this.infoWindow=null,this.overlay_el=null,this.zoom=b.zoom,this.registered_events={},this.el.style.width=b.width||this.el.scrollWidth||this.el.offsetWidth,this.el.style.height=b.height||this.el.scrollHeight||this.el.offsetHeight,google.maps.visualRefresh=b.enableNewStyle,e=0;e'+g.title+""}if(h("gmaps_context_menu")){var j=h("gmaps_context_menu");j.innerHTML=c;var e,k=j.getElementsByTagName("a"),l=k.length;for(e=0;l>e;e++){var m=k[e],n=function(c){c.preventDefault(),d[this.id.replace(a+"_","")].action.apply(f,[b]),f.hideContextMenu()};google.maps.event.clearListeners(m,"click"),google.maps.event.addDomListenerOnce(m,"click",n,!1)}var o=i.apply(this,[f.el]),p=o[0]+b.pixel.x-15,q=o[1]+b.pixel.y-15;j.style.left=p+"px",j.style.top=q+"px",j.style.display="block"}};this.buildContextMenu=function(a,b){if("marker"===a){b.pixel={};var c=new google.maps.OverlayView;c.setMap(f.map),c.draw=function(){var d=c.getProjection(),e=b.marker.getPosition();b.pixel=d.fromLatLngToContainerPixel(e),C(a,b)}}else C(a,b)},this.setContextMenu=function(a){window.context_menu[f.el.id][a.control]={};var b,d=c.createElement("ul");for(b in a.options)if(a.options.hasOwnProperty(b)){var e=a.options[b];window.context_menu[f.el.id][a.control][e.name]={title:e.title,action:e.action}}d.id="gmaps_context_menu",d.style.display="none",d.style.position="absolute",d.style.minWidth="100px",d.style.background="white",d.style.listStyle="none",d.style.padding="8px",d.style.boxShadow="2px 2px 6px #ccc",c.body.appendChild(d);var g=h("gmaps_context_menu");google.maps.event.addDomListener(g,"mouseout",function(a){a.relatedTarget&&this.contains(a.relatedTarget)||window.setTimeout(function(){g.style.display="none"},400)},!1)},this.hideContextMenu=function(){var a=h("gmaps_context_menu");a&&(a.style.display="none")};var D=function(a,c){google.maps.event.addListener(a,c,function(a){void 0==a&&(a=this),b[c].apply(this,[a]),f.hideContextMenu()})};google.maps.event.addListener(this.map,"zoom_changed",this.hideContextMenu);for(var E=0;Ea;a++)"boolean"==typeof this.markers[a].visible&&this.markers[a].visible&&b.push(this.markers[a].getPosition());this.fitLatLngBounds(b)},this.fitLatLngBounds=function(a){var b,c=a.length,d=new google.maps.LatLngBounds;for(b=0;c>b;b++)d.extend(a[b]);this.map.fitBounds(d)},this.setCenter=function(a,b,c){this.map.panTo(new google.maps.LatLng(a,b)),c&&c()},this.getElement=function(){return this.el},this.zoomIn=function(a){a=a||1,this.zoom=this.map.getZoom()+a,this.map.setZoom(this.zoom)},this.zoomOut=function(a){a=a||1,this.zoom=this.map.getZoom()-a,this.map.setZoom(this.zoom)};var G,H=[];for(G in this.map)"function"!=typeof this.map[G]||this[G]||H.push(G);for(e=0;e-1){var d=this.markers[e];d.setMap(null),this.markerClusterer&&this.markerClusterer.removeMarker(d),j.fire("marker_removed",d,this)}}for(var c=0;c0&&d.paths[0].length>0&&(d.paths=c(b(d.paths,f,e)));for(var g=new google.maps.Polygon(d),h=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"],i=0;i0&&d.locations[0].length>0&&(d.locations=c(b([d.locations],f,!1)));var e=d.callback;delete d.callback;var g=new google.maps.ElevationService;if(d.path){var h={path:d.locations,samples:d.samples};g.getElevationAlongPath(h,function(a,b){e&&"function"==typeof e&&e(a,b)})}else delete d.path,delete d.samples,g.getElevationForLocations(d,function(a,b){e&&"function"==typeof e&&e(a,b)})},j.prototype.cleanRoute=j.prototype.removePolylines,j.prototype.drawRoute=function(a){var b=this;this.getRoutes({origin:a.origin,destination:a.destination,travelMode:a.travelMode,waypoints:a.waypoints,unitSystem:a.unitSystem,error:a.error,callback:function(c){if(c.length>0){var d={path:c[c.length-1].overview_path,strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight};a.hasOwnProperty("icons")&&(d.icons=a.icons),b.drawPolyline(d),a.callback&&a.callback(c[c.length-1])}}})},j.prototype.travelRoute=function(a){if(a.origin&&a.destination)this.getRoutes({origin:a.origin,destination:a.destination,travelMode:a.travelMode,waypoints:a.waypoints,unitSystem:a.unitSystem,error:a.error,callback:function(b){if(b.length>0&&a.start&&a.start(b[b.length-1]),b.length>0&&a.step){var c=b[b.length-1];if(c.legs.length>0)for(var d,e=c.legs[0].steps,f=0;d=e[f];f++)d.step_number=f,a.step(d,c.legs[0].steps.length-1)}b.length>0&&a.end&&a.end(b[b.length-1])}});else if(a.route&&a.route.legs.length>0)for(var b,c=a.route.legs[0].steps,d=0;b=c[d];d++)b.step_number=d,a.step(b)},j.prototype.drawSteppedRoute=function(a){var b=this;if(a.origin&&a.destination)this.getRoutes({origin:a.origin,destination:a.destination,travelMode:a.travelMode,waypoints:a.waypoints,error:a.error,callback:function(c){if(c.length>0&&a.start&&a.start(c[c.length-1]),c.length>0&&a.step){var d=c[c.length-1];if(d.legs.length>0)for(var e,f=d.legs[0].steps,g=0;e=f[g];g++){e.step_number=g;var h={path:e.path,strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight};a.hasOwnProperty("icons")&&(h.icons=a.icons),b.drawPolyline(h),a.step(e,d.legs[0].steps.length-1)}}c.length>0&&a.end&&a.end(c[c.length-1])}});else if(a.route&&a.route.legs.length>0)for(var c,d=a.route.legs[0].steps,e=0;c=d[e];e++){c.step_number=e;var f={path:c.path,strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight};a.hasOwnProperty("icons")&&(f.icons=a.icons),b.drawPolyline(f),a.step(c)}},j.Route=function(a){this.origin=a.origin,this.destination=a.destination,this.waypoints=a.waypoints,this.map=a.map,this.route=a.route,this.step_count=0,this.steps=this.route.legs[0].steps,this.steps_length=this.steps.length;var b={path:new google.maps.MVCArray,strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight};a.hasOwnProperty("icons")&&(b.icons=a.icons),this.polyline=this.map.drawPolyline(b).getPath()},j.Route.prototype.getRoute=function(a){var b=this;this.map.getRoutes({origin:this.origin,destination:this.destination,travelMode:a.travelMode,waypoints:this.waypoints||[],error:a.error,callback:function(){b.route=e[0],a.callback&&a.callback.call(b)}})},j.Route.prototype.back=function(){if(this.step_count>0){this.step_count--;var a=this.route.legs[0].steps[this.step_count].path;for(var b in a)a.hasOwnProperty(b)&&this.polyline.pop()}},j.Route.prototype.forward=function(){if(this.step_count0){b.markers=[];for(var c=0;c0){var d=this.polylines[0];b.polyline={},b.polyline.path=google.maps.geometry.encoding.encodePath(d.getPath()),b.polyline.strokeColor=d.strokeColor,b.polyline.strokeOpacity=d.strokeOpacity,b.polyline.strokeWeight=d.strokeWeight}return j.staticMapURL(b)},j.staticMapURL=function(a){function b(a,b){if("#"===a[0]&&(a=a.replace("#","0x"),b)){if(b=parseFloat(b),b=Math.min(1,Math.max(b,0)),0===b)return"0x00000000";b=(255*b).toString(16),1===b.length&&(b+=b),a=a.slice(0,8)+b}return a}var c,d=[],e=("file:"===location.protocol?"http:":location.protocol)+"//maps.googleapis.com/maps/api/staticmap";a.url&&(e=a.url,delete a.url),e+="?";var f=a.markers;delete a.markers,!f&&a.marker&&(f=[a.marker],delete a.marker);var g=a.styles;delete a.styles;var h=a.polyline;if(delete a.polyline,a.center)d.push("center="+a.center),delete a.center;else if(a.address)d.push("center="+a.address),delete a.address;else if(a.lat)d.push(["center=",a.lat,",",a.lng].join("")),delete a.lat,delete a.lng;else if(a.visible){var i=encodeURI(a.visible.join("|"));d.push("visible="+i)}var j=a.size;j?(j.join&&(j=j.join("x")),delete a.size):j="630x300",d.push("size="+j),a.zoom||a.zoom===!1||(a.zoom=15);var k=a.hasOwnProperty("sensor")?!!a.sensor:!0;delete a.sensor,d.push("sensor="+k);for(var l in a)a.hasOwnProperty(l)&&d.push(l+"="+a[l]);if(f)for(var m,n,o=0;c=f[o];o++){m=[],c.size&&"normal"!==c.size?(m.push("size:"+c.size),delete c.size):c.icon&&(m.push("icon:"+encodeURI(c.icon)),delete c.icon),c.color&&(m.push("color:"+c.color.replace("#","0x")),delete c.color),c.label&&(m.push("label:"+c.label[0].toUpperCase()),delete c.label),n=c.address?c.address:c.lat+","+c.lng,delete c.address,delete c.lat,delete c.lng;for(var l in c)c.hasOwnProperty(l)&&m.push(l+":"+c[l]);m.length||0===o?(m.push(n),m=m.join("|"),d.push("markers="+encodeURI(m))):(m=d.pop()+encodeURI("|"+n),d.push(m))}if(g)for(var o=0;oe;e++)for(var f=this.getPaths().getAt(e),g=f.getLength(),h=g-1,i=0;g>i;i++){var j=f.getAt(i),k=f.getAt(h);(j.lng()=a.lng()||k.lng()=a.lng())&&j.lat()+(a.lng()-j.lng())/(k.lng()-j.lng())*(k.lat()-j.lat())>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=Number(arguments[1]),d!=d?d=0:0!=d&&d!=1/0&&d!=-(1/0)&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),j}); -//# sourceMappingURL=gmaps.min.js.map \ No newline at end of file diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.controls.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.controls.js deleted file mode 100644 index 3934803f..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.controls.js +++ /dev/null @@ -1,83 +0,0 @@ -GMaps.prototype.createControl = function(options) { - var control = document.createElement('div'); - - control.style.cursor = 'pointer'; - - if (options.disableDefaultStyles !== true) { - control.style.fontFamily = 'Roboto, Arial, sans-serif'; - control.style.fontSize = '11px'; - control.style.boxShadow = 'rgba(0, 0, 0, 0.298039) 0px 1px 4px -1px'; - } - - for (var option in options.style) { - control.style[option] = options.style[option]; - } - - if (options.id) { - control.id = options.id; - } - - if (options.classes) { - control.className = options.classes; - } - - if (options.content) { - if (typeof options.content === 'string') { - control.innerHTML = options.content; - } - else if (options.content instanceof HTMLElement) { - control.appendChild(options.content); - } - } - - if (options.position) { - control.position = google.maps.ControlPosition[options.position.toUpperCase()]; - } - - for (var ev in options.events) { - (function(object, name) { - google.maps.event.addDomListener(object, name, function(){ - options.events[name].apply(this, [this]); - }); - })(control, ev); - } - - control.index = 1; - - return control; -}; - -GMaps.prototype.addControl = function(options) { - var control = this.createControl(options); - - this.controls.push(control); - this.map.controls[control.position].push(control); - - return control; -}; - -GMaps.prototype.removeControl = function(control) { - var position = null, - i; - - for (i = 0; i < this.controls.length; i++) { - if (this.controls[i] == control) { - position = this.controls[i].position; - this.controls.splice(i, 1); - } - } - - if (position) { - for (i = 0; i < this.map.controls.length; i++) { - var controlsForPosition = this.map.controls[control.position]; - - if (controlsForPosition.getAt(i) == control) { - controlsForPosition.removeAt(i); - - break; - } - } - } - - return control; -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.core.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.core.js deleted file mode 100644 index 1b0bd987..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.core.js +++ /dev/null @@ -1,488 +0,0 @@ -if (!(typeof window.google === 'object' && window.google.maps)) { - throw 'Google Maps API is required. Please register the following JavaScript library http://maps.google.com/maps/api/js?sensor=true.' -} - -var extend_object = function(obj, new_obj) { - var name; - - if (obj === new_obj) { - return obj; - } - - for (name in new_obj) { - obj[name] = new_obj[name]; - } - - return obj; -}; - -var replace_object = function(obj, replace) { - var name; - - if (obj === replace) { - return obj; - } - - for (name in replace) { - if (obj[name] != undefined) { - obj[name] = replace[name]; - } - } - - return obj; -}; - -var array_map = function(array, callback) { - var original_callback_params = Array.prototype.slice.call(arguments, 2), - array_return = [], - array_length = array.length, - i; - - if (Array.prototype.map && array.map === Array.prototype.map) { - array_return = Array.prototype.map.call(array, function(item) { - var callback_params = original_callback_params.slice(0); - callback_params.splice(0, 0, item); - - return callback.apply(this, callback_params); - }); - } - else { - for (i = 0; i < array_length; i++) { - callback_params = original_callback_params; - callback_params.splice(0, 0, array[i]); - array_return.push(callback.apply(this, callback_params)); - } - } - - return array_return; -}; - -var array_flat = function(array) { - var new_array = [], - i; - - for (i = 0; i < array.length; i++) { - new_array = new_array.concat(array[i]); - } - - return new_array; -}; - -var coordsToLatLngs = function(coords, useGeoJSON) { - var first_coord = coords[0], - second_coord = coords[1]; - - if (useGeoJSON) { - first_coord = coords[1]; - second_coord = coords[0]; - } - - return new google.maps.LatLng(first_coord, second_coord); -}; - -var arrayToLatLng = function(coords, useGeoJSON) { - var i; - - for (i = 0; i < coords.length; i++) { - if (!(coords[i] instanceof google.maps.LatLng)) { - if (coords[i].length > 0 && typeof(coords[i][0]) === "object") { - coords[i] = arrayToLatLng(coords[i], useGeoJSON); - } - else { - coords[i] = coordsToLatLngs(coords[i], useGeoJSON); - } - } - } - - return coords; -}; - - -var getElementsByClassName = function (class_name, context) { - - var element, - _class = class_name.replace('.', ''); - - if ('jQuery' in this && context) { - element = $("." + _class, context)[0]; - } else { - element = document.getElementsByClassName(_class)[0]; - } - return element; - -}; - -var getElementById = function(id, context) { - var element, - id = id.replace('#', ''); - - if ('jQuery' in window && context) { - element = $('#' + id, context)[0]; - } else { - element = document.getElementById(id); - }; - - return element; -}; - -var findAbsolutePosition = function(obj) { - var curleft = 0, - curtop = 0; - - if (obj.offsetParent) { - do { - curleft += obj.offsetLeft; - curtop += obj.offsetTop; - } while (obj = obj.offsetParent); - } - - return [curleft, curtop]; -}; - -var GMaps = (function(global) { - "use strict"; - - var doc = document; - - var GMaps = function(options) { - if (!this) return new GMaps(options); - - options.zoom = options.zoom || 15; - options.mapType = options.mapType || 'roadmap'; - - var self = this, - i, - events_that_hide_context_menu = [ - 'bounds_changed', 'center_changed', 'click', 'dblclick', 'drag', - 'dragend', 'dragstart', 'idle', 'maptypeid_changed', 'projection_changed', - 'resize', 'tilesloaded', 'zoom_changed' - ], - events_that_doesnt_hide_context_menu = ['mousemove', 'mouseout', 'mouseover'], - options_to_be_deleted = ['el', 'lat', 'lng', 'mapType', 'width', 'height', 'markerClusterer', 'enableNewStyle'], - identifier = options.el || options.div, - markerClustererFunction = options.markerClusterer, - mapType = google.maps.MapTypeId[options.mapType.toUpperCase()], - map_center = new google.maps.LatLng(options.lat, options.lng), - zoomControl = options.zoomControl || true, - zoomControlOpt = options.zoomControlOpt || { - style: 'DEFAULT', - position: 'TOP_LEFT' - }, - zoomControlStyle = zoomControlOpt.style || 'DEFAULT', - zoomControlPosition = zoomControlOpt.position || 'TOP_LEFT', - panControl = options.panControl || true, - mapTypeControl = options.mapTypeControl || true, - scaleControl = options.scaleControl || true, - streetViewControl = options.streetViewControl || true, - overviewMapControl = overviewMapControl || true, - map_options = {}, - map_base_options = { - zoom: this.zoom, - center: map_center, - mapTypeId: mapType - }, - map_controls_options = { - panControl: panControl, - zoomControl: zoomControl, - zoomControlOptions: { - style: google.maps.ZoomControlStyle[zoomControlStyle], - position: google.maps.ControlPosition[zoomControlPosition] - }, - mapTypeControl: mapTypeControl, - scaleControl: scaleControl, - streetViewControl: streetViewControl, - overviewMapControl: overviewMapControl - }; - - if (typeof(options.el) === 'string' || typeof(options.div) === 'string') { - - if (identifier.indexOf("#") > -1) { - this.el = getElementById(identifier, options.context); - } else { - this.el = getElementsByClassName.apply(this, [identifier, options.context]); - } - - } else { - this.el = identifier; - } - - if (typeof(this.el) === 'undefined' || this.el === null) { - throw 'No element defined.'; - } - - window.context_menu = window.context_menu || {}; - window.context_menu[self.el.id] = {}; - - this.controls = []; - this.overlays = []; - this.layers = []; // array with kml/georss and fusiontables layers, can be as many - this.singleLayers = {}; // object with the other layers, only one per layer - this.markers = []; - this.polylines = []; - this.routes = []; - this.polygons = []; - this.infoWindow = null; - this.overlay_el = null; - this.zoom = options.zoom; - this.registered_events = {}; - - this.el.style.width = options.width || this.el.scrollWidth || this.el.offsetWidth; - this.el.style.height = options.height || this.el.scrollHeight || this.el.offsetHeight; - - google.maps.visualRefresh = options.enableNewStyle; - - for (i = 0; i < options_to_be_deleted.length; i++) { - delete options[options_to_be_deleted[i]]; - } - - if(options.disableDefaultUI != true) { - map_base_options = extend_object(map_base_options, map_controls_options); - } - - map_options = extend_object(map_base_options, options); - - for (i = 0; i < events_that_hide_context_menu.length; i++) { - delete map_options[events_that_hide_context_menu[i]]; - } - - for (i = 0; i < events_that_doesnt_hide_context_menu.length; i++) { - delete map_options[events_that_doesnt_hide_context_menu[i]]; - } - - this.map = new google.maps.Map(this.el, map_options); - - if (markerClustererFunction) { - this.markerClusterer = markerClustererFunction.apply(this, [this.map]); - } - - var buildContextMenuHTML = function(control, e) { - var html = '', - options = window.context_menu[self.el.id][control]; - - for (var i in options){ - if (options.hasOwnProperty(i)) { - var option = options[i]; - - html += '
  • ' + option.title + '
  • '; - } - } - - if (!getElementById('gmaps_context_menu')) return; - - var context_menu_element = getElementById('gmaps_context_menu'); - - context_menu_element.innerHTML = html; - - var context_menu_items = context_menu_element.getElementsByTagName('a'), - context_menu_items_count = context_menu_items.length, - i; - - for (i = 0; i < context_menu_items_count; i++) { - var context_menu_item = context_menu_items[i]; - - var assign_menu_item_action = function(ev){ - ev.preventDefault(); - - options[this.id.replace(control + '_', '')].action.apply(self, [e]); - self.hideContextMenu(); - }; - - google.maps.event.clearListeners(context_menu_item, 'click'); - google.maps.event.addDomListenerOnce(context_menu_item, 'click', assign_menu_item_action, false); - } - - var position = findAbsolutePosition.apply(this, [self.el]), - left = position[0] + e.pixel.x - 15, - top = position[1] + e.pixel.y- 15; - - context_menu_element.style.left = left + "px"; - context_menu_element.style.top = top + "px"; - - context_menu_element.style.display = 'block'; - }; - - this.buildContextMenu = function(control, e) { - if (control === 'marker') { - e.pixel = {}; - - var overlay = new google.maps.OverlayView(); - overlay.setMap(self.map); - - overlay.draw = function() { - var projection = overlay.getProjection(), - position = e.marker.getPosition(); - - e.pixel = projection.fromLatLngToContainerPixel(position); - - buildContextMenuHTML(control, e); - }; - } - else { - buildContextMenuHTML(control, e); - } - }; - - this.setContextMenu = function(options) { - window.context_menu[self.el.id][options.control] = {}; - - var i, - ul = doc.createElement('ul'); - - for (i in options.options) { - if (options.options.hasOwnProperty(i)) { - var option = options.options[i]; - - window.context_menu[self.el.id][options.control][option.name] = { - title: option.title, - action: option.action - }; - } - } - - ul.id = 'gmaps_context_menu'; - ul.style.display = 'none'; - ul.style.position = 'absolute'; - ul.style.minWidth = '100px'; - ul.style.background = 'white'; - ul.style.listStyle = 'none'; - ul.style.padding = '8px'; - ul.style.boxShadow = '2px 2px 6px #ccc'; - - doc.body.appendChild(ul); - - var context_menu_element = getElementById('gmaps_context_menu') - - google.maps.event.addDomListener(context_menu_element, 'mouseout', function(ev) { - if (!ev.relatedTarget || !this.contains(ev.relatedTarget)) { - window.setTimeout(function(){ - context_menu_element.style.display = 'none'; - }, 400); - } - }, false); - }; - - this.hideContextMenu = function() { - var context_menu_element = getElementById('gmaps_context_menu'); - - if (context_menu_element) { - context_menu_element.style.display = 'none'; - } - }; - - var setupListener = function(object, name) { - google.maps.event.addListener(object, name, function(e){ - if (e == undefined) { - e = this; - } - - options[name].apply(this, [e]); - - self.hideContextMenu(); - }); - }; - - //google.maps.event.addListener(this.map, 'idle', this.hideContextMenu); - google.maps.event.addListener(this.map, 'zoom_changed', this.hideContextMenu); - - for (var ev = 0; ev < events_that_hide_context_menu.length; ev++) { - var name = events_that_hide_context_menu[ev]; - - if (name in options) { - setupListener(this.map, name); - } - } - - for (var ev = 0; ev < events_that_doesnt_hide_context_menu.length; ev++) { - var name = events_that_doesnt_hide_context_menu[ev]; - - if (name in options) { - setupListener(this.map, name); - } - } - - google.maps.event.addListener(this.map, 'rightclick', function(e) { - if (options.rightclick) { - options.rightclick.apply(this, [e]); - } - - if(window.context_menu[self.el.id]['map'] != undefined) { - self.buildContextMenu('map', e); - } - }); - - this.refresh = function() { - google.maps.event.trigger(this.map, 'resize'); - }; - - this.fitZoom = function() { - var latLngs = [], - markers_length = this.markers.length, - i; - - for (i = 0; i < markers_length; i++) { - if(typeof(this.markers[i].visible) === 'boolean' && this.markers[i].visible) { - latLngs.push(this.markers[i].getPosition()); - } - } - - this.fitLatLngBounds(latLngs); - }; - - this.fitLatLngBounds = function(latLngs) { - var total = latLngs.length, - bounds = new google.maps.LatLngBounds(), - i; - - for(i = 0; i < total; i++) { - bounds.extend(latLngs[i]); - } - - this.map.fitBounds(bounds); - }; - - this.setCenter = function(lat, lng, callback) { - this.map.panTo(new google.maps.LatLng(lat, lng)); - - if (callback) { - callback(); - } - }; - - this.getElement = function() { - return this.el; - }; - - this.zoomIn = function(value) { - value = value || 1; - - this.zoom = this.map.getZoom() + value; - this.map.setZoom(this.zoom); - }; - - this.zoomOut = function(value) { - value = value || 1; - - this.zoom = this.map.getZoom() - value; - this.map.setZoom(this.zoom); - }; - - var native_methods = [], - method; - - for (method in this.map) { - if (typeof(this.map[method]) == 'function' && !this[method]) { - native_methods.push(method); - } - } - - for (i = 0; i < native_methods.length; i++) { - (function(gmaps, scope, method_name) { - gmaps[method_name] = function(){ - return scope[method_name].apply(scope, arguments); - }; - })(this, this.map, native_methods[i]); - } - }; - - return GMaps; -})(this); diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.events.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.events.js deleted file mode 100644 index a53a8818..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.events.js +++ /dev/null @@ -1,54 +0,0 @@ -GMaps.prototype.on = function(event_name, handler) { - return GMaps.on(event_name, this, handler); -}; - -GMaps.prototype.off = function(event_name) { - GMaps.off(event_name, this); -}; - -GMaps.custom_events = ['marker_added', 'marker_removed', 'polyline_added', 'polyline_removed', 'polygon_added', 'polygon_removed', 'geolocated', 'geolocation_failed']; - -GMaps.on = function(event_name, object, handler) { - if (GMaps.custom_events.indexOf(event_name) == -1) { - if(object instanceof GMaps) object = object.map; - return google.maps.event.addListener(object, event_name, handler); - } - else { - var registered_event = { - handler : handler, - eventName : event_name - }; - - object.registered_events[event_name] = object.registered_events[event_name] || []; - object.registered_events[event_name].push(registered_event); - - return registered_event; - } -}; - -GMaps.off = function(event_name, object) { - if (GMaps.custom_events.indexOf(event_name) == -1) { - if(object instanceof GMaps) object = object.map; - google.maps.event.clearListeners(object, event_name); - } - else { - object.registered_events[event_name] = []; - } -}; - -GMaps.fire = function(event_name, object, scope) { - if (GMaps.custom_events.indexOf(event_name) == -1) { - google.maps.event.trigger(object, event_name, Array.prototype.slice.apply(arguments).slice(2)); - } - else { - if(event_name in scope.registered_events) { - var firing_events = scope.registered_events[event_name]; - - for(var i = 0; i < firing_events.length; i++) { - (function(handler, scope, object) { - handler.apply(scope, [object]); - })(firing_events[i]['handler'], scope, object); - } - } - } -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.geofences.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.geofences.js deleted file mode 100644 index 74797c87..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.geofences.js +++ /dev/null @@ -1,14 +0,0 @@ -GMaps.prototype.checkGeofence = function(lat, lng, fence) { - return fence.containsLatLng(new google.maps.LatLng(lat, lng)); -}; - -GMaps.prototype.checkMarkerGeofence = function(marker, outside_callback) { - if (marker.fences) { - for (var i = 0, fence; fence = marker.fences[i]; i++) { - var pos = marker.getPosition(); - if (!this.checkGeofence(pos.lat(), pos.lng(), fence)) { - outside_callback(marker, fence); - } - } - } -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.geometry.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.geometry.js deleted file mode 100644 index e7cebd92..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.geometry.js +++ /dev/null @@ -1,205 +0,0 @@ -GMaps.prototype.drawPolyline = function(options) { - var path = [], - points = options.path; - - if (points.length) { - if (points[0][0] === undefined) { - path = points; - } - else { - for (var i = 0, latlng; latlng = points[i]; i++) { - path.push(new google.maps.LatLng(latlng[0], latlng[1])); - } - } - } - - var polyline_options = { - map: this.map, - path: path, - strokeColor: options.strokeColor, - strokeOpacity: options.strokeOpacity, - strokeWeight: options.strokeWeight, - geodesic: options.geodesic, - clickable: true, - editable: false, - visible: true - }; - - if (options.hasOwnProperty("clickable")) { - polyline_options.clickable = options.clickable; - } - - if (options.hasOwnProperty("editable")) { - polyline_options.editable = options.editable; - } - - if (options.hasOwnProperty("icons")) { - polyline_options.icons = options.icons; - } - - if (options.hasOwnProperty("zIndex")) { - polyline_options.zIndex = options.zIndex; - } - - var polyline = new google.maps.Polyline(polyline_options); - - var polyline_events = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'rightclick']; - - for (var ev = 0; ev < polyline_events.length; ev++) { - (function(object, name) { - if (options[name]) { - google.maps.event.addListener(object, name, function(e){ - options[name].apply(this, [e]); - }); - } - })(polyline, polyline_events[ev]); - } - - this.polylines.push(polyline); - - GMaps.fire('polyline_added', polyline, this); - - return polyline; -}; - -GMaps.prototype.removePolyline = function(polyline) { - for (var i = 0; i < this.polylines.length; i++) { - if (this.polylines[i] === polyline) { - this.polylines[i].setMap(null); - this.polylines.splice(i, 1); - - GMaps.fire('polyline_removed', polyline, this); - - break; - } - } -}; - -GMaps.prototype.removePolylines = function() { - for (var i = 0, item; item = this.polylines[i]; i++) { - item.setMap(null); - } - - this.polylines = []; -}; - -GMaps.prototype.drawCircle = function(options) { - options = extend_object({ - map: this.map, - center: new google.maps.LatLng(options.lat, options.lng) - }, options); - - delete options.lat; - delete options.lng; - - var polygon = new google.maps.Circle(options), - polygon_events = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'rightclick']; - - for (var ev = 0; ev < polygon_events.length; ev++) { - (function(object, name) { - if (options[name]) { - google.maps.event.addListener(object, name, function(e){ - options[name].apply(this, [e]); - }); - } - })(polygon, polygon_events[ev]); - } - - this.polygons.push(polygon); - - return polygon; -}; - -GMaps.prototype.drawRectangle = function(options) { - options = extend_object({ - map: this.map - }, options); - - var latLngBounds = new google.maps.LatLngBounds( - new google.maps.LatLng(options.bounds[0][0], options.bounds[0][1]), - new google.maps.LatLng(options.bounds[1][0], options.bounds[1][1]) - ); - - options.bounds = latLngBounds; - - var polygon = new google.maps.Rectangle(options), - polygon_events = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'rightclick']; - - for (var ev = 0; ev < polygon_events.length; ev++) { - (function(object, name) { - if (options[name]) { - google.maps.event.addListener(object, name, function(e){ - options[name].apply(this, [e]); - }); - } - })(polygon, polygon_events[ev]); - } - - this.polygons.push(polygon); - - return polygon; -}; - -GMaps.prototype.drawPolygon = function(options) { - var useGeoJSON = false; - - if(options.hasOwnProperty("useGeoJSON")) { - useGeoJSON = options.useGeoJSON; - } - - delete options.useGeoJSON; - - options = extend_object({ - map: this.map - }, options); - - if (useGeoJSON == false) { - options.paths = [options.paths.slice(0)]; - } - - if (options.paths.length > 0) { - if (options.paths[0].length > 0) { - options.paths = array_flat(array_map(options.paths, arrayToLatLng, useGeoJSON)); - } - } - - var polygon = new google.maps.Polygon(options), - polygon_events = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'rightclick']; - - for (var ev = 0; ev < polygon_events.length; ev++) { - (function(object, name) { - if (options[name]) { - google.maps.event.addListener(object, name, function(e){ - options[name].apply(this, [e]); - }); - } - })(polygon, polygon_events[ev]); - } - - this.polygons.push(polygon); - - GMaps.fire('polygon_added', polygon, this); - - return polygon; -}; - -GMaps.prototype.removePolygon = function(polygon) { - for (var i = 0; i < this.polygons.length; i++) { - if (this.polygons[i] === polygon) { - this.polygons[i].setMap(null); - this.polygons.splice(i, 1); - - GMaps.fire('polygon_removed', polygon, this); - - break; - } - } -}; - -GMaps.prototype.removePolygons = function() { - for (var i = 0, item; item = this.polygons[i]; i++) { - item.setMap(null); - } - - this.polygons = []; -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.layers.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.layers.js deleted file mode 100644 index b8ed339d..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.layers.js +++ /dev/null @@ -1,158 +0,0 @@ -GMaps.prototype.getFromFusionTables = function(options) { - var events = options.events; - - delete options.events; - - var fusion_tables_options = options, - layer = new google.maps.FusionTablesLayer(fusion_tables_options); - - for (var ev in events) { - (function(object, name) { - google.maps.event.addListener(object, name, function(e) { - events[name].apply(this, [e]); - }); - })(layer, ev); - } - - this.layers.push(layer); - - return layer; -}; - -GMaps.prototype.loadFromFusionTables = function(options) { - var layer = this.getFromFusionTables(options); - layer.setMap(this.map); - - return layer; -}; - -GMaps.prototype.getFromKML = function(options) { - var url = options.url, - events = options.events; - - delete options.url; - delete options.events; - - var kml_options = options, - layer = new google.maps.KmlLayer(url, kml_options); - - for (var ev in events) { - (function(object, name) { - google.maps.event.addListener(object, name, function(e) { - events[name].apply(this, [e]); - }); - })(layer, ev); - } - - this.layers.push(layer); - - return layer; -}; - -GMaps.prototype.loadFromKML = function(options) { - var layer = this.getFromKML(options); - layer.setMap(this.map); - - return layer; -}; - -GMaps.prototype.addLayer = function(layerName, options) { - //var default_layers = ['weather', 'clouds', 'traffic', 'transit', 'bicycling', 'panoramio', 'places']; - options = options || {}; - var layer; - - switch(layerName) { - case 'weather': this.singleLayers.weather = layer = new google.maps.weather.WeatherLayer(); - break; - case 'clouds': this.singleLayers.clouds = layer = new google.maps.weather.CloudLayer(); - break; - case 'traffic': this.singleLayers.traffic = layer = new google.maps.TrafficLayer(); - break; - case 'transit': this.singleLayers.transit = layer = new google.maps.TransitLayer(); - break; - case 'bicycling': this.singleLayers.bicycling = layer = new google.maps.BicyclingLayer(); - break; - case 'panoramio': - this.singleLayers.panoramio = layer = new google.maps.panoramio.PanoramioLayer(); - layer.setTag(options.filter); - delete options.filter; - - //click event - if (options.click) { - google.maps.event.addListener(layer, 'click', function(event) { - options.click(event); - delete options.click; - }); - } - break; - case 'places': - this.singleLayers.places = layer = new google.maps.places.PlacesService(this.map); - - //search, nearbySearch, radarSearch callback, Both are the same - if (options.search || options.nearbySearch || options.radarSearch) { - var placeSearchRequest = { - bounds : options.bounds || null, - keyword : options.keyword || null, - location : options.location || null, - name : options.name || null, - radius : options.radius || null, - rankBy : options.rankBy || null, - types : options.types || null - }; - - if (options.radarSearch) { - layer.radarSearch(placeSearchRequest, options.radarSearch); - } - - if (options.search) { - layer.search(placeSearchRequest, options.search); - } - - if (options.nearbySearch) { - layer.nearbySearch(placeSearchRequest, options.nearbySearch); - } - } - - //textSearch callback - if (options.textSearch) { - var textSearchRequest = { - bounds : options.bounds || null, - location : options.location || null, - query : options.query || null, - radius : options.radius || null - }; - - layer.textSearch(textSearchRequest, options.textSearch); - } - break; - } - - if (layer !== undefined) { - if (typeof layer.setOptions == 'function') { - layer.setOptions(options); - } - if (typeof layer.setMap == 'function') { - layer.setMap(this.map); - } - - return layer; - } -}; - -GMaps.prototype.removeLayer = function(layer) { - if (typeof(layer) == "string" && this.singleLayers[layer] !== undefined) { - this.singleLayers[layer].setMap(null); - - delete this.singleLayers[layer]; - } - else { - for (var i = 0; i < this.layers.length; i++) { - if (this.layers[i] === layer) { - this.layers[i].setMap(null); - this.layers.splice(i, 1); - - break; - } - } - } -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.map_types.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.map_types.js deleted file mode 100644 index 46e748a6..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.map_types.js +++ /dev/null @@ -1,29 +0,0 @@ -GMaps.prototype.addMapType = function(mapTypeId, options) { - if (options.hasOwnProperty("getTileUrl") && typeof(options["getTileUrl"]) == "function") { - options.tileSize = options.tileSize || new google.maps.Size(256, 256); - - var mapType = new google.maps.ImageMapType(options); - - this.map.mapTypes.set(mapTypeId, mapType); - } - else { - throw "'getTileUrl' function required."; - } -}; - -GMaps.prototype.addOverlayMapType = function(options) { - if (options.hasOwnProperty("getTile") && typeof(options["getTile"]) == "function") { - var overlayMapTypeIndex = options.index; - - delete options.index; - - this.map.overlayMapTypes.insertAt(overlayMapTypeIndex, options); - } - else { - throw "'getTile' function required."; - } -}; - -GMaps.prototype.removeOverlayMapType = function(overlayMapTypeIndex) { - this.map.overlayMapTypes.removeAt(overlayMapTypeIndex); -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.markers.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.markers.js deleted file mode 100644 index 1fae8289..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.markers.js +++ /dev/null @@ -1,210 +0,0 @@ -GMaps.prototype.createMarker = function(options) { - if (options.lat == undefined && options.lng == undefined && options.position == undefined) { - throw 'No latitude or longitude defined.'; - } - - var self = this, - details = options.details, - fences = options.fences, - outside = options.outside, - base_options = { - position: new google.maps.LatLng(options.lat, options.lng), - map: null - }, - marker_options = extend_object(base_options, options); - - delete marker_options.lat; - delete marker_options.lng; - delete marker_options.fences; - delete marker_options.outside; - - var marker = new google.maps.Marker(marker_options); - - marker.fences = fences; - - if (options.infoWindow) { - marker.infoWindow = new google.maps.InfoWindow(options.infoWindow); - - var info_window_events = ['closeclick', 'content_changed', 'domready', 'position_changed', 'zindex_changed']; - - for (var ev = 0; ev < info_window_events.length; ev++) { - (function(object, name) { - if (options.infoWindow[name]) { - google.maps.event.addListener(object, name, function(e){ - options.infoWindow[name].apply(this, [e]); - }); - } - })(marker.infoWindow, info_window_events[ev]); - } - } - - var marker_events = ['animation_changed', 'clickable_changed', 'cursor_changed', 'draggable_changed', 'flat_changed', 'icon_changed', 'position_changed', 'shadow_changed', 'shape_changed', 'title_changed', 'visible_changed', 'zindex_changed']; - - var marker_events_with_mouse = ['dblclick', 'drag', 'dragend', 'dragstart', 'mousedown', 'mouseout', 'mouseover', 'mouseup']; - - for (var ev = 0; ev < marker_events.length; ev++) { - (function(object, name) { - if (options[name]) { - google.maps.event.addListener(object, name, function(){ - options[name].apply(this, [this]); - }); - } - })(marker, marker_events[ev]); - } - - for (var ev = 0; ev < marker_events_with_mouse.length; ev++) { - (function(map, object, name) { - if (options[name]) { - google.maps.event.addListener(object, name, function(me){ - if(!me.pixel){ - me.pixel = map.getProjection().fromLatLngToPoint(me.latLng) - } - - options[name].apply(this, [me]); - }); - } - })(this.map, marker, marker_events_with_mouse[ev]); - } - - google.maps.event.addListener(marker, 'click', function() { - this.details = details; - - if (options.click) { - options.click.apply(this, [this]); - } - - if (marker.infoWindow) { - self.hideInfoWindows(); - marker.infoWindow.open(self.map, marker); - } - }); - - google.maps.event.addListener(marker, 'rightclick', function(e) { - e.marker = this; - - if (options.rightclick) { - options.rightclick.apply(this, [e]); - } - - if (window.context_menu[self.el.id]['marker'] != undefined) { - self.buildContextMenu('marker', e); - } - }); - - if (marker.fences) { - google.maps.event.addListener(marker, 'dragend', function() { - self.checkMarkerGeofence(marker, function(m, f) { - outside(m, f); - }); - }); - } - - return marker; -}; - -GMaps.prototype.addMarker = function(options) { - var marker; - if(options.hasOwnProperty('gm_accessors_')) { - // Native google.maps.Marker object - marker = options; - } - else { - if ((options.hasOwnProperty('lat') && options.hasOwnProperty('lng')) || options.position) { - marker = this.createMarker(options); - } - else { - throw 'No latitude or longitude defined.'; - } - } - - marker.setMap(this.map); - - if(this.markerClusterer) { - this.markerClusterer.addMarker(marker); - } - - this.markers.push(marker); - - GMaps.fire('marker_added', marker, this); - - return marker; -}; - -GMaps.prototype.addMarkers = function(array) { - for (var i = 0, marker; marker=array[i]; i++) { - this.addMarker(marker); - } - - return this.markers; -}; - -GMaps.prototype.hideInfoWindows = function() { - for (var i = 0, marker; marker = this.markers[i]; i++){ - if (marker.infoWindow) { - marker.infoWindow.close(); - } - } -}; - -GMaps.prototype.removeMarker = function(marker) { - for (var i = 0; i < this.markers.length; i++) { - if (this.markers[i] === marker) { - this.markers[i].setMap(null); - this.markers.splice(i, 1); - - if(this.markerClusterer) { - this.markerClusterer.removeMarker(marker); - } - - GMaps.fire('marker_removed', marker, this); - - break; - } - } - - return marker; -}; - -GMaps.prototype.removeMarkers = function (collection) { - var new_markers = []; - - if (typeof collection == 'undefined') { - for (var i = 0; i < this.markers.length; i++) { - var marker = this.markers[i]; - marker.setMap(null); - - if(this.markerClusterer) { - this.markerClusterer.removeMarker(marker); - } - - GMaps.fire('marker_removed', marker, this); - } - - this.markers = new_markers; - } - else { - for (var i = 0; i < collection.length; i++) { - var index = this.markers.indexOf(collection[i]); - - if (index > -1) { - var marker = this.markers[index]; - marker.setMap(null); - - if(this.markerClusterer) { - this.markerClusterer.removeMarker(marker); - } - - GMaps.fire('marker_removed', marker, this); - } - } - - for (var i = 0; i < this.markers.length; i++) { - var marker = this.markers[i]; - if (marker.getMap() != null) { - new_markers.push(marker); - } - } - - this.markers = new_markers; - } -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.native_extensions.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.native_extensions.js deleted file mode 100644 index 3e5fbd07..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.native_extensions.js +++ /dev/null @@ -1,121 +0,0 @@ -//========================== -// Polygon containsLatLng -// https://github.com/tparkin/Google-Maps-Point-in-Polygon -// Poygon getBounds extension - google-maps-extensions -// http://code.google.com/p/google-maps-extensions/source/browse/google.maps.Polygon.getBounds.js -if (!google.maps.Polygon.prototype.getBounds) { - google.maps.Polygon.prototype.getBounds = function(latLng) { - var bounds = new google.maps.LatLngBounds(); - var paths = this.getPaths(); - var path; - - for (var p = 0; p < paths.getLength(); p++) { - path = paths.getAt(p); - for (var i = 0; i < path.getLength(); i++) { - bounds.extend(path.getAt(i)); - } - } - - return bounds; - }; -} - -if (!google.maps.Polygon.prototype.containsLatLng) { - // Polygon containsLatLng - method to determine if a latLng is within a polygon - google.maps.Polygon.prototype.containsLatLng = function(latLng) { - // Exclude points outside of bounds as there is no way they are in the poly - var bounds = this.getBounds(); - - if (bounds !== null && !bounds.contains(latLng)) { - return false; - } - - // Raycast point in polygon method - var inPoly = false; - - var numPaths = this.getPaths().getLength(); - for (var p = 0; p < numPaths; p++) { - var path = this.getPaths().getAt(p); - var numPoints = path.getLength(); - var j = numPoints - 1; - - for (var i = 0; i < numPoints; i++) { - var vertex1 = path.getAt(i); - var vertex2 = path.getAt(j); - - if (vertex1.lng() < latLng.lng() && vertex2.lng() >= latLng.lng() || vertex2.lng() < latLng.lng() && vertex1.lng() >= latLng.lng()) { - if (vertex1.lat() + (latLng.lng() - vertex1.lng()) / (vertex2.lng() - vertex1.lng()) * (vertex2.lat() - vertex1.lat()) < latLng.lat()) { - inPoly = !inPoly; - } - } - - j = i; - } - } - - return inPoly; - }; -} - -if (!google.maps.Circle.prototype.containsLatLng) { - google.maps.Circle.prototype.containsLatLng = function(latLng) { - if (google.maps.geometry) { - return google.maps.geometry.spherical.computeDistanceBetween(this.getCenter(), latLng) <= this.getRadius(); - } - else { - return true; - } - }; -} - -google.maps.LatLngBounds.prototype.containsLatLng = function(latLng) { - return this.contains(latLng); -}; - -google.maps.Marker.prototype.setFences = function(fences) { - this.fences = fences; -}; - -google.maps.Marker.prototype.addFence = function(fence) { - this.fences.push(fence); -}; - -google.maps.Marker.prototype.getId = function() { - return this['__gm_id']; -}; - -//========================== -// Array indexOf -// https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf -if (!Array.prototype.indexOf) { - Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) { - "use strict"; - if (this == null) { - throw new TypeError(); - } - var t = Object(this); - var len = t.length >>> 0; - if (len === 0) { - return -1; - } - var n = 0; - if (arguments.length > 1) { - n = Number(arguments[1]); - if (n != n) { // shortcut for verifying if it's NaN - n = 0; - } else if (n != 0 && n != Infinity && n != -Infinity) { - n = (n > 0 || -1) * Math.floor(Math.abs(n)); - } - } - if (n >= len) { - return -1; - } - var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0); - for (; k < len; k++) { - if (k in t && t[k] === searchElement) { - return k; - } - } - return -1; - } -} \ No newline at end of file diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.overlays.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.overlays.js deleted file mode 100644 index 957e8015..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.overlays.js +++ /dev/null @@ -1,134 +0,0 @@ -GMaps.prototype.drawOverlay = function(options) { - var overlay = new google.maps.OverlayView(), - auto_show = true; - - overlay.setMap(this.map); - - if (options.auto_show != null) { - auto_show = options.auto_show; - } - - overlay.onAdd = function() { - var el = document.createElement('div'); - - el.style.borderStyle = "none"; - el.style.borderWidth = "0px"; - el.style.position = "absolute"; - el.style.zIndex = 100; - el.innerHTML = options.content; - - overlay.el = el; - - if (!options.layer) { - options.layer = 'overlayLayer'; - } - - var panes = this.getPanes(), - overlayLayer = panes[options.layer], - stop_overlay_events = ['contextmenu', 'DOMMouseScroll', 'dblclick', 'mousedown']; - - overlayLayer.appendChild(el); - - for (var ev = 0; ev < stop_overlay_events.length; ev++) { - (function(object, name) { - google.maps.event.addDomListener(object, name, function(e){ - if (navigator.userAgent.toLowerCase().indexOf('msie') != -1 && document.all) { - e.cancelBubble = true; - e.returnValue = false; - } - else { - e.stopPropagation(); - } - }); - })(el, stop_overlay_events[ev]); - } - - if (options.click) { - panes.overlayMouseTarget.appendChild(overlay.el); - google.maps.event.addDomListener(overlay.el, 'click', function() { - options.click.apply(overlay, [overlay]); - }); - } - - google.maps.event.trigger(this, 'ready'); - }; - - overlay.draw = function() { - var projection = this.getProjection(), - pixel = projection.fromLatLngToDivPixel(new google.maps.LatLng(options.lat, options.lng)); - - options.horizontalOffset = options.horizontalOffset || 0; - options.verticalOffset = options.verticalOffset || 0; - - var el = overlay.el, - content = el.children[0], - content_height = content.clientHeight, - content_width = content.clientWidth; - - switch (options.verticalAlign) { - case 'top': - el.style.top = (pixel.y - content_height + options.verticalOffset) + 'px'; - break; - default: - case 'middle': - el.style.top = (pixel.y - (content_height / 2) + options.verticalOffset) + 'px'; - break; - case 'bottom': - el.style.top = (pixel.y + options.verticalOffset) + 'px'; - break; - } - - switch (options.horizontalAlign) { - case 'left': - el.style.left = (pixel.x - content_width + options.horizontalOffset) + 'px'; - break; - default: - case 'center': - el.style.left = (pixel.x - (content_width / 2) + options.horizontalOffset) + 'px'; - break; - case 'right': - el.style.left = (pixel.x + options.horizontalOffset) + 'px'; - break; - } - - el.style.display = auto_show ? 'block' : 'none'; - - if (!auto_show) { - options.show.apply(this, [el]); - } - }; - - overlay.onRemove = function() { - var el = overlay.el; - - if (options.remove) { - options.remove.apply(this, [el]); - } - else { - overlay.el.parentNode.removeChild(overlay.el); - overlay.el = null; - } - }; - - this.overlays.push(overlay); - return overlay; -}; - -GMaps.prototype.removeOverlay = function(overlay) { - for (var i = 0; i < this.overlays.length; i++) { - if (this.overlays[i] === overlay) { - this.overlays[i].setMap(null); - this.overlays.splice(i, 1); - - break; - } - } -}; - -GMaps.prototype.removeOverlays = function() { - for (var i = 0, item; item = this.overlays[i]; i++) { - item.setMap(null); - } - - this.overlays = []; -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.routes.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.routes.js deleted file mode 100644 index ce925dda..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.routes.js +++ /dev/null @@ -1,330 +0,0 @@ -var travelMode, unitSystem; - -GMaps.prototype.getRoutes = function(options) { - switch (options.travelMode) { - case 'bicycling': - travelMode = google.maps.TravelMode.BICYCLING; - break; - case 'transit': - travelMode = google.maps.TravelMode.TRANSIT; - break; - case 'driving': - travelMode = google.maps.TravelMode.DRIVING; - break; - default: - travelMode = google.maps.TravelMode.WALKING; - break; - } - - if (options.unitSystem === 'imperial') { - unitSystem = google.maps.UnitSystem.IMPERIAL; - } - else { - unitSystem = google.maps.UnitSystem.METRIC; - } - - var base_options = { - avoidHighways: false, - avoidTolls: false, - optimizeWaypoints: false, - waypoints: [] - }, - request_options = extend_object(base_options, options); - - request_options.origin = /string/.test(typeof options.origin) ? options.origin : new google.maps.LatLng(options.origin[0], options.origin[1]); - request_options.destination = /string/.test(typeof options.destination) ? options.destination : new google.maps.LatLng(options.destination[0], options.destination[1]); - request_options.travelMode = travelMode; - request_options.unitSystem = unitSystem; - - delete request_options.callback; - delete request_options.error; - - var self = this, - service = new google.maps.DirectionsService(); - - service.route(request_options, function(result, status) { - if (status === google.maps.DirectionsStatus.OK) { - for (var r in result.routes) { - if (result.routes.hasOwnProperty(r)) { - self.routes.push(result.routes[r]); - } - } - - if (options.callback) { - options.callback(self.routes); - } - } - else { - if (options.error) { - options.error(result, status); - } - } - }); -}; - -GMaps.prototype.removeRoutes = function() { - this.routes = []; -}; - -GMaps.prototype.getElevations = function(options) { - options = extend_object({ - locations: [], - path : false, - samples : 256 - }, options); - - if (options.locations.length > 0) { - if (options.locations[0].length > 0) { - options.locations = array_flat(array_map([options.locations], arrayToLatLng, false)); - } - } - - var callback = options.callback; - delete options.callback; - - var service = new google.maps.ElevationService(); - - //location request - if (!options.path) { - delete options.path; - delete options.samples; - - service.getElevationForLocations(options, function(result, status) { - if (callback && typeof(callback) === "function") { - callback(result, status); - } - }); - //path request - } else { - var pathRequest = { - path : options.locations, - samples : options.samples - }; - - service.getElevationAlongPath(pathRequest, function(result, status) { - if (callback && typeof(callback) === "function") { - callback(result, status); - } - }); - } -}; - -GMaps.prototype.cleanRoute = GMaps.prototype.removePolylines; - -GMaps.prototype.drawRoute = function(options) { - var self = this; - - this.getRoutes({ - origin: options.origin, - destination: options.destination, - travelMode: options.travelMode, - waypoints: options.waypoints, - unitSystem: options.unitSystem, - error: options.error, - callback: function(e) { - if (e.length > 0) { - var polyline_options = { - path: e[e.length - 1].overview_path, - strokeColor: options.strokeColor, - strokeOpacity: options.strokeOpacity, - strokeWeight: options.strokeWeight - }; - - if (options.hasOwnProperty("icons")) { - polyline_options.icons = options.icons; - } - - self.drawPolyline(polyline_options); - - if (options.callback) { - options.callback(e[e.length - 1]); - } - } - } - }); -}; - -GMaps.prototype.travelRoute = function(options) { - if (options.origin && options.destination) { - this.getRoutes({ - origin: options.origin, - destination: options.destination, - travelMode: options.travelMode, - waypoints : options.waypoints, - unitSystem: options.unitSystem, - error: options.error, - callback: function(e) { - //start callback - if (e.length > 0 && options.start) { - options.start(e[e.length - 1]); - } - - //step callback - if (e.length > 0 && options.step) { - var route = e[e.length - 1]; - if (route.legs.length > 0) { - var steps = route.legs[0].steps; - for (var i = 0, step; step = steps[i]; i++) { - step.step_number = i; - options.step(step, (route.legs[0].steps.length - 1)); - } - } - } - - //end callback - if (e.length > 0 && options.end) { - options.end(e[e.length - 1]); - } - } - }); - } - else if (options.route) { - if (options.route.legs.length > 0) { - var steps = options.route.legs[0].steps; - for (var i = 0, step; step = steps[i]; i++) { - step.step_number = i; - options.step(step); - } - } - } -}; - -GMaps.prototype.drawSteppedRoute = function(options) { - var self = this; - - if (options.origin && options.destination) { - this.getRoutes({ - origin: options.origin, - destination: options.destination, - travelMode: options.travelMode, - waypoints : options.waypoints, - error: options.error, - callback: function(e) { - //start callback - if (e.length > 0 && options.start) { - options.start(e[e.length - 1]); - } - - //step callback - if (e.length > 0 && options.step) { - var route = e[e.length - 1]; - if (route.legs.length > 0) { - var steps = route.legs[0].steps; - for (var i = 0, step; step = steps[i]; i++) { - step.step_number = i; - var polyline_options = { - path: step.path, - strokeColor: options.strokeColor, - strokeOpacity: options.strokeOpacity, - strokeWeight: options.strokeWeight - }; - - if (options.hasOwnProperty("icons")) { - polyline_options.icons = options.icons; - } - - self.drawPolyline(polyline_options); - options.step(step, (route.legs[0].steps.length - 1)); - } - } - } - - //end callback - if (e.length > 0 && options.end) { - options.end(e[e.length - 1]); - } - } - }); - } - else if (options.route) { - if (options.route.legs.length > 0) { - var steps = options.route.legs[0].steps; - for (var i = 0, step; step = steps[i]; i++) { - step.step_number = i; - var polyline_options = { - path: step.path, - strokeColor: options.strokeColor, - strokeOpacity: options.strokeOpacity, - strokeWeight: options.strokeWeight - }; - - if (options.hasOwnProperty("icons")) { - polyline_options.icons = options.icons; - } - - self.drawPolyline(polyline_options); - options.step(step); - } - } - } -}; - -GMaps.Route = function(options) { - this.origin = options.origin; - this.destination = options.destination; - this.waypoints = options.waypoints; - - this.map = options.map; - this.route = options.route; - this.step_count = 0; - this.steps = this.route.legs[0].steps; - this.steps_length = this.steps.length; - - var polyline_options = { - path: new google.maps.MVCArray(), - strokeColor: options.strokeColor, - strokeOpacity: options.strokeOpacity, - strokeWeight: options.strokeWeight - }; - - if (options.hasOwnProperty("icons")) { - polyline_options.icons = options.icons; - } - - this.polyline = this.map.drawPolyline(polyline_options).getPath(); -}; - -GMaps.Route.prototype.getRoute = function(options) { - var self = this; - - this.map.getRoutes({ - origin : this.origin, - destination : this.destination, - travelMode : options.travelMode, - waypoints : this.waypoints || [], - error: options.error, - callback : function() { - self.route = e[0]; - - if (options.callback) { - options.callback.call(self); - } - } - }); -}; - -GMaps.Route.prototype.back = function() { - if (this.step_count > 0) { - this.step_count--; - var path = this.route.legs[0].steps[this.step_count].path; - - for (var p in path){ - if (path.hasOwnProperty(p)){ - this.polyline.pop(); - } - } - } -}; - -GMaps.Route.prototype.forward = function() { - if (this.step_count < this.steps_length) { - var path = this.route.legs[0].steps[this.step_count].path; - - for (var p in path){ - if (path.hasOwnProperty(p)){ - this.polyline.push(path[p]); - } - } - this.step_count++; - } -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.static.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.static.js deleted file mode 100644 index e8c5b080..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.static.js +++ /dev/null @@ -1,245 +0,0 @@ -GMaps.prototype.toImage = function(options) { - var options = options || {}, - static_map_options = {}; - - static_map_options['size'] = options['size'] || [this.el.clientWidth, this.el.clientHeight]; - static_map_options['lat'] = this.getCenter().lat(); - static_map_options['lng'] = this.getCenter().lng(); - - if (this.markers.length > 0) { - static_map_options['markers'] = []; - - for (var i = 0; i < this.markers.length; i++) { - static_map_options['markers'].push({ - lat: this.markers[i].getPosition().lat(), - lng: this.markers[i].getPosition().lng() - }); - } - } - - if (this.polylines.length > 0) { - var polyline = this.polylines[0]; - - static_map_options['polyline'] = {}; - static_map_options['polyline']['path'] = google.maps.geometry.encoding.encodePath(polyline.getPath()); - static_map_options['polyline']['strokeColor'] = polyline.strokeColor - static_map_options['polyline']['strokeOpacity'] = polyline.strokeOpacity - static_map_options['polyline']['strokeWeight'] = polyline.strokeWeight - } - - return GMaps.staticMapURL(static_map_options); -}; - -GMaps.staticMapURL = function(options){ - var parameters = [], - data, - static_root = (location.protocol === 'file:' ? 'http:' : location.protocol ) + '//maps.googleapis.com/maps/api/staticmap'; - - if (options.url) { - static_root = options.url; - delete options.url; - } - - static_root += '?'; - - var markers = options.markers; - - delete options.markers; - - if (!markers && options.marker) { - markers = [options.marker]; - delete options.marker; - } - - var styles = options.styles; - - delete options.styles; - - var polyline = options.polyline; - delete options.polyline; - - /** Map options **/ - if (options.center) { - parameters.push('center=' + options.center); - delete options.center; - } - else if (options.address) { - parameters.push('center=' + options.address); - delete options.address; - } - else if (options.lat) { - parameters.push(['center=', options.lat, ',', options.lng].join('')); - delete options.lat; - delete options.lng; - } - else if (options.visible) { - var visible = encodeURI(options.visible.join('|')); - parameters.push('visible=' + visible); - } - - var size = options.size; - if (size) { - if (size.join) { - size = size.join('x'); - } - delete options.size; - } - else { - size = '630x300'; - } - parameters.push('size=' + size); - - if (!options.zoom && options.zoom !== false) { - options.zoom = 15; - } - - var sensor = options.hasOwnProperty('sensor') ? !!options.sensor : true; - delete options.sensor; - parameters.push('sensor=' + sensor); - - for (var param in options) { - if (options.hasOwnProperty(param)) { - parameters.push(param + '=' + options[param]); - } - } - - /** Markers **/ - if (markers) { - var marker, loc; - - for (var i = 0; data = markers[i]; i++) { - marker = []; - - if (data.size && data.size !== 'normal') { - marker.push('size:' + data.size); - delete data.size; - } - else if (data.icon) { - marker.push('icon:' + encodeURI(data.icon)); - delete data.icon; - } - - if (data.color) { - marker.push('color:' + data.color.replace('#', '0x')); - delete data.color; - } - - if (data.label) { - marker.push('label:' + data.label[0].toUpperCase()); - delete data.label; - } - - loc = (data.address ? data.address : data.lat + ',' + data.lng); - delete data.address; - delete data.lat; - delete data.lng; - - for(var param in data){ - if (data.hasOwnProperty(param)) { - marker.push(param + ':' + data[param]); - } - } - - if (marker.length || i === 0) { - marker.push(loc); - marker = marker.join('|'); - parameters.push('markers=' + encodeURI(marker)); - } - // New marker without styles - else { - marker = parameters.pop() + encodeURI('|' + loc); - parameters.push(marker); - } - } - } - - /** Map Styles **/ - if (styles) { - for (var i = 0; i < styles.length; i++) { - var styleRule = []; - if (styles[i].featureType){ - styleRule.push('feature:' + styles[i].featureType.toLowerCase()); - } - - if (styles[i].elementType) { - styleRule.push('element:' + styles[i].elementType.toLowerCase()); - } - - for (var j = 0; j < styles[i].stylers.length; j++) { - for (var p in styles[i].stylers[j]) { - var ruleArg = styles[i].stylers[j][p]; - if (p == 'hue' || p == 'color') { - ruleArg = '0x' + ruleArg.substring(1); - } - styleRule.push(p + ':' + ruleArg); - } - } - - var rule = styleRule.join('|'); - if (rule != '') { - parameters.push('style=' + rule); - } - } - } - - /** Polylines **/ - function parseColor(color, opacity) { - if (color[0] === '#'){ - color = color.replace('#', '0x'); - - if (opacity) { - opacity = parseFloat(opacity); - opacity = Math.min(1, Math.max(opacity, 0)); - if (opacity === 0) { - return '0x00000000'; - } - opacity = (opacity * 255).toString(16); - if (opacity.length === 1) { - opacity += opacity; - } - - color = color.slice(0,8) + opacity; - } - } - return color; - } - - if (polyline) { - data = polyline; - polyline = []; - - if (data.strokeWeight) { - polyline.push('weight:' + parseInt(data.strokeWeight, 10)); - } - - if (data.strokeColor) { - var color = parseColor(data.strokeColor, data.strokeOpacity); - polyline.push('color:' + color); - } - - if (data.fillColor) { - var fillcolor = parseColor(data.fillColor, data.fillOpacity); - polyline.push('fillcolor:' + fillcolor); - } - - var path = data.path; - if (path.join) { - for (var j=0, pos; pos=path[j]; j++) { - polyline.push(pos.join(',')); - } - } - else { - polyline.push('enc:' + path); - } - - polyline = polyline.join('|'); - parameters.push('path=' + encodeURI(polyline)); - } - - /** Retina support **/ - var dpi = window.devicePixelRatio || 1; - parameters.push('scale=' + dpi); - - parameters = parameters.join('&'); - return static_root + parameters; -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.streetview.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.streetview.js deleted file mode 100644 index fd1fa129..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.streetview.js +++ /dev/null @@ -1,44 +0,0 @@ -GMaps.prototype.createPanorama = function(streetview_options) { - if (!streetview_options.hasOwnProperty('lat') || !streetview_options.hasOwnProperty('lng')) { - streetview_options.lat = this.getCenter().lat(); - streetview_options.lng = this.getCenter().lng(); - } - - this.panorama = GMaps.createPanorama(streetview_options); - - this.map.setStreetView(this.panorama); - - return this.panorama; -}; - -GMaps.createPanorama = function(options) { - var el = getElementById(options.el, options.context); - - options.position = new google.maps.LatLng(options.lat, options.lng); - - delete options.el; - delete options.context; - delete options.lat; - delete options.lng; - - var streetview_events = ['closeclick', 'links_changed', 'pano_changed', 'position_changed', 'pov_changed', 'resize', 'visible_changed'], - streetview_options = extend_object({visible : true}, options); - - for (var i = 0; i < streetview_events.length; i++) { - delete streetview_options[streetview_events[i]]; - } - - var panorama = new google.maps.StreetViewPanorama(el, streetview_options); - - for (var i = 0; i < streetview_events.length; i++) { - (function(object, name) { - if (options[name]) { - google.maps.event.addListener(object, name, function(){ - options[name].apply(this); - }); - } - })(panorama, streetview_events[i]); - } - - return panorama; -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.styles.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.styles.js deleted file mode 100644 index db06b455..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.styles.js +++ /dev/null @@ -1,9 +0,0 @@ -GMaps.prototype.addStyle = function(options) { - var styledMapType = new google.maps.StyledMapType(options.styles, { name: options.styledMapName }); - - this.map.mapTypes.set(options.mapTypeId, styledMapType); -}; - -GMaps.prototype.setStyle = function(mapTypeId) { - this.map.setMapTypeId(mapTypeId); -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.utils.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.utils.js deleted file mode 100644 index 6655363b..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.utils.js +++ /dev/null @@ -1,42 +0,0 @@ -GMaps.geolocate = function(options) { - var complete_callback = options.always || options.complete; - - if (navigator.geolocation) { - navigator.geolocation.getCurrentPosition(function(position) { - options.success(position); - - if (complete_callback) { - complete_callback(); - } - }, function(error) { - options.error(error); - - if (complete_callback) { - complete_callback(); - } - }, options.options); - } - else { - options.not_supported(); - - if (complete_callback) { - complete_callback(); - } - } -}; - -GMaps.geocode = function(options) { - this.geocoder = new google.maps.Geocoder(); - var callback = options.callback; - if (options.hasOwnProperty('lat') && options.hasOwnProperty('lng')) { - options.latLng = new google.maps.LatLng(options.lat, options.lng); - } - - delete options.lat; - delete options.lng; - delete options.callback; - - this.geocoder.geocode(options, function(results, status) { - callback(results, status); - }); -}; diff --git a/htdocs/public/high/plugins/ion-rangeslider/ion.rangeSlider.css b/htdocs/public/high/plugins/ion-rangeslider/ion.rangeSlider.css deleted file mode 100644 index 68fd119e..00000000 --- a/htdocs/public/high/plugins/ion-rangeslider/ion.rangeSlider.css +++ /dev/null @@ -1,150 +0,0 @@ -/* Ion.RangeSlider -// css version 2.0.3 -// © 2013-2014 Denis Ineshin | IonDen.com -// ===================================================================================================================*/ - -/* ===================================================================================================================== -// RangeSlider */ - -.irs { - position: relative; display: block; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - .irs-line { - position: relative; display: block; - overflow: hidden; - outline: none !important; - } - .irs-line-left, .irs-line-mid, .irs-line-right { - position: absolute; display: block; - top: 0; - } - .irs-line-left { - left: 0; width: 11%; - } - .irs-line-mid { - left: 9%; width: 82%; - } - .irs-line-right { - right: 0; width: 11%; - } - - .irs-bar { - position: absolute; display: block; - left: 0; width: 0; - } - .irs-bar-edge { - position: absolute; display: block; - top: 0; left: 0; - } - - .irs-shadow { - position: absolute; display: none; - left: 0; width: 0; - } - - .irs-slider { - position: absolute; display: block; - cursor: default; - z-index: 1; - } - .irs-slider.single { - - } - .irs-slider.from { - - } - .irs-slider.to { - - } - .irs-slider.type_last { - z-index: 2; - } - - .irs-min { - position: absolute; display: block; - left: 0; - cursor: default; - } - .irs-max { - position: absolute; display: block; - right: 0; - cursor: default; - } - - .irs-from, .irs-to, .irs-single { - position: absolute; display: block; - top: 0; left: 0; - cursor: default; - white-space: nowrap; - } - -.irs-grid { - position: absolute; display: none; - bottom: 0; left: 0; - width: 100%; height: 20px; -} -.irs-with-grid .irs-grid { - display: block; -} - .irs-grid-pol { - position: absolute; - top: 0; left: 0; - width: 1px; height: 8px; - background: #000; - } - .irs-grid-pol.small { - height: 4px; - } - .irs-grid-text { - position: absolute; - bottom: 0; left: 0; - white-space: nowrap; - text-align: center; - font-size: 9px; line-height: 9px; - padding: 0 3px; - color: #000; - } - -.irs-disable-mask { - position: absolute; display: block; - top: 0; left: -1%; - width: 102%; height: 100%; - cursor: default; - background: rgba(0,0,0,0.0); - z-index: 2; -} -.lt-ie9 .irs-disable-mask { - background: #000; - filter: alpha(opacity=0); - cursor: not-allowed; -} - -.irs-disabled { - opacity: 0.4; -} - - -.irs-hidden-input { - position: absolute !important; - display: block !important; - top: 0 !important; - left: 0 !important; - width: 0 !important; - height: 0 !important; - font-size: 0 !important; - line-height: 0 !important; - padding: 0 !important; - margin: 0 !important; - overflow: hidden; - outline: none !important; - z-index: -9999 !important; - background: none !important; - border-style: solid !important; - border-color: transparent !important; -} diff --git a/htdocs/public/high/plugins/ion-rangeslider/ion.rangeSlider.min.js b/htdocs/public/high/plugins/ion-rangeslider/ion.rangeSlider.min.js deleted file mode 100644 index 11ae97f3..00000000 --- a/htdocs/public/high/plugins/ion-rangeslider/ion.rangeSlider.min.js +++ /dev/null @@ -1,76 +0,0 @@ -// Ion.RangeSlider | version 2.1.4 | https://github.com/IonDen/ion.rangeSlider -;(function(g){"function"===typeof define&&define.amd?define(["jquery"],function(q){g(q,document,window,navigator)}):g(jQuery,document,window,navigator)})(function(g,q,h,t,v){var u=0,p=function(){var a=t.userAgent,b=/msie\s\d+/i;return 0a)?(g("html").addClass("lt-ie9"),!0):!1}();Function.prototype.bind||(Function.prototype.bind=function(a){var b=this,d=[].slice;if("function"!=typeof b)throw new TypeError;var c=d.call(arguments,1),e=function(){if(this instanceof -e){var f=function(){};f.prototype=b.prototype;var f=new f,l=b.apply(f,c.concat(d.call(arguments)));return Object(l)===l?l:f}return b.apply(a,c.concat(d.call(arguments)))};return e});Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){var d;if(null==this)throw new TypeError('"this" is null or not defined');var c=Object(this),e=c.length>>>0;if(0===e)return-1;d=+b||0;Infinity===Math.abs(d)&&(d=0);if(d>=e)return-1;for(d=Math.max(0<=d?d:e-Math.abs(d),0);d');this.$cache.input.prop("readonly",!0);this.$cache.cont=this.$cache.input.prev();this.result.slider=this.$cache.cont;this.$cache.cont.html('01000'); -this.$cache.rs=this.$cache.cont.find(".irs");this.$cache.min=this.$cache.cont.find(".irs-min");this.$cache.max=this.$cache.cont.find(".irs-max");this.$cache.from=this.$cache.cont.find(".irs-from");this.$cache.to=this.$cache.cont.find(".irs-to");this.$cache.single=this.$cache.cont.find(".irs-single");this.$cache.bar=this.$cache.cont.find(".irs-bar");this.$cache.line=this.$cache.cont.find(".irs-line");this.$cache.grid=this.$cache.cont.find(".irs-grid");"single"===this.options.type?(this.$cache.cont.append(''), -this.$cache.edge=this.$cache.cont.find(".irs-bar-edge"),this.$cache.s_single=this.$cache.cont.find(".single"),this.$cache.from[0].style.visibility="hidden",this.$cache.to[0].style.visibility="hidden",this.$cache.shad_single=this.$cache.cont.find(".shadow-single")):(this.$cache.cont.append(''),this.$cache.s_from=this.$cache.cont.find(".from"), -this.$cache.s_to=this.$cache.cont.find(".to"),this.$cache.shad_from=this.$cache.cont.find(".shadow-from"),this.$cache.shad_to=this.$cache.cont.find(".shadow-to"),this.setTopHandler());this.options.hide_from_to&&(this.$cache.from[0].style.display="none",this.$cache.to[0].style.display="none",this.$cache.single[0].style.display="none");this.appendGrid();this.options.disable?(this.appendDisableMask(),this.$cache.input[0].disabled=!0):(this.$cache.cont.removeClass("irs-disabled"),this.$cache.input[0].disabled= -!1,this.bindEvents());this.options.drag_interval&&(this.$cache.bar[0].style.cursor="ew-resize")},setTopHandler:function(){var a=this.options.max,b=this.options.to;this.options.from>this.options.min&&b===a?this.$cache.s_from.addClass("type_last"):b');this.$cache.cont.addClass("irs-disabled")},remove:function(){this.$cache.cont.remove();this.$cache.cont=null;this.$cache.line.off("keydown.irs_"+this.plugin_count);this.$cache.body.off("touchmove.irs_"+this.plugin_count);this.$cache.body.off("mousemove.irs_"+this.plugin_count);this.$cache.win.off("touchend.irs_"+ -this.plugin_count);this.$cache.win.off("mouseup.irs_"+this.plugin_count);p&&(this.$cache.body.off("mouseup.irs_"+this.plugin_count),this.$cache.body.off("mouseleave.irs_"+this.plugin_count));this.$cache.grid_labels=[];this.coords.big=[];this.coords.big_w=[];this.coords.big_p=[];this.coords.big_x=[];cancelAnimationFrame(this.raf_id)},bindEvents:function(){if(!this.no_diapason){this.$cache.body.on("touchmove.irs_"+this.plugin_count,this.pointerMove.bind(this));this.$cache.body.on("mousemove.irs_"+this.plugin_count, -this.pointerMove.bind(this));this.$cache.win.on("touchend.irs_"+this.plugin_count,this.pointerUp.bind(this));this.$cache.win.on("mouseup.irs_"+this.plugin_count,this.pointerUp.bind(this));this.$cache.line.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click"));this.$cache.line.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click"));this.options.drag_interval&&"double"===this.options.type?(this.$cache.bar.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this, -"both")),this.$cache.bar.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"both"))):(this.$cache.bar.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.bar.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")));"single"===this.options.type?(this.$cache.single.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"single")),this.$cache.s_single.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"single")), -this.$cache.shad_single.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.single.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"single")),this.$cache.s_single.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"single")),this.$cache.edge.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.shad_single.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click"))):(this.$cache.single.on("touchstart.irs_"+ -this.plugin_count,this.pointerDown.bind(this,null)),this.$cache.single.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,null)),this.$cache.from.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"from")),this.$cache.s_from.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"from")),this.$cache.to.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"to")),this.$cache.s_to.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"to")), -this.$cache.shad_from.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.shad_to.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.from.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"from")),this.$cache.s_from.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"from")),this.$cache.to.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"to")),this.$cache.s_to.on("mousedown.irs_"+ -this.plugin_count,this.pointerDown.bind(this,"to")),this.$cache.shad_from.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.shad_to.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")));if(this.options.keyboard)this.$cache.line.on("keydown.irs_"+this.plugin_count,this.key.bind(this,"keyboard"));p&&(this.$cache.body.on("mouseup.irs_"+this.plugin_count,this.pointerUp.bind(this)),this.$cache.body.on("mouseleave.irs_"+this.plugin_count,this.pointerUp.bind(this)))}}, -pointerMove:function(a){this.dragging&&(this.coords.x_pointer=(a.pageX||a.originalEvent.touches&&a.originalEvent.touches[0].pageX)-this.coords.x_gap,this.calc())},pointerUp:function(a){if(this.current_plugin===this.plugin_count&&this.is_active){this.is_active=!1;this.$cache.cont.find(".state_hover").removeClass("state_hover");this.force_redraw=!0;p&&g("*").prop("unselectable",!1);this.updateScene();this.restoreOriginalMinInterval();if(g.contains(this.$cache.cont[0],a.target)||this.dragging)this.is_finish= -!0,this.callOnFinish();this.dragging=!1}},pointerDown:function(a,b){b.preventDefault();var d=b.pageX||b.originalEvent.touches&&b.originalEvent.touches[0].pageX;2!==b.button&&("both"===a&&this.setTempMinInterval(),a||(a=this.target),this.current_plugin=this.plugin_count,this.target=a,this.dragging=this.is_active=!0,this.coords.x_gap=this.$cache.rs.offset().left,this.coords.x_pointer=d-this.coords.x_gap,this.calcPointerPercent(),this.changeLevel(a),p&&g("*").prop("unselectable",!0),this.$cache.line.trigger("focus"), -this.updateScene())},pointerClick:function(a,b){b.preventDefault();var d=b.pageX||b.originalEvent.touches&&b.originalEvent.touches[0].pageX;2!==b.button&&(this.current_plugin=this.plugin_count,this.target=a,this.is_click=!0,this.coords.x_gap=this.$cache.rs.offset().left,this.coords.x_pointer=+(d-this.coords.x_gap).toFixed(),this.force_redraw=!0,this.calc(),this.$cache.line.trigger("focus"))},key:function(a,b){if(!(this.current_plugin!==this.plugin_count||b.altKey||b.ctrlKey||b.shiftKey||b.metaKey)){switch(b.which){case 83:case 65:case 40:case 37:b.preventDefault(); -this.moveByKey(!1);break;case 87:case 68:case 38:case 39:b.preventDefault(),this.moveByKey(!0)}return!0}},moveByKey:function(a){var b=this.coords.p_pointer,b=a?b+this.options.keyboard_step:b-this.options.keyboard_step;this.coords.x_pointer=this.toFixed(this.coords.w_rs/100*b);this.is_key=!0;this.calc()},setMinMax:function(){this.options&&(this.options.hide_min_max?(this.$cache.min[0].style.display="none",this.$cache.max[0].style.display="none"):(this.options.values.length?(this.$cache.min.html(this.decorate(this.options.p_values[this.options.min])), -this.$cache.max.html(this.decorate(this.options.p_values[this.options.max]))):(this.$cache.min.html(this.decorate(this._prettify(this.options.min),this.options.min)),this.$cache.max.html(this.decorate(this._prettify(this.options.max),this.options.max))),this.labels.w_min=this.$cache.min.outerWidth(!1),this.labels.w_max=this.$cache.max.outerWidth(!1)))},setTempMinInterval:function(){var a=this.result.to-this.result.from;null===this.old_min_interval&&(this.old_min_interval=this.options.min_interval); -this.options.min_interval=a},restoreOriginalMinInterval:function(){null!==this.old_min_interval&&(this.options.min_interval=this.old_min_interval,this.old_min_interval=null)},calc:function(a){if(this.options){this.calc_count++;if(10===this.calc_count||a)this.calc_count=0,this.coords.w_rs=this.$cache.rs.outerWidth(!1),this.calcHandlePercent();if(this.coords.w_rs){this.calcPointerPercent();a=this.getHandleX();"click"===this.target&&(this.coords.p_gap=this.coords.p_handle/2,a=this.getHandleX(),this.target= -this.options.drag_interval?"both_one":this.chooseHandle(a));switch(this.target){case "base":var b=(this.options.max-this.options.min)/100;a=(this.result.from-this.options.min)/b;b=(this.result.to-this.options.min)/b;this.coords.p_single_real=this.toFixed(a);this.coords.p_from_real=this.toFixed(a);this.coords.p_to_real=this.toFixed(b);this.coords.p_single_real=this.checkDiapason(this.coords.p_single_real,this.options.from_min,this.options.from_max);this.coords.p_from_real=this.checkDiapason(this.coords.p_from_real, -this.options.from_min,this.options.from_max);this.coords.p_to_real=this.checkDiapason(this.coords.p_to_real,this.options.to_min,this.options.to_max);this.coords.p_single_fake=this.convertToFakePercent(this.coords.p_single_real);this.coords.p_from_fake=this.convertToFakePercent(this.coords.p_from_real);this.coords.p_to_fake=this.convertToFakePercent(this.coords.p_to_real);this.target=null;break;case "single":if(this.options.from_fixed)break;this.coords.p_single_real=this.convertToRealPercent(a);this.coords.p_single_real= -this.calcWithStep(this.coords.p_single_real);this.coords.p_single_real=this.checkDiapason(this.coords.p_single_real,this.options.from_min,this.options.from_max);this.coords.p_single_fake=this.convertToFakePercent(this.coords.p_single_real);break;case "from":if(this.options.from_fixed)break;this.coords.p_from_real=this.convertToRealPercent(a);this.coords.p_from_real=this.calcWithStep(this.coords.p_from_real);this.coords.p_from_real>this.coords.p_to_real&&(this.coords.p_from_real=this.coords.p_to_real); -this.coords.p_from_real=this.checkDiapason(this.coords.p_from_real,this.options.from_min,this.options.from_max);this.coords.p_from_real=this.checkMinInterval(this.coords.p_from_real,this.coords.p_to_real,"from");this.coords.p_from_real=this.checkMaxInterval(this.coords.p_from_real,this.coords.p_to_real,"from");this.coords.p_from_fake=this.convertToFakePercent(this.coords.p_from_real);break;case "to":if(this.options.to_fixed)break;this.coords.p_to_real=this.convertToRealPercent(a);this.coords.p_to_real= -this.calcWithStep(this.coords.p_to_real);this.coords.p_to_realb&&(b=0,d=b+a);100this.coords.x_pointer||isNaN(this.coords.x_pointer)? -this.coords.x_pointer=0:this.coords.x_pointer>this.coords.w_rs&&(this.coords.x_pointer=this.coords.w_rs),this.coords.p_pointer=this.toFixed(this.coords.x_pointer/this.coords.w_rs*100)):this.coords.p_pointer=0},convertToRealPercent:function(a){return a/(100-this.coords.p_handle)*100},convertToFakePercent:function(a){return a/100*(100-this.coords.p_handle)},getHandleX:function(){var a=100-this.coords.p_handle,b=this.toFixed(this.coords.p_pointer-this.coords.p_gap);0>b?b=0:b>a&&(b=a);return b},calcHandlePercent:function(){this.coords.w_handle= -"single"===this.options.type?this.$cache.s_single.outerWidth(!1):this.$cache.s_from.outerWidth(!1);this.coords.p_handle=this.toFixed(this.coords.w_handle/this.coords.w_rs*100)},chooseHandle:function(a){return"single"===this.options.type?"single":a>=this.coords.p_from_real+(this.coords.p_to_real-this.coords.p_from_real)/2?this.options.to_fixed?"from":"to":this.options.from_fixed?"to":"from"},calcMinMax:function(){this.coords.w_rs&&(this.labels.p_min=this.labels.w_min/this.coords.w_rs*100,this.labels.p_max= -this.labels.w_max/this.coords.w_rs*100)},calcLabels:function(){this.coords.w_rs&&!this.options.hide_from_to&&("single"===this.options.type?(this.labels.w_single=this.$cache.single.outerWidth(!1),this.labels.p_single_fake=this.labels.w_single/this.coords.w_rs*100,this.labels.p_single_left=this.coords.p_single_fake+this.coords.p_handle/2-this.labels.p_single_fake/2):(this.labels.w_from=this.$cache.from.outerWidth(!1),this.labels.p_from_fake=this.labels.w_from/this.coords.w_rs*100,this.labels.p_from_left= -this.coords.p_from_fake+this.coords.p_handle/2-this.labels.p_from_fake/2,this.labels.p_from_left=this.toFixed(this.labels.p_from_left),this.labels.p_from_left=this.checkEdges(this.labels.p_from_left,this.labels.p_from_fake),this.labels.w_to=this.$cache.to.outerWidth(!1),this.labels.p_to_fake=this.labels.w_to/this.coords.w_rs*100,this.labels.p_to_left=this.coords.p_to_fake+this.coords.p_handle/2-this.labels.p_to_fake/2,this.labels.p_to_left=this.toFixed(this.labels.p_to_left),this.labels.p_to_left= -this.checkEdges(this.labels.p_to_left,this.labels.p_to_fake),this.labels.w_single=this.$cache.single.outerWidth(!1),this.labels.p_single_fake=this.labels.w_single/this.coords.w_rs*100,this.labels.p_single_left=(this.labels.p_from_left+this.labels.p_to_left+this.labels.p_to_fake)/2-this.labels.p_single_fake/2,this.labels.p_single_left=this.toFixed(this.labels.p_single_left)),this.labels.p_single_left=this.checkEdges(this.labels.p_single_left,this.labels.p_single_fake))},updateScene:function(){this.raf_id&& -(cancelAnimationFrame(this.raf_id),this.raf_id=null);clearTimeout(this.update_tm);this.update_tm=null;this.options&&(this.drawHandles(),this.is_active?this.raf_id=requestAnimationFrame(this.updateScene.bind(this)):this.update_tm=setTimeout(this.updateScene.bind(this),300))},drawHandles:function(){this.coords.w_rs=this.$cache.rs.outerWidth(!1);if(this.coords.w_rs){this.coords.w_rs!==this.coords.w_rs_old&&(this.target="base",this.is_resize=!0);if(this.coords.w_rs!==this.coords.w_rs_old||this.force_redraw)this.setMinMax(), -this.calc(!0),this.drawLabels(),this.options.grid&&(this.calcGridMargin(),this.calcGridLabels()),this.force_redraw=!0,this.coords.w_rs_old=this.coords.w_rs,this.drawShadow();if(this.coords.w_rs&&(this.dragging||this.force_redraw||this.is_key)){if(this.old_from!==this.result.from||this.old_to!==this.result.to||this.force_redraw||this.is_key){this.drawLabels();this.$cache.bar[0].style.left=this.coords.p_bar_x+"%";this.$cache.bar[0].style.width=this.coords.p_bar_w+"%";if("single"===this.options.type)this.$cache.s_single[0].style.left= -this.coords.p_single_fake+"%",this.$cache.single[0].style.left=this.labels.p_single_left+"%",this.options.values.length?this.$cache.input.prop("value",this.result.from_value):this.$cache.input.prop("value",this.result.from),this.$cache.input.data("from",this.result.from);else{this.$cache.s_from[0].style.left=this.coords.p_from_fake+"%";this.$cache.s_to[0].style.left=this.coords.p_to_fake+"%";if(this.old_from!==this.result.from||this.force_redraw)this.$cache.from[0].style.left=this.labels.p_from_left+ -"%";if(this.old_to!==this.result.to||this.force_redraw)this.$cache.to[0].style.left=this.labels.p_to_left+"%";this.$cache.single[0].style.left=this.labels.p_single_left+"%";this.options.values.length?this.$cache.input.prop("value",this.result.from_value+this.options.input_values_separator+this.result.to_value):this.$cache.input.prop("value",this.result.from+this.options.input_values_separator+this.result.to);this.$cache.input.data("from",this.result.from);this.$cache.input.data("to",this.result.to)}this.old_from=== -this.result.from&&this.old_to===this.result.to||this.is_start||this.$cache.input.trigger("change");this.old_from=this.result.from;this.old_to=this.result.to;this.is_resize||this.is_update||this.is_start||this.is_finish||this.callOnChange();if(this.is_key||this.is_click)this.is_click=this.is_key=!1,this.callOnFinish();this.is_finish=this.is_resize=this.is_update=!1}this.force_redraw=this.is_click=this.is_key=this.is_start=!1}}},drawLabels:function(){if(this.options){var a=this.options.values.length, -b=this.options.p_values,d;if(!this.options.hide_from_to)if("single"===this.options.type)a=a?this.decorate(b[this.result.from]):this.decorate(this._prettify(this.result.from),this.result.from),this.$cache.single.html(a),this.calcLabels(),this.$cache.min[0].style.visibility=this.labels.p_single_left100-this.labels.p_max-1?"hidden":"visible";else{a?(this.options.decorate_both? -(a=this.decorate(b[this.result.from]),a+=this.options.values_separator,a+=this.decorate(b[this.result.to])):a=this.decorate(b[this.result.from]+this.options.values_separator+b[this.result.to]),d=this.decorate(b[this.result.from]),b=this.decorate(b[this.result.to])):(this.options.decorate_both?(a=this.decorate(this._prettify(this.result.from),this.result.from),a+=this.options.values_separator,a+=this.decorate(this._prettify(this.result.to),this.result.to)):a=this.decorate(this._prettify(this.result.from)+ -this.options.values_separator+this._prettify(this.result.to),this.result.to),d=this.decorate(this._prettify(this.result.from),this.result.from),b=this.decorate(this._prettify(this.result.to),this.result.to));this.$cache.single.html(a);this.$cache.from.html(d);this.$cache.to.html(b);this.calcLabels();b=Math.min(this.labels.p_single_left,this.labels.p_from_left);a=this.labels.p_single_left+this.labels.p_single_fake;d=this.labels.p_to_left+this.labels.p_to_fake;var c=Math.max(a,d);this.labels.p_from_left+ -this.labels.p_from_fake>=this.labels.p_to_left?(this.$cache.from[0].style.visibility="hidden",this.$cache.to[0].style.visibility="hidden",this.$cache.single[0].style.visibility="visible",this.result.from===this.result.to?("from"===this.target?this.$cache.from[0].style.visibility="visible":"to"===this.target?this.$cache.to[0].style.visibility="visible":this.target||(this.$cache.from[0].style.visibility="visible"),this.$cache.single[0].style.visibility="hidden",c=d):(this.$cache.from[0].style.visibility= -"hidden",this.$cache.to[0].style.visibility="hidden",this.$cache.single[0].style.visibility="visible",c=Math.max(a,d))):(this.$cache.from[0].style.visibility="visible",this.$cache.to[0].style.visibility="visible",this.$cache.single[0].style.visibility="hidden");this.$cache.min[0].style.visibility=b100-this.labels.p_max-1?"hidden":"visible"}}},drawShadow:function(){var a=this.options,b=this.$cache,d="number"===typeof a.from_min&& -!isNaN(a.from_min),c="number"===typeof a.from_max&&!isNaN(a.from_max),e="number"===typeof a.to_min&&!isNaN(a.to_min),f="number"===typeof a.to_max&&!isNaN(a.to_max);"single"===a.type?a.from_shadow&&(d||c)?(d=this.convertToPercent(d?a.from_min:a.min),c=this.convertToPercent(c?a.from_max:a.max)-d,d=this.toFixed(d-this.coords.p_handle/100*d),c=this.toFixed(c-this.coords.p_handle/100*c),d+=this.coords.p_handle/2,b.shad_single[0].style.display="block",b.shad_single[0].style.left=d+"%",b.shad_single[0].style.width= -c+"%"):b.shad_single[0].style.display="none":(a.from_shadow&&(d||c)?(d=this.convertToPercent(d?a.from_min:a.min),c=this.convertToPercent(c?a.from_max:a.max)-d,d=this.toFixed(d-this.coords.p_handle/100*d),c=this.toFixed(c-this.coords.p_handle/100*c),d+=this.coords.p_handle/2,b.shad_from[0].style.display="block",b.shad_from[0].style.left=d+"%",b.shad_from[0].style.width=c+"%"):b.shad_from[0].style.display="none",a.to_shadow&&(e||f)?(e=this.convertToPercent(e?a.to_min:a.min),a=this.convertToPercent(f? -a.to_max:a.max)-e,e=this.toFixed(e-this.coords.p_handle/100*e),a=this.toFixed(a-this.coords.p_handle/100*a),e+=this.coords.p_handle/2,b.shad_to[0].style.display="block",b.shad_to[0].style.left=e+"%",b.shad_to[0].style.width=a+"%"):b.shad_to[0].style.display="none")},callOnStart:function(){if(this.options.onStart&&"function"===typeof this.options.onStart)this.options.onStart(this.result)},callOnChange:function(){if(this.options.onChange&&"function"===typeof this.options.onChange)this.options.onChange(this.result)}, -callOnFinish:function(){if(this.options.onFinish&&"function"===typeof this.options.onFinish)this.options.onFinish(this.result)},callOnUpdate:function(){if(this.options.onUpdate&&"function"===typeof this.options.onUpdate)this.options.onUpdate(this.result)},toggleInput:function(){this.$cache.input.toggleClass("irs-hidden-input")},convertToPercent:function(a,b){var d=this.options.max-this.options.min;return d?this.toFixed((b?a:a-this.options.min)/(d/100)):(this.no_diapason=!0,0)},convertToValue:function(a){var b= -this.options.min,d=this.options.max,c=b.toString().split(".")[1],e=d.toString().split(".")[1],f,l,g=0,k=0;if(0===a)return this.options.min;if(100===a)return this.options.max;c&&(g=f=c.length);e&&(g=l=e.length);f&&l&&(g=f>=l?f:l);0>b&&(k=Math.abs(b),b=+(b+k).toFixed(g),d=+(d+k).toFixed(g));a=(d-b)/100*a+b;(b=this.options.step.toString().split(".")[1])?a=+a.toFixed(b.length):(a/=this.options.step,a*=this.options.step,a=+a.toFixed(0));k&&(a-=k);k=b?+a.toFixed(b.length):this.toFixed(a);kthis.options.max&&(k=this.options.max);return k},calcWithStep:function(a){var b=Math.round(a/this.coords.p_step)*this.coords.p_step;100c.max_interval&&(a=b-c.max_interval):a-b>c.max_interval&&(a=b+c.max_interval);return this.convertToPercent(a)},checkDiapason:function(a,b,d){a=this.convertToValue(a);var c=this.options;"number"!==typeof b&&(b=c.min);"number"!==typeof d&&(d=c.max);ad&&(a=d);return this.convertToPercent(a)},toFixed:function(a){a=a.toFixed(9);return+a},_prettify:function(a){return this.options.prettify_enabled? -this.options.prettify&&"function"===typeof this.options.prettify?this.options.prettify(a):this.prettify(a):a},prettify:function(a){return a.toString().replace(/(\d{1,3}(?=(?:\d\d\d)+(?!\d)))/g,"$1"+this.options.prettify_separator)},checkEdges:function(a,b){if(!this.options.force_edges)return this.toFixed(a);0>a?a=0:a>100-b&&(a=100-b);return this.toFixed(a)},validate:function(){var a=this.options,b=this.result,d=a.values,c=d.length,e,f;"string"===typeof a.min&&(a.min=+a.min);"string"===typeof a.max&& -(a.max=+a.max);"string"===typeof a.from&&(a.from=+a.from);"string"===typeof a.to&&(a.to=+a.to);"string"===typeof a.step&&(a.step=+a.step);"string"===typeof a.from_min&&(a.from_min=+a.from_min);"string"===typeof a.from_max&&(a.from_max=+a.from_max);"string"===typeof a.to_min&&(a.to_min=+a.to_min);"string"===typeof a.to_max&&(a.to_max=+a.to_max);"string"===typeof a.keyboard_step&&(a.keyboard_step=+a.keyboard_step);"string"===typeof a.grid_num&&(a.grid_num=+a.grid_num);a.maxa.max&&(a.from=a.max);else{if(a.froma.max)a.from=a.min;if(a.to>a.max||a.toa.to&&(a.from=a.to)}if("number"!==typeof a.step||isNaN(a.step)||!a.step||0>a.step)a.step= -1;if("number"!==typeof a.keyboard_step||isNaN(a.keyboard_step)||!a.keyboard_step||0>a.keyboard_step)a.keyboard_step=5;"number"===typeof a.from_min&&a.froma.from_max&&(a.from=a.from_max);"number"===typeof a.to_min&&a.toa.to_max&&(a.to=a.to_max);if(b){b.min!==a.min&&(b.min=a.min);b.max!==a.max&&(b.max=a.max);if(b.fromb.max)b.from=a.from;if(b.to -b.max)b.to=a.to}if("number"!==typeof a.min_interval||isNaN(a.min_interval)||!a.min_interval||0>a.min_interval)a.min_interval=0;if("number"!==typeof a.max_interval||isNaN(a.max_interval)||!a.max_interval||0>a.max_interval)a.max_interval=0;a.min_interval&&a.min_interval>a.max-a.min&&(a.min_interval=a.max-a.min);a.max_interval&&a.max_interval>a.max-a.min&&(a.max_interval=a.max-a.min)},decorate:function(a,b){var d="",c=this.options;c.prefix&&(d+=c.prefix);d+=a;c.max_postfix&&(c.values.length&&a===c.p_values[c.max]? -(d+=c.max_postfix,c.postfix&&(d+=" ")):b===c.max&&(d+=c.max_postfix,c.postfix&&(d+=" ")));c.postfix&&(d+=c.postfix);return d},updateFrom:function(){this.result.from=this.options.from;this.result.from_percent=this.convertToPercent(this.result.from);this.options.values&&(this.result.from_value=this.options.values[this.result.from])},updateTo:function(){this.result.to=this.options.to;this.result.to_percent=this.convertToPercent(this.result.to);this.options.values&&(this.result.to_value=this.options.values[this.result.to])}, -updateResult:function(){this.result.min=this.options.min;this.result.max=this.options.max;this.updateFrom();this.updateTo()},appendGrid:function(){if(this.options.grid){var a=this.options,b,d;b=a.max-a.min;var c=a.grid_num,e=0,f=0,g=4,h,k,m=0,n="";this.calcGridMargin();a.grid_snap?(c=b/a.step,e=this.toFixed(a.step/(b/100))):e=this.toFixed(100/c);4h&&(h=0));this.coords.big[b]=f;k=(f-e*(b-1))/ -(h+1);for(d=1;d<=h&&0!==f;d++)m=this.toFixed(f-k*d),n+='';n+='';m=this.convertToValue(f);m=a.values.length?a.p_values[m]:this._prettify(m);n+=''+m+""}this.coords.big_num=Math.ceil(c+1);this.$cache.cont.addClass("irs-with-grid");this.$cache.grid.html(n);this.cacheGridLabels()}},cacheGridLabels:function(){var a, -b,d=this.coords.big_num;for(b=0;b100+this.coords.grid_gap&&(d[c-1]=100+this.coords.grid_gap,b[c-1]=this.toFixed(d[c-1]-this.coords.big_p[c-1]),this.coords.big_x[c-1]=this.toFixed(this.coords.big_p[c-1]-this.coords.grid_gap)));this.calcGridCollision(2,b,d);this.calcGridCollision(4,b,d);for(a=0;a=g)break;f=this.$cache.grid_labels[e][0];f.style.visibility=d[c]<=b[e]?"visible":"hidden"}},calcGridMargin:function(){this.options.grid_margin&&(this.coords.w_rs=this.$cache.rs.outerWidth(!1),this.coords.w_rs&&(this.coords.w_handle="single"===this.options.type?this.$cache.s_single.outerWidth(!1):this.$cache.s_from.outerWidth(!1),this.coords.p_handle=this.toFixed(this.coords.w_handle/ -this.coords.w_rs*100),this.coords.grid_gap=this.toFixed(this.coords.p_handle/2-.1),this.$cache.grid[0].style.width=this.toFixed(100-this.coords.p_handle)+"%",this.$cache.grid[0].style.left=this.coords.grid_gap+"%"))},update:function(a){this.input&&(this.is_update=!0,this.options.from=this.result.from,this.options.to=this.result.to,this.options=g.extend(this.options,a),this.validate(),this.updateResult(a),this.toggleInput(),this.remove(),this.init(!0))},reset:function(){this.input&&(this.updateResult(), -this.update())},destroy:function(){this.input&&(this.toggleInput(),this.$cache.input.prop("readonly",!1),g.data(this.input,"ionRangeSlider",null),this.remove(),this.options=this.input=null)}};g.fn.ionRangeSlider=function(a){return this.each(function(){g.data(this,"ionRangeSlider")||g.data(this,"ionRangeSlider",new r(this,a,u++))})};(function(){for(var a=0,b=["ms","moz","webkit","o"],d=0;de;e++){var i=u[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s.isBoxSizeOuter=r=200==t(o.width),i.removeChild(e)}}function s(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var s=n(e);if("none"==s.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==s.boxSizing,l=0;h>l;l++){var f=u[l],c=s[f],m=parseFloat(c);a[f]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,y=a.paddingTop+a.paddingBottom,g=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,I=a.borderTopWidth+a.borderBottomWidth,z=d&&r,x=t(s.width);x!==!1&&(a.width=x+(z?0:p+_));var S=t(s.height);return S!==!1&&(a.height=S+(z?0:y+I)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(y+I),a.outerWidth=a.width+g,a.outerHeight=a.height+v,a}}var r,a="undefined"==typeof console?e:function(t){console.error(t)},u=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],h=u.length,d=!1;return s}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;ir?"round":"floor";s=Math[a](s),this.cols=Math.max(s,1)},i.prototype.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},i.prototype._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this._getColGroup(n),s=Math.min.apply(Math,o),r=o.indexOf(s),a={x:this.columnWidth*r,y:s},u=s+t.size.outerHeight,h=this.cols+1-o.length,d=0;h>d;d++)this.colYs[r+d]=u;return a},i.prototype._getColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++){var o=this.colYs.slice(n,n+t);e[n]=Math.max.apply(Math,o)}return e},i.prototype._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),s=o?n.left:n.right,r=s+i.outerWidth,a=Math.floor(s/this.columnWidth);a=Math.max(0,a);var u=Math.floor(r/this.columnWidth);u-=r%this.columnWidth?0:1,u=Math.min(this.cols-1,u);for(var h=this._getOption("originTop"),d=(h?n.top:n.bottom)+i.outerHeight,l=a;u>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},i.prototype._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},i.prototype._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},i.prototype.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-modes/masonry",["../layout-mode","masonry/masonry"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode"),require("masonry-layout")):e(t.Isotope.LayoutMode,t.Masonry)}(window,function(t,e){"use strict";var i=t.create("masonry"),n=i.prototype,o={_getElementOffset:!0,layout:!0,_getMeasurement:!0};for(var s in e.prototype)o[s]||(n[s]=e.prototype[s]);var r=n.measureColumns;n.measureColumns=function(){this.items=this.isotope.filteredItems,r.call(this)};var a=n._getOption;return n._getOption=function(t){return"fitWidth"==t?void 0!==this.options.isFitWidth?this.options.isFitWidth:this.options.fitWidth:a.apply(this.isotope,arguments)},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-modes/fit-rows",["../layout-mode"],e):"object"==typeof exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("fitRows"),i=e.prototype;return i._resetLayout=function(){this.x=0,this.y=0,this.maxY=0,this._getMeasurement("gutter","outerWidth")},i._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth+this.gutter,i=this.isotope.size.innerWidth+this.gutter;0!==this.x&&e+this.x>i&&(this.x=0,this.y=this.maxY);var n={x:this.x,y:this.y};return this.maxY=Math.max(this.maxY,this.y+t.size.outerHeight),this.x+=e,n},i._getContainerSize=function(){return{height:this.maxY}},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-modes/vertical",["../layout-mode"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("vertical",{horizontalAlignment:0}),i=e.prototype;return i._resetLayout=function(){this.y=0},i._getItemLayoutPosition=function(t){t.getSize();var e=(this.isotope.size.innerWidth-t.size.outerWidth)*this.options.horizontalAlignment,i=this.y;return this.y+=t.size.outerHeight,{x:e,y:i}},i._getContainerSize=function(){return{height:this.y}},e}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size","desandro-matches-selector/matches-selector","fizzy-ui-utils/utils","isotope/js/item","isotope/js/layout-mode","isotope/js/layout-modes/masonry","isotope/js/layout-modes/fit-rows","isotope/js/layout-modes/vertical"],function(i,n,o,s,r,a){return e(t,i,n,o,s,r,a)}):"object"==typeof module&&module.exports?module.exports=e(t,require("outlayer"),require("get-size"),require("desandro-matches-selector"),require("fizzy-ui-utils"),require("isotope/js/item"),require("isotope/js/layout-mode"),require("isotope/js/layout-modes/masonry"),require("isotope/js/layout-modes/fit-rows"),require("isotope/js/layout-modes/vertical")):t.Isotope=e(t,t.Outlayer,t.getSize,t.matchesSelector,t.fizzyUIUtils,t.Isotope.Item,t.Isotope.LayoutMode)}(window,function(t,e,i,n,o,s,r){function a(t,e){return function(i,n){for(var o=0;oa||a>r){var u=void 0!==e[s]?e[s]:e,h=u?1:-1;return(r>a?1:-1)*h}}return 0}}var u=t.jQuery,h=String.prototype.trim?function(t){return t.trim()}:function(t){return t.replace(/^\s+|\s+$/g,"")},d=e.create("isotope",{layoutMode:"masonry",isJQueryFiltering:!0,sortAscending:!0});d.Item=s,d.LayoutMode=r;var l=d.prototype;l._create=function(){this.itemGUID=0,this._sorters={},this._getSorters(),e.prototype._create.call(this),this.modes={},this.filteredItems=this.items,this.sortHistory=["original-order"];for(var t in r.modes)this._initLayoutMode(t)},l.reloadItems=function(){this.itemGUID=0,e.prototype.reloadItems.call(this)},l._itemize=function(){for(var t=e.prototype._itemize.apply(this,arguments),i=0;ii;i++){var n=t[i];n.updateSortData()}};var f=function(){function t(t){if("string"!=typeof t)return t;var i=h(t).split(" "),n=i[0],o=n.match(/^\[(.+)\]$/),s=o&&o[1],r=e(s,n),a=d.sortDataParsers[i[1]]; -return t=a?function(t){return t&&a(r(t))}:function(t){return t&&r(t)}}function e(t,e){return t?function(e){return e.getAttribute(t)}:function(t){var i=t.querySelector(e);return i&&i.textContent}}return t}();d.sortDataParsers={parseInt:function(t){return parseInt(t,10)},parseFloat:function(t){return parseFloat(t)}},l._sort=function(){var t=this.options.sortBy;if(t){var e=[].concat.apply(t,this.sortHistory),i=a(e,this.options.sortAscending);this.filteredItems.sort(i),t!=this.sortHistory[0]&&this.sortHistory.unshift(t)}},l._mode=function(){var t=this.options.layoutMode,e=this.modes[t];if(!e)throw new Error("No layout mode: "+t);return e.options=this.options[t],e},l._resetLayout=function(){e.prototype._resetLayout.call(this),this._mode()._resetLayout()},l._getItemLayoutPosition=function(t){return this._mode()._getItemLayoutPosition(t)},l._manageStamp=function(t){this._mode()._manageStamp(t)},l._getContainerSize=function(){return this._mode()._getContainerSize()},l.needsResizeLayout=function(){return this._mode().needsResizeLayout()},l.appended=function(t){var e=this.addItems(t);if(e.length){var i=this._filterRevealAdded(e);this.filteredItems=this.filteredItems.concat(i)}},l.prepended=function(t){var e=this._itemize(t);if(e.length){this._resetLayout(),this._manageStamps();var i=this._filterRevealAdded(e);this.layoutItems(this.filteredItems),this.filteredItems=i.concat(this.filteredItems),this.items=e.concat(this.items)}},l._filterRevealAdded=function(t){var e=this._filter(t);return this.hide(e.needHide),this.reveal(e.matches),this.layoutItems(e.matches,!0),e.matches},l.insert=function(t){var e=this.addItems(t);if(e.length){var i,n,o=e.length;for(i=0;o>i;i++)n=e[i],this.element.appendChild(n.element);var s=this._filter(e).matches;for(i=0;o>i;i++)e[i].isLayoutInstant=!0;for(this.arrange(),i=0;o>i;i++)delete e[i].isLayoutInstant;this.reveal(s)}};var c=l.remove;return l.remove=function(t){t=o.makeArray(t);var e=this.getItems(t);c.call(this,t);for(var i=e&&e.length,n=0;i&&i>n;n++){var s=e[n];o.removeFrom(this.filteredItems,s)}},l.shuffle=function(){for(var t=0;t elements as element.getContext(). - * @this {HTMLElement} - * @return {CanvasRenderingContext2D_} - */ - function getContext() { - return this.context_ || - (this.context_ = new CanvasRenderingContext2D_(this)); - } - - var slice = Array.prototype.slice; - - /** - * Binds a function to an object. The returned function will always use the - * passed in {@code obj} as {@code this}. - * - * Example: - * - * g = bind(f, obj, a, b) - * g(c, d) // will do f.call(obj, a, b, c, d) - * - * @param {Function} f The function to bind the object to - * @param {Object} obj The object that should act as this when the function - * is called - * @param {*} var_args Rest arguments that will be used as the initial - * arguments when the function is called - * @return {Function} A new function that has bound this - */ - function bind(f, obj, var_args) { - var a = slice.call(arguments, 2); - return function() { - return f.apply(obj, a.concat(slice.call(arguments))); - }; - } - - var G_vmlCanvasManager_ = { - init: function(opt_doc) { - if (/MSIE/.test(navigator.userAgent) && !window.opera) { - var doc = opt_doc || document; - // Create a dummy element so that IE will allow canvas elements to be - // recognized. - doc.createElement('canvas'); - doc.attachEvent('onreadystatechange', bind(this.init_, this, doc)); - } - }, - - init_: function(doc) { - // create xmlns - if (!doc.namespaces['g_vml_']) { - doc.namespaces.add('g_vml_', 'urn:schemas-microsoft-com:vml', - '#default#VML'); - - } - if (!doc.namespaces['g_o_']) { - doc.namespaces.add('g_o_', 'urn:schemas-microsoft-com:office:office', - '#default#VML'); - } - - // Setup default CSS. Only add one style sheet per document - if (!doc.styleSheets['ex_canvas_']) { - var ss = doc.createStyleSheet(); - ss.owningElement.id = 'ex_canvas_'; - ss.cssText = 'canvas{display:inline-block;overflow:hidden;' + - // default size is 300x150 in Gecko and Opera - 'text-align:left;width:300px;height:150px}' + - 'g_vml_\\:*{behavior:url(#default#VML)}' + - 'g_o_\\:*{behavior:url(#default#VML)}'; - - } - - // find all canvas elements - var els = doc.getElementsByTagName('canvas'); - for (var i = 0; i < els.length; i++) { - this.initElement(els[i]); - } - }, - - /** - * Public initializes a canvas element so that it can be used as canvas - * element from now on. This is called automatically before the page is - * loaded but if you are creating elements using createElement you need to - * make sure this is called on the element. - * @param {HTMLElement} el The canvas element to initialize. - * @return {HTMLElement} the element that was created. - */ - initElement: function(el) { - if (!el.getContext) { - - el.getContext = getContext; - - // Remove fallback content. There is no way to hide text nodes so we - // just remove all childNodes. We could hide all elements and remove - // text nodes but who really cares about the fallback content. - el.innerHTML = ''; - - // do not use inline function because that will leak memory - el.attachEvent('onpropertychange', onPropertyChange); - el.attachEvent('onresize', onResize); - - var attrs = el.attributes; - if (attrs.width && attrs.width.specified) { - // TODO: use runtimeStyle and coordsize - // el.getContext().setWidth_(attrs.width.nodeValue); - el.style.width = attrs.width.nodeValue + 'px'; - } else { - el.width = el.clientWidth; - } - if (attrs.height && attrs.height.specified) { - // TODO: use runtimeStyle and coordsize - // el.getContext().setHeight_(attrs.height.nodeValue); - el.style.height = attrs.height.nodeValue + 'px'; - } else { - el.height = el.clientHeight; - } - //el.getContext().setCoordsize_() - } - return el; - } - }; - - function onPropertyChange(e) { - var el = e.srcElement; - - switch (e.propertyName) { - case 'width': - el.style.width = el.attributes.width.nodeValue + 'px'; - el.getContext().clearRect(); - break; - case 'height': - el.style.height = el.attributes.height.nodeValue + 'px'; - el.getContext().clearRect(); - break; - } - } - - function onResize(e) { - var el = e.srcElement; - if (el.firstChild) { - el.firstChild.style.width = el.clientWidth + 'px'; - el.firstChild.style.height = el.clientHeight + 'px'; - } - } - - G_vmlCanvasManager_.init(); - - // precompute "00" to "FF" - var dec2hex = []; - for (var i = 0; i < 16; i++) { - for (var j = 0; j < 16; j++) { - dec2hex[i * 16 + j] = i.toString(16) + j.toString(16); - } - } - - function createMatrixIdentity() { - return [ - [1, 0, 0], - [0, 1, 0], - [0, 0, 1] - ]; - } - - function matrixMultiply(m1, m2) { - var result = createMatrixIdentity(); - - for (var x = 0; x < 3; x++) { - for (var y = 0; y < 3; y++) { - var sum = 0; - - for (var z = 0; z < 3; z++) { - sum += m1[x][z] * m2[z][y]; - } - - result[x][y] = sum; - } - } - return result; - } - - function copyState(o1, o2) { - o2.fillStyle = o1.fillStyle; - o2.lineCap = o1.lineCap; - o2.lineJoin = o1.lineJoin; - o2.lineWidth = o1.lineWidth; - o2.miterLimit = o1.miterLimit; - o2.shadowBlur = o1.shadowBlur; - o2.shadowColor = o1.shadowColor; - o2.shadowOffsetX = o1.shadowOffsetX; - o2.shadowOffsetY = o1.shadowOffsetY; - o2.strokeStyle = o1.strokeStyle; - o2.globalAlpha = o1.globalAlpha; - o2.arcScaleX_ = o1.arcScaleX_; - o2.arcScaleY_ = o1.arcScaleY_; - o2.lineScale_ = o1.lineScale_; - } - - function processStyle(styleString) { - var str, alpha = 1; - - styleString = String(styleString); - if (styleString.substring(0, 3) == 'rgb') { - var start = styleString.indexOf('(', 3); - var end = styleString.indexOf(')', start + 1); - var guts = styleString.substring(start + 1, end).split(','); - - str = '#'; - for (var i = 0; i < 3; i++) { - str += dec2hex[Number(guts[i])]; - } - - if (guts.length == 4 && styleString.substr(3, 1) == 'a') { - alpha = guts[3]; - } - } else { - str = styleString; - } - - return {color: str, alpha: alpha}; - } - - function processLineCap(lineCap) { - switch (lineCap) { - case 'butt': - return 'flat'; - case 'round': - return 'round'; - case 'square': - default: - return 'square'; - } - } - - /** - * This class implements CanvasRenderingContext2D interface as described by - * the WHATWG. - * @param {HTMLElement} surfaceElement The element that the 2D context should - * be associated with - */ - function CanvasRenderingContext2D_(surfaceElement) { - this.m_ = createMatrixIdentity(); - - this.mStack_ = []; - this.aStack_ = []; - this.currentPath_ = []; - - // Canvas context properties - this.strokeStyle = '#000'; - this.fillStyle = '#000'; - - this.lineWidth = 1; - this.lineJoin = 'miter'; - this.lineCap = 'butt'; - this.miterLimit = Z * 1; - this.globalAlpha = 1; - this.canvas = surfaceElement; - - var el = surfaceElement.ownerDocument.createElement('div'); - el.style.width = surfaceElement.clientWidth + 'px'; - el.style.height = surfaceElement.clientHeight + 'px'; - el.style.overflow = 'hidden'; - el.style.position = 'absolute'; - surfaceElement.appendChild(el); - - this.element_ = el; - this.arcScaleX_ = 1; - this.arcScaleY_ = 1; - this.lineScale_ = 1; - } - - var contextPrototype = CanvasRenderingContext2D_.prototype; - contextPrototype.clearRect = function() { - this.element_.innerHTML = ''; - }; - - contextPrototype.beginPath = function() { - // TODO: Branch current matrix so that save/restore has no effect - // as per safari docs. - this.currentPath_ = []; - }; - - contextPrototype.moveTo = function(aX, aY) { - var p = this.getCoords_(aX, aY); - this.currentPath_.push({type: 'moveTo', x: p.x, y: p.y}); - this.currentX_ = p.x; - this.currentY_ = p.y; - }; - - contextPrototype.lineTo = function(aX, aY) { - var p = this.getCoords_(aX, aY); - this.currentPath_.push({type: 'lineTo', x: p.x, y: p.y}); - - this.currentX_ = p.x; - this.currentY_ = p.y; - }; - - contextPrototype.bezierCurveTo = function(aCP1x, aCP1y, - aCP2x, aCP2y, - aX, aY) { - var p = this.getCoords_(aX, aY); - var cp1 = this.getCoords_(aCP1x, aCP1y); - var cp2 = this.getCoords_(aCP2x, aCP2y); - bezierCurveTo(this, cp1, cp2, p); - }; - - // Helper function that takes the already fixed cordinates. - function bezierCurveTo(self, cp1, cp2, p) { - self.currentPath_.push({ - type: 'bezierCurveTo', - cp1x: cp1.x, - cp1y: cp1.y, - cp2x: cp2.x, - cp2y: cp2.y, - x: p.x, - y: p.y - }); - self.currentX_ = p.x; - self.currentY_ = p.y; - } - - contextPrototype.quadraticCurveTo = function(aCPx, aCPy, aX, aY) { - // the following is lifted almost directly from - // http://developer.mozilla.org/en/docs/Canvas_tutorial:Drawing_shapes - - var cp = this.getCoords_(aCPx, aCPy); - var p = this.getCoords_(aX, aY); - - var cp1 = { - x: this.currentX_ + 2.0 / 3.0 * (cp.x - this.currentX_), - y: this.currentY_ + 2.0 / 3.0 * (cp.y - this.currentY_) - }; - var cp2 = { - x: cp1.x + (p.x - this.currentX_) / 3.0, - y: cp1.y + (p.y - this.currentY_) / 3.0 - }; - - bezierCurveTo(this, cp1, cp2, p); - }; - - contextPrototype.arc = function(aX, aY, aRadius, - aStartAngle, aEndAngle, aClockwise) { - aRadius *= Z; - var arcType = aClockwise ? 'at' : 'wa'; - - var xStart = aX + mc(aStartAngle) * aRadius - Z2; - var yStart = aY + ms(aStartAngle) * aRadius - Z2; - - var xEnd = aX + mc(aEndAngle) * aRadius - Z2; - var yEnd = aY + ms(aEndAngle) * aRadius - Z2; - - // IE won't render arches drawn counter clockwise if xStart == xEnd. - if (xStart == xEnd && !aClockwise) { - xStart += 0.125; // Offset xStart by 1/80 of a pixel. Use something - // that can be represented in binary - } - - var p = this.getCoords_(aX, aY); - var pStart = this.getCoords_(xStart, yStart); - var pEnd = this.getCoords_(xEnd, yEnd); - - this.currentPath_.push({type: arcType, - x: p.x, - y: p.y, - radius: aRadius, - xStart: pStart.x, - yStart: pStart.y, - xEnd: pEnd.x, - yEnd: pEnd.y}); - - }; - - contextPrototype.rect = function(aX, aY, aWidth, aHeight) { - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - }; - - contextPrototype.strokeRect = function(aX, aY, aWidth, aHeight) { - var oldPath = this.currentPath_; - this.beginPath(); - - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - this.stroke(); - - this.currentPath_ = oldPath; - }; - - contextPrototype.fillRect = function(aX, aY, aWidth, aHeight) { - var oldPath = this.currentPath_; - this.beginPath(); - - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - this.fill(); - - this.currentPath_ = oldPath; - }; - - contextPrototype.createLinearGradient = function(aX0, aY0, aX1, aY1) { - var gradient = new CanvasGradient_('gradient'); - gradient.x0_ = aX0; - gradient.y0_ = aY0; - gradient.x1_ = aX1; - gradient.y1_ = aY1; - return gradient; - }; - - contextPrototype.createRadialGradient = function(aX0, aY0, aR0, - aX1, aY1, aR1) { - var gradient = new CanvasGradient_('gradientradial'); - gradient.x0_ = aX0; - gradient.y0_ = aY0; - gradient.r0_ = aR0; - gradient.x1_ = aX1; - gradient.y1_ = aY1; - gradient.r1_ = aR1; - return gradient; - }; - - contextPrototype.drawImage = function(image, var_args) { - var dx, dy, dw, dh, sx, sy, sw, sh; - - // to find the original width we overide the width and height - var oldRuntimeWidth = image.runtimeStyle.width; - var oldRuntimeHeight = image.runtimeStyle.height; - image.runtimeStyle.width = 'auto'; - image.runtimeStyle.height = 'auto'; - - // get the original size - var w = image.width; - var h = image.height; - - // and remove overides - image.runtimeStyle.width = oldRuntimeWidth; - image.runtimeStyle.height = oldRuntimeHeight; - - if (arguments.length == 3) { - dx = arguments[1]; - dy = arguments[2]; - sx = sy = 0; - sw = dw = w; - sh = dh = h; - } else if (arguments.length == 5) { - dx = arguments[1]; - dy = arguments[2]; - dw = arguments[3]; - dh = arguments[4]; - sx = sy = 0; - sw = w; - sh = h; - } else if (arguments.length == 9) { - sx = arguments[1]; - sy = arguments[2]; - sw = arguments[3]; - sh = arguments[4]; - dx = arguments[5]; - dy = arguments[6]; - dw = arguments[7]; - dh = arguments[8]; - } else { - throw Error('Invalid number of arguments'); - } - - var d = this.getCoords_(dx, dy); - - var w2 = sw / 2; - var h2 = sh / 2; - - var vmlStr = []; - - var W = 10; - var H = 10; - - // For some reason that I've now forgotten, using divs didn't work - vmlStr.push(' ' , - '', - ''); - - this.element_.insertAdjacentHTML('BeforeEnd', - vmlStr.join('')); - }; - - contextPrototype.stroke = function(aFill) { - var lineStr = []; - var lineOpen = false; - var a = processStyle(aFill ? this.fillStyle : this.strokeStyle); - var color = a.color; - var opacity = a.alpha * this.globalAlpha; - - var W = 10; - var H = 10; - - lineStr.push(''); - - if (!aFill) { - var lineWidth = this.lineScale_ * this.lineWidth; - - // VML cannot correctly render a line if the width is less than 1px. - // In that case, we dilute the color to make the line look thinner. - if (lineWidth < 1) { - opacity *= lineWidth; - } - - lineStr.push( - '' - ); - } else if (typeof this.fillStyle == 'object') { - var fillStyle = this.fillStyle; - var angle = 0; - var focus = {x: 0, y: 0}; - - // additional offset - var shift = 0; - // scale factor for offset - var expansion = 1; - - if (fillStyle.type_ == 'gradient') { - var x0 = fillStyle.x0_ / this.arcScaleX_; - var y0 = fillStyle.y0_ / this.arcScaleY_; - var x1 = fillStyle.x1_ / this.arcScaleX_; - var y1 = fillStyle.y1_ / this.arcScaleY_; - var p0 = this.getCoords_(x0, y0); - var p1 = this.getCoords_(x1, y1); - var dx = p1.x - p0.x; - var dy = p1.y - p0.y; - angle = Math.atan2(dx, dy) * 180 / Math.PI; - - // The angle should be a non-negative number. - if (angle < 0) { - angle += 360; - } - - // Very small angles produce an unexpected result because they are - // converted to a scientific notation string. - if (angle < 1e-6) { - angle = 0; - } - } else { - var p0 = this.getCoords_(fillStyle.x0_, fillStyle.y0_); - var width = max.x - min.x; - var height = max.y - min.y; - focus = { - x: (p0.x - min.x) / width, - y: (p0.y - min.y) / height - }; - - width /= this.arcScaleX_ * Z; - height /= this.arcScaleY_ * Z; - var dimension = m.max(width, height); - shift = 2 * fillStyle.r0_ / dimension; - expansion = 2 * fillStyle.r1_ / dimension - shift; - } - - // We need to sort the color stops in ascending order by offset, - // otherwise IE won't interpret it correctly. - var stops = fillStyle.colors_; - stops.sort(function(cs1, cs2) { - return cs1.offset - cs2.offset; - }); - - var length = stops.length; - var color1 = stops[0].color; - var color2 = stops[length - 1].color; - var opacity1 = stops[0].alpha * this.globalAlpha; - var opacity2 = stops[length - 1].alpha * this.globalAlpha; - - var colors = []; - for (var i = 0; i < length; i++) { - var stop = stops[i]; - colors.push(stop.offset * expansion + shift + ' ' + stop.color); - } - - // When colors attribute is used, the meanings of opacity and o:opacity2 - // are reversed. - lineStr.push(''); - } else { - lineStr.push(''); - } - - lineStr.push(''); - - this.element_.insertAdjacentHTML('beforeEnd', lineStr.join('')); - }; - - contextPrototype.fill = function() { - this.stroke(true); - } - - contextPrototype.closePath = function() { - this.currentPath_.push({type: 'close'}); - }; - - /** - * @private - */ - contextPrototype.getCoords_ = function(aX, aY) { - var m = this.m_; - return { - x: Z * (aX * m[0][0] + aY * m[1][0] + m[2][0]) - Z2, - y: Z * (aX * m[0][1] + aY * m[1][1] + m[2][1]) - Z2 - } - }; - - contextPrototype.save = function() { - var o = {}; - copyState(this, o); - this.aStack_.push(o); - this.mStack_.push(this.m_); - this.m_ = matrixMultiply(createMatrixIdentity(), this.m_); - }; - - contextPrototype.restore = function() { - copyState(this.aStack_.pop(), this); - this.m_ = this.mStack_.pop(); - }; - - function matrixIsFinite(m) { - for (var j = 0; j < 3; j++) { - for (var k = 0; k < 2; k++) { - if (!isFinite(m[j][k]) || isNaN(m[j][k])) { - return false; - } - } - } - return true; - } - - function setM(ctx, m, updateLineScale) { - if (!matrixIsFinite(m)) { - return; - } - ctx.m_ = m; - - if (updateLineScale) { - // Get the line scale. - // Determinant of this.m_ means how much the area is enlarged by the - // transformation. So its square root can be used as a scale factor - // for width. - var det = m[0][0] * m[1][1] - m[0][1] * m[1][0]; - ctx.lineScale_ = sqrt(abs(det)); - } - } - - contextPrototype.translate = function(aX, aY) { - var m1 = [ - [1, 0, 0], - [0, 1, 0], - [aX, aY, 1] - ]; - - setM(this, matrixMultiply(m1, this.m_), false); - }; - - contextPrototype.rotate = function(aRot) { - var c = mc(aRot); - var s = ms(aRot); - - var m1 = [ - [c, s, 0], - [-s, c, 0], - [0, 0, 1] - ]; - - setM(this, matrixMultiply(m1, this.m_), false); - }; - - contextPrototype.scale = function(aX, aY) { - this.arcScaleX_ *= aX; - this.arcScaleY_ *= aY; - var m1 = [ - [aX, 0, 0], - [0, aY, 0], - [0, 0, 1] - ]; - - setM(this, matrixMultiply(m1, this.m_), true); - }; - - contextPrototype.transform = function(m11, m12, m21, m22, dx, dy) { - var m1 = [ - [m11, m12, 0], - [m21, m22, 0], - [dx, dy, 1] - ]; - - setM(this, matrixMultiply(m1, this.m_), true); - }; - - contextPrototype.setTransform = function(m11, m12, m21, m22, dx, dy) { - var m = [ - [m11, m12, 0], - [m21, m22, 0], - [dx, dy, 1] - ]; - - setM(this, m, true); - }; - - /******** STUBS ********/ - contextPrototype.clip = function() { - // TODO: Implement - }; - - contextPrototype.arcTo = function() { - // TODO: Implement - }; - - contextPrototype.createPattern = function() { - return new CanvasPattern_; - }; - - // Gradient / Pattern Stubs - function CanvasGradient_(aType) { - this.type_ = aType; - this.x0_ = 0; - this.y0_ = 0; - this.r0_ = 0; - this.x1_ = 0; - this.y1_ = 0; - this.r1_ = 0; - this.colors_ = []; - } - - CanvasGradient_.prototype.addColorStop = function(aOffset, aColor) { - aColor = processStyle(aColor); - this.colors_.push({offset: aOffset, - color: aColor.color, - alpha: aColor.alpha}); - }; - - function CanvasPattern_() {} - - // set up externs - G_vmlCanvasManager = G_vmlCanvasManager_; - CanvasRenderingContext2D = CanvasRenderingContext2D_; - CanvasGradient = CanvasGradient_; - CanvasPattern = CanvasPattern_; - -})(); - -} // if diff --git a/htdocs/public/high/plugins/jquery-knob/jquery.knob.js b/htdocs/public/high/plugins/jquery-knob/jquery.knob.js deleted file mode 100644 index 8bae662d..00000000 --- a/htdocs/public/high/plugins/jquery-knob/jquery.knob.js +++ /dev/null @@ -1,805 +0,0 @@ -/*!jQuery Knob*/ -/** - * Downward compatible, touchable dial - * - * Version: 1.2.11 - * Requires: jQuery v1.7+ - * - * Copyright (c) 2012 Anthony Terrien - * Under MIT License (http://www.opensource.org/licenses/mit-license.php) - * - * Thanks to vor, eskimoblood, spiffistan, FabrizioC - */ -(function (factory) { - if (typeof exports === 'object') { - // CommonJS - module.exports = factory(require('jquery')); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery'], factory); - } else { - // Browser globals - factory(jQuery); - } -}(function ($) { - - /** - * Kontrol library - */ - "use strict"; - - /** - * Definition of globals and core - */ - var k = {}, // kontrol - max = Math.max, - min = Math.min; - - k.c = {}; - k.c.d = $(document); - k.c.t = function (e) { - return e.originalEvent.touches.length - 1; - }; - - /** - * Kontrol Object - * - * Definition of an abstract UI control - * - * Each concrete component must call this one. - * - * k.o.call(this); - * - */ - k.o = function () { - var s = this; - - this.o = null; // array of options - this.$ = null; // jQuery wrapped element - this.i = null; // mixed HTMLInputElement or array of HTMLInputElement - this.g = null; // deprecated 2D graphics context for 'pre-rendering' - this.v = null; // value ; mixed array or integer - this.cv = null; // change value ; not commited value - this.x = 0; // canvas x position - this.y = 0; // canvas y position - this.w = 0; // canvas width - this.h = 0; // canvas height - this.$c = null; // jQuery canvas element - this.c = null; // rendered canvas context - this.t = 0; // touches index - this.isInit = false; - this.fgColor = null; // main color - this.pColor = null; // previous color - this.dH = null; // draw hook - this.cH = null; // change hook - this.eH = null; // cancel hook - this.rH = null; // release hook - this.scale = 1; // scale factor - this.relative = false; - this.relativeWidth = false; - this.relativeHeight = false; - this.$div = null; // component div - - this.run = function () { - var cf = function (e, conf) { - var k; - for (k in conf) { - s.o[k] = conf[k]; - } - s._carve().init(); - s._configure() - ._draw(); - }; - - if (this.$.data('kontroled')) return; - this.$.data('kontroled', true); - - this.extend(); - this.o = $.extend({ - // Config - min: this.$.data('min') !== undefined ? this.$.data('min') : 0, - max: this.$.data('max') !== undefined ? this.$.data('max') : 100, - stopper: true, - readOnly: this.$.data('readonly') || (this.$.attr('readonly') === 'readonly'), - - // UI - cursor: this.$.data('cursor') === true && 30 - || this.$.data('cursor') || 0, - thickness: this.$.data('thickness') - && Math.max(Math.min(this.$.data('thickness'), 1), 0.01) - || 0.35, - lineCap: this.$.data('linecap') || 'butt', - width: this.$.data('width') || 200, - height: this.$.data('height') || 200, - displayInput: this.$.data('displayinput') == null || this.$.data('displayinput'), - displayPrevious: this.$.data('displayprevious'), - fgColor: this.$.data('fgcolor') || '#87CEEB', - inputColor: this.$.data('inputcolor'), - font: this.$.data('font') || 'Arial', - fontWeight: this.$.data('font-weight') || 'bold', - inline: false, - step: this.$.data('step') || 1, - rotation: this.$.data('rotation'), - - // Hooks - draw: null, // function () {} - change: null, // function (value) {} - cancel: null, // function () {} - release: null, // function (value) {} - - // Output formatting, allows to add unit: %, ms ... - format: function(v) { - return v; - }, - parse: function (v) { - return parseFloat(v); - } - }, this.o - ); - - // finalize options - this.o.flip = this.o.rotation === 'anticlockwise' || this.o.rotation === 'acw'; - if (!this.o.inputColor) { - this.o.inputColor = this.o.fgColor; - } - - // routing value - if (this.$.is('fieldset')) { - - // fieldset = array of integer - this.v = {}; - this.i = this.$.find('input'); - this.i.each(function(k) { - var $this = $(this); - s.i[k] = $this; - s.v[k] = s.o.parse($this.val()); - - $this.bind( - 'change blur', - function () { - var val = {}; - val[k] = $this.val(); - s.val(s._validate(val)); - } - ); - }); - this.$.find('legend').remove(); - } else { - - // input = integer - this.i = this.$; - this.v = this.o.parse(this.$.val()); - this.v === '' && (this.v = this.o.min); - this.$.bind( - 'change blur', - function () { - s.val(s._validate(s.o.parse(s.$.val()))); - } - ); - - } - - !this.o.displayInput && this.$.hide(); - - // adds needed DOM elements (canvas, div) - this.$c = $(document.createElement('canvas')).attr({ - width: this.o.width, - height: this.o.height - }); - - // wraps all elements in a div - // add to DOM before Canvas init is triggered - this.$div = $('
    '); - - this.$.wrap(this.$div).before(this.$c); - this.$div = this.$.parent(); - - if (typeof G_vmlCanvasManager !== 'undefined') { - G_vmlCanvasManager.initElement(this.$c[0]); - } - - this.c = this.$c[0].getContext ? this.$c[0].getContext('2d') : null; - - if (!this.c) { - throw { - name: "CanvasNotSupportedException", - message: "Canvas not supported. Please use excanvas on IE8.0.", - toString: function(){return this.name + ": " + this.message} - } - } - - // hdpi support - this.scale = (window.devicePixelRatio || 1) / ( - this.c.webkitBackingStorePixelRatio || - this.c.mozBackingStorePixelRatio || - this.c.msBackingStorePixelRatio || - this.c.oBackingStorePixelRatio || - this.c.backingStorePixelRatio || 1 - ); - - // detects relative width / height - this.relativeWidth = this.o.width % 1 !== 0 - && this.o.width.indexOf('%'); - this.relativeHeight = this.o.height % 1 !== 0 - && this.o.height.indexOf('%'); - this.relative = this.relativeWidth || this.relativeHeight; - - // computes size and carves the component - this._carve(); - - // prepares props for transaction - if (this.v instanceof Object) { - this.cv = {}; - this.copy(this.v, this.cv); - } else { - this.cv = this.v; - } - - // binds configure event - this.$ - .bind("configure", cf) - .parent() - .bind("configure", cf); - - // finalize init - this._listen() - ._configure() - ._xy() - .init(); - - this.isInit = true; - - this.$.val(this.o.format(this.v)); - this._draw(); - - return this; - }; - - this._carve = function() { - if (this.relative) { - var w = this.relativeWidth ? - this.$div.parent().width() * - parseInt(this.o.width) / 100 - : this.$div.parent().width(), - h = this.relativeHeight ? - this.$div.parent().height() * - parseInt(this.o.height) / 100 - : this.$div.parent().height(); - - // apply relative - this.w = this.h = Math.min(w, h); - } else { - this.w = this.o.width; - this.h = this.o.height; - } - - // finalize div - this.$div.css({ - 'width': this.w + 'px', - 'height': this.h + 'px' - }); - - // finalize canvas with computed width - this.$c.attr({ - width: this.w, - height: this.h - }); - - // scaling - if (this.scale !== 1) { - this.$c[0].width = this.$c[0].width * this.scale; - this.$c[0].height = this.$c[0].height * this.scale; - this.$c.width(this.w); - this.$c.height(this.h); - } - - return this; - }; - - this._draw = function () { - - // canvas pre-rendering - var d = true; - - s.g = s.c; - - s.clear(); - - s.dH && (d = s.dH()); - - d !== false && s.draw(); - }; - - this._touch = function (e) { - var touchMove = function (e) { - var v = s.xy2val( - e.originalEvent.touches[s.t].pageX, - e.originalEvent.touches[s.t].pageY - ); - - if (v == s.cv) return; - - if (s.cH && s.cH(v) === false) return; - - s.change(s._validate(v)); - s._draw(); - }; - - // get touches index - this.t = k.c.t(e); - - // First touch - touchMove(e); - - // Touch events listeners - k.c.d - .bind("touchmove.k", touchMove) - .bind( - "touchend.k", - function () { - k.c.d.unbind('touchmove.k touchend.k'); - s.val(s.cv); - } - ); - - return this; - }; - - this._mouse = function (e) { - var mouseMove = function (e) { - var v = s.xy2val(e.pageX, e.pageY); - - if (v == s.cv) return; - - if (s.cH && (s.cH(v) === false)) return; - - s.change(s._validate(v)); - s._draw(); - }; - - // First click - mouseMove(e); - - // Mouse events listeners - k.c.d - .bind("mousemove.k", mouseMove) - .bind( - // Escape key cancel current change - "keyup.k", - function (e) { - if (e.keyCode === 27) { - k.c.d.unbind("mouseup.k mousemove.k keyup.k"); - - if (s.eH && s.eH() === false) - return; - - s.cancel(); - } - } - ) - .bind( - "mouseup.k", - function (e) { - k.c.d.unbind('mousemove.k mouseup.k keyup.k'); - s.val(s.cv); - } - ); - - return this; - }; - - this._xy = function () { - var o = this.$c.offset(); - this.x = o.left; - this.y = o.top; - - return this; - }; - - this._listen = function () { - if (!this.o.readOnly) { - this.$c - .bind( - "mousedown", - function (e) { - e.preventDefault(); - s._xy()._mouse(e); - } - ) - .bind( - "touchstart", - function (e) { - e.preventDefault(); - s._xy()._touch(e); - } - ); - - this.listen(); - } else { - this.$.attr('readonly', 'readonly'); - } - - if (this.relative) { - $(window).resize(function() { - s._carve().init(); - s._draw(); - }); - } - - return this; - }; - - this._configure = function () { - - // Hooks - if (this.o.draw) this.dH = this.o.draw; - if (this.o.change) this.cH = this.o.change; - if (this.o.cancel) this.eH = this.o.cancel; - if (this.o.release) this.rH = this.o.release; - - if (this.o.displayPrevious) { - this.pColor = this.h2rgba(this.o.fgColor, "0.4"); - this.fgColor = this.h2rgba(this.o.fgColor, "0.6"); - } else { - this.fgColor = this.o.fgColor; - } - - return this; - }; - - this._clear = function () { - this.$c[0].width = this.$c[0].width; - }; - - this._validate = function (v) { - var val = (~~ (((v < 0) ? -0.5 : 0.5) + (v/this.o.step))) * this.o.step; - return Math.round(val * 100) / 100; - }; - - // Abstract methods - this.listen = function () {}; // on start, one time - this.extend = function () {}; // each time configure triggered - this.init = function () {}; // each time configure triggered - this.change = function (v) {}; // on change - this.val = function (v) {}; // on release - this.xy2val = function (x, y) {}; // - this.draw = function () {}; // on change / on release - this.clear = function () { this._clear(); }; - - // Utils - this.h2rgba = function (h, a) { - var rgb; - h = h.substring(1,7); - rgb = [ - parseInt(h.substring(0,2), 16), - parseInt(h.substring(2,4), 16), - parseInt(h.substring(4,6), 16) - ]; - - return "rgba(" + rgb[0] + "," + rgb[1] + "," + rgb[2] + "," + a + ")"; - }; - - this.copy = function (f, t) { - for (var i in f) { - t[i] = f[i]; - } - }; - }; - - - /** - * k.Dial - */ - k.Dial = function () { - k.o.call(this); - - this.startAngle = null; - this.xy = null; - this.radius = null; - this.lineWidth = null; - this.cursorExt = null; - this.w2 = null; - this.PI2 = 2*Math.PI; - - this.extend = function () { - this.o = $.extend({ - bgColor: this.$.data('bgcolor') || '#EEEEEE', - angleOffset: this.$.data('angleoffset') || 0, - angleArc: this.$.data('anglearc') || 360, - inline: true - }, this.o); - }; - - this.val = function (v, triggerRelease) { - if (null != v) { - - // reverse format - v = this.o.parse(v); - - if (triggerRelease !== false - && v != this.v - && this.rH - && this.rH(v) === false) { return; } - - this.cv = this.o.stopper ? max(min(v, this.o.max), this.o.min) : v; - this.v = this.cv; - this.$.val(this.o.format(this.v)); - this._draw(); - } else { - return this.v; - } - }; - - this.xy2val = function (x, y) { - var a, ret; - - a = Math.atan2( - x - (this.x + this.w2), - - (y - this.y - this.w2) - ) - this.angleOffset; - - if (this.o.flip) { - a = this.angleArc - a - this.PI2; - } - - if (this.angleArc != this.PI2 && (a < 0) && (a > -0.5)) { - - // if isset angleArc option, set to min if .5 under min - a = 0; - } else if (a < 0) { - a += this.PI2; - } - - ret = (a * (this.o.max - this.o.min) / this.angleArc) + this.o.min; - - this.o.stopper && (ret = max(min(ret, this.o.max), this.o.min)); - - return ret; - }; - - this.listen = function () { - - // bind MouseWheel - var s = this, mwTimerStop, - mwTimerRelease, - mw = function (e) { - e.preventDefault(); - - var ori = e.originalEvent, - deltaX = ori.detail || ori.wheelDeltaX, - deltaY = ori.detail || ori.wheelDeltaY, - v = s._validate(s.o.parse(s.$.val())) - + ( - deltaX > 0 || deltaY > 0 - ? s.o.step - : deltaX < 0 || deltaY < 0 ? -s.o.step : 0 - ); - - v = max(min(v, s.o.max), s.o.min); - - s.val(v, false); - - if (s.rH) { - // Handle mousewheel stop - clearTimeout(mwTimerStop); - mwTimerStop = setTimeout(function () { - s.rH(v); - mwTimerStop = null; - }, 100); - - // Handle mousewheel releases - if (!mwTimerRelease) { - mwTimerRelease = setTimeout(function () { - if (mwTimerStop) - s.rH(v); - mwTimerRelease = null; - }, 200); - } - } - }, - kval, - to, - m = 1, - kv = { - 37: -s.o.step, - 38: s.o.step, - 39: s.o.step, - 40: -s.o.step - }; - - this.$ - .bind( - "keydown", - function (e) { - var kc = e.keyCode; - - // numpad support - if (kc >= 96 && kc <= 105) { - kc = e.keyCode = kc - 48; - } - - kval = parseInt(String.fromCharCode(kc)); - - if (isNaN(kval)) { - (kc !== 13) // enter - && kc !== 8 // bs - && kc !== 9 // tab - && kc !== 189 // - - && (kc !== 190 - || s.$.val().match(/\./)) // . allowed once - && e.preventDefault(); - - // arrows - if ($.inArray(kc,[37,38,39,40]) > -1) { - e.preventDefault(); - - var v = s.o.parse(s.$.val()) + kv[kc] * m; - s.o.stopper && (v = max(min(v, s.o.max), s.o.min)); - - s.change(s._validate(v)); - s._draw(); - - // long time keydown speed-up - to = window.setTimeout(function () { - m *= 2; - }, 30); - } - } - } - ) - .bind( - "keyup", - function (e) { - if (isNaN(kval)) { - if (to) { - window.clearTimeout(to); - to = null; - m = 1; - s.val(s.$.val()); - } - } else { - // kval postcond - (s.$.val() > s.o.max && s.$.val(s.o.max)) - || (s.$.val() < s.o.min && s.$.val(s.o.min)); - } - } - ); - - this.$c.bind("mousewheel DOMMouseScroll", mw); - this.$.bind("mousewheel DOMMouseScroll", mw); - }; - - this.init = function () { - if (this.v < this.o.min - || this.v > this.o.max) { this.v = this.o.min; } - - this.$.val(this.v); - this.w2 = this.w / 2; - this.cursorExt = this.o.cursor / 100; - this.xy = this.w2 * this.scale; - this.lineWidth = this.xy * this.o.thickness; - this.lineCap = this.o.lineCap; - this.radius = this.xy - this.lineWidth / 2; - - this.o.angleOffset - && (this.o.angleOffset = isNaN(this.o.angleOffset) ? 0 : this.o.angleOffset); - - this.o.angleArc - && (this.o.angleArc = isNaN(this.o.angleArc) ? this.PI2 : this.o.angleArc); - - // deg to rad - this.angleOffset = this.o.angleOffset * Math.PI / 180; - this.angleArc = this.o.angleArc * Math.PI / 180; - - // compute start and end angles - this.startAngle = 1.5 * Math.PI + this.angleOffset; - this.endAngle = 1.5 * Math.PI + this.angleOffset + this.angleArc; - - var s = max( - String(Math.abs(this.o.max)).length, - String(Math.abs(this.o.min)).length, - 2 - ) + 2; - - this.o.displayInput - && this.i.css({ - 'width' : ((this.w / 2 + 4) >> 0) + 'px', - 'height' : ((this.w / 3) >> 0) + 'px', - 'position' : 'absolute', - 'vertical-align' : 'middle', - 'margin-top' : ((this.w / 3) >> 0) + 'px', - 'margin-left' : '-' + ((this.w * 3 / 4 + 2) >> 0) + 'px', - 'border' : 0, - 'background' : 'none', - 'font' : this.o.fontWeight + ' ' + ((this.w / s) >> 0) + 'px ' + this.o.font, - 'text-align' : 'center', - 'color' : this.o.inputColor || this.o.fgColor, - 'padding' : '0px', - '-webkit-appearance': 'none' - }) || this.i.css({ - 'width': '0px', - 'visibility': 'hidden' - }); - }; - - this.change = function (v) { - this.cv = v; - this.$.val(this.o.format(v)); - }; - - this.angle = function (v) { - return (v - this.o.min) * this.angleArc / (this.o.max - this.o.min); - }; - - this.arc = function (v) { - var sa, ea; - v = this.angle(v); - if (this.o.flip) { - sa = this.endAngle + 0.00001; - ea = sa - v - 0.00001; - } else { - sa = this.startAngle - 0.00001; - ea = sa + v + 0.00001; - } - this.o.cursor - && (sa = ea - this.cursorExt) - && (ea = ea + this.cursorExt); - - return { - s: sa, - e: ea, - d: this.o.flip && !this.o.cursor - }; - }; - - this.draw = function () { - var c = this.g, // context - a = this.arc(this.cv), // Arc - pa, // Previous arc - r = 1; - - c.lineWidth = this.lineWidth; - c.lineCap = this.lineCap; - - if (this.o.bgColor !== "none") { - c.beginPath(); - c.strokeStyle = this.o.bgColor; - c.arc(this.xy, this.xy, this.radius, this.endAngle - 0.00001, this.startAngle + 0.00001, true); - c.stroke(); - } - - if (this.o.displayPrevious) { - pa = this.arc(this.v); - c.beginPath(); - c.strokeStyle = this.pColor; - c.arc(this.xy, this.xy, this.radius, pa.s, pa.e, pa.d); - c.stroke(); - r = this.cv == this.v; - } - - c.beginPath(); - c.strokeStyle = r ? this.o.fgColor : this.fgColor ; - c.arc(this.xy, this.xy, this.radius, a.s, a.e, a.d); - c.stroke(); - }; - - this.cancel = function () { - this.val(this.v); - }; - }; - - $.fn.dial = $.fn.knob = function (o) { - return this.each( - function () { - var d = new k.Dial(); - d.o = o; - d.$ = $(this); - d.run(); - } - ).parent(); - }; - -})); diff --git a/htdocs/public/high/plugins/jquery-mapael/jquery.mapael.js b/htdocs/public/high/plugins/jquery-mapael/jquery.mapael.js deleted file mode 100644 index a9b7ccd4..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/jquery.mapael.js +++ /dev/null @@ -1,2249 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires jQuery, raphael.js and jquery.mousewheel - * - * Version: 2.0.0 - * - * Copyright (c) 2015 Vincent Brouté (http://www.vincentbroute.fr/mapael) - * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php). - * - * Thanks to Indigo744 - * - */ -(function (factory) { - if (typeof exports === 'object') { - // CommonJS - module.exports = factory(require('jquery'), require('raphael'), require('mousewheel')); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery', 'raphael', 'mousewheel'], factory); - } else { - // Browser globals - factory(jQuery, Raphael, jQuery.fn.mousewheel); - } -}(function ($, Raphael, mousewheel, undefined) { - - "use strict"; - - // The plugin name (used on several places) - var pluginName = "mapael"; - - // Version number of jQuery Mapael. See http://semver.org/ for more information. - var version = "2.0.0-dev"; - - /* - * Mapael constructor - * Init instance vars and call init() - * @param container the DOM element on which to apply the plugin - * @param options the complete options to use - */ - var Mapael = function (container, options) { - var self = this; - - // the global container (DOM element object) - self.container = container; - - // the global container (jQuery object) - self.$container = $(container); - - // the global options - self.options = self.extendDefaultOptions(options); - - // Save initial HTML content (used by destroy method) - self.initialHTMLContent = self.$container.html(); - - // zoom TimeOut handler (used to set and clear) - self.zoomTO = 0; - - // zoom center coordinate (set at touchstart) - self.zoomCenterX = 0; - self.zoomCenterY = 0; - - // Zoom pinch (set at touchstart and touchmove) - self.previousPinchDist = 0; - - // Zoom data - self.zoomData = { - zoomLevel: 0, - zoomX: 0, - zoomY: 0, - panX: 0, - panY: 0 - }; - - // resize TimeOut handler (used to set and clear) - self.resizeTO = 0; - - // Panning: tell if panning action is in progress - self.panning = false; - - // Panning TimeOut handler (used to set and clear) - self.panningTO = 0; - - // Animate view box Interval handler (used to set and clear) - self.animationIntervalID = null; - - // Map subcontainer jQuery object - self.$map = {}; - - // The tooltip jQuery object - self.$tooltip = {}; - - // The paper Raphael object - self.paper = {}; - - // The areas object list - self.areas = {}; - - // The plots object list - self.plots = {}; - - // The links object list - self.links = {}; - - // The map configuration object (taken from map file) - self.mapConf = {}; - - // Let's start the initialization - self.init(); - }; - - /* - * Mapael Prototype - * Defines all methods and properties needed by Mapael - * Each mapael object inherits their properties and methods from this prototype - */ - Mapael.prototype = { - - /* - * Version number - */ - version: version, - - /* - * Initialize the plugin - * Called by the constructor - */ - init: function () { - var self = this; - - // Init check for class existence - if (self.options.map.cssClass === "" || $("." + self.options.map.cssClass, self.container).length === 0) { - throw new Error("The map class `" + self.options.map.cssClass + "` doesn't exists"); - } - - // Create the tooltip container - self.$tooltip = $("
    ").addClass(self.options.map.tooltip.cssClass).css("display", "none"); - - // Get the map container, empty it then append tooltip - self.$map = $("." + self.options.map.cssClass, self.container).empty().append(self.$tooltip); - - // Get the map from $.mapael or $.fn.mapael (backward compatibility) - if ($[pluginName] && $[pluginName].maps && $[pluginName].maps[self.options.map.name]) { - // Mapael version >= 2.x - self.mapConf = $[pluginName].maps[self.options.map.name]; - } else if ($.fn[pluginName] && $.fn[pluginName].maps && $.fn[pluginName].maps[self.options.map.name]) { - // Mapael version <= 1.x - DEPRECATED - self.mapConf = $.fn[pluginName].maps[self.options.map.name]; - if (window.console && window.console.warn) { - window.console.warn("Extending $.fn.mapael is deprecated (map '" + self.options.map.name + "')"); - } - } else { - throw new Error("Unknown map '" + self.options.map.name + "'"); - } - - // Create Raphael paper - self.paper = new Raphael(self.$map[0], self.mapConf.width, self.mapConf.height); - - // issue #135: Check for Raphael bug on text element boundaries - if (self.isRaphaelBBoxBugPresent() === true) { - self.destroy(); - throw new Error("Can't get boundary box for text (is your container hidden? See #135)"); - } - - // add plugin class name on element - self.$container.addClass(pluginName); - - if (self.options.map.tooltip.css) self.$tooltip.css(self.options.map.tooltip.css); - self.paper.setViewBox(0, 0, self.mapConf.width, self.mapConf.height, false); - - // Handle map size - if (self.options.map.width) { - // NOT responsive: map has a fixed width - self.paper.setSize(self.options.map.width, self.mapConf.height * (self.options.map.width / self.mapConf.width)); - - // Create the legends for plots taking into account the scale of the map - self.createLegends("plot", self.plots, (self.options.map.width / self.mapConf.width)); - } else { - // Responsive: handle resizing of the map - self.handleMapResizing(); - } - - // Draw map areas - $.each(self.mapConf.elems, function (id) { - var elemOptions = self.getElemOptions( - self.options.map.defaultArea, - (self.options.areas[id] ? self.options.areas[id] : {}), - self.options.legend.area - ); - self.areas[id] = {"mapElem": self.paper.path(self.mapConf.elems[id]).attr(elemOptions.attrs)}; - }); - - // Hook that allows to add custom processing on the map - if (self.options.map.beforeInit) self.options.map.beforeInit(self.$container, self.paper, self.options); - - // Init map areas in a second loop (prevent texts to be hidden by map elements) - $.each(self.mapConf.elems, function (id) { - var elemOptions = self.getElemOptions( - self.options.map.defaultArea, - (self.options.areas[id] ? self.options.areas[id] : {}), - self.options.legend.area - ); - self.initElem(self.areas[id], elemOptions, id); - }); - - // Draw links - self.links = self.drawLinksCollection(self.options.links); - - // Draw plots - $.each(self.options.plots, function (id) { - self.plots[id] = self.drawPlot(id); - }); - - // Attach zoom event - self.$container.on("zoom." + pluginName, function (e, zoomOptions) { - self.onZoomEvent(e, zoomOptions); - }); - - if (self.options.map.zoom.enabled) { - // Enable zoom - self.initZoom(self.mapConf.width, self.mapConf.height, self.options.map.zoom); - } - - // Set initial zoom - if (self.options.map.zoom.init !== undefined) { - if (self.options.map.zoom.init.animDuration === undefined) { - self.options.map.zoom.init.animDuration = 0; - } - self.$container.trigger("zoom." + pluginName, self.options.map.zoom.init); - } - - // Create the legends for areas - self.createLegends("area", self.areas, 1); - - // Attach update event - self.$container.on("update." + pluginName, function (e, opt) { - self.onUpdateEvent(e, opt); - }); - - // Attach showElementsInRange event - self.$container.on("showElementsInRange." + pluginName, function (e, opt) { - self.onShowElementsInRange(e, opt); - }); - - // Hook that allows to add custom processing on the map - if (self.options.map.afterInit) self.options.map.afterInit(self.$container, self.paper, self.areas, self.plots, self.options); - - $(self.paper.desc).append(" and Mapael " + self.version + " (http://www.vincentbroute.fr/mapael/)"); - }, - - /* - * Destroy mapael - * This function effectively detach mapael from the container - * - Set the container back to the way it was before mapael instanciation - * - Remove all data associated to it (memory can then be free'ed by browser) - * - * This method can be call directly by user: - * $(".mapcontainer").data("mapael").destroy(); - * - * This method is also automatically called if the user try to call mapael - * on a container already containing a mapael instance - */ - destroy: function () { - var self = this; - - // Detach all event listeners attached to the container - self.$container.off("." + pluginName); - - // Empty the container (this will also detach all event listeners) - self.$container.empty(); - // Detach the global resize event handler - if (self.onResizeEvent) $(window).off("resize." + pluginName, self.onResizeEvent); - // Replace initial HTML content - self.$container.html(self.initialHTMLContent); - // Remove mapael class - self.$container.removeClass(pluginName); - // Remove the data - self.$container.removeData(pluginName); - // Remove all internal reference - self.container = undefined; - self.$container = undefined; - self.options = undefined; - self.paper = undefined; - self.$map = undefined; - self.$tooltip = undefined; - self.mapConf = undefined; - self.areas = undefined; - self.plots = undefined; - self.links = undefined; - }, - - handleMapResizing: function () { - var self = this; - - // onResizeEvent: call when the window element trigger the resize event - // We create it inside this function (and not in the prototype) in order to have a closure - // Otherwise, in the prototype, 'this' when triggered is *not* the mapael object but the global window - self.onResizeEvent = function () { - // Clear any previous setTimeout (avoid too much triggering) - clearTimeout(self.resizeTO); - // setTimeout to wait for the user to finish its resizing - self.resizeTO = setTimeout(function () { - self.$map.trigger("resizeEnd." + pluginName); - }, 150); - }; - - // Attach resize handler - $(window).on("resize." + pluginName, self.onResizeEvent); - - // Attach resize end handler, and call it once - self.$map.on("resizeEnd." + pluginName, function () { - var containerWidth = self.$map.width(); - if (self.paper.width != containerWidth) { - var newScale = containerWidth / self.mapConf.width; - // Set new size - self.paper.setSize(containerWidth, self.mapConf.height * newScale); - // Create plots legend again to take into account the new scale - self.createLegends("plot", self.plots, newScale); - } - }).trigger("resizeEnd." + pluginName); - }, - - /* - * Extend the user option with the default one - * @param options the user options - * @return new options object - */ - extendDefaultOptions: function (options) { - - // Extend default options with user options - options = $.extend(true, {}, Mapael.prototype.defaultOptions, options); - - // Extend legend default options - $.each(options.legend, function (type) { - if ($.isArray(options.legend[type])) { - for (var i = 0; i < options.legend[type].length; ++i) - options.legend[type][i] = $.extend(true, {}, Mapael.prototype.legendDefaultOptions[type], options.legend[type][i]); - } else { - options.legend[type] = $.extend(true, {}, Mapael.prototype.legendDefaultOptions[type], options.legend[type]); - } - }); - - return options; - }, - - /* - * Init the element "elem" on the map (drawing, setting attributes, events, tooltip, ...) - */ - initElem: function (elem, elemOptions, id) { - var self = this; - var bbox = {}; - var textPosition = {}; - - // Assign value attribute to element - if (elemOptions.value !== undefined){ - elem.value = elemOptions.value; - } - - // Init the label related to the element - if (elemOptions.text && elemOptions.text.content !== undefined) { - // Set a text label in the area - bbox = elem.mapElem.getBBox(); - textPosition = self.getTextPosition(bbox, elemOptions.text.position, elemOptions.text.margin); - elemOptions.text.attrs["text-anchor"] = textPosition.textAnchor; - elem.textElem = self.paper.text(textPosition.x, textPosition.y, elemOptions.text.content).attr(elemOptions.text.attrs); - $(elem.textElem.node).attr("data-id", id); - } - - // Set user event handlers - if (elemOptions.eventHandlers) self.setEventHandlers(id, elemOptions, elem.mapElem, elem.textElem); - - // Set hover option for mapElem - self.setHoverOptions(elem.mapElem, elemOptions.attrs, elemOptions.attrsHover); - - // Set hover option for textElem - if (elem.textElem) self.setHoverOptions(elem.textElem, elemOptions.text.attrs, elemOptions.text.attrsHover); - - // Set hover behavior only if attrsHover is set for area or for text - if (($.isEmptyObject(elemOptions.attrsHover) === false) || - (elem.textElem && $.isEmptyObject(elemOptions.text.attrsHover) === false)) { - // Set hover behavior - self.setHover(elem.mapElem, elem.textElem); - } - - // Init the tooltip - if (elemOptions.tooltip) { - elem.mapElem.tooltip = elemOptions.tooltip; - self.setTooltip(elem.mapElem); - - if (elemOptions.text && elemOptions.text.content !== undefined) { - elem.textElem.tooltip = elemOptions.tooltip; - self.setTooltip(elem.textElem); - } - } - - // Init the link - if (elemOptions.href) { - elem.mapElem.href = elemOptions.href; - elem.mapElem.target = elemOptions.target; - self.setHref(elem.mapElem); - - if (elemOptions.text && elemOptions.text.content !== undefined) { - elem.textElem.href = elemOptions.href; - elem.textElem.target = elemOptions.target; - self.setHref(elem.textElem); - } - } - - $(elem.mapElem.node).attr("data-id", id); - }, - - /* - * Init zoom and panning for the map - * @param mapWidth - * @param mapHeight - * @param zoomOptions - */ - initZoom: function (mapWidth, mapHeight, zoomOptions) { - var self = this; - var mousedown = false; - var previousX = 0; - var previousY = 0; - var fnZoomButtons = { - "reset": function () { - self.$container.trigger("zoom." + pluginName, {"level": 0}); - }, - "in": function () { - self.$container.trigger("zoom." + pluginName, {"level": "+1"}); - }, - "out": function () { - self.$container.trigger("zoom." + pluginName, {"level": -1}); - } - }; - - // init Zoom data - $.extend(self.zoomData, { - zoomLevel: 0, - panX: 0, - panY: 0 - }); - - // init zoom buttons - $.each(zoomOptions.buttons, function(type, opt) { - if (fnZoomButtons[type] === undefined) throw new Error("Unknown zoom button '" + type + "'"); - // Create div with classes, contents and title (for tooltip) - var $button = $("
    ").addClass(opt.cssClass) - .html(opt.content) - .attr("title", opt.title); - // Assign click event - $button.on("click." + pluginName, fnZoomButtons[type]); - // Append to map - self.$map.append($button); - }); - - // Update the zoom level of the map on mousewheel - if (self.options.map.zoom.mousewheel) { - self.$map.on("mousewheel." + pluginName, function (e) { - var zoomLevel = (e.deltaY > 0) ? 1 : -1; - var coord = self.mapPagePositionToXY(e.pageX, e.pageY); - - self.$container.trigger("zoom." + pluginName, { - "fixedCenter": true, - "level": self.zoomData.zoomLevel + zoomLevel, - "x": coord.x, - "y": coord.y - }); - - return false; - }); - } - - // Update the zoom level of the map on touch pinch - if (self.options.map.zoom.touch) { - self.$map.on("touchstart." + pluginName, function (e) { - if (e.originalEvent.touches.length === 2) { - self.zoomCenterX = (e.originalEvent.touches[0].pageX + e.originalEvent.touches[1].pageX) / 2; - self.zoomCenterY = (e.originalEvent.touches[0].pageY + e.originalEvent.touches[1].pageY) / 2; - self.previousPinchDist = Math.sqrt(Math.pow((e.originalEvent.touches[1].pageX - e.originalEvent.touches[0].pageX), 2) + Math.pow((e.originalEvent.touches[1].pageY - e.originalEvent.touches[0].pageY), 2)); - } - }); - - self.$map.on("touchmove." + pluginName, function (e) { - var pinchDist = 0; - var zoomLevel = 0; - - if (e.originalEvent.touches.length === 2) { - pinchDist = Math.sqrt(Math.pow((e.originalEvent.touches[1].pageX - e.originalEvent.touches[0].pageX), 2) + Math.pow((e.originalEvent.touches[1].pageY - e.originalEvent.touches[0].pageY), 2)); - - if (Math.abs(pinchDist - self.previousPinchDist) > 15) { - var coord = self.mapPagePositionToXY(self.zoomCenterX, self.zoomCenterY); - zoomLevel = (pinchDist - self.previousPinchDist) / Math.abs(pinchDist - self.previousPinchDist); - self.$container.trigger("zoom." + pluginName, { - "fixedCenter": true, - "level": self.zoomData.zoomLevel + zoomLevel, - "x": coord.x, - "y": coord.y - }); - self.previousPinchDist = pinchDist; - } - return false; - } - }); - } - - // Panning - $("body").on("mouseup." + pluginName + (zoomOptions.touch ? " touchend" : ""), function () { - mousedown = false; - setTimeout(function () { - self.panning = false; - }, 50); - }); - - self.$map.on("mousedown." + pluginName + (zoomOptions.touch ? " touchstart" : ""), function (e) { - if (e.pageX !== undefined) { - mousedown = true; - previousX = e.pageX; - previousY = e.pageY; - } else { - if (e.originalEvent.touches.length === 1) { - mousedown = true; - previousX = e.originalEvent.touches[0].pageX; - previousY = e.originalEvent.touches[0].pageY; - } - } - }).on("mousemove." + pluginName + (zoomOptions.touch ? " touchmove" : ""), function (e) { - var currentLevel = self.zoomData.zoomLevel; - var pageX = 0; - var pageY = 0; - - if (e.pageX !== undefined) { - pageX = e.pageX; - pageY = e.pageY; - } else { - if (e.originalEvent.touches.length === 1) { - pageX = e.originalEvent.touches[0].pageX; - pageY = e.originalEvent.touches[0].pageY; - } else { - mousedown = false; - } - } - - if (mousedown && currentLevel !== 0) { - var offsetX = (previousX - pageX) / (1 + (currentLevel * zoomOptions.step)) * (mapWidth / self.paper.width); - var offsetY = (previousY - pageY) / (1 + (currentLevel * zoomOptions.step)) * (mapHeight / self.paper.height); - var panX = Math.min(Math.max(0, self.paper._viewBox[0] + offsetX), (mapWidth - self.paper._viewBox[2])); - var panY = Math.min(Math.max(0, self.paper._viewBox[1] + offsetY), (mapHeight - self.paper._viewBox[3])); - - if (Math.abs(offsetX) > 5 || Math.abs(offsetY) > 5) { - $.extend(self.zoomData, { - panX: panX, - panY: panY, - zoomX: panX + self.paper._viewBox[2] / 2, - zoomY: panY + self.paper._viewBox[3] / 2 - }); - self.paper.setViewBox(panX, panY, self.paper._viewBox[2], self.paper._viewBox[3]); - - clearTimeout(self.panningTO); - self.panningTO = setTimeout(function () { - self.$map.trigger("afterPanning", { - x1: panX, - y1: panY, - x2: (panX + self.paper._viewBox[2]), - y2: (panY + self.paper._viewBox[3]) - }); - }, 150); - - previousX = pageX; - previousY = pageY; - self.panning = true; - } - return false; - } - }); - }, - - /* - * Map a mouse position to a map position - * Transformation principle: - * ** start with (pageX, pageY) absolute mouse coordinate - * - Apply translation: take into accounts the map offset in the page - * ** from this point, we have relative mouse coordinate - * - Apply homothetic transformation: take into accounts initial factor of map sizing (fullWidth / actualWidth) - * - Apply homothetic transformation: take into accounts the zoom factor - * ** from this point, we have relative map coordinate - * - Apply translation: take into accounts the current panning of the map - * ** from this point, we have absolute map coordinate - * @param pageX: mouse client coordinate on X - * @param pageY: mouse client coordinate on Y - * @return map coordinate {x, y} - */ - mapPagePositionToXY: function(pageX, pageY) { - var self = this; - var offset = self.$map.offset(); - var initFactor = (self.options.map.width) ? (self.mapConf.width / self.options.map.width) : (self.mapConf.width / self.$map.width()); - var zoomFactor = 1 / (1 + (self.zoomData.zoomLevel * self.options.map.zoom.step)); - return { - x: (zoomFactor * initFactor * (pageX - offset.left)) + self.zoomData.panX, - y: (zoomFactor * initFactor * (pageY - offset.top)) + self.zoomData.panY - }; - }, - - /* - * Zoom on the map at a specific level focused on specific coordinates - * If no coordinates are specified, the zoom will be focused on the center of the map - * options : - * "level" : level of the zoom between minLevel and maxLevel - * "x" or "latitude" : x coordinate or latitude of the point to focus on - * "y" or "longitude" : y coordinate or longitude of the point to focus on - * "fixedCenter" : set to true in order to preserve the position of x,y in the canvas when zoomed - * "animDuration" : zoom duration - */ - onZoomEvent: function (e, zoomOptions) { - var self = this; - var newLevel = self.zoomData.zoomLevel; - var panX = 0; - var panY = 0; - var previousZoomLevel = (1 + self.zoomData.zoomLevel * self.options.map.zoom.step); - var zoomLevel = 0; - var animDuration = (zoomOptions.animDuration !== undefined) ? zoomOptions.animDuration : self.options.map.zoom.animDuration; - var offsetX = 0; - var offsetY = 0; - var coords = {}; - - // Get user defined zoom level - if (zoomOptions.level !== undefined) { - if (typeof zoomOptions.level === "string") { - // level is a string, either "n", "+n" or "-n" - if ((zoomOptions.level.slice(0, 1) === '+') || (zoomOptions.level.slice(0, 1) === '-')) { - // zoomLevel is relative - newLevel = self.zoomData.zoomLevel + parseInt(zoomOptions.level); - } else { - // zoomLevel is absolute - newLevel = parseInt(zoomOptions.level); - } - } else { - // level is integer - if (zoomOptions.level < 0) { - // zoomLevel is relative - newLevel = self.zoomData.zoomLevel + zoomOptions.level; - } else { - // zoomLevel is absolute - newLevel = zoomOptions.level; - } - } - // Make sure we stay in the boundaries - newLevel = Math.min(Math.max(newLevel, self.options.map.zoom.minLevel), self.options.map.zoom.maxLevel); - } - - zoomLevel = (1 + newLevel * self.options.map.zoom.step); - - if (zoomOptions.latitude !== undefined && zoomOptions.longitude !== undefined) { - coords = self.mapConf.getCoords(zoomOptions.latitude, zoomOptions.longitude); - zoomOptions.x = coords.x; - zoomOptions.y = coords.y; - } - - if (zoomOptions.x === undefined) - zoomOptions.x = self.paper._viewBox[0] + self.paper._viewBox[2] / 2; - - if (zoomOptions.y === undefined) - zoomOptions.y = (self.paper._viewBox[1] + self.paper._viewBox[3] / 2); - - if (newLevel === 0) { - panX = 0; - panY = 0; - } else if (zoomOptions.fixedCenter !== undefined && zoomOptions.fixedCenter === true) { - offsetX = self.zoomData.panX + ((zoomOptions.x - self.zoomData.panX) * (zoomLevel - previousZoomLevel)) / zoomLevel; - offsetY = self.zoomData.panY + ((zoomOptions.y - self.zoomData.panY) * (zoomLevel - previousZoomLevel)) / zoomLevel; - - panX = Math.min(Math.max(0, offsetX), (self.mapConf.width - (self.mapConf.width / zoomLevel))); - panY = Math.min(Math.max(0, offsetY), (self.mapConf.height - (self.mapConf.height / zoomLevel))); - } else { - panX = Math.min(Math.max(0, zoomOptions.x - (self.mapConf.width / zoomLevel) / 2), (self.mapConf.width - (self.mapConf.width / zoomLevel))); - panY = Math.min(Math.max(0, zoomOptions.y - (self.mapConf.height / zoomLevel) / 2), (self.mapConf.height - (self.mapConf.height / zoomLevel))); - } - - // Update zoom level of the map - if (zoomLevel == previousZoomLevel && panX == self.zoomData.panX && panY == self.zoomData.panY) return; - - if (animDuration > 0) { - self.animateViewBox(panX, panY, self.mapConf.width / zoomLevel, self.mapConf.height / zoomLevel, animDuration, self.options.map.zoom.animEasing); - } else { - self.paper.setViewBox(panX, panY, self.mapConf.width / zoomLevel, self.mapConf.height / zoomLevel); - clearTimeout(self.zoomTO); - self.zoomTO = setTimeout(function () { - self.$map.trigger("afterZoom", { - x1: panX, - y1: panY, - x2: (panX + (self.mapConf.width / zoomLevel)), - y2: (panY + (self.mapConf.height / zoomLevel)) - }); - }, 150); - } - - $.extend(self.zoomData, { - zoomLevel: newLevel, - panX: panX, - panY: panY, - zoomX: panX + self.paper._viewBox[2] / 2, - zoomY: panY + self.paper._viewBox[3] / 2 - }); - }, - - /* - * Show some element in range defined by user - * Triggered by user $(".mapcontainer").trigger("showElementsInRange", [opt]); - * - * @param opt the options - * opt.hiddenOpacity opacity for hidden element (default = 0.3) - * opt.animDuration animation duration in ms (default = 0) - * opt.afterShowRange callback - * opt.ranges the range to show: - * Example: - * opt.ranges = { - * 'plot' : { - * 0 : { // valueIndex - * 'min': 1000, - * 'max': 1200 - * }, - * 1 : { // valueIndex - * 'min': 10, - * 'max': 12 - * } - * }, - * 'area' : { - * {'min': 10, 'max': 20} // No valueIndex, only an object, use 0 as valueIndex (easy case) - * } - * } - */ - onShowElementsInRange: function(e, opt) { - var self = this; - - // set animDuration to default if not defined - if (opt.animDuration === undefined) { - opt.animDuration = 0; - } - - // set hiddenOpacity to default if not defined - if (opt.hiddenOpacity === undefined) { - opt.hiddenOpacity = 0.3; - } - - // handle area - if (opt.ranges && opt.ranges.area) { - self.showElemByRange(opt.ranges.area, self.areas, opt.hiddenOpacity, opt.animDuration); - } - - // handle plot - if (opt.ranges && opt.ranges.plot) { - self.showElemByRange(opt.ranges.plot, self.plots, opt.hiddenOpacity, opt.animDuration); - } - - // handle link - if (opt.ranges && opt.ranges.link) { - self.showElemByRange(opt.ranges.link, self.links, opt.hiddenOpacity, opt.animDuration); - } - - // Call user callback - if (opt.afterShowRange) opt.afterShowRange(); - }, - - /* - * Show some element in range - * @param ranges: the ranges - * @param elems: list of element on which to check against previous range - * @hiddenOpacity: the opacity when hidden - * @animDuration: the animation duration - */ - showElemByRange: function(ranges, elems, hiddenOpacity, animDuration) { - var self = this; - // Hold the final opacity value for all elements consolidated after applying each ranges - // This allow to set the opacity only once for each elements - var elemsFinalOpacity = {}; - - // set object with one valueIndex to 0 if we have directly the min/max - if (ranges.min !== undefined || ranges.max !== undefined) { - ranges = {0: ranges}; - } - - // Loop through each valueIndex - $.each(ranges, function (valueIndex) { - var range = ranges[valueIndex]; - // Check if user defined at least a min or max value - if (range.min === undefined && range.max === undefined) { - return true; // skip this iteration (each loop), goto next range - } - // Loop through each elements - $.each(elems, function (id) { - var elemValue = elems[id].value; - // set value with one valueIndex to 0 if not object - if (typeof elemValue !== "object") { - elemValue = [elemValue]; - } - // Check existence of this value index - if (elemValue[valueIndex] === undefined) { - return true; // skip this iteration (each loop), goto next element - } - // Check if in range - if ((range.min !== undefined && elemValue[valueIndex] < range.min) || - (range.max !== undefined && elemValue[valueIndex] > range.max)) { - // Element not in range - elemsFinalOpacity[id] = hiddenOpacity; - } else { - // Element in range - elemsFinalOpacity[id] = 1; - } - }); - }); - // Now that we looped through all ranges, we can really assign the final opacity - $.each(elemsFinalOpacity, function (id) { - self.setElementOpacity(elems[id], elemsFinalOpacity[id], animDuration); - }); - }, - - /* - * Set element opacity - * Handle elem.mapElem and elem.textElem - * @param elem the element - * @param opacity the opacity to apply - * @param animDuration the animation duration to use - */ - setElementOpacity: function(elem, opacity, animDuration) { - // Ensure no animation is running - //elem.mapElem.stop(); - //if (elem.textElem) elem.textElem.stop(); - - // If final opacity is not null, ensure element is shown before proceeding - if (opacity > 0) { - elem.mapElem.show(); - if (elem.textElem) elem.textElem.show(); - } - if (animDuration > 0) { - // Animate attribute - elem.mapElem.animate({"opacity": opacity}, animDuration, "linear", function () { - // If final attribute is 0, hide - if (opacity === 0) elem.mapElem.hide(); - }); - // Handle text element - if (elem.textElem) { - // Animate attribute - elem.textElem.animate({"opacity": opacity}, animDuration, "linear", function () { - // If final attribute is 0, hide - if (opacity === 0) elem.textElem.hide(); - }); - } - } else { - // Set attribute - elem.mapElem.attr({"opacity": opacity}); - // For null opacity, hide it - if (opacity === 0) elem.mapElem.hide(); - // Handle text elemen - if (elem.textElem) { - // Set attribute - elem.textElem.attr({"opacity": opacity}); - // For null opacity, hide it - if (opacity === 0) elem.textElem.hide(); - } - } - }, - - /* - * - * Update the current map - * Refresh attributes and tooltips for areas and plots - * @param opt option for the refresh : - * opt.mapOptions: options to update for plots and areas - * opt.replaceOptions: whether mapsOptions should entirely replace current map options, or just extend it - * opt.opt.newPlots new plots to add to the map - * opt.newLinks new links to add to the map - * opt.deletePlotKeys plots to delete from the map (array, or "all" to remove all plots) - * opt.deleteLinkKeys links to remove from the map (array, or "all" to remove all links) - * opt.setLegendElemsState the state of legend elements to be set : show (default) or hide - * opt.animDuration animation duration in ms (default = 0) - * opt.afterUpdate Hook that allows to add custom processing on the map - */ - onUpdateEvent: function (e, opt) { - var self = this; - // Abort if opt is undefined - if (typeof opt !== "object") return; - - var i = 0; - var animDuration = (opt.animDuration) ? opt.animDuration : 0; - - // This function remove an element using animation (or not, depending on animDuration) - // Used for deletePlotKeys and deleteLinkKeys - var fnRemoveElement = function (elem) { - // Unset all event handlers - self.unsetHover(elem.mapElem, elem.textElem); - if (animDuration > 0) { - elem.mapElem.animate({"opacity": 0}, animDuration, "linear", function () { - elem.mapElem.remove(); - }); - if (elem.textElem) { - elem.textElem.animate({"opacity": 0}, animDuration, "linear", function () { - elem.textElem.remove(); - }); - } - } else { - elem.mapElem.remove(); - if (elem.textElem) { - elem.textElem.remove(); - } - } - }; - - // This function show an element using animation - // Used for newPlots and newLinks - var fnShowElement = function (elem) { - // Starts with hidden elements - elem.mapElem.attr({opacity: 0}); - if (elem.textElem) elem.textElem.attr({opacity: 0}); - // Set final element opacity - self.setElementOpacity( - elem, - (elem.mapElem.originalAttrs.opacity !== undefined) ? elem.mapElem.originalAttrs.opacity : 1, - animDuration - ); - }; - - if (typeof opt.mapOptions === "object") { - if (opt.replaceOptions === true) self.options = self.extendDefaultOptions(opt.mapOptions); - else $.extend(true, self.options, opt.mapOptions); - - // IF we update areas, plots or legend, then reset all legend state to "show" - if (opt.mapOptions.areas !== undefined || opt.mapOptions.plots !== undefined || opt.mapOptions.legend !== undefined) { - $("[data-type='elem']", self.$container).each(function (id, elem) { - if ($(elem).attr('data-hidden') === "1") { - // Toggle state of element by clicking - $(elem).trigger("click." + pluginName, [false, animDuration]); - } - }); - } - } - - // Delete plots by name if deletePlotKeys is array - if (typeof opt.deletePlotKeys === "object") { - for (; i < opt.deletePlotKeys.length; i++) { - if (self.plots[opt.deletePlotKeys[i]] !== undefined) { - fnRemoveElement(self.plots[opt.deletePlotKeys[i]]); - delete self.plots[opt.deletePlotKeys[i]]; - } - } - // Delete ALL plots if deletePlotKeys is set to "all" - } else if (opt.deletePlotKeys === "all") { - $.each(self.plots, function (id, elem) { - fnRemoveElement(elem); - }); - // Empty plots object - self.plots = {}; - } - - // Delete links by name if deleteLinkKeys is array - if (typeof opt.deleteLinkKeys === "object") { - for (i = 0; i < opt.deleteLinkKeys.length; i++) { - if (self.links[opt.deleteLinkKeys[i]] !== undefined) { - fnRemoveElement(self.links[opt.deleteLinkKeys[i]]); - delete self.links[opt.deleteLinkKeys[i]]; - } - } - // Delete ALL links if deleteLinkKeys is set to "all" - } else if (opt.deleteLinkKeys === "all") { - $.each(self.links, function (id, elem) { - fnRemoveElement(elem); - }); - // Empty links object - self.links = {}; - } - - // New plots - if (typeof opt.newPlots === "object") { - $.each(opt.newPlots, function (id) { - if (self.plots[id] === undefined) { - self.options.plots[id] = opt.newPlots[id]; - self.plots[id] = self.drawPlot(id); - if (animDuration > 0) { - fnShowElement(self.plots[id]); - } - } - }); - } - - // New links - if (typeof opt.newLinks === "object") { - var newLinks = self.drawLinksCollection(opt.newLinks); - $.extend(self.links, newLinks); - $.extend(self.options.links, opt.newLinks); - if (animDuration > 0) { - $.each(newLinks, function (id) { - fnShowElement(newLinks[id]); - }); - } - } - - // Update areas attributes and tooltips - $.each(self.areas, function (id) { - // Avoid updating unchanged elements - if ((typeof opt.mapOptions === "object" && - ( - (typeof opt.mapOptions.map === "object" && typeof opt.mapOptions.map.defaultArea === "object") - || (typeof opt.mapOptions.areas === "object" && typeof opt.mapOptions.areas[id] === "object") - || (typeof opt.mapOptions.legend === "object" && typeof opt.mapOptions.legend.area === "object") - )) - || opt.replaceOptions === true - ) { - var elemOptions = self.getElemOptions( - self.options.map.defaultArea, - (self.options.areas[id] ? self.options.areas[id] : {}), - self.options.legend.area - ); - - self.updateElem(elemOptions, self.areas[id], animDuration); - } - }); - - // Update plots attributes and tooltips - $.each(self.plots, function (id) { - // Avoid updating unchanged elements - if ((typeof opt.mapOptions ==="object" && - ( - (typeof opt.mapOptions.map === "object" && typeof opt.mapOptions.map.defaultPlot === "object") - || (typeof opt.mapOptions.plots === "object" && typeof opt.mapOptions.plots[id] === "object") - || (typeof opt.mapOptions.legend === "object" && typeof opt.mapOptions.legend.plot === "object") - )) - || opt.replaceOptions === true - ) { - var elemOptions = self.getElemOptions( - self.options.map.defaultPlot, - (self.options.plots[id] ? self.options.plots[id] : {}), - self.options.legend.plot - ); - if (elemOptions.type == "square") { - elemOptions.attrs.width = elemOptions.size; - elemOptions.attrs.height = elemOptions.size; - elemOptions.attrs.x = self.plots[id].mapElem.attrs.x - (elemOptions.size - self.plots[id].mapElem.attrs.width) / 2; - elemOptions.attrs.y = self.plots[id].mapElem.attrs.y - (elemOptions.size - self.plots[id].mapElem.attrs.height) / 2; - } else if (elemOptions.type == "image") { - elemOptions.attrs.width = elemOptions.width; - elemOptions.attrs.height = elemOptions.height; - elemOptions.attrs.x = self.plots[id].mapElem.attrs.x - (elemOptions.width - self.plots[id].mapElem.attrs.width) / 2; - elemOptions.attrs.y = self.plots[id].mapElem.attrs.y - (elemOptions.height - self.plots[id].mapElem.attrs.height) / 2; - } else if (elemOptions.type == "svg") { - if (elemOptions.attrs.transform !== undefined) { - elemOptions.attrs.transform = self.plots[id].mapElem.baseTransform + elemOptions.attrs.transform; - } - }else { // Default : circle - elemOptions.attrs.r = elemOptions.size / 2; - } - - self.updateElem(elemOptions, self.plots[id], animDuration); - } - }); - - // Update links attributes and tooltips - $.each(self.links, function (id) { - // Avoid updating unchanged elements - if ((typeof opt.mapOptions === "object" && - ( - (typeof opt.mapOptions.map === "object" && typeof opt.mapOptions.map.defaultLink === "object") - || (typeof opt.mapOptions.links === "object" && typeof opt.mapOptions.links[id] === "object") - )) - || opt.replaceOptions === true - ) { - var elemOptions = self.getElemOptions( - self.options.map.defaultLink, - (self.options.links[id] ? self.options.links[id] : {}), - {} - ); - - self.updateElem(elemOptions, self.links[id], animDuration); - } - }); - - // Update legends - if (opt.mapOptions && ( - (typeof opt.mapOptions.legend === "object") - || (typeof opt.mapOptions.map === "object" && typeof opt.mapOptions.map.defaultArea === "object") - || (typeof opt.mapOptions.map === "object" && typeof opt.mapOptions.map.defaultPlot === "object") - )) { - // Show all elements on the map before updating the legends - $("[data-type='elem']", self.$container).each(function (id, elem) { - if ($(elem).attr('data-hidden') === "1") { - $(elem).trigger("click." + pluginName, [false, animDuration]); - } - }); - - self.createLegends("area", self.areas, 1); - if (self.options.map.width) { - self.createLegends("plot", self.plots, (self.options.map.width / self.mapConf.width)); - } else { - self.createLegends("plot", self.plots, (self.$map.width() / self.mapConf.width)); - } - } - - // Hide/Show all elements based on showlegendElems - // Toggle (i.e. click) only if: - // - slice legend is shown AND we want to hide - // - slice legend is hidden AND we want to show - if (typeof opt.setLegendElemsState === "object") { - // setLegendElemsState is an object listing the legend we want to hide/show - $.each(opt.setLegendElemsState, function (legendCSSClass, action) { - // Search for the legend - var $legend = self.$container.find("." + legendCSSClass)[0]; - if ($legend !== undefined) { - // Select all elem inside this legend - $("[data-type='elem']", $legend).each(function (id, elem) { - if (($(elem).attr('data-hidden') === "0" && action === "hide") || - ($(elem).attr('data-hidden') === "1" && action === "show")) { - // Toggle state of element by clicking - $(elem).trigger("click." + pluginName, [false, animDuration]); - } - }); - } - }); - } else { - // setLegendElemsState is a string, or is undefined - // Default : "show" - var action = (opt.setLegendElemsState === "hide") ? "hide" : "show"; - - $("[data-type='elem']", self.$container).each(function (id, elem) { - if (($(elem).attr('data-hidden') === "0" && action === "hide") || - ($(elem).attr('data-hidden') === "1" && action === "show")) { - // Toggle state of element by clicking - $(elem).trigger("click." + pluginName, [false, animDuration]); - } - }); - } - if (opt.afterUpdate) opt.afterUpdate(self.$container, self.paper, self.areas, self.plots, self.options); - }, - - /* - * Draw all links between plots on the paper - */ - drawLinksCollection: function (linksCollection) { - var self = this; - var p1 = {}; - var p2 = {}; - var coordsP1 = {}; - var coordsP2 = {}; - var links = {}; - - $.each(linksCollection, function (id) { - var elemOptions = self.getElemOptions(self.options.map.defaultLink, linksCollection[id], {}); - - if (typeof linksCollection[id].between[0] == 'string') { - p1 = self.options.plots[linksCollection[id].between[0]]; - } else { - p1 = linksCollection[id].between[0]; - } - - if (typeof linksCollection[id].between[1] == 'string') { - p2 = self.options.plots[linksCollection[id].between[1]]; - } else { - p2 = linksCollection[id].between[1]; - } - - if (p1.latitude !== undefined && p1.longitude !== undefined) { - coordsP1 = self.mapConf.getCoords(p1.latitude, p1.longitude); - } else { - coordsP1.x = p1.x; - coordsP1.y = p1.y; - } - - if (p2.latitude !== undefined && p2.longitude !== undefined) { - coordsP2 = self.mapConf.getCoords(p2.latitude, p2.longitude); - } else { - coordsP2.x = p2.x; - coordsP2.y = p2.y; - } - links[id] = self.drawLink(id, coordsP1.x, coordsP1.y, coordsP2.x, coordsP2.y, elemOptions); - }); - return links; - }, - - /* - * Draw a curved link between two couples of coordinates a(xa,ya) and b(xb, yb) on the paper - */ - drawLink: function (id, xa, ya, xb, yb, elemOptions) { - var self = this; - var elem = {}; - // Compute the "curveto" SVG point, d(x,y) - // c(xc, yc) is the center of (xa,ya) and (xb, yb) - var xc = (xa + xb) / 2; - var yc = (ya + yb) / 2; - - // Equation for (cd) : y = acd * x + bcd (d is the cure point) - var acd = -1 / ((yb - ya) / (xb - xa)); - var bcd = yc - acd * xc; - - // dist(c,d) = dist(a,b) (=abDist) - var abDist = Math.sqrt((xb - xa) * (xb - xa) + (yb - ya) * (yb - ya)); - - // Solution for equation dist(cd) = sqrt((xd - xc)² + (yd - yc)²) - // dist(c,d)² = (xd - xc)² + (yd - yc)² - // We assume that dist(c,d) = dist(a,b) - // so : (xd - xc)² + (yd - yc)² - dist(a,b)² = 0 - // With the factor : (xd - xc)² + (yd - yc)² - (factor*dist(a,b))² = 0 - // (xd - xc)² + (acd*xd + bcd - yc)² - (factor*dist(a,b))² = 0 - var a = 1 + acd * acd; - var b = -2 * xc + 2 * acd * bcd - 2 * acd * yc; - var c = xc * xc + bcd * bcd - bcd * yc - yc * bcd + yc * yc - ((elemOptions.factor * abDist) * (elemOptions.factor * abDist)); - var delta = b * b - 4 * a * c; - var x = 0; - var y = 0; - - // There are two solutions, we choose one or the other depending on the sign of the factor - if (elemOptions.factor > 0) { - x = (-b + Math.sqrt(delta)) / (2 * a); - y = acd * x + bcd; - } else { - x = (-b - Math.sqrt(delta)) / (2 * a); - y = acd * x + bcd; - } - - elem.mapElem = self.paper.path("m " + xa + "," + ya + " C " + x + "," + y + " " + xb + "," + yb + " " + xb + "," + yb + "").attr(elemOptions.attrs); - self.initElem(elem, elemOptions, id); - - return elem; - }, - - /* - * Update the element "elem" on the map with the new elemOptions options - */ - updateElem: function (elemOptions, elem, animDuration) { - var self = this; - var bbox = elem.mapElem.getBBox(); - var textPosition; - var plotOffsetX; - var plotOffsetY; - - if (elemOptions.value !== undefined) - elem.value = elemOptions.value; - - // Update the label - if (elem.textElem) { - if (elemOptions.text !== undefined && elemOptions.text.content !== undefined && elemOptions.text.content != elem.textElem.attrs.text) - elem.textElem.attr({text: elemOptions.text.content}); - - if (elemOptions.size || (elemOptions.width && elemOptions.height)) { - if (elemOptions.type == "image" || elemOptions.type == "svg") { - plotOffsetX = (elemOptions.width - bbox.width) / 2; - plotOffsetY = (elemOptions.height - bbox.height) / 2; - } else { - plotOffsetX = (elemOptions.size - bbox.width) / 2; - plotOffsetY = (elemOptions.size - bbox.height) / 2; - } - bbox.x -= plotOffsetX; - bbox.x2 += plotOffsetX; - bbox.y -= plotOffsetY; - bbox.y2 += plotOffsetY; - } - - textPosition = self.getTextPosition(bbox, elemOptions.text.position, elemOptions.text.margin); - if (textPosition.x != elem.textElem.attrs.x || textPosition.y != elem.textElem.attrs.y) { - if (animDuration > 0) { - elem.textElem.attr({"text-anchor": textPosition.textAnchor}); - elem.textElem.animate({x: textPosition.x, y: textPosition.y}, animDuration); - } else - elem.textElem.attr({ - x: textPosition.x, - y: textPosition.y, - "text-anchor": textPosition.textAnchor - }); - } - - self.setHoverOptions(elem.textElem, elemOptions.text.attrs, elemOptions.text.attrsHover); - if (animDuration > 0) - elem.textElem.animate(elemOptions.text.attrs, animDuration); - else - elem.textElem.attr(elemOptions.text.attrs); - } - - // Update elements attrs and attrsHover - self.setHoverOptions(elem.mapElem, elemOptions.attrs, elemOptions.attrsHover); - if (animDuration > 0) - elem.mapElem.animate(elemOptions.attrs, animDuration); - else - elem.mapElem.attr(elemOptions.attrs); - - // Update dimensions of SVG plots - if (elemOptions.type == "svg") { - elem.mapElem.transform("m" + (elemOptions.width / elem.mapElem.originalWidth) + ",0,0," + (elemOptions.height / elem.mapElem.originalHeight) + "," + bbox.x + "," + bbox.y); - } - - // Update the tooltip - if (elemOptions.tooltip) { - if (elem.mapElem.tooltip === undefined) { - self.setTooltip(elem.mapElem); - if (elem.textElem) self.setTooltip(elem.textElem); - } - elem.mapElem.tooltip = elemOptions.tooltip; - if (elem.textElem) elem.textElem.tooltip = elemOptions.tooltip; - } - - // Update the link - if (elemOptions.href !== undefined) { - if (elem.mapElem.href === undefined) { - self.setHref(elem.mapElem); - if (elem.textElem) self.setHref(elem.textElem); - } - elem.mapElem.href = elemOptions.href; - elem.mapElem.target = elemOptions.target; - if (elem.textElem) { - elem.textElem.href = elemOptions.href; - elem.textElem.target = elemOptions.target; - } - } - }, - - /* - * Draw the plot - */ - drawPlot: function (id) { - var self = this; - var plot = {}; - var coords = {}; - var elemOptions = self.getElemOptions( - self.options.map.defaultPlot, - (self.options.plots[id] ? self.options.plots[id] : {}), - self.options.legend.plot - ); - - if (elemOptions.x !== undefined && elemOptions.y !== undefined) - coords = {x: elemOptions.x, y: elemOptions.y}; - else - coords = self.mapConf.getCoords(elemOptions.latitude, elemOptions.longitude); - - if (elemOptions.type == "square") { - plot = { - "mapElem": self.paper.rect( - coords.x - (elemOptions.size / 2), - coords.y - (elemOptions.size / 2), - elemOptions.size, - elemOptions.size - ).attr(elemOptions.attrs) - }; - } else if (elemOptions.type == "image") { - plot = { - "mapElem": self.paper.image( - elemOptions.url, - coords.x - elemOptions.width / 2, - coords.y - elemOptions.height / 2, - elemOptions.width, - elemOptions.height - ).attr(elemOptions.attrs) - }; - } else if (elemOptions.type == "svg") { - if (elemOptions.attrs.transform === undefined) { - elemOptions.attrs.transform = ""; - } - - plot = {"mapElem": self.paper.path(elemOptions.path)}; - plot.mapElem.originalWidth = plot.mapElem.getBBox().width; - plot.mapElem.originalHeight = plot.mapElem.getBBox().height; - - plot.mapElem.baseTransform = "m" + (elemOptions.width / plot.mapElem.originalWidth) + ",0,0," + (elemOptions.height / plot.mapElem.originalHeight) + "," + (coords.x - elemOptions.width / 2) + "," + (coords.y - elemOptions.height / 2); - elemOptions.attrs.transform = plot.mapElem.baseTransform + elemOptions.attrs.transform; - plot.mapElem.attr(elemOptions.attrs); - } else { // Default = circle - plot = {"mapElem": self.paper.circle(coords.x, coords.y, elemOptions.size / 2).attr(elemOptions.attrs)}; - } - self.initElem(plot, elemOptions, id); - return plot; - }, - - /* - * Set target link on elem - */ - setHref: function (elem) { - var self = this; - elem.attr({cursor: "pointer"}); - $(elem.node).on("click." + pluginName, function () { - if (!self.panning && elem.href) - window.open(elem.href, elem.target); - }); - }, - - /* - * Set a tooltip for the areas and plots - * @param elem area or plot element - * @param content the content to set in the tooltip - */ - setTooltip: function (elem) { - var self = this; - var tooltipTO = 0; - var cssClass = self.$tooltip.attr('class'); - - - - var updateTooltipPosition = function (x, y) { - - var offsetLeft = 10; - var offsetTop = 20; - - if (typeof elem.tooltip.offset === "object") { - if (typeof elem.tooltip.offset.left !== "undefined") { - offsetLeft = elem.tooltip.offset.left; - } - if (typeof elem.tooltip.offset.top !== "undefined") { - offsetTop = elem.tooltip.offset.top; - } - } - - var tooltipPosition = { - "left": Math.min(self.$map.width() - self.$tooltip.outerWidth() - 5, x - self.$map.offset().left + offsetLeft), - "top": Math.min(self.$map.height() - self.$tooltip.outerHeight() - 5, y - self.$map.offset().top + offsetTop) - }; - - if (typeof elem.tooltip.overflow === "object") { - if (elem.tooltip.overflow.right === true) { - tooltipPosition.left = x - self.$map.offset().left + 10; - } - if (selem.tooltip.overflow.bottom === true) { - tooltipPosition.top = y - self.$map.offset().top + 20; - } - } - - self.$tooltip.css(tooltipPosition); - }; - - $(elem.node).on("mouseover." + pluginName, function (e) { - tooltipTO = setTimeout( - function () { - self.$tooltip.attr("class", cssClass); - if (elem.tooltip !== undefined) { - if (elem.tooltip.content !== undefined) { - // if tooltip.content is function, call it. Otherwise, assign it directly. - var content = (typeof elem.tooltip.content === "function") ? elem.tooltip.content(elem) : elem.tooltip.content; - self.$tooltip.html(content).css("display", "block"); - } - if (elem.tooltip.cssClass !== undefined) { - self.$tooltip.addClass(elem.tooltip.cssClass); - } - } - updateTooltipPosition(e.pageX, e.pageY); - }, 120 - ); - }).on("mouseout." + pluginName, function () { - clearTimeout(tooltipTO); - self.$tooltip.css("display", "none"); - }).on("mousemove." + pluginName, function (e) { - updateTooltipPosition(e.pageX, e.pageY); - }); - }, - - /* - * Set user defined handlers for events on areas and plots - * @param id the id of the element - * @param elemOptions the element parameters - * @param mapElem the map element to set callback on - * @param textElem the optional text within the map element - */ - setEventHandlers: function (id, elemOptions, mapElem, textElem) { - var self = this; - $.each(elemOptions.eventHandlers, function (event) { - (function (event) { - $(mapElem.node).on(event, function (e) { - if (!self.panning) elemOptions.eventHandlers[event](e, id, mapElem, textElem, elemOptions); - }); - if (textElem) { - $(textElem.node).on(event, function (e) { - if (!self.panning) elemOptions.eventHandlers[event](e, id, mapElem, textElem, elemOptions); - }); - } - })(event); - }); - }, - - /* - * Draw a legend for areas and / or plots - * @param legendOptions options for the legend to draw - * @param legendType the type of the legend : "area" or "plot" - * @param elems collection of plots or areas on the maps - * @param legendIndex index of the legend in the conf array - */ - drawLegend: function (legendOptions, legendType, elems, scale, legendIndex) { - var self = this; - var $legend = {}; - var legendPaper = {}; - var width = 0; - var height = 0; - var title = null; - var elem = {}; - var elemBBox = {}; - var label = {}; - var i = 0; - var x = 0; - var y = 0; - var yCenter = 0; - var sliceOptions = []; - var length = 0; - - $legend = $("." + legendOptions.cssClass, self.$container).empty(); - legendPaper = new Raphael($legend.get(0)); - // Set some data to object - $(legendPaper.canvas).attr({"data-type": legendType, "data-index": legendIndex}); - - height = width = 0; - - // Set the title of the legend - if (legendOptions.title && legendOptions.title !== "") { - title = legendPaper.text(legendOptions.marginLeftTitle, 0, legendOptions.title).attr(legendOptions.titleAttrs); - title.attr({y: 0.5 * title.getBBox().height}); - - width = legendOptions.marginLeftTitle + title.getBBox().width; - height += legendOptions.marginBottomTitle + title.getBBox().height; - } - - // Calculate attrs (and width, height and r (radius)) for legend elements, and yCenter for horizontal legends - - for (i = 0, length = legendOptions.slices.length; i < length; ++i) { - var yCenterCurrent = 0; - - sliceOptions[i] = $.extend(true, {}, (legendType == "plot") ? self.options.map.defaultPlot : self.options.map.defaultArea, legendOptions.slices[i]); - - if (legendOptions.slices[i].legendSpecificAttrs === undefined) { - legendOptions.slices[i].legendSpecificAttrs = {}; - } - - $.extend(true, sliceOptions[i].attrs, legendOptions.slices[i].legendSpecificAttrs); - - if (legendType == "area") { - if (sliceOptions[i].attrs.width === undefined) - sliceOptions[i].attrs.width = 30; - if (sliceOptions[i].attrs.height === undefined) - sliceOptions[i].attrs.height = 20; - } else if (sliceOptions[i].type == "square") { - if (sliceOptions[i].attrs.width === undefined) - sliceOptions[i].attrs.width = sliceOptions[i].size; - if (sliceOptions[i].attrs.height === undefined) - sliceOptions[i].attrs.height = sliceOptions[i].size; - } else if (sliceOptions[i].type == "image" || sliceOptions[i].type == "svg") { - if (sliceOptions[i].attrs.width === undefined) - sliceOptions[i].attrs.width = sliceOptions[i].width; - if (sliceOptions[i].attrs.height === undefined) - sliceOptions[i].attrs.height = sliceOptions[i].height; - } else { - if (sliceOptions[i].attrs.r === undefined) - sliceOptions[i].attrs.r = sliceOptions[i].size / 2; - } - - - - // Compute yCenter for this legend slice - yCenterCurrent = legendOptions.marginBottomTitle; - // Add title height if it exists - if (title) { - yCenterCurrent += title.getBBox().height; - } - if (legendType == "plot" && (sliceOptions[i].type === undefined || sliceOptions[i].type == "circle")) { - yCenterCurrent += scale * sliceOptions[i].attrs.r; - } else { - yCenterCurrent += scale * sliceOptions[i].attrs.height / 2; - } - // Update yCenter if current larger - yCenter = Math.max(yCenter, yCenterCurrent); - } - - if (legendOptions.mode == "horizontal") { - width = legendOptions.marginLeft; - } - - // Draw legend elements (circle, square or image in vertical or horizontal mode) - for (i = 0, length = sliceOptions.length; i < length; ++i) { - if (sliceOptions[i].display === undefined || sliceOptions[i].display === true) { - if (legendType == "area") { - if (legendOptions.mode == "horizontal") { - x = width + legendOptions.marginLeft; - y = yCenter - (0.5 * scale * sliceOptions[i].attrs.height); - } else { - x = legendOptions.marginLeft; - y = height; - } - - elem = legendPaper.rect(x, y, scale * (sliceOptions[i].attrs.width), scale * (sliceOptions[i].attrs.height)); - } else if (sliceOptions[i].type == "square") { - if (legendOptions.mode == "horizontal") { - x = width + legendOptions.marginLeft; - y = yCenter - (0.5 * scale * sliceOptions[i].attrs.height); - } else { - x = legendOptions.marginLeft; - y = height; - } - - elem = legendPaper.rect(x, y, scale * (sliceOptions[i].attrs.width), scale * (sliceOptions[i].attrs.height)); - - } else if (sliceOptions[i].type == "image" || sliceOptions[i].type == "svg") { - if (legendOptions.mode == "horizontal") { - x = width + legendOptions.marginLeft; - y = yCenter - (0.5 * scale * sliceOptions[i].attrs.height); - } else { - x = legendOptions.marginLeft; - y = height; - } - - if (sliceOptions[i].type == "image") { - elem = legendPaper.image( - sliceOptions[i].url, x, y, scale * sliceOptions[i].attrs.width, scale * sliceOptions[i].attrs.height); - } else { - elem = legendPaper.path(sliceOptions[i].path); - - if (sliceOptions[i].attrs.transform === undefined) { - sliceOptions[i].attrs.transform = ""; - } - sliceOptions[i].attrs.transform = "m" + ((scale * sliceOptions[i].width) / elem.getBBox().width) + ",0,0," + ((scale * sliceOptions[i].height) / elem.getBBox().height) + "," + x + "," + y + sliceOptions[i].attrs.transform; - } - } else { - if (legendOptions.mode == "horizontal") { - x = width + legendOptions.marginLeft + scale * (sliceOptions[i].attrs.r); - y = yCenter; - } else { - x = legendOptions.marginLeft + scale * (sliceOptions[i].attrs.r); - y = height + scale * (sliceOptions[i].attrs.r); - } - elem = legendPaper.circle(x, y, scale * (sliceOptions[i].attrs.r)); - } - - // Set attrs to the element drawn above - delete sliceOptions[i].attrs.width; - delete sliceOptions[i].attrs.height; - delete sliceOptions[i].attrs.r; - elem.attr(sliceOptions[i].attrs); - elemBBox = elem.getBBox(); - - // Draw the label associated with the element - if (legendOptions.mode == "horizontal") { - x = width + legendOptions.marginLeft + elemBBox.width + legendOptions.marginLeftLabel; - y = yCenter; - } else { - x = legendOptions.marginLeft + elemBBox.width + legendOptions.marginLeftLabel; - y = height + (elemBBox.height / 2); - } - - label = legendPaper.text(x, y, sliceOptions[i].label).attr(legendOptions.labelAttrs); - - // Update the width and height for the paper - if (legendOptions.mode == "horizontal") { - var currentHeight = legendOptions.marginBottom + elemBBox.height; - width += legendOptions.marginLeft + elemBBox.width + legendOptions.marginLeftLabel + label.getBBox().width; - if (sliceOptions[i].type != "image" && legendType != "area") { - currentHeight += legendOptions.marginBottomTitle; - } - // Add title height if it exists - if (title) { - currentHeight += title.getBBox().height; - } - height = Math.max(height, currentHeight); - } else { - width = Math.max(width, legendOptions.marginLeft + elemBBox.width + legendOptions.marginLeftLabel + label.getBBox().width); - height += legendOptions.marginBottom + elemBBox.height; - } - - $(elem.node).attr({"data-type": "elem", "data-index": i, "data-hidden": 0}); - $(label.node).attr({"data-type": "label", "data-index": i, "data-hidden": 0}); - - // Hide map elements when the user clicks on a legend item - if (legendOptions.hideElemsOnClick.enabled) { - // Hide/show elements when user clicks on a legend element - label.attr({cursor: "pointer"}); - elem.attr({cursor: "pointer"}); - - self.setHoverOptions(elem, sliceOptions[i].attrs, sliceOptions[i].attrs); - self.setHoverOptions(label, legendOptions.labelAttrs, legendOptions.labelAttrsHover); - self.setHover(elem, label); - self.handleClickOnLegendElem(legendOptions, sliceOptions[i], label, elem, elems, legendIndex); - } - } - } - - // VMLWidth option allows you to set static width for the legend - // only for VML render because text.getBBox() returns wrong values on IE6/7 - if (Raphael.type != "SVG" && legendOptions.VMLWidth) - width = legendOptions.VMLWidth; - - legendPaper.setSize(width, height); - }, - - /* - * Allow to hide elements of the map when the user clicks on a related legend item - * @param legendOptions options for the legend to draw - * @param sliceOptions options of the slice - * @param label label of the legend item - * @param elem element of the legend item - * @param elems collection of plots or areas displayed on the map - * @param legendIndex index of the legend in the conf array - */ - handleClickOnLegendElem: function (legendOptions, sliceOptions, label, elem, elems, legendIndex) { - var self = this; - var hideMapElems = function (e, hideOtherElems, animDuration) { - var elemValue = 0; - var hidden = $(label.node).attr('data-hidden'); - var hiddenNewAttr = (hidden === '0') ? {"data-hidden": '1'} : {"data-hidden": '0'}; - - // Check animDuration: if not set, this is a regular click, use the value specified in options - if (animDuration === undefined) animDuration = legendOptions.hideElemsOnClick.animDuration; - - if (hidden === '0') { - if (animDuration > 0) label.animate({"opacity": 0.5}, animDuration); - else label.attr({"opacity": 0.5}); - } else { - if (animDuration > 0) label.animate({"opacity": 1}, animDuration); - else label.attr({"opacity": 1}); - } - - $.each(elems, function (id) { - // Retreive stored data of element - // 'hidden-by' contains the list of legendIndex that is hiding this element - var hiddenBy = elems[id].mapElem.data('hidden-by'); - // Set to empty object if undefined - if (hiddenBy === undefined) hiddenBy = {}; - - if ($.isArray(elems[id].value)) { - elemValue = elems[id].value[legendIndex]; - } else { - elemValue = elems[id].value; - } - - if ((sliceOptions.sliceValue !== undefined && elemValue == sliceOptions.sliceValue) - || ((sliceOptions.sliceValue === undefined) - && (sliceOptions.min === undefined || elemValue >= sliceOptions.min) - && (sliceOptions.max === undefined || elemValue <= sliceOptions.max)) - ) { - (function (id) { - if (hidden === '0') { // we want to hide this element - hiddenBy[legendIndex] = true; // add legendIndex to the data object for later use - self.setElementOpacity(elems[id], legendOptions.hideElemsOnClick.opacity, animDuration); - } else { // We want to show this element - delete hiddenBy[legendIndex]; // Remove this legendIndex from object - // Check if another legendIndex is defined - // We will show this element only if no legend is no longer hiding it - if ($.isEmptyObject(hiddenBy)) { - self.setElementOpacity( - elems[id], - elems[id].mapElem.originalAttrs.opacity !== undefined ? elems[id].mapElem.originalAttrs.opacity : 1, - animDuration - ); - } - } - // Update elem data with new values - elems[id].mapElem.data('hidden-by', hiddenBy); - })(id); - } - }); - - $(elem.node).attr(hiddenNewAttr); - $(label.node).attr(hiddenNewAttr); - - if ((hideOtherElems === undefined || hideOtherElems === true) - && legendOptions.exclusive !== undefined && legendOptions.exclusive === true - ) { - $("[data-type='elem'][data-hidden=0]", self.$container).each(function () { - if ($(this).attr('data-index') !== $(elem.node).attr('data-index')) { - $(this).trigger("click." + pluginName, false); - } - }); - } - }; - $(label.node).on("click." + pluginName, hideMapElems); - $(elem.node).on("click." + pluginName, hideMapElems); - - if (sliceOptions.clicked !== undefined && sliceOptions.clicked === true) { - $(elem.node).trigger("click." + pluginName, false); - } - }, - - /* - * Create all legends for a specified type (area or plot) - * @param legendType the type of the legend : "area" or "plot" - * @param elems collection of plots or areas displayed on the map - * @param scale scale ratio of the map - */ - createLegends: function (legendType, elems, scale) { - var self = this; - var legendsOptions = self.options.legend[legendType]; - - if (!$.isArray(self.options.legend[legendType])) { - legendsOptions = [self.options.legend[legendType]]; - } - - for (var j = 0; j < legendsOptions.length; ++j) { - // Check for class existence - if (legendsOptions[j].cssClass === "" || $("." + legendsOptions[j].cssClass, self.$container).length === 0) { - throw new Error("The legend class `" + legendsOptions[j].cssClass + "` doesn't exists."); - } - if (legendsOptions[j].display === true && $.isArray(legendsOptions[j].slices) && legendsOptions[j].slices.length > 0) { - self.drawLegend(legendsOptions[j], legendType, elems, scale, j); - } - } - }, - - /* - * Set the attributes on hover and the attributes to restore for a map element - * @param elem the map element - * @param originalAttrs the original attributes to restore on mouseout event - * @param attrsHover the attributes to set on mouseover event - */ - setHoverOptions: function (elem, originalAttrs, attrsHover) { - // Disable transform option on hover for VML (IE<9) because of several bugs - if (Raphael.type != "SVG") delete attrsHover.transform; - elem.attrsHover = attrsHover; - - if (elem.attrsHover.transform) elem.originalAttrs = $.extend({transform: "s1"}, originalAttrs); - else elem.originalAttrs = originalAttrs; - }, - - /* - * Set the hover behavior (mouseover & mouseout) for plots and areas - * @param mapElem the map element - * @param textElem the optional text element (within the map element) - */ - setHover: function (mapElem, textElem) { - var self = this; - var $mapElem = {}; - var $textElem = {}; - var mouseoverTimeout = 0; - var mouseoutTimeout = 0; - var overBehaviour = function () { - clearTimeout(mouseoutTimeout); - mouseoverTimeout = setTimeout(function () { - self.elemHover(mapElem, textElem); - }, 120); - }; - var outBehaviour = function () { - clearTimeout(mouseoverTimeout); - mouseoutTimeout = setTimeout(function(){ - self.elemOut(mapElem, textElem); - }, 120); - }; - - $mapElem = $(mapElem.node); - $mapElem.on("mouseover." + pluginName, overBehaviour); - $mapElem.on("mouseout." + pluginName, outBehaviour); - - if (textElem) { - $textElem = $(textElem.node); - $textElem.on("mouseover." + pluginName, overBehaviour); - $(textElem.node).on("mouseout." + pluginName, outBehaviour); - } - }, - - /* - * Remove the hover behavior for plots and areas - * @param mapElem the map element - * @param textElem the optional text element (within the map element) - */ - unsetHover: function (mapElem, textElem) { - $(mapElem.node).off("." + pluginName); - if (textElem) $(textElem.node).off("." + pluginName); - }, - - /* - * Set he behaviour for "mouseover" event - * @param mapElem mapElem the map element - * @param textElem the optional text element (within the map element) - */ - elemHover: function (mapElem, textElem) { - var self = this; - // Set mapElem - if (mapElem.attrsHover.animDuration > 0) mapElem.animate(mapElem.attrsHover, mapElem.attrsHover.animDuration); - else mapElem.attr(mapElem.attrsHover); - // Set textElem - if (textElem) { - if (textElem.attrsHover.animDuration > 0) textElem.animate(textElem.attrsHover, textElem.attrsHover.animDuration); - else textElem.attr(textElem.attrsHover); - } - // workaround for older version of Raphael - if (self.paper.safari) self.paper.safari(); - }, - - /* - * Set he behaviour for "mouseout" event - * @param mapElem the map element - * @param textElem the optional text element (within the map element) - */ - elemOut: function (mapElem, textElem) { - var self = this; - // Set mapElem - if (mapElem.attrsHover.animDuration > 0) mapElem.animate(mapElem.originalAttrs, mapElem.attrsHover.animDuration); - else mapElem.attr(mapElem.originalAttrs); - // Set textElem - if (textElem) { - if (textElem.attrsHover.animDuration > 0) textElem.animate(textElem.originalAttrs, textElem.attrsHover.animDuration); - else textElem.attr(textElem.originalAttrs); - } - - // workaround for older version of Raphael - if (self.paper.safari) self.paper.safari(); - }, - - /* - * Get element options by merging default options, element options and legend options - * @param defaultOptions - * @param elemOptions - * @param legendOptions - */ - getElemOptions: function (defaultOptions, elemOptions, legendOptions) { - var self = this; - var options = $.extend(true, {}, defaultOptions, elemOptions); - if (options.value !== undefined) { - if ($.isArray(legendOptions)) { - for (var i = 0, length = legendOptions.length; i < length; ++i) { - options = $.extend(true, {}, options, self.getLegendSlice(options.value[i], legendOptions[i])); - } - } else { - options = $.extend(true, {}, options, self.getLegendSlice(options.value, legendOptions)); - } - } - return options; - }, - - /* - * Get the coordinates of the text relative to a bbox and a position - * @param bbox the boundary box of the element - * @param textPosition the wanted text position (inner, right, left, top or bottom) - * @param margin number or object {x: val, y:val} margin between the bbox and the text - */ - getTextPosition: function (bbox, textPosition, margin) { - var textX = 0; - var textY = 0; - var textAnchor = ""; - - if (typeof margin === "number") { - if (textPosition === "bottom" || textPosition === "top") { - margin = {x: 0, y: margin}; - } else if (textPosition === "right" || textPosition === "left") { - margin = {x: margin, y: 0}; - } else { - margin = {x: 0, y: 0}; - } - } - - switch (textPosition) { - case "bottom" : - textX = ((bbox.x + bbox.x2) / 2) + margin.x; - textY = bbox.y2 + margin.y; - textAnchor = "middle"; - break; - case "top" : - textX = ((bbox.x + bbox.x2) / 2) + margin.x; - textY = bbox.y - margin.y; - textAnchor = "middle"; - break; - case "left" : - textX = bbox.x - margin.x; - textY = ((bbox.y + bbox.y2) / 2) + margin.y; - textAnchor = "end"; - break; - case "right" : - textX = bbox.x2 + margin.x; - textY = ((bbox.y + bbox.y2) / 2) + margin.y; - textAnchor = "start"; - break; - default : // "inner" position - textX = ((bbox.x + bbox.x2) / 2) + margin.x; - textY = ((bbox.y + bbox.y2) / 2) + margin.y; - textAnchor = "middle"; - } - return {"x": textX, "y": textY, "textAnchor": textAnchor}; - }, - - /* - * Get the legend conf matching with the value - * @param value the value to match with a slice in the legend - * @param legend the legend params object - * @return the legend slice matching with the value - */ - getLegendSlice: function (value, legend) { - for (var i = 0, length = legend.slices.length; i < length; ++i) { - if ((legend.slices[i].sliceValue !== undefined && value == legend.slices[i].sliceValue) - || ((legend.slices[i].sliceValue === undefined) - && (legend.slices[i].min === undefined || value >= legend.slices[i].min) - && (legend.slices[i].max === undefined || value <= legend.slices[i].max)) - ) { - return legend.slices[i]; - } - } - return {}; - }, - - /* - * Animated view box changes - * As from http://code.voidblossom.com/animating-viewbox-easing-formulas/, - * (from https://github.com/theshaun works on mapael) - * @param x coordinate of the point to focus on - * @param y coordinate of the point to focus on - * @param w map defined width - * @param h map defined height - * @param duration defined length of time for animation - * @param easingFunction defined Raphael supported easing_formula to use - * @param callback method when animated action is complete - */ - animateViewBox: function (x, y, w, h, duration, easingFunction) { - var self = this; - var cx = self.paper._viewBox ? self.paper._viewBox[0] : 0; - var dx = x - cx; - var cy = self.paper._viewBox ? self.paper._viewBox[1] : 0; - var dy = y - cy; - var cw = self.paper._viewBox ? self.paper._viewBox[2] : self.paper.width; - var dw = w - cw; - var ch = self.paper._viewBox ? self.paper._viewBox[3] : self.paper.height; - var dh = h - ch; - var interval = 25; - var steps = duration / interval; - var currentStep = 0; - var easingFormula; - - easingFunction = easingFunction || "linear"; - easingFormula = Raphael.easing_formulas[easingFunction]; - - clearInterval(self.animationIntervalID); - - self.animationIntervalID = setInterval(function () { - var ratio = currentStep / steps; - self.paper.setViewBox(cx + dx * easingFormula(ratio), - cy + dy * easingFormula(ratio), - cw + dw * easingFormula(ratio), - ch + dh * easingFormula(ratio), false); - if (currentStep++ >= steps) { - clearInterval(self.animationIntervalID); - clearTimeout(self.zoomTO); - self.zoomTO = setTimeout(function () { - self.$map.trigger("afterZoom", {x1: x, y1: y, x2: (x + w), y2: (y + h)}); - }, 150); - } - }, interval - ); - }, - - /* - * Check for Raphael bug regarding drawing while beeing hidden (under display:none) - * See https://github.com/neveldo/jQuery-Mapael/issues/135 - * @return true/false - * - * Wants to override this behavior? Use prototype overriding: - * $.mapael.prototype.isRaphaelBBoxBugPresent = function() {return false;}; - */ - isRaphaelBBoxBugPresent: function(){ - var self = this; - // Draw text, then get its boundaries - var text_elem = self.paper.text(-50, -50, "TEST"); - var text_elem_bbox = text_elem.getBBox(); - // remove element - text_elem.remove(); - // If it has no height and width, then the paper is hidden - return (text_elem_bbox.width === 0 && text_elem_bbox.height === 0); - }, - - // Default map options - defaultOptions: { - map: { - cssClass: "map", - tooltip: { - cssClass: "mapTooltip" - }, - defaultArea: { - attrs: { - fill: "#343434", - stroke: "#5d5d5d", - "stroke-width": 1, - "stroke-linejoin": "round" - }, - attrsHover: { - fill: "#f38a03", - animDuration: 300 - }, - text: { - position: "inner", - margin: 10, - attrs: { - "font-size": 15, - fill: "#c7c7c7" - }, - attrsHover: { - fill: "#eaeaea", - "animDuration": 300 - } - }, - target: "_self" - }, - defaultPlot: { - type: "circle", - size: 15, - attrs: { - fill: "#0088db", - stroke: "#fff", - "stroke-width": 0, - "stroke-linejoin": "round" - }, - attrsHover: { - "stroke-width": 3, - animDuration: 300 - }, - text: { - position: "right", - margin: 10, - attrs: { - "font-size": 15, - fill: "#c7c7c7" - }, - attrsHover: { - fill: "#eaeaea", - animDuration: 300 - } - }, - target: "_self" - }, - defaultLink: { - factor: 0.5, - attrs: { - stroke: "#0088db", - "stroke-width": 2 - }, - attrsHover: { - animDuration: 300 - }, - text: { - position: "inner", - margin: 10, - attrs: { - "font-size": 15, - fill: "#c7c7c7" - }, - attrsHover: { - fill: "#eaeaea", - animDuration: 300 - } - }, - target: "_self" - }, - zoom: { - enabled: false, - minLevel: 0, - maxLevel: 10, - step: 0.25, - mousewheel: true, - touch: true, - animDuration: 200, - animEasing: "linear", - buttons: { - "reset": { - cssClass: "zoomButton zoomReset", - content: "•", // bullet sign - title: "Reset zoom" - }, - "in": { - cssClass: "zoomButton zoomIn", - content: "+", - title: "Zoom in" - }, - "out": { - cssClass: "zoomButton zoomOut", - content: "−", // minus sign - title: "Zoom out" - } - } - } - }, - legend: { - area: [], - plot: [] - }, - areas: {}, - plots: {}, - links: {} - }, - - // Default legends option - legendDefaultOptions: { - area: { - cssClass: "areaLegend", - display: true, - marginLeft: 10, - marginLeftTitle: 5, - marginBottomTitle: 10, - marginLeftLabel: 10, - marginBottom: 10, - titleAttrs: { - "font-size": 16, - fill: "#343434", - "text-anchor": "start" - }, - labelAttrs: { - "font-size": 12, - fill: "#343434", - "text-anchor": "start" - }, - labelAttrsHover: { - fill: "#787878", - animDuration: 300 - }, - hideElemsOnClick: { - enabled: true, - opacity: 0.2, - animDuration: 300 - }, - slices: [], - mode: "vertical" - }, - plot: { - cssClass: "plotLegend", - display: true, - marginLeft: 10, - marginLeftTitle: 5, - marginBottomTitle: 10, - marginLeftLabel: 10, - marginBottom: 10, - titleAttrs: { - "font-size": 16, - fill: "#343434", - "text-anchor": "start" - }, - labelAttrs: { - "font-size": 12, - fill: "#343434", - "text-anchor": "start" - }, - labelAttrsHover: { - fill: "#787878", - animDuration: 300 - }, - hideElemsOnClick: { - enabled: true, - opacity: 0.2, - animDuration: 300 - }, - slices: [], - mode: "vertical" - } - } - - }; - - // Extend jQuery with Mapael - if ($[pluginName] === undefined) $[pluginName] = Mapael; - - // Add jQuery DOM function - $.fn[pluginName] = function (options) { - // Call Mapael on each element - return this.each(function () { - // Avoid leaking problem on multiple instanciation by removing an old mapael object on a container - if ($.data(this, pluginName)) { - $.data(this, pluginName).destroy(); - } - // Create Mapael and save it as jQuery data - // This allow external access to Mapael using $(".mapcontainer").data("mapael") - $.data(this, pluginName, new Mapael(this, options)); - }); - }; - -})); diff --git a/htdocs/public/high/plugins/jquery-mapael/jquery.mapael.min.js b/htdocs/public/high/plugins/jquery-mapael/jquery.mapael.min.js deleted file mode 100644 index f8c15fda..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/jquery.mapael.min.js +++ /dev/null @@ -1,14 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires jQuery, raphael.js and jquery.mousewheel - * - * Version: 2.0.0 - * - * Copyright (c) 2015 Vincent Brouté (http://www.vincentbroute.fr/mapael) - * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php). - * - * Thanks to Indigo744 - * - */ -!function(a){"object"==typeof exports?module.exports=a(require("jquery"),require("raphael"),require("mousewheel")):"function"==typeof define&&define.amd?define(["jquery","raphael","mousewheel"],a):a(jQuery,Raphael,jQuery.fn.mousewheel)}(function(a,b,c,d){"use strict";var e="mapael",f="2.0.0-dev",g=function(b,c){var d=this;d.container=b,d.$container=a(b),d.options=d.extendDefaultOptions(c),d.initialHTMLContent=d.$container.html(),d.zoomTO=0,d.zoomCenterX=0,d.zoomCenterY=0,d.previousPinchDist=0,d.zoomData={zoomLevel:0,zoomX:0,zoomY:0,panX:0,panY:0},d.resizeTO=0,d.panning=!1,d.panningTO=0,d.animationIntervalID=null,d.$map={},d.$tooltip={},d.paper={},d.areas={},d.plots={},d.links={},d.mapConf={},d.init()};g.prototype={version:f,init:function(){var c=this;if(""===c.options.map.cssClass||0===a("."+c.options.map.cssClass,c.container).length)throw new Error("The map class `"+c.options.map.cssClass+"` doesn't exists");if(c.$tooltip=a("
    ").addClass(c.options.map.tooltip.cssClass).css("display","none"),c.$map=a("."+c.options.map.cssClass,c.container).empty().append(c.$tooltip),a[e]&&a[e].maps&&a[e].maps[c.options.map.name])c.mapConf=a[e].maps[c.options.map.name];else{if(!(a.fn[e]&&a.fn[e].maps&&a.fn[e].maps[c.options.map.name]))throw new Error("Unknown map '"+c.options.map.name+"'");c.mapConf=a.fn[e].maps[c.options.map.name],window.console&&window.console.warn&&window.console.warn("Extending $.fn.mapael is deprecated (map '"+c.options.map.name+"')")}if(c.paper=new b(c.$map[0],c.mapConf.width,c.mapConf.height),c.isRaphaelBBoxBugPresent()===!0)throw c.destroy(),new Error("Can't get boundary box for text (is your container hidden? See #135)");c.$container.addClass(e),c.options.map.tooltip.css&&c.$tooltip.css(c.options.map.tooltip.css),c.paper.setViewBox(0,0,c.mapConf.width,c.mapConf.height,!1),c.options.map.width?(c.paper.setSize(c.options.map.width,c.mapConf.height*(c.options.map.width/c.mapConf.width)),c.createLegends("plot",c.plots,c.options.map.width/c.mapConf.width)):c.handleMapResizing(),a.each(c.mapConf.elems,function(a){var b=c.getElemOptions(c.options.map.defaultArea,c.options.areas[a]?c.options.areas[a]:{},c.options.legend.area);c.areas[a]={mapElem:c.paper.path(c.mapConf.elems[a]).attr(b.attrs)}}),c.options.map.beforeInit&&c.options.map.beforeInit(c.$container,c.paper,c.options),a.each(c.mapConf.elems,function(a){var b=c.getElemOptions(c.options.map.defaultArea,c.options.areas[a]?c.options.areas[a]:{},c.options.legend.area);c.initElem(c.areas[a],b,a)}),c.links=c.drawLinksCollection(c.options.links),a.each(c.options.plots,function(a){c.plots[a]=c.drawPlot(a)}),c.$container.on("zoom."+e,function(a,b){c.onZoomEvent(a,b)}),c.options.map.zoom.enabled&&c.initZoom(c.mapConf.width,c.mapConf.height,c.options.map.zoom),c.options.map.zoom.init!==d&&(c.options.map.zoom.init.animDuration===d&&(c.options.map.zoom.init.animDuration=0),c.$container.trigger("zoom."+e,c.options.map.zoom.init)),c.createLegends("area",c.areas,1),c.$container.on("update."+e,function(a,b){c.onUpdateEvent(a,b)}),c.$container.on("showElementsInRange."+e,function(a,b){c.onShowElementsInRange(a,b)}),c.options.map.afterInit&&c.options.map.afterInit(c.$container,c.paper,c.areas,c.plots,c.options),a(c.paper.desc).append(" and Mapael "+c.version+" (http://www.vincentbroute.fr/mapael/)")},destroy:function(){var b=this;b.$container.off("."+e),b.$container.empty(),b.onResizeEvent&&a(window).off("resize."+e,b.onResizeEvent),b.$container.html(b.initialHTMLContent),b.$container.removeClass(e),b.$container.removeData(e),b.container=d,b.$container=d,b.options=d,b.paper=d,b.$map=d,b.$tooltip=d,b.mapConf=d,b.areas=d,b.plots=d,b.links=d},handleMapResizing:function(){var b=this;b.onResizeEvent=function(){clearTimeout(b.resizeTO),b.resizeTO=setTimeout(function(){b.$map.trigger("resizeEnd."+e)},150)},a(window).on("resize."+e,b.onResizeEvent),b.$map.on("resizeEnd."+e,function(){var a=b.$map.width();if(b.paper.width!=a){var c=a/b.mapConf.width;b.paper.setSize(a,b.mapConf.height*c),b.createLegends("plot",b.plots,c)}}).trigger("resizeEnd."+e)},extendDefaultOptions:function(b){return b=a.extend(!0,{},g.prototype.defaultOptions,b),a.each(b.legend,function(c){if(a.isArray(b.legend[c]))for(var d=0;d").addClass(c.cssClass).html(c.content).attr("title",c.title);f.on("click."+e,k[b]),g.$map.append(f)}),g.options.map.zoom.mousewheel&&g.$map.on("mousewheel."+e,function(a){var b=a.deltaY>0?1:-1,c=g.mapPagePositionToXY(a.pageX,a.pageY);return g.$container.trigger("zoom."+e,{fixedCenter:!0,level:g.zoomData.zoomLevel+b,x:c.x,y:c.y}),!1}),g.options.map.zoom.touch&&(g.$map.on("touchstart."+e,function(a){2===a.originalEvent.touches.length&&(g.zoomCenterX=(a.originalEvent.touches[0].pageX+a.originalEvent.touches[1].pageX)/2,g.zoomCenterY=(a.originalEvent.touches[0].pageY+a.originalEvent.touches[1].pageY)/2,g.previousPinchDist=Math.sqrt(Math.pow(a.originalEvent.touches[1].pageX-a.originalEvent.touches[0].pageX,2)+Math.pow(a.originalEvent.touches[1].pageY-a.originalEvent.touches[0].pageY,2)))}),g.$map.on("touchmove."+e,function(a){var b=0,c=0;if(2===a.originalEvent.touches.length){if(b=Math.sqrt(Math.pow(a.originalEvent.touches[1].pageX-a.originalEvent.touches[0].pageX,2)+Math.pow(a.originalEvent.touches[1].pageY-a.originalEvent.touches[0].pageY,2)),Math.abs(b-g.previousPinchDist)>15){var d=g.mapPagePositionToXY(g.zoomCenterX,g.zoomCenterY);c=(b-g.previousPinchDist)/Math.abs(b-g.previousPinchDist),g.$container.trigger("zoom."+e,{fixedCenter:!0,level:g.zoomData.zoomLevel+c,x:d.x,y:d.y}),g.previousPinchDist=b}return!1}})),a("body").on("mouseup."+e+(f.touch?" touchend":""),function(){h=!1,setTimeout(function(){g.panning=!1},50)}),g.$map.on("mousedown."+e+(f.touch?" touchstart":""),function(a){a.pageX!==d?(h=!0,i=a.pageX,j=a.pageY):1===a.originalEvent.touches.length&&(h=!0,i=a.originalEvent.touches[0].pageX,j=a.originalEvent.touches[0].pageY)}).on("mousemove."+e+(f.touch?" touchmove":""),function(e){var k=g.zoomData.zoomLevel,l=0,m=0;if(e.pageX!==d?(l=e.pageX,m=e.pageY):1===e.originalEvent.touches.length?(l=e.originalEvent.touches[0].pageX,m=e.originalEvent.touches[0].pageY):h=!1,h&&0!==k){var n=(i-l)/(1+k*f.step)*(b/g.paper.width),o=(j-m)/(1+k*f.step)*(c/g.paper.height),p=Math.min(Math.max(0,g.paper._viewBox[0]+n),b-g.paper._viewBox[2]),q=Math.min(Math.max(0,g.paper._viewBox[1]+o),c-g.paper._viewBox[3]);return(Math.abs(n)>5||Math.abs(o)>5)&&(a.extend(g.zoomData,{panX:p,panY:q,zoomX:p+g.paper._viewBox[2]/2,zoomY:q+g.paper._viewBox[3]/2}),g.paper.setViewBox(p,q,g.paper._viewBox[2],g.paper._viewBox[3]),clearTimeout(g.panningTO),g.panningTO=setTimeout(function(){g.$map.trigger("afterPanning",{x1:p,y1:q,x2:p+g.paper._viewBox[2],y2:q+g.paper._viewBox[3]})},150),i=l,j=m,g.panning=!0),!1}})},mapPagePositionToXY:function(a,b){var c=this,d=c.$map.offset(),e=c.options.map.width?c.mapConf.width/c.options.map.width:c.mapConf.width/c.$map.width(),f=1/(1+c.zoomData.zoomLevel*c.options.map.zoom.step);return{x:f*e*(a-d.left)+c.zoomData.panX,y:f*e*(b-d.top)+c.zoomData.panY}},onZoomEvent:function(b,c){var e=this,f=e.zoomData.zoomLevel,g=0,h=0,i=1+e.zoomData.zoomLevel*e.options.map.zoom.step,j=0,k=c.animDuration!==d?c.animDuration:e.options.map.zoom.animDuration,l=0,m=0,n={};c.level!==d&&(f="string"==typeof c.level?"+"===c.level.slice(0,1)||"-"===c.level.slice(0,1)?e.zoomData.zoomLevel+parseInt(c.level):parseInt(c.level):c.level<0?e.zoomData.zoomLevel+c.level:c.level,f=Math.min(Math.max(f,e.options.map.zoom.minLevel),e.options.map.zoom.maxLevel)),j=1+f*e.options.map.zoom.step,c.latitude!==d&&c.longitude!==d&&(n=e.mapConf.getCoords(c.latitude,c.longitude),c.x=n.x,c.y=n.y),c.x===d&&(c.x=e.paper._viewBox[0]+e.paper._viewBox[2]/2),c.y===d&&(c.y=e.paper._viewBox[1]+e.paper._viewBox[3]/2),0===f?(g=0,h=0):c.fixedCenter!==d&&c.fixedCenter===!0?(l=e.zoomData.panX+(c.x-e.zoomData.panX)*(j-i)/j,m=e.zoomData.panY+(c.y-e.zoomData.panY)*(j-i)/j,g=Math.min(Math.max(0,l),e.mapConf.width-e.mapConf.width/j),h=Math.min(Math.max(0,m),e.mapConf.height-e.mapConf.height/j)):(g=Math.min(Math.max(0,c.x-e.mapConf.width/j/2),e.mapConf.width-e.mapConf.width/j),h=Math.min(Math.max(0,c.y-e.mapConf.height/j/2),e.mapConf.height-e.mapConf.height/j)),j==i&&g==e.zoomData.panX&&h==e.zoomData.panY||(k>0?e.animateViewBox(g,h,e.mapConf.width/j,e.mapConf.height/j,k,e.options.map.zoom.animEasing):(e.paper.setViewBox(g,h,e.mapConf.width/j,e.mapConf.height/j),clearTimeout(e.zoomTO),e.zoomTO=setTimeout(function(){e.$map.trigger("afterZoom",{x1:g,y1:h,x2:g+e.mapConf.width/j,y2:h+e.mapConf.height/j})},150)),a.extend(e.zoomData,{zoomLevel:f,panX:g,panY:h,zoomX:g+e.paper._viewBox[2]/2,zoomY:h+e.paper._viewBox[3]/2}))},onShowElementsInRange:function(a,b){var c=this;b.animDuration===d&&(b.animDuration=0),b.hiddenOpacity===d&&(b.hiddenOpacity=.3),b.ranges&&b.ranges.area&&c.showElemByRange(b.ranges.area,c.areas,b.hiddenOpacity,b.animDuration),b.ranges&&b.ranges.plot&&c.showElemByRange(b.ranges.plot,c.plots,b.hiddenOpacity,b.animDuration),b.ranges&&b.ranges.link&&c.showElemByRange(b.ranges.link,c.links,b.hiddenOpacity,b.animDuration),b.afterShowRange&&b.afterShowRange()},showElemByRange:function(b,c,e,f){var g=this,h={};b.min===d&&b.max===d||(b={0:b}),a.each(b,function(f){var g=b[f];return g.min===d&&g.max===d?!0:void a.each(c,function(a){var b=c[a].value;return"object"!=typeof b&&(b=[b]),b[f]===d?!0:void(g.min!==d&&b[f]g.max?h[a]=e:h[a]=1)})}),a.each(h,function(a){g.setElementOpacity(c[a],h[a],f)})},setElementOpacity:function(a,b,c){b>0&&(a.mapElem.show(),a.textElem&&a.textElem.show()),c>0?(a.mapElem.animate({opacity:b},c,"linear",function(){0===b&&a.mapElem.hide()}),a.textElem&&a.textElem.animate({opacity:b},c,"linear",function(){0===b&&a.textElem.hide()})):(a.mapElem.attr({opacity:b}),0===b&&a.mapElem.hide(),a.textElem&&(a.textElem.attr({opacity:b}),0===b&&a.textElem.hide()))},onUpdateEvent:function(b,c){var f=this;if("object"==typeof c){var g=0,h=c.animDuration?c.animDuration:0,i=function(a){f.unsetHover(a.mapElem,a.textElem),h>0?(a.mapElem.animate({opacity:0},h,"linear",function(){a.mapElem.remove()}),a.textElem&&a.textElem.animate({opacity:0},h,"linear",function(){a.textElem.remove()})):(a.mapElem.remove(),a.textElem&&a.textElem.remove())},j=function(a){a.mapElem.attr({opacity:0}),a.textElem&&a.textElem.attr({opacity:0}),f.setElementOpacity(a,a.mapElem.originalAttrs.opacity!==d?a.mapElem.originalAttrs.opacity:1,h)};if("object"==typeof c.mapOptions&&(c.replaceOptions===!0?f.options=f.extendDefaultOptions(c.mapOptions):a.extend(!0,f.options,c.mapOptions),c.mapOptions.areas===d&&c.mapOptions.plots===d&&c.mapOptions.legend===d||a("[data-type='elem']",f.$container).each(function(b,c){"1"===a(c).attr("data-hidden")&&a(c).trigger("click."+e,[!1,h])})),"object"==typeof c.deletePlotKeys)for(;g0&&j(f.plots[a]))}),"object"==typeof c.newLinks){var k=f.drawLinksCollection(c.newLinks);a.extend(f.links,k),a.extend(f.options.links,c.newLinks),h>0&&a.each(k,function(a){j(k[a])})}if(a.each(f.areas,function(a){if("object"==typeof c.mapOptions&&("object"==typeof c.mapOptions.map&&"object"==typeof c.mapOptions.map.defaultArea||"object"==typeof c.mapOptions.areas&&"object"==typeof c.mapOptions.areas[a]||"object"==typeof c.mapOptions.legend&&"object"==typeof c.mapOptions.legend.area)||c.replaceOptions===!0){var b=f.getElemOptions(f.options.map.defaultArea,f.options.areas[a]?f.options.areas[a]:{},f.options.legend.area);f.updateElem(b,f.areas[a],h)}}),a.each(f.plots,function(a){if("object"==typeof c.mapOptions&&("object"==typeof c.mapOptions.map&&"object"==typeof c.mapOptions.map.defaultPlot||"object"==typeof c.mapOptions.plots&&"object"==typeof c.mapOptions.plots[a]||"object"==typeof c.mapOptions.legend&&"object"==typeof c.mapOptions.legend.plot)||c.replaceOptions===!0){var b=f.getElemOptions(f.options.map.defaultPlot,f.options.plots[a]?f.options.plots[a]:{},f.options.legend.plot);"square"==b.type?(b.attrs.width=b.size,b.attrs.height=b.size,b.attrs.x=f.plots[a].mapElem.attrs.x-(b.size-f.plots[a].mapElem.attrs.width)/2,b.attrs.y=f.plots[a].mapElem.attrs.y-(b.size-f.plots[a].mapElem.attrs.height)/2):"image"==b.type?(b.attrs.width=b.width,b.attrs.height=b.height,b.attrs.x=f.plots[a].mapElem.attrs.x-(b.width-f.plots[a].mapElem.attrs.width)/2,b.attrs.y=f.plots[a].mapElem.attrs.y-(b.height-f.plots[a].mapElem.attrs.height)/2):"svg"==b.type?b.attrs.transform!==d&&(b.attrs.transform=f.plots[a].mapElem.baseTransform+b.attrs.transform):b.attrs.r=b.size/2,f.updateElem(b,f.plots[a],h)}}),a.each(f.links,function(a){if("object"==typeof c.mapOptions&&("object"==typeof c.mapOptions.map&&"object"==typeof c.mapOptions.map.defaultLink||"object"==typeof c.mapOptions.links&&"object"==typeof c.mapOptions.links[a])||c.replaceOptions===!0){var b=f.getElemOptions(f.options.map.defaultLink,f.options.links[a]?f.options.links[a]:{},{});f.updateElem(b,f.links[a],h)}}),c.mapOptions&&("object"==typeof c.mapOptions.legend||"object"==typeof c.mapOptions.map&&"object"==typeof c.mapOptions.map.defaultArea||"object"==typeof c.mapOptions.map&&"object"==typeof c.mapOptions.map.defaultPlot)&&(a("[data-type='elem']",f.$container).each(function(b,c){"1"===a(c).attr("data-hidden")&&a(c).trigger("click."+e,[!1,h])}),f.createLegends("area",f.areas,1),f.options.map.width?f.createLegends("plot",f.plots,f.options.map.width/f.mapConf.width):f.createLegends("plot",f.plots,f.$map.width()/f.mapConf.width)),"object"==typeof c.setLegendElemsState)a.each(c.setLegendElemsState,function(b,c){var g=f.$container.find("."+b)[0];g!==d&&a("[data-type='elem']",g).each(function(b,d){("0"===a(d).attr("data-hidden")&&"hide"===c||"1"===a(d).attr("data-hidden")&&"show"===c)&&a(d).trigger("click."+e,[!1,h])})});else{var l="hide"===c.setLegendElemsState?"hide":"show";a("[data-type='elem']",f.$container).each(function(b,c){("0"===a(c).attr("data-hidden")&&"hide"===l||"1"===a(c).attr("data-hidden")&&"show"===l)&&a(c).trigger("click."+e,[!1,h])})}c.afterUpdate&&c.afterUpdate(f.$container,f.paper,f.areas,f.plots,f.options)}},drawLinksCollection:function(b){var c=this,e={},f={},g={},h={},i={};return a.each(b,function(a){var j=c.getElemOptions(c.options.map.defaultLink,b[a],{});e="string"==typeof b[a].between[0]?c.options.plots[b[a].between[0]]:b[a].between[0],f="string"==typeof b[a].between[1]?c.options.plots[b[a].between[1]]:b[a].between[1],e.latitude!==d&&e.longitude!==d?g=c.mapConf.getCoords(e.latitude,e.longitude):(g.x=e.x,g.y=e.y),f.latitude!==d&&f.longitude!==d?h=c.mapConf.getCoords(f.latitude,f.longitude):(h.x=f.x,h.y=f.y),i[a]=c.drawLink(a,g.x,g.y,h.x,h.y,j)}),i},drawLink:function(a,b,c,d,e,f){var g=this,h={},i=(b+d)/2,j=(c+e)/2,k=-1/((e-c)/(d-b)),l=j-k*i,m=Math.sqrt((d-b)*(d-b)+(e-c)*(e-c)),n=1+k*k,o=-2*i+2*k*l-2*k*j,p=i*i+l*l-l*j-j*l+j*j-f.factor*m*(f.factor*m),q=o*o-4*n*p,r=0,s=0;return f.factor>0?(r=(-o+Math.sqrt(q))/(2*n),s=k*r+l):(r=(-o-Math.sqrt(q))/(2*n),s=k*r+l),h.mapElem=g.paper.path("m "+b+","+c+" C "+r+","+s+" "+d+","+e+" "+d+","+e).attr(f.attrs),g.initElem(h,f,a),h},updateElem:function(a,b,c){var e,f,g,h=this,i=b.mapElem.getBBox();a.value!==d&&(b.value=a.value),b.textElem&&(a.text!==d&&a.text.content!==d&&a.text.content!=b.textElem.attrs.text&&b.textElem.attr({text:a.text.content}),(a.size||a.width&&a.height)&&("image"==a.type||"svg"==a.type?(f=(a.width-i.width)/2,g=(a.height-i.height)/2):(f=(a.size-i.width)/2,g=(a.size-i.height)/2),i.x-=f,i.x2+=f,i.y-=g,i.y2+=g),e=h.getTextPosition(i,a.text.position,a.text.margin),e.x==b.textElem.attrs.x&&e.y==b.textElem.attrs.y||(c>0?(b.textElem.attr({"text-anchor":e.textAnchor}),b.textElem.animate({x:e.x,y:e.y},c)):b.textElem.attr({x:e.x,y:e.y,"text-anchor":e.textAnchor})),h.setHoverOptions(b.textElem,a.text.attrs,a.text.attrsHover),c>0?b.textElem.animate(a.text.attrs,c):b.textElem.attr(a.text.attrs)),h.setHoverOptions(b.mapElem,a.attrs,a.attrsHover),c>0?b.mapElem.animate(a.attrs,c):b.mapElem.attr(a.attrs),"svg"==a.type&&b.mapElem.transform("m"+a.width/b.mapElem.originalWidth+",0,0,"+a.height/b.mapElem.originalHeight+","+i.x+","+i.y),a.tooltip&&(b.mapElem.tooltip===d&&(h.setTooltip(b.mapElem),b.textElem&&h.setTooltip(b.textElem)),b.mapElem.tooltip=a.tooltip,b.textElem&&(b.textElem.tooltip=a.tooltip)),a.href!==d&&(b.mapElem.href===d&&(h.setHref(b.mapElem),b.textElem&&h.setHref(b.textElem)),b.mapElem.href=a.href,b.mapElem.target=a.target,b.textElem&&(b.textElem.href=a.href,b.textElem.target=a.target))},drawPlot:function(a){var b=this,c={},e={},f=b.getElemOptions(b.options.map.defaultPlot,b.options.plots[a]?b.options.plots[a]:{},b.options.legend.plot);return e=f.x!==d&&f.y!==d?{x:f.x,y:f.y}:b.mapConf.getCoords(f.latitude,f.longitude),"square"==f.type?c={mapElem:b.paper.rect(e.x-f.size/2,e.y-f.size/2,f.size,f.size).attr(f.attrs)}:"image"==f.type?c={mapElem:b.paper.image(f.url,e.x-f.width/2,e.y-f.height/2,f.width,f.height).attr(f.attrs)}:"svg"==f.type?(f.attrs.transform===d&&(f.attrs.transform=""),c={mapElem:b.paper.path(f.path)},c.mapElem.originalWidth=c.mapElem.getBBox().width,c.mapElem.originalHeight=c.mapElem.getBBox().height,c.mapElem.baseTransform="m"+f.width/c.mapElem.originalWidth+",0,0,"+f.height/c.mapElem.originalHeight+","+(e.x-f.width/2)+","+(e.y-f.height/2),f.attrs.transform=c.mapElem.baseTransform+f.attrs.transform,c.mapElem.attr(f.attrs)):c={mapElem:b.paper.circle(e.x,e.y,f.size/2).attr(f.attrs)},b.initElem(c,f,a),c},setHref:function(b){var c=this;b.attr({cursor:"pointer"}),a(b.node).on("click."+e,function(){!c.panning&&b.href&&window.open(b.href,b.target)})},setTooltip:function(b){var c=this,f=0,g=c.$tooltip.attr("class"),h=function(a,d){var e=10,f=20;"object"==typeof b.tooltip.offset&&("undefined"!=typeof b.tooltip.offset.left&&(e=b.tooltip.offset.left),"undefined"!=typeof b.tooltip.offset.top&&(f=b.tooltip.offset.top));var g={left:Math.min(c.$map.width()-c.$tooltip.outerWidth()-5,a-c.$map.offset().left+e),top:Math.min(c.$map.height()-c.$tooltip.outerHeight()-5,d-c.$map.offset().top+f)};"object"==typeof b.tooltip.overflow&&(b.tooltip.overflow.right===!0&&(g.left=a-c.$map.offset().left+10),selem.tooltip.overflow.bottom===!0&&(g.top=d-c.$map.offset().top+20)),c.$tooltip.css(g)};a(b.node).on("mouseover."+e,function(a){f=setTimeout(function(){if(c.$tooltip.attr("class",g),b.tooltip!==d){if(b.tooltip.content!==d){var e="function"==typeof b.tooltip.content?b.tooltip.content(b):b.tooltip.content;c.$tooltip.html(e).css("display","block")}b.tooltip.cssClass!==d&&c.$tooltip.addClass(b.tooltip.cssClass)}h(a.pageX,a.pageY)},120)}).on("mouseout."+e,function(){clearTimeout(f),c.$tooltip.css("display","none")}).on("mousemove."+e,function(a){h(a.pageX,a.pageY)})},setEventHandlers:function(b,c,d,e){var f=this;a.each(c.eventHandlers,function(g){!function(g){a(d.node).on(g,function(a){f.panning||c.eventHandlers[g](a,b,d,e,c)}),e&&a(e.node).on(g,function(a){f.panning||c.eventHandlers[g](a,b,d,e,c)})}(g)})},drawLegend:function(c,e,f,g,h){var i=this,j={},k={},l=0,m=0,n=null,o={},p={},q={},r=0,s=0,t=0,u=0,v=[],w=0;for(j=a("."+c.cssClass,i.$container).empty(),k=new b(j.get(0)),a(k.canvas).attr({"data-type":e,"data-index":h}),m=l=0,c.title&&""!==c.title&&(n=k.text(c.marginLeftTitle,0,c.title).attr(c.titleAttrs),n.attr({y:.5*n.getBBox().height}),l=c.marginLeftTitle+n.getBBox().width,m+=c.marginBottomTitle+n.getBBox().height),r=0,w=c.slices.length;w>r;++r){var x=0;v[r]=a.extend(!0,{},"plot"==e?i.options.map.defaultPlot:i.options.map.defaultArea,c.slices[r]),c.slices[r].legendSpecificAttrs===d&&(c.slices[r].legendSpecificAttrs={}),a.extend(!0,v[r].attrs,c.slices[r].legendSpecificAttrs),"area"==e?(v[r].attrs.width===d&&(v[r].attrs.width=30),v[r].attrs.height===d&&(v[r].attrs.height=20)):"square"==v[r].type?(v[r].attrs.width===d&&(v[r].attrs.width=v[r].size),v[r].attrs.height===d&&(v[r].attrs.height=v[r].size)):"image"==v[r].type||"svg"==v[r].type?(v[r].attrs.width===d&&(v[r].attrs.width=v[r].width),v[r].attrs.height===d&&(v[r].attrs.height=v[r].height)):v[r].attrs.r===d&&(v[r].attrs.r=v[r].size/2),x=c.marginBottomTitle,n&&(x+=n.getBBox().height),x+="plot"!=e||v[r].type!==d&&"circle"!=v[r].type?g*v[r].attrs.height/2:g*v[r].attrs.r,u=Math.max(u,x)}for("horizontal"==c.mode&&(l=c.marginLeft),r=0,w=v.length;w>r;++r)if(v[r].display===d||v[r].display===!0){if("area"==e?("horizontal"==c.mode?(s=l+c.marginLeft,t=u-.5*g*v[r].attrs.height):(s=c.marginLeft,t=m),o=k.rect(s,t,g*v[r].attrs.width,g*v[r].attrs.height)):"square"==v[r].type?("horizontal"==c.mode?(s=l+c.marginLeft,t=u-.5*g*v[r].attrs.height):(s=c.marginLeft,t=m),o=k.rect(s,t,g*v[r].attrs.width,g*v[r].attrs.height)):"image"==v[r].type||"svg"==v[r].type?("horizontal"==c.mode?(s=l+c.marginLeft,t=u-.5*g*v[r].attrs.height):(s=c.marginLeft,t=m),"image"==v[r].type?o=k.image(v[r].url,s,t,g*v[r].attrs.width,g*v[r].attrs.height):(o=k.path(v[r].path),v[r].attrs.transform===d&&(v[r].attrs.transform=""),v[r].attrs.transform="m"+g*v[r].width/o.getBBox().width+",0,0,"+g*v[r].height/o.getBBox().height+","+s+","+t+v[r].attrs.transform)):("horizontal"==c.mode?(s=l+c.marginLeft+g*v[r].attrs.r,t=u):(s=c.marginLeft+g*v[r].attrs.r,t=m+g*v[r].attrs.r),o=k.circle(s,t,g*v[r].attrs.r)),delete v[r].attrs.width,delete v[r].attrs.height,delete v[r].attrs.r,o.attr(v[r].attrs),p=o.getBBox(),"horizontal"==c.mode?(s=l+c.marginLeft+p.width+c.marginLeftLabel,t=u):(s=c.marginLeft+p.width+c.marginLeftLabel,t=m+p.height/2),q=k.text(s,t,v[r].label).attr(c.labelAttrs),"horizontal"==c.mode){var y=c.marginBottom+p.height;l+=c.marginLeft+p.width+c.marginLeftLabel+q.getBBox().width,"image"!=v[r].type&&"area"!=e&&(y+=c.marginBottomTitle),n&&(y+=n.getBBox().height),m=Math.max(m,y)}else l=Math.max(l,c.marginLeft+p.width+c.marginLeftLabel+q.getBBox().width),m+=c.marginBottom+p.height;a(o.node).attr({"data-type":"elem","data-index":r,"data-hidden":0}),a(q.node).attr({"data-type":"label","data-index":r,"data-hidden":0}),c.hideElemsOnClick.enabled&&(q.attr({cursor:"pointer"}),o.attr({cursor:"pointer"}),i.setHoverOptions(o,v[r].attrs,v[r].attrs),i.setHoverOptions(q,c.labelAttrs,c.labelAttrsHover),i.setHover(o,q),i.handleClickOnLegendElem(c,v[r],q,o,f,h))}"SVG"!=b.type&&c.VMLWidth&&(l=c.VMLWidth),k.setSize(l,m)},handleClickOnLegendElem:function(b,c,f,g,h,i){var j=this,k=function(k,l,m){var n=0,o=a(f.node).attr("data-hidden"),p="0"===o?{"data-hidden":"1"}:{"data-hidden":"0"};m===d&&(m=b.hideElemsOnClick.animDuration),"0"===o?m>0?f.animate({opacity:.5},m):f.attr({opacity:.5}):m>0?f.animate({opacity:1},m):f.attr({opacity:1}),a.each(h,function(e){var f=h[e].mapElem.data("hidden-by");f===d&&(f={}),n=a.isArray(h[e].value)?h[e].value[i]:h[e].value,(c.sliceValue!==d&&n==c.sliceValue||c.sliceValue===d&&(c.min===d||n>=c.min)&&(c.max===d||n<=c.max))&&!function(c){"0"===o?(f[i]=!0,j.setElementOpacity(h[c],b.hideElemsOnClick.opacity,m)):(delete f[i],a.isEmptyObject(f)&&j.setElementOpacity(h[c],h[c].mapElem.originalAttrs.opacity!==d?h[c].mapElem.originalAttrs.opacity:1,m)),h[c].mapElem.data("hidden-by",f)}(e)}),a(g.node).attr(p),a(f.node).attr(p),l!==d&&l!==!0||b.exclusive===d||b.exclusive!==!0||a("[data-type='elem'][data-hidden=0]",j.$container).each(function(){a(this).attr("data-index")!==a(g.node).attr("data-index")&&a(this).trigger("click."+e,!1)})};a(f.node).on("click."+e,k),a(g.node).on("click."+e,k),c.clicked!==d&&c.clicked===!0&&a(g.node).trigger("click."+e,!1)},createLegends:function(b,c,d){var e=this,f=e.options.legend[b];a.isArray(e.options.legend[b])||(f=[e.options.legend[b]]);for(var g=0;g0&&e.drawLegend(f[g],b,c,d,g)}},setHoverOptions:function(c,d,e){"SVG"!=b.type&&delete e.transform,c.attrsHover=e,c.attrsHover.transform?c.originalAttrs=a.extend({transform:"s1"},d):c.originalAttrs=d},setHover:function(b,c){var d=this,f={},g={},h=0,i=0,j=function(){clearTimeout(i),h=setTimeout(function(){d.elemHover(b,c)},120)},k=function(){clearTimeout(h),i=setTimeout(function(){d.elemOut(b,c)},120)};f=a(b.node),f.on("mouseover."+e,j),f.on("mouseout."+e,k),c&&(g=a(c.node),g.on("mouseover."+e,j),a(c.node).on("mouseout."+e,k))},unsetHover:function(b,c){a(b.node).off("."+e),c&&a(c.node).off("."+e)},elemHover:function(a,b){var c=this;a.attrsHover.animDuration>0?a.animate(a.attrsHover,a.attrsHover.animDuration):a.attr(a.attrsHover),b&&(b.attrsHover.animDuration>0?b.animate(b.attrsHover,b.attrsHover.animDuration):b.attr(b.attrsHover)),c.paper.safari&&c.paper.safari()},elemOut:function(a,b){var c=this;a.attrsHover.animDuration>0?a.animate(a.originalAttrs,a.attrsHover.animDuration):a.attr(a.originalAttrs),b&&(b.attrsHover.animDuration>0?b.animate(b.originalAttrs,b.attrsHover.animDuration):b.attr(b.originalAttrs)),c.paper.safari&&c.paper.safari()},getElemOptions:function(b,c,e){var f=this,g=a.extend(!0,{},b,c);if(g.value!==d)if(a.isArray(e))for(var h=0,i=e.length;i>h;++h)g=a.extend(!0,{},g,f.getLegendSlice(g.value[h],e[h]));else g=a.extend(!0,{},g,f.getLegendSlice(g.value,e));return g},getTextPosition:function(a,b,c){var d=0,e=0,f="";switch("number"==typeof c&&(c="bottom"===b||"top"===b?{x:0,y:c}:"right"===b||"left"===b?{x:c,y:0}:{x:0,y:0}),b){case"bottom":d=(a.x+a.x2)/2+c.x,e=a.y2+c.y,f="middle";break;case"top":d=(a.x+a.x2)/2+c.x,e=a.y-c.y,f="middle";break;case"left":d=a.x-c.x,e=(a.y+a.y2)/2+c.y,f="end";break;case"right":d=a.x2+c.x,e=(a.y+a.y2)/2+c.y,f="start";break;default:d=(a.x+a.x2)/2+c.x,e=(a.y+a.y2)/2+c.y,f="middle"}return{x:d,y:e,textAnchor:f}},getLegendSlice:function(a,b){for(var c=0,e=b.slices.length;e>c;++c)if(b.slices[c].sliceValue!==d&&a==b.slices[c].sliceValue||b.slices[c].sliceValue===d&&(b.slices[c].min===d||a>=b.slices[c].min)&&(b.slices[c].max===d||a<=b.slices[c].max))return b.slices[c];return{}},animateViewBox:function(a,c,d,e,f,g){var h,i=this,j=i.paper._viewBox?i.paper._viewBox[0]:0,k=a-j,l=i.paper._viewBox?i.paper._viewBox[1]:0,m=c-l,n=i.paper._viewBox?i.paper._viewBox[2]:i.paper.width,o=d-n,p=i.paper._viewBox?i.paper._viewBox[3]:i.paper.height,q=e-p,r=25,s=f/r,t=0;g=g||"linear",h=b.easing_formulas[g],clearInterval(i.animationIntervalID),i.animationIntervalID=setInterval(function(){var b=t/s;i.paper.setViewBox(j+k*h(b),l+m*h(b),n+o*h(b),p+q*h(b),!1),t++>=s&&(clearInterval(i.animationIntervalID),clearTimeout(i.zoomTO),i.zoomTO=setTimeout(function(){i.$map.trigger("afterZoom",{x1:a,y1:c,x2:a+d,y2:c+e})},150))},r)},isRaphaelBBoxBugPresent:function(){var a=this,b=a.paper.text(-50,-50,"TEST"),c=b.getBBox();return b.remove(),0===c.width&&0===c.height},defaultOptions:{map:{cssClass:"map",tooltip:{cssClass:"mapTooltip"},defaultArea:{attrs:{fill:"#343434",stroke:"#5d5d5d","stroke-width":1,"stroke-linejoin":"round"},attrsHover:{fill:"#f38a03",animDuration:300},text:{position:"inner",margin:10,attrs:{"font-size":15,fill:"#c7c7c7"},attrsHover:{fill:"#eaeaea",animDuration:300}},target:"_self"},defaultPlot:{type:"circle",size:15,attrs:{fill:"#0088db",stroke:"#fff","stroke-width":0,"stroke-linejoin":"round"},attrsHover:{"stroke-width":3,animDuration:300},text:{position:"right",margin:10,attrs:{"font-size":15,fill:"#c7c7c7"},attrsHover:{fill:"#eaeaea",animDuration:300}},target:"_self"},defaultLink:{factor:.5,attrs:{stroke:"#0088db","stroke-width":2},attrsHover:{animDuration:300},text:{position:"inner",margin:10,attrs:{"font-size":15,fill:"#c7c7c7"},attrsHover:{fill:"#eaeaea",animDuration:300}},target:"_self"},zoom:{enabled:!1,minLevel:0,maxLevel:10,step:.25,mousewheel:!0,touch:!0,animDuration:200,animEasing:"linear",buttons:{reset:{cssClass:"zoomButton zoomReset",content:"•",title:"Reset zoom"},"in":{cssClass:"zoomButton zoomIn",content:"+",title:"Zoom in"},out:{cssClass:"zoomButton zoomOut",content:"−",title:"Zoom out"}}}},legend:{area:[],plot:[]},areas:{},plots:{},links:{}},legendDefaultOptions:{area:{cssClass:"areaLegend",display:!0,marginLeft:10,marginLeftTitle:5,marginBottomTitle:10,marginLeftLabel:10,marginBottom:10,titleAttrs:{"font-size":16,fill:"#343434","text-anchor":"start"},labelAttrs:{"font-size":12,fill:"#343434","text-anchor":"start"},labelAttrsHover:{fill:"#787878",animDuration:300},hideElemsOnClick:{enabled:!0,opacity:.2,animDuration:300},slices:[],mode:"vertical"},plot:{cssClass:"plotLegend",display:!0,marginLeft:10,marginLeftTitle:5,marginBottomTitle:10,marginLeftLabel:10,marginBottom:10,titleAttrs:{"font-size":16,fill:"#343434","text-anchor":"start"},labelAttrs:{"font-size":12,fill:"#343434","text-anchor":"start"},labelAttrsHover:{fill:"#787878",animDuration:300},hideElemsOnClick:{enabled:!0,opacity:.2,animDuration:300},slices:[],mode:"vertical"}}},a[e]===d&&(a[e]=g),a.fn[e]=function(b){return this.each(function(){a.data(this,e)&&a.data(this,e).destroy(),a.data(this,e,new g(this,b))})}}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/README.txt b/htdocs/public/high/plugins/jquery-mapael/maps/README.txt deleted file mode 100644 index e2e4ba95..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/README.txt +++ /dev/null @@ -1,3 +0,0 @@ -Additional maps are stored in the repository neveldo/mapael-maps - -Full link: https://github.com/neveldo/mapael-maps diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/france_departments.js b/htdocs/public/high/plugins/jquery-mapael/maps/france_departments.js deleted file mode 100644 index 4283189d..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/france_departments.js +++ /dev/null @@ -1,165 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires jQuery and Mapael - * - * Map of metropolitan France by department - * Equirectangular projection - * - * @author Vincent Brouté - * @source http://fr.m.wikipedia.org/wiki/Fichier:France_location_map-Departements.svg - */ -(function (factory) { - if (typeof exports === 'object') { - // CommonJS - module.exports = factory(require('jquery'), require('mapael')); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery', 'mapael'], factory); - } else { - // Browser globals - factory(jQuery, jQuery.mapael); - } -}(function ($, Mapael) { - - "use strict"; - - $.extend(true, Mapael, - { - maps : { - france_departments : { - width : 600.08728, - height : 626.26221, - getCoords : function (lat, lon) { - var xfactor, - xoffset, - yfactor, - yoffset, - x, - y; - // Corse - if (lat < 43.15710 && lon > 8.17199) { - xfactor = 43.64246; - xoffset = 181.34520; - x = (lon * xfactor) + xoffset; - - yfactor = -65.77758; - yoffset = 3346.37839; - y = (lat * yfactor) + yoffset; - } else { - xfactor = 45.48385; - xoffset = 220.22005; - x = (lon * xfactor) + xoffset; - - yfactor = -65.97284; - yoffset = 3371.10748; - y = (lat * yfactor) + yoffset; - } - return {x : x, y : y}; - }, - elems : { - "department-29" : "m 37.28,156.11 c -1.42,1.23 -3.84,1.18 -3.99,3.49 -1.31,-2.24 -8,-0.27 -6.23,1.86 -0.83,0.29 -3.61,-0.09 -4.72,1.08 1.27,-3.15 -2.84,-2.76 -4.74,-1.32 -1.52,0.3 0.5,1.51 -1.67,1.26 -1.43,1.46 -5.78,-1.22 -5,1.7 2.01,2.28 -4.44,-1.17 -2.19,2.21 2.05,2.35 -1.91,-1.21 -3.2,0.17 -2.44,0.46 -5.9,3.28 -4.27,6.2 1.31,1.03 -2.45,2.79 -0.89,4.68 1.85,1.54 -1.54,4.66 1.85,4.99 2.29,0.7 2.49,-2.98 4.87,-0.96 3.08,0.74 5.89,-2.07 8.89,-2.74 1.93,-0.34 5.67,-2.04 6.34,-1.85 -2,1.78 -5.83,1.89 -6.41,4.93 -0.69,1.92 2.11,-0.67 2.33,1.07 1.34,-0.89 2.68,-1.87 3.94,-1.39 3.81,-2.03 -2.75,2.24 0.52,1.99 1.47,0.34 4.01,0.96 4.33,1.46 -1.94,0.3 -3.28,1.07 -4.57,-0.08 -2.38,0.71 -4.58,1.45 -6.63,0.05 -2.75,0.86 -5.75,0.61 -4.18,-2.84 -3.29,-0.24 -0.4,5.1 -3.79,3.67 -1.2,2.84 5.41,0.67 2.62,3.42 0.89,1.41 -0.15,5.78 1.86,2.76 0.83,-2.29 2.62,-4.57 5.09,-2.36 1.97,1.37 5.1,0.79 5.41,4 1.86,2.04 -0.29,6.23 -3,3.6 -3.95,0.62 -7.67,1.95 -11.58,2.45 -2.09,0.38 -5.98,-0.08 -4.41,2.7 2.53,0.06 4.87,1.62 7.03,1.82 2.62,-1.48 5.9,3.16 7.51,5.27 1.61,2.44 2.66,5.4 0.91,7.66 1.94,1.19 5.11,1.18 7.5,0.75 1.99,-0.45 3.16,-2.44 1.04,-3.28 -1.05,-1.98 0.82,-2.27 1.51,-0.45 3.34,0.23 -0.63,-4.11 0.69,-3.65 0.91,2.75 3.66,3.46 5.82,3.53 2.26,0.86 -0.02,-4.66 2.92,-2.01 2.11,1.7 2.69,4.22 4.57,6.13 2.01,0.11 4.17,0.12 6.01,-0.65 1.82,2.12 5.68,2.27 8.25,2.23 1.8,-1.51 -1.55,-4.66 0.95,-5.09 0.94,2.57 3.24,-0.19 3.58,-1.33 2.95,0.23 0.38,-3.13 2.08,-4.2 -0.21,-1.43 -0.64,-3.61 -2.53,-1.94 -1.44,2.09 -1.76,-1.59 -3.7,-1.52 -2.13,-1.41 -5.77,1.37 -6.1,-2.55 -0.44,-2.07 -2.04,-3.22 -2.32,-5.05 -2.23,-0.45 0.49,-4.53 2.59,-4.02 1.42,-1.43 5.76,-1.87 5.77,-3.15 -3.54,-1.5 2.53,-4.55 -0.88,-5.73 0.6,-1.35 -0.87,-3.79 -0.56,-5.72 -3.53,0.13 -1.65,-3.79 0.06,-4.6 -3.56,-1.53 -0.98,-4.21 0.33,-6.05 -1.3,-1.16 -2.22,-1.16 -1.99,-2.94 -3.12,-0.26 -3.41,-4.67 -2.3,-6.54 -0.38,-1.53 -3.23,-0.42 -4.45,-1.94 -2.01,-0.12 -5.18,-1.19 -4.7,2.29 -0.84,1.4 0.25,4.35 -1.82,2.22 -1.36,-0.49 -0.48,-3.38 -2.36,-1.3 -1.28,1.93 -1.52,-3.86 -1.99,-4.38 z m -9.88,28.66 0,0.02 0,-0.02 z", - "department-22" : "m 77.67,146.73 c -2.58,0.94 -4.37,2.6 -5.78,4.84 1.21,-2.76 0.01,-6.18 -2.26,-2.58 -2.86,-0.54 -4.85,2.02 -7.32,2.35 0.05,-2.38 -5.14,-2.89 -4.97,-0.27 -1.65,0.69 -2.79,2.55 -0.54,3.83 1.42,1.41 -3.19,1.12 -1.21,3.58 0.75,2.79 -2.62,-0.53 -2.95,1.74 -2.03,2.25 0.93,5.14 2.73,6.11 -0.89,1.81 3.77,1.87 0.94,3.62 -2.27,1.33 -1.69,4.1 0.71,4.68 -2.37,0.99 -3.54,4.66 -0.18,4.93 -0.75,1.8 0.34,4.07 1.35,3.89 -2.23,1.45 2.07,3.31 -1.02,4.81 -1.32,1.63 3.39,3.81 -0.37,3.46 -0,1.68 3.4,-0.17 4.6,0.64 2.17,-1.15 0.09,3.47 2.84,1.65 2.78,-2.51 5.12,2.28 8.16,0.11 1.28,-1.21 4.21,0.16 3.71,-2.72 2.36,-2.11 5.53,-0.32 6.55,2.07 3.1,-1.66 5.66,1.79 8.52,1.44 1.09,1.13 1.31,4.63 2.54,1.67 1.77,0.69 4.7,-2.67 4.36,1 -1.42,1.92 -0.06,5.98 2.29,3.25 2.15,-1.33 3.24,-3.52 3.71,-5.84 -1.55,-1.8 3.03,-1.29 4.1,-2.17 2.56,0.5 2.84,5.71 5.3,2.6 2.48,-0.52 4.76,-2.21 4.35,-5.23 2.66,1.35 0.38,-3.98 3.68,-3.07 2.3,0.76 0.88,-1.21 2.74,-1.68 0.93,-2.46 3.26,2.1 3.88,-0.74 2.87,-0.05 0.28,-3.49 2.75,-3.67 -0.67,-1.88 -0.1,-4.12 -0.62,-6.07 1.57,-1.46 2.25,-5.3 0.59,-6.78 -0.36,1.32 -2.86,3.56 -2.08,0.75 -0.58,-2.28 -2.24,-1.04 -3,-0.66 -0.39,-2.19 -3.7,-1.69 -4.26,-4.29 -2.01,-0.96 -0.92,3.96 -2.61,1.33 -0.93,2.11 -1.72,-1.85 -2.25,-2.64 -0.23,-2.69 -5.02,3.57 -3.11,-0.38 2.12,-1.4 -0.5,-4.55 -1.42,-1.9 -1.94,1.15 -2.92,1.92 -4.85,1.1 -2.9,-0.12 0.52,1.54 -2.1,2.49 -3.58,0.78 -5.19,5.69 -8.5,5.48 0.49,3.36 -2.74,-0.19 -2.06,-1.81 -2.95,-1.1 -4.73,-3.24 -4.7,-6.38 -2,-2 -5.44,-3.63 -5.11,-6.81 -0.95,-1.07 -6.79,-1.08 -3.38,-3.09 0.47,-2.76 -4.12,-1.19 -3.66,1.11 -0.44,1.73 -2.27,2.41 -0.65,0.39 1.33,-1.47 1.44,-4.62 0.53,-6.14 z", - "department-56" : "m 78.99,190.76 c -3.41,-1.13 -2.2,3.92 -5.32,2.9 -1.41,0.4 -1.19,1.61 -2.99,0.82 -1.13,0.79 -2.69,-0.38 -3.4,-0.47 -0.84,-2.28 -6.08,2.96 -4.76,-1.3 -1.92,-0.69 -4.61,-0.08 -6.81,-0.32 -2.56,1.49 -6.48,1.43 -6.89,4.97 1.66,0.45 1.27,1.18 1.54,2.72 2.29,1.28 1.38,6.71 5.21,4.85 2.27,-0.57 4.21,1.54 5.35,2.54 1.09,-1.75 3.9,-1.39 3.21,0.95 0.1,1.55 -1.11,2.84 -0.3,4.77 -2.2,-0.71 -3.03,4.58 -5.67,1.76 -1.43,0.94 1.23,2.98 -0.19,4.47 0.79,3.11 4.25,6.81 7.21,3.89 -1.96,-1.82 1.17,-1.04 2.08,-2.79 1.53,-1.34 1.85,-1.47 0.72,0.46 -0.96,1.01 -3.43,3.3 -0.38,3.09 1.49,0.45 3.45,4.36 4.77,2.88 -0.27,-2.53 3.83,-3.05 1.1,-5.44 1.05,0.63 2.71,-0.96 2.12,1.15 2.98,0.99 -0.94,3.03 -2.44,3.55 -2.08,3.14 3.5,3.77 1.75,6.92 -0.29,1.59 0.31,5.9 2.13,4.03 -1.68,-0.96 -1.89,-7.61 0.51,-4.94 -0.5,1.26 4.8,0.74 3.44,-1.25 0.35,-0.76 1.34,3.45 1.43,0.83 0.89,1.74 3.91,2.47 1.59,0.06 -0.51,-1.47 -0.02,-3.03 -0.87,-4.45 1.76,1.65 1.37,4.11 4.01,4.31 0.21,-1.28 1.88,-0.67 1.78,-2.23 1.83,0.46 2.89,-0.48 3.79,-0.93 2.28,0.82 -0.59,1.71 2.06,2.43 1.57,0.52 0.39,-4.11 1.62,-1.05 -0.46,2.03 -2.17,6.08 -4.56,4.17 -1.51,0.14 -2.97,0.56 -4.53,-0.67 -3.37,0.66 2.51,2.11 2.17,4.25 2.28,1.57 4.95,-1.33 7.46,-0.04 0.09,-2.03 1.34,-0.88 2.36,-1.71 -1.31,-1.38 4.01,-1.27 0.96,-0.1 0.22,1.93 4.41,-1.17 5.9,0.75 1.01,1.43 4.31,0.26 4.44,1.04 -2.33,0.43 -6.75,-0.69 -5.01,3.23 1.5,1.03 2.59,-3.6 4.01,-0.77 1.99,-0.12 4.3,0.38 4.4,-2.43 0.29,-2.58 2.25,-0.15 3.16,-0.22 1.19,-1.05 2.3,-1.01 2.74,0.42 1.6,-0.29 0.66,-3.06 3.03,-2.61 0.96,-1.59 -0.11,-4.05 1.01,-5.76 -1.21,-2.25 -1.75,-4.67 -1.62,-7.13 1.06,-1.01 4.05,-0.69 1.57,-1.96 -1.94,-0.06 -2.1,-1.17 -0.12,-1.66 0.89,-1.32 3.49,-4.07 1.04,-4.6 -2.47,1.93 -2.55,-3.4 -0.68,-4.04 -0.57,-3.25 -3.22,-4.81 -6.13,-5.41 -2.4,0.4 -4.25,0.1 -2.46,-2.49 0.6,-2.26 5.5,-0.56 4.09,-3.23 -1.75,-0.22 -3.84,2.7 -3.33,-0.63 0.01,-3.41 -3.32,-2.88 -4.84,-1.45 -0.88,-3.11 -3.48,-4.72 -6.36,-3.01 -2.15,-0.01 0.26,2.97 -2.05,3.88 -0.09,2.06 -3.87,4.92 -5.31,3.84 -1.21,-1.39 2.06,-7.27 -1.57,-5.21 -1.38,0.54 -2.88,0.33 -3.62,2.06 -0.18,-2.38 -1.59,-4.23 -4.05,-3.7 -1.5,-2.53 -4.89,-0.74 -6.39,-1.56 -0.77,-1.17 -1.33,-2.65 -3.1,-2.43 z", - "department-35" : "m 134.53,157.78 c -2.29,1.25 -4.29,0.31 -6.19,1.59 -0.35,1.67 -2.93,2.17 -1.16,4.31 0.18,1.71 3.99,2.25 1.51,3.04 0.71,1.27 0.98,3.59 2.33,1.22 1.69,2.12 0.9,4.75 -0.11,6.67 -1.16,1.66 0.84,3.78 -0.19,5.68 1.34,1.46 -2.11,1.58 -0.78,3.48 0.21,2.25 -2.03,-0.13 -2.56,2.08 -1.42,-0.68 -2.58,-1.61 -3.47,0.21 -1.19,0.31 -0.39,2.42 -2.44,1.14 -3.01,-0.11 -1.06,4.1 -3.56,3.46 -0.04,2.21 -0.64,4.46 -2.86,4.2 0.62,1.53 1.56,3.49 1.75,5.16 0.54,-2.03 5.23,-1.03 2.52,0.76 -2.33,-0.69 -5.1,2.03 -3.97,3.88 2.89,-0.33 6.41,0.27 7.93,3.03 1.44,1.66 0.87,2.99 -0.39,4.33 0.11,1.6 0.84,3.69 2.2,1.35 0.71,-0.77 0.83,2.07 1.01,2.45 -1.23,1.26 -2.05,2.91 -3.28,3.92 1.71,0.13 3.61,2.39 0.59,2.1 -2.68,1.22 0.26,4 -0.22,5.86 2.34,-0.34 4.15,-1.76 6.12,-3.07 0.06,2.7 3.03,-0.8 4.56,-0.57 2.43,-1.1 5.63,0.82 7.84,-0.63 3.6,0.5 2.72,-4.87 6.32,-4.78 1.62,-0.77 5.16,-0.84 3.73,-3.31 2.85,-0.62 4.57,1.21 6.54,2.5 1.91,0.57 5.04,2.11 4.63,-1.3 1.15,-1.21 0.6,-2.9 1.92,-3.9 0.7,-1.81 1.08,-4.73 2.39,-6.4 1.07,-2.4 6.58,0.52 5.22,-3.48 -0.09,-3.31 -1.44,-6.24 -2.22,-9.58 0.1,-2.96 -2.26,-6.23 0.02,-8.8 1.83,-2.19 0.74,-5.58 -0.28,-8.01 0.55,-2.21 1.33,-6.39 -2.22,-6.48 -2.56,-0.06 -6.32,-3.21 -7.21,0.93 -2.37,0.79 -4.8,5.49 -7.02,1.82 -2.57,-0.44 -4.28,-3.63 -3.95,-6.18 -0.99,-1.91 -2.39,-5.92 -4.86,-2.88 -3.41,0.04 -8.02,2.16 -10.43,-0.96 -1.67,-2.06 2.03,-3.1 0.24,-4.85 z", - "department-44" : "m 152.12,215.29 c 0.59,4.69 -7.52,2.23 -7.55,6.92 -2.45,2.92 -6.64,1.42 -9.84,1.79 -2.21,0.47 -4.62,2.21 -6.1,1.16 -2.15,1.71 -5.77,2.38 -4.86,5.66 -0.41,1.99 0.14,5.32 -2.78,5.46 0.29,3.39 -2.45,-0.35 -3.39,1.23 -1.97,-0.43 -3.4,-1.22 -3.87,1.43 -1.39,3.38 -7.86,-1.72 -6.53,3.45 1.04,0.36 3.95,1.27 1.26,1.45 -1.78,0.18 -4.38,-0.42 -5.51,2.1 0.81,1.67 6.76,3.88 3.55,5.8 -1.04,-0.85 -4.89,-1.36 -1.91,0.14 1.73,1.23 3.86,1.82 5.03,0.15 2.77,0.79 5.25,4.76 7.99,1.3 2.33,-2.98 5.67,-3.71 9.18,-3.56 3.26,1.31 7.02,1.76 9.14,4.89 0.59,1.56 5.82,2.63 2.15,2.16 -4.08,-0.08 -5.45,-5.45 -9.25,-4.42 -2.59,-1.44 -6.59,-0.45 -8.62,1.17 0.15,2.98 1.07,6.99 -2.64,7.63 1.56,2.78 6.83,0.77 8.69,4.16 2.99,2.74 4.83,7.09 8.9,8.42 0.9,1.88 5.53,0.57 5.08,3.59 3.08,0.7 6.82,2.86 9.67,1.11 2.13,-1.29 -2.55,-2.42 -0.14,-3.94 -2.91,-1.74 -0.81,-8.5 2.35,-5.93 0.6,2.44 -0.71,8.47 3.28,5.3 3.57,-0.9 -1,-7.35 3.9,-6.19 0.83,-0.5 2.39,-4.6 3.91,-1.32 1.06,2.31 6.94,2.33 4.03,-0.72 -1.16,-2.43 -6.27,-0.49 -4.19,-3.49 1.19,-2.09 4.14,-3.59 2.27,-6.58 -0.11,-2.99 -2.79,0.14 -3.66,-2.47 -0.42,-1.81 -2.18,-3.14 -3.54,-3 1.51,-3.16 6.07,-2.52 8.85,-3.95 3.12,-0.79 9.37,1.47 9.71,-3.23 -1.08,-2.47 -1.12,-5.9 -4.66,-5.46 -2.8,0.23 -7.97,-1.25 -5.65,-4.79 1.85,-0.34 7.04,1.35 6.32,-1.48 -2.96,-1.34 -7.7,-2.06 -7.06,-6.38 -0.89,-2.42 -4.47,-2.43 -3.18,-5.19 -2.78,-1.29 -5.51,-2.7 -8.1,-4.12 -0.73,-0.11 -1.47,-0.12 -2.19,-0.28 z", - "department-50" : "m 131.13,90.31 c -1.88,0.95 -0.8,4.82 1.86,4.23 3.56,1.9 1.73,6.62 0.2,9.04 2.05,2.45 3.1,5.7 3,9 0.14,1.74 2.63,0.2 3.07,2.34 0.75,1.03 1.85,2.12 2.19,0.36 1.37,1.6 -1.38,2.27 1.05,3.66 1.37,1.28 0.99,6.4 3.69,4.06 1.9,0.29 2.45,1.19 0.04,0.86 -1.6,1.67 0.46,4.57 0.89,5.74 -2.97,1.02 -0.03,4.32 -0.89,6.45 0.25,4.18 2.26,-2.3 3.97,0.71 -3,-1.64 -2.73,4.63 -1.52,5.52 -1.39,1.53 -0.75,4.59 -2.48,6.57 2.85,1.89 0.3,6.73 3.77,8.41 0.72,3.65 6.47,2.47 6.87,4.86 -3.09,-0.67 -6.13,1.28 -9.29,0.14 2.12,2.48 1.69,5.44 3.35,8.16 0.49,2.03 2.9,1.69 3.89,3.28 2.85,0.97 3.52,-2.95 6.22,-3.35 0.5,-4.19 4.83,-0.16 7.12,-0.52 2.46,0.21 4.49,2.11 6.88,1.58 1.14,-3.4 4.72,2.61 6.05,-1.83 2.14,-1.71 4.11,-4.11 4,-6.8 -2.86,-1.65 2.62,-4.05 -1.04,-4.65 -1.19,-1.03 -1.99,-2.17 -3.44,-2.39 0.65,-1.72 0.69,-2.24 -1.24,-1.46 -2.15,-1.56 -3.83,-1.87 -6.18,-1.16 -1.5,-0.55 -4.16,0.68 -4.02,-2.14 -1.26,-0.78 -4.15,-1.48 -1.38,-2.84 0.99,-1.27 1.76,-1.9 2.97,-1.76 1.12,-1.18 3.8,-4.02 0.24,-2.9 -1.76,-0.83 1.02,-4.16 2.87,-2.17 3.08,-0.43 3.89,-3.82 6.01,-5.35 -2.27,-0.59 1.2,-4.39 -1.22,-5.32 -2.09,1.3 -1,0.15 0.07,-0.89 -1.07,-1.07 -4.55,-2.49 -1.49,-2.88 2.17,-1.47 -0.09,-4.82 -1.5,-1.9 -3.17,0.81 -5.99,-2.78 -7.94,-5.02 -1.69,-1.95 2.34,-3.94 -0.73,-4.53 -0.02,-1.64 -2.94,0.31 -1.33,-2.17 1.04,-2.89 -2.27,-4.45 -3.47,-6.64 -1.37,-1.99 -4.59,-6.54 -0.56,-7.31 0.17,-1.79 2.56,-1.35 1.09,-3.59 -0.43,-3.65 -3.79,-3.85 -6.83,-3.94 -3.88,-1.03 -4.69,4.08 -8.52,3.07 -3.16,1.2 -5.48,-1.83 -8.81,-1.65 -2.47,0.02 -3.19,-2.65 -5.7,-1.92 -0.51,-0.38 -1.01,-1.1 -1.74,-0.94 z", - "department-53" : "m 208.55,167.1 c -1.01,1 0.05,3.16 -1.88,3.54 -1.52,-1.01 -2.64,-0.44 -3.16,1.13 -2.16,0.27 -4.3,-2.6 -6.35,-0.72 -2.51,0.71 -4.34,2.89 -6.91,3.52 -1.47,-0.07 -0.73,-3.05 -2.63,-1.24 -1.44,-0.25 -1.57,0.24 -1.23,1.52 -1.95,1.91 -3.12,-1.9 -4.31,-1.2 -0.57,-2.91 -4.17,-1.79 -5.68,-3.27 -1.71,1.43 -3.54,2.05 -5.24,0.23 -1.62,1.36 -0.04,4.11 -0.87,5.96 1,2.8 1.94,6.2 -0.3,8.68 -1.8,2.64 0.64,5.51 0.63,8.4 0.26,2.57 1.34,4.89 2.01,7.32 0.27,1.9 0.56,4.67 -2.4,4.46 -3.58,-1.21 -3.75,3.46 -4.8,5.71 -0.32,2.32 -3.14,4.44 -1.31,6.55 2.18,1.99 5.34,0.43 7.83,1.57 1.63,0.66 3.95,1.05 3.53,-1.27 2.64,-0.54 3.9,3.91 6.54,1.42 2.25,1.91 5.27,1.85 7.94,2.38 1.76,-0.55 3.96,-1.63 5.33,-1.8 0.74,-3.63 3.49,1.65 5.63,-0.72 3.1,-0.49 -0.69,-2.25 -1.75,-2.95 -1.24,-2.55 5.38,-2.7 2.17,-4.78 -2.1,-2.18 2.21,-3.41 3.9,-3.25 2.7,-2.12 -2.9,-5 -0.82,-7.18 1.54,-1.12 5.56,-0.07 4.23,-2.96 2.04,-1.51 -2.56,-3.7 0.57,-5.19 2.14,-0.95 4.31,-2.8 2.75,-5.2 0.4,-1.84 1.4,-3.83 0.29,-5.45 0.84,-2.27 2.74,-2.67 4.64,-3.69 0.49,-2.31 0.11,-5.38 -2.99,-3.91 -2.18,-0.9 -2.07,-4.02 -1.67,-5.52 -0.9,-1.11 -2.32,-1.86 -3.72,-2.1 z", - "department-49" : "m 163.22,217.21 c -0.83,2.37 -1.6,5.33 1.37,5.86 1.81,2.08 0.91,5.95 4.42,6.63 2.22,0.05 6.13,2.61 1.99,3.38 -1.68,0.33 -6.88,-1.51 -4.42,1.8 -0.28,3.95 5.62,1.28 7.64,2.98 2.45,0.74 1.41,5.07 2.67,6.48 -2.29,2.93 -6.35,1.4 -9.46,1.86 -2.75,1.47 -6.15,1.11 -8.63,2.95 -2.19,2.35 2.81,0.48 2.57,3.2 0.31,2.29 2.55,1.71 3.57,1.87 1.63,2.89 1.11,5.74 -1.65,7.56 -1.38,3.05 3.73,1.85 4.64,4.57 0.65,0.86 -1.19,3.33 1.44,2.98 2.09,1.51 5.06,-0.93 6.83,0.87 2.12,0.24 3.87,3.37 5.76,0.52 2.61,-0.75 5.23,0.76 7.87,-0.16 3.45,0.68 4.18,-2.89 4.98,-5 2.46,-1.53 5.74,1.7 7.32,-1.15 3.52,-0.32 7.2,-1.11 10.47,-0.77 1.05,1.17 -2.26,1.94 0.29,2.63 2.66,0.88 1.49,-3.86 4.67,-2.23 0.32,-1.55 1.08,-6.07 4.26,-4.7 1.02,-3.55 0.54,-7.68 3.15,-10.63 1.2,-1.75 2.78,-3.33 2.02,-5.32 0.89,-2.49 1.94,-4.87 2.33,-7.52 -2.3,-1.25 2.95,-6.06 -1.28,-5.83 -1.14,3.4 -4.78,-0.25 -6.77,-0.21 -1.89,-1.86 -5.83,-3.95 -7.59,-1.47 -2.9,0.48 -5.51,-3.13 -2.87,-5.2 -1.31,-0.36 -3.53,1.25 -5.3,-0.11 -1.96,-0.38 -3.12,0.57 -3.07,-1.96 -1.12,-2.87 -4.12,0.14 -5.77,-2.2 -1.77,-0.71 -0.8,2.61 -3.03,1.75 -3.13,1.53 -6.89,1.32 -10.17,-0.06 -1.72,-2.25 -3.57,1.59 -5.08,-1.25 -0.8,-0.99 -3.72,-1.84 -2.9,0.37 -3.4,0.17 -6.97,-0.89 -10.18,-1.14 -0.72,-0.44 -1.37,-0.99 -2.14,-1.36 z", - "department-85" : "m 161.28,265.2 c -0.97,1.7 -1.54,3.91 -3.7,2.64 -1.76,1.98 1.21,6.33 -3.05,6.68 -4.15,2.13 -1.3,-4.19 -2.86,-6.14 -3.81,-0.88 -3.43,4.2 -2.06,6.39 -1.18,1.59 2.88,3.89 -0.56,4.36 -2.8,1.01 -5.58,-1.25 -8.45,-1.27 -0.94,-1.21 -1.09,-3.22 -3.4,-2.64 -2.06,0.15 -1.35,-2.2 -3.49,-1.71 -2.48,-1.21 -5.24,-7.8 -7.15,-2.42 -0.59,3.85 -5.53,4.8 -4.91,9.21 0.37,4.17 5.72,4.87 7.16,8.67 2.67,2.58 4.99,5.43 6.65,8.8 0.87,1.89 0.24,6.13 2,6.75 0.16,-1.73 0.12,-2.45 1.07,-0.5 1.66,2.86 6.15,2.45 7.02,5.1 3.4,-0.42 6.93,0.3 7.04,4.36 1.27,2.81 4.49,-1.27 6.02,1.84 2.09,-0.13 3,3.11 4.96,3.02 -0.36,-3.97 4.41,-1.93 6.48,-3.3 1.71,-1.96 4.7,-2.5 6.81,-2.37 -1.17,1.68 -0.83,3.92 1.65,2.75 2.07,-0.36 4.04,-2.66 5.25,0.14 2.09,1.8 3.55,-0.97 5.61,-0.12 1.62,-1.38 3.3,-2.9 5.04,-3.72 0.18,-2.56 -3.47,-1.87 -3.87,-1.44 -0.63,-2.59 1.8,-5.29 -0.47,-7.7 0.94,-1.38 2.03,-1.54 1.08,-3.45 0.09,-2.1 -0.29,-4.13 -1.61,-5.22 0.65,-2.15 -1.16,-2.52 -0.79,-4.52 -1.57,-1.94 -3.3,-3.94 -1.89,-6.5 -1.72,-1.62 -5.39,-2.92 -5.22,-6.11 0.38,-2.29 -3.29,-2.9 -3.68,-5.31 -1.81,-2.01 -4.49,-1.74 -7.1,-1.32 -3.49,-1.03 -6.73,-2.66 -9.6,-4.96 z", - "department-79" : "m 211.41,263.54 c -3.47,1 -7.46,-0.24 -10.55,2.01 -1.54,0.87 -3.61,1.5 -3.45,-0.55 -2.89,-0.11 -3.46,3 -4.1,4.64 -2.76,1.84 -6.3,1.53 -9.35,1.02 -2.77,-0.37 -6.01,2.62 -2.55,4.27 1.05,2.29 0.26,5.24 3.5,6.22 3.7,1.27 0.35,4.83 3.08,6.91 1.95,2.46 1.89,5.88 3.13,8.43 0.79,2.29 0.53,5.23 -0.6,6.69 2.08,1.92 -1.04,5.98 0.79,6.87 2.26,-2.05 4.86,2.6 1.35,3.21 -1.82,2.1 -4.84,2.03 -7.01,3.55 -1.92,3.7 2.7,4.91 3.24,8.13 1.44,0.37 2.62,0.88 2.81,2.1 3.32,-0.93 5.83,3.57 8.63,3.01 2.89,1.17 6.03,0.6 8.47,3.22 3.7,-0.54 3.87,6.56 7.56,4.57 1.73,-2.11 1.24,-5.98 4.87,-5.81 1.63,-2.21 4.23,-2.49 6.45,-1.63 1.55,-1.48 2.11,-4.78 -0.83,-4.33 -3.29,-1.46 -1.71,-5.49 -0.5,-7.4 1.75,-0.97 0.56,-7.43 -1.84,-3.75 -2.3,2.89 -5.28,-1.21 -4.22,-3.39 -2.48,-2.03 -1.19,-5.37 -2.68,-7.99 1.33,-2.02 1.71,-4.55 3.11,-6.42 -0.55,-0.92 -2.28,-2.13 -2.08,-2.45 -3.66,1.58 0.19,-4.05 1.24,-5.25 2.3,-2.33 -3.14,-3.07 -0.93,-5.56 1.44,-1.85 -3.47,-1.82 -0.33,-2.92 3.33,-0.16 0.56,-1.18 -0.24,-2.53 0.5,-2.54 0.1,-5.85 -1.91,-7.36 -1.96,-0.52 -0.38,-5.88 -4.15,-4.77 -2.43,-0.12 2.22,-3.17 -0.9,-2.74 z", - "department-17" : "m 175.73,312.62 c -2.1,1.05 -4.89,0.98 -6.33,3.16 -2.59,0.12 1.24,4.72 -2.26,5.02 -2,0.79 -4.42,5.17 -2.11,6.01 2.93,0 2.49,3.17 4.17,4.84 0.72,1.37 3.67,5.65 0.03,4.87 -2.18,0.36 1.95,2.77 0.48,4.24 1.55,2.23 0.05,3.13 -1.55,3.46 -0.38,1.57 -2.23,1.63 -0.92,3.81 0.7,3.56 3.92,5.46 6.53,7.53 -3.66,-0.31 -5.1,-4.96 -7.98,-5.25 -3.89,-1.1 -3.52,4.91 -2.88,6.67 2.74,-1.46 4.76,2.94 7.48,3.54 3.34,1.31 3.69,5.42 7.19,6.15 4.09,3 7.55,7.17 8.5,12.27 0.26,3.76 5.67,2.29 7.12,1.56 -1.08,5.27 6.99,0.78 7.08,5.12 0.92,1.82 -0.24,5.87 1.93,6.53 3.38,-1.84 5.25,4.16 8.91,4.29 2.53,1.16 3.84,-3.72 5.99,-0.43 0.42,-1.35 1.41,-3.02 1.97,-3.79 -0.43,-1.67 1.72,-4.75 -1.44,-5.53 -1.82,-0.53 -4.59,0.36 -3.27,-2.54 -1.47,-1.11 -5.11,-3.27 -7.08,-1.29 -2.02,-1.16 -0.75,-3.34 0.78,-3.22 -1.02,-0.53 -4.64,-2.27 -1.19,-3.33 4.28,-0.66 -2.5,-4.27 0.56,-5.26 2.44,-2.46 -2.28,-2.77 -2.54,-4.29 2.17,-2.32 -2.75,-3.59 -3.55,-5.14 -2.87,0.92 -0.97,-2.62 0.33,-2.63 -2.65,-1.14 -0.44,-4.4 -1.57,-5.27 -2.89,0.77 -1.45,-2.34 0.53,-2.18 1.34,-1.34 4.68,-0.44 6.11,-2.14 2.35,-0.74 2.26,3.5 4.57,1.02 2.44,-0.29 1.26,-3.78 2.59,-5.17 -1.46,-1.93 -1.99,-4.68 1.15,-4.47 0.21,-2.43 -3.03,-4.09 -3.83,-6.1 -0.81,-1.69 -4.49,-0.9 -5.2,-3.54 -1.75,0.56 -3.25,0.45 -4.22,-0.82 -1.42,1.85 -1.72,-1.94 -2.91,-0.25 -3.3,-0.03 -3.97,-4.4 -7.72,-2.73 0.56,-2.08 -4.7,-2.08 -3.15,-4.59 -0.87,-1.66 -4.22,-2.08 -2.44,-4.29 -0.3,-2.54 -4.15,-5.59 -5.48,-2.93 -1.22,-0.57 -5.78,1.4 -3.85,-1.55 0.3,-0.71 0.63,-1.62 -0.55,-1.38 z m -24.48,7.33 c -2.5,0.03 -3.87,1.14 -1.7,3.09 3.95,0.17 7.19,2.31 10.9,3.68 3.89,-1.05 -3.64,-4.87 -5.82,-4.1 0.29,-2.41 -4.61,1.24 -3.83,-1.48 1.5,1.02 1.83,-1.02 0.46,-1.19 z m 4.27,13.72 c -0.7,1.54 2.03,3.7 0.87,5.86 3.02,2.81 6.53,5.8 7.08,10.16 2.32,-1.62 3.28,-6.49 0.08,-7.91 -0.51,-2.29 -0.47,-5.1 -3.54,-5.11 -1.46,-1 -2.65,-2.71 -4.49,-2.99 z", - "department-33" : "m 170.37,365.5 c -2.88,2.39 -3.66,6.38 -3.67,9.99 -0.06,6.47 -0.57,12.93 -1.99,19.26 -0.93,8.17 -1.59,16.38 -2.58,24.55 0.15,2.18 -1.38,7.44 -0.06,8.1 -0.08,-3.31 1.98,-7.54 4.36,-8.96 1.97,1.72 7.34,5.74 3.76,7.49 -2.73,1.04 -6.38,-2.36 -6.38,2.52 -1.52,2.69 -2.74,7 -1.06,9.24 2.84,-0.63 5.96,-2.27 7.61,-3.75 2.03,1.26 5.7,0.92 3.77,4.43 -2.89,4.65 3.5,-0.33 5.45,2.23 3.86,1.51 7.87,-3.74 11.26,-0.84 -1.42,4.09 4.44,3.2 5.19,6.56 1.94,1.37 4.07,0.77 4.89,3.31 2.18,0.86 -1.21,6.6 3.33,5.68 2.58,1.12 6.14,0.42 4.75,-3.03 1.75,-3.72 3.17,3 5.62,1.04 3.5,-1.1 3.84,-4.91 0.95,-7.06 1.78,-1.99 6.6,-1.58 3.43,-5.47 1.27,-2.35 -1.77,-5.16 1.09,-7.2 -1.95,-2.11 4.08,0.01 3.42,-3.48 2.15,-0.49 2.85,-2.17 2.61,-3.54 1.82,1.01 2.01,-3.15 -0.54,-1.86 -1.24,-1.31 -2.01,-2.64 0.2,-3.47 -0.33,-1.44 2,-1.21 2.56,-1.67 0.96,3.46 0.77,-3.24 2.88,-0.59 3.44,-0.12 -2.08,-5.38 2.19,-5.6 -0.3,-3.57 -4.29,-0.98 -5.16,1.24 -2.94,-0.94 -4.42,-0.02 -6.92,-0.52 -0.48,-1.95 -5.24,-0.86 -1.96,-2.84 3,-2.61 -1.26,-5.76 1.74,-8.21 0.18,-2.65 3.61,-7.86 -1.4,-8.03 -1.8,0.66 -3.02,1.85 -4.53,-0.13 -2.79,3.68 -7.23,0.65 -9.47,-1.85 -1.02,0.81 -2.89,-3.34 -3.74,-0.02 -1.83,-2.9 -1.15,-5.89 -1.94,-8.56 -2.49,-1.97 -7.58,0.6 -7.16,-4.13 -0.99,3.32 -7.86,-1.7 -5.65,3.47 1.12,5.25 -0.04,11.74 4.13,15.79 1.6,0.97 5.46,1.4 5.09,3.59 -1.14,-1.76 -5.95,-2.2 -2.42,0.16 0.89,1.86 0.32,4.86 0.46,6.96 -0.86,-3.57 -0.31,-7.65 -4.4,-9.5 -4,-3.65 -3.81,-9.3 -4.62,-14.2 -0.83,-4.14 -2.82,-8.05 -6.26,-10.61 -1.82,-3.68 -6.55,-3.9 -8.36,-7.63 -0.3,-0.84 1.03,-2.73 -0.47,-2.88 z", - "department-40" : "m 169.77,433.93 c -1.39,4.09 -9.03,1.92 -8.11,7.38 -1.02,7.04 -1.81,14.11 -3.21,21.09 -1.27,6.3 -2.02,12.7 -3.64,18.93 -1,6.23 -2.25,12.44 -3.8,18.55 2.58,-1.5 3.77,4.05 6.97,1.91 3.34,1.32 5.68,-3.95 8.44,-2.39 2.07,1.33 0.83,1.91 -0.48,2.62 2.25,0.71 3.66,-2.53 5.72,-0.83 1.43,1.01 3.09,-0.31 2.14,-1.78 2.65,0.58 4.62,-1.18 7.1,-0.71 0.89,-0.91 2.56,-0.97 3.4,-1.93 1.42,1.18 2.14,3.21 3.39,1.18 1.9,-0.75 2.12,-1.21 2.41,0.33 1.62,2.42 3.07,-1.23 4.2,0.55 1.35,-0.65 5.1,-4.97 5.14,-2 -2.25,3.45 3.32,-1.25 4.51,1.48 1.42,-0.66 5.29,-2.61 3.41,-4.06 -2.62,-1.1 2.2,-2.69 0.51,-4.53 -0.4,-2.09 3.75,-3.09 1.72,-4.6 0.25,-1.62 -1.17,-3.73 0.82,-4.32 -0.1,-1.59 -0.15,-2.99 -0.15,-4.15 -3.84,-1.04 1.14,-3.46 2.82,-3.81 1.4,0.08 1.6,0.86 2.46,-0.49 1.85,-0.5 2.29,-3.87 4,-0.74 -0.03,1.42 -1.08,2.56 1.12,3.35 3.85,1.54 0.42,-3.68 2.06,-5.19 -1.31,-3.01 1.52,-6.01 2.73,-8.67 -3.45,-0.68 -6.76,-2.36 -10.44,-2.46 -3.14,0.72 -0.38,-5.12 -3.37,-6.17 -1.68,-2.94 -3.31,0.33 -2.44,2.4 -1.45,2.03 -6.15,0.75 -7.76,-0.49 0.06,-2.43 0.64,-4.45 -1.66,-5.74 -0.75,-1.94 -4.67,-0.97 -4.92,-3.99 -2.01,-1.55 -5.69,-1.4 -4.21,-4.64 -1.24,-2.31 -3.79,0.2 -5.94,-0.34 -3.05,3.71 -7.01,-1.41 -10.49,1 -4.03,1.42 2.63,-4.52 -0.65,-5.54 -1.61,0.68 -2.43,-1.07 -3.83,-1.21 z", - "department-64" : "m 211.2,495.72 c -1.9,1.07 -4.71,-0.23 -5.99,2.39 -1.98,0.52 -4.11,-1.44 -6.18,0.45 -1.47,-0.65 2.04,-3.79 -1.1,-2.24 -1.84,1.1 -3.29,3.13 -5.1,2.48 -1.96,1.45 -5,-2.73 -6.29,0.37 -1.3,-1.42 -2.42,-3.2 -3.7,-1.06 -1.86,0.3 -2.9,1.44 -5.06,0.79 -0.86,1.97 -4.19,-0.71 -3.64,2.4 -2.25,0.68 -5.49,-1.09 -7.26,1.32 -3.27,-0.97 2.34,-1.26 -0.09,-2.53 -2.18,-3.25 -4.64,2.8 -7.39,1.71 -2.74,0.92 -5.67,0.14 -7,-2.21 -3.51,1.11 -4.76,4.93 -7.06,7.37 -1.86,2.09 -5.86,0.94 -7.14,3.17 0.39,1.82 2.63,2.08 2.45,4.31 2.16,-0.79 5.47,-0.83 4.92,2.37 1.44,2.55 2.98,-0.5 3.6,-1.51 2.37,0.53 4.98,1.17 7.12,1.91 1.21,3.15 -0.34,6.66 -1.84,9.39 -3.7,1.82 -0.21,5.81 2.82,5.62 2.52,-0.18 0.25,-6.64 4.3,-5.38 -2.77,2.45 0.66,4.77 3.15,4.41 2.76,1.62 4.75,2.53 7.73,3.53 2.51,0.74 4.11,3.68 7.28,2.92 2.81,1.52 7.35,-3.02 7.16,2.26 -1.02,2.96 3.25,2.28 4.34,4.46 1.78,1.41 3.01,6.8 5.13,3.41 1.29,-2.94 5.1,2.52 7.14,-0.85 1.53,-1.11 3.1,-1.71 2.2,-4.29 -2.14,-2.89 3.19,-3.06 1.08,-6.08 -0.73,-2.21 1.82,-2.45 1.78,-4.48 3.8,1.19 0.42,-4.25 3.06,-5 2.06,-1.26 1.63,-4.46 4.21,-4.01 0.61,-1.33 0.15,-2.87 1.47,-3.33 2.68,-2.17 -1.51,-4.94 1.51,-6.75 3.94,0.18 -1.17,-3.74 0.89,-5.91 -0.71,-3.82 -1.88,1.82 -3.23,0.54 -0.52,-1.85 0.16,-3.46 1.54,-4.09 -0.91,-1.78 -0.41,-4.39 -2.84,-4.92 0.66,-3.73 -2.6,-1.04 -3.99,-2.95 z", - "department-65" : "m 216.99,494.91 c -1.84,0.25 -2.8,4.03 -0.53,4.11 1.88,1.3 0.29,3.67 2.23,4.92 -1.93,0.09 -2.67,2 -1.81,3.38 0.3,1.54 2.42,-3.88 2.78,-0.62 0.04,1.77 -0.37,4.08 1.04,5.66 -0.74,1.52 -3.19,0.65 -3.23,3.06 1.46,1.22 1.22,2.8 0.07,4.31 -0.99,0.9 -1.52,1.78 -1.24,3.38 -1.18,1.4 -2.47,-0.59 -2.75,1.65 -0.31,2.34 -3.5,2.62 -2.83,5.08 -0.23,1.21 0.77,2.46 -1.27,2.75 -1.74,-1.03 -0.67,2.29 -2.47,2.46 -0.22,2.15 1.18,4.49 -1.44,5.52 0.13,2.35 0.39,5.58 3.33,6.26 1.51,1 2.85,2.84 4.69,1.37 -0.57,1.85 1.47,3.6 2.41,4.96 1.56,0.38 2.66,3.5 4.75,1.97 1.8,-0.64 3.96,-1.24 5.98,-1.71 2.21,-1.74 5.92,-0.18 6.53,2.47 2.16,1.45 2.84,-4.54 5.11,-1.48 1.05,2.42 6.1,0.26 2.72,-1.38 -0.47,-1.86 -0.16,-4.75 -0.08,-7.05 -0.01,-1.71 0.82,-4 2.68,-2.21 3.39,1.23 2.02,-4.26 4.56,-5.2 1.78,-1.39 -1.78,-2.01 -0.27,-3.71 -0.3,-0.99 -0.83,-2.98 -1.65,-1.25 -1.08,0.21 -3.2,2.39 -2.44,-0.12 -0.09,-1.57 2.08,-1.37 1.06,-3.26 -1.4,-1.24 -3.29,-2.47 -4.49,-3.12 -2.02,-2.1 3.51,-3.46 2.42,-5.76 0.93,-0.47 4.3,-0.56 1.96,-2.04 0.32,-1.95 5.47,-3.77 2.06,-5.05 -2.3,-1.28 -4.63,-0.69 -6.84,-1.39 -2.1,2.1 -2.26,-2.3 -4.28,-0.93 -1.76,1.3 -0.81,-1.74 -2.47,-1.53 -0.55,-2.46 -4.01,1.85 -5.67,-0.21 0.62,-1.85 -3.42,-2.4 -1.35,-4.21 1.51,-1.16 -1.9,-2.45 -1.19,-4.22 -1.14,-1.21 -3.48,-0.65 -4.39,-2.66 -2.13,-0.62 -0.57,-4.95 -3.7,-4.22 z", - "department-32" : "m 246.37,463.78 c -1.87,2.87 -5.69,0.08 -7.22,3.28 -1.88,1.49 -4.2,0.57 -5.81,2.33 -2.39,-0.54 -4.55,-3.39 -6.11,0.1 -0.16,1.89 -1.71,0.96 -1.7,-0.3 -2.5,0.36 -4.05,2.53 -2.63,4.96 0.01,3.29 -6.18,-0.5 -3.3,-1.85 -0.54,-2.21 -2.13,-1.97 -3.07,-0.29 -1.34,0.89 -1.71,2.04 -3.36,1.03 -1.68,0.34 -3.48,1.37 -4.38,2.76 1.22,0.28 3.13,1.71 1.37,2.42 1.01,1.6 0.51,3.2 -0.73,3.83 -0.07,2.44 2.42,4.6 -0.76,5.86 -1.18,1.63 0.66,4.33 -1.94,5.01 -0.42,1.69 2.27,1.13 1.62,3.13 2.18,-0.55 3.63,0.28 6.01,0.22 1.55,-0.54 3.47,-2.96 4.82,-0.45 0.15,2.77 2.68,4.35 4.51,5.25 2.48,-0.68 1.19,3.49 3.25,4.21 -0.48,0.88 -2.09,2.3 -0,3.14 1.28,0.27 0.25,2.29 2,2.07 2.01,0.08 3.81,-1.91 5.13,-0.1 0.83,0.3 0.34,2.73 2.13,1.32 1.65,-1.02 1.99,3.25 3.69,0.87 2.91,0.44 5.72,1.25 8.79,1.59 2.28,-1 2.83,-4 4.96,-4.85 -0.08,-1.97 1.2,-2.17 2.72,-1.09 2.04,-2.03 5.8,0.4 7.36,1.79 1.25,2.38 1.53,-1.44 1.56,-2.27 1.63,-0.08 0.78,-2.07 1.64,-3.14 -1.95,-1.43 1.97,-2.65 1.07,-4.39 -0.66,-1.2 0.97,-1.78 2.08,-0.85 0.33,-1.45 2.39,-1.29 3.2,-2.18 2.33,0.7 0.78,-3.33 -0.81,-2.33 -0.96,-0.86 -0.26,-2.97 -2.3,-2.06 -1.55,-0.33 0.33,-2.07 -1.76,-1.78 -1.88,-0.75 0.92,-3.18 -2.09,-3.14 -1.61,-1.44 -2.45,-4.37 -4.36,-5.15 -3.35,1.69 1.17,-3.08 -1.5,-3.24 0.76,-1.49 -1.03,-2.76 -0.22,-4.22 -1.16,-1.24 -2.92,-1.03 -4.29,-1.63 -2.35,1.17 -1.75,-1.94 -0.23,-2.55 1.5,-1.23 1.3,-2.73 1.39,-4.08 3.53,-0.83 -1.38,-2.38 -2.33,-0.22 -1.18,0.08 -0.41,-3.33 -2.53,-1.63 -1.28,0.69 -2.36,3.52 -3.35,0.81 -0.67,-0.82 -1.46,-1.92 -2.53,-2.18 z", - "department-47" : "m 230.07,418.5 c -0.81,0.77 -0.9,3.82 -1.83,1.38 -1.82,-0.02 -3.21,2.14 -3.88,3.3 1.04,0.9 2.08,1.66 3.3,1.8 -0.04,1.51 -1.7,2.55 -2.03,4.05 -1.55,0.64 -2.55,2.47 -3.24,3.29 -3.01,0.59 -4.44,4.14 -2.78,6.75 -1.33,1.76 2.46,5.68 -1.08,5.69 -2.16,-0.16 -3.67,2.4 -1.25,3.45 1.89,2.62 -1.53,5.28 -3.79,5.58 -0.01,1.94 -0.52,5.85 2.43,4.84 2.83,-0.58 4.82,1.94 7.53,1.7 1.96,-0.36 2.73,1.43 1.07,2.55 -0.51,2.08 -4.01,5.95 -0.67,6.93 1.39,-0.27 1.71,-1.54 2.32,0.34 1.42,0.2 1.56,-3.84 3.99,-2.43 2.21,2.53 4.49,0.26 7.07,0 2.57,-0.7 3.69,-3.71 6.77,-2.71 1.7,-0.39 3.39,-2.44 4.44,0.28 1.31,3.29 3.19,-0.23 4.88,-1.16 0.36,-1.62 1.13,-2.69 2.56,-3.54 -1.25,-2.97 5.51,1.65 4.18,-2.52 -0.96,-0.29 -2.25,-1.68 -0.22,-2.14 2.35,-0.03 2.05,-4.03 2.4,-5.78 -1.23,-1.07 -4.15,-1.71 -2.2,-3.71 -0.38,-1.68 1.32,-4.27 2.55,-1.77 1.53,0.85 4.19,-0.22 5.25,-0.41 0.48,-2.12 -0.42,-3.89 -1.57,-5.33 0.06,-1.97 -1.67,-5.18 -1.15,-6.13 2.23,0.07 5.01,-2.93 1.78,-3.93 -1.73,-2.48 -5.12,-2.94 -6.92,-0.28 -2.08,2.1 -3.89,-1.44 -2.14,-3.04 0.26,-1.39 -1.37,-4.01 -2.62,-1.92 -2.44,1.01 -5.83,0.37 -7,-0.95 -2.41,-0.18 -2.86,2.94 -5.17,1.62 -2.31,0.8 -5.39,2.91 -7.69,0.67 0.42,-2.17 -0.14,-6.16 -2.93,-6.02 -0.81,0.25 -1.86,0.44 -2.38,-0.43 z", - "department-31" : "m 290.02,474.31 c -1.06,1.38 -2.08,2.2 -3.14,1.27 -0.58,4.46 -6.27,-1.79 -5.29,3.06 -1.9,-0.93 -3.5,1.28 -0.64,0.98 2.48,2.1 -3.77,2.63 -4.93,4.19 -2.22,1.21 -0.1,-1.87 -2.62,-1.46 -1.27,-3.41 -2.92,1.42 -4.53,-1.01 -1.38,1.57 -7.9,0.39 -4.49,3.87 1.19,2.36 4.47,2.68 3.64,5.37 2.67,0.06 0.55,2.9 3.52,1.95 0.58,0.93 0.66,2.79 2.12,2.09 2.71,3.12 -2.63,3.32 -4.16,4.93 -1.1,-1.53 -1.56,1.15 -1.34,1.61 0.44,1.44 -2.97,2.2 -1.16,3.88 -0.09,2.59 -2.4,2.6 -1.68,5.18 -1.9,1.75 -3.41,-2.85 -6.25,-2.48 -1.97,-0.25 -2.83,1.49 -4.6,-0.2 -0.73,3 -3.35,2.98 -4.53,6.1 -1.7,0.77 -1.89,0.75 -1.75,2.05 -1.29,1.74 -3.85,2.87 -2.67,4.97 -1.64,0.77 -2.86,0.43 -2.8,2.37 -2.19,1.55 -3.92,4.34 -0.36,4.93 1.97,0.94 4.52,4.07 1.77,4.79 -1.3,4.88 3.7,-2.96 3.72,1.66 0.49,1.32 -0.65,2.24 1.07,3.28 -2.79,1.64 -2.18,9.05 -6.68,5.6 -1.73,2.41 -1.93,7.77 -0.38,10.18 1.27,3.59 5.97,0.17 8.88,1.83 2.51,-1.92 -1.95,-5.09 0.25,-7.4 -0.76,-3.42 2.9,-4.02 4.93,-2.32 1.62,-0.12 4.31,1.32 2.68,-1.53 -0.93,-1.79 -1.4,-4.59 1.53,-4.74 -1.15,-3.31 5.98,-1.18 5.47,-5.37 -2.22,-1.5 -0.83,-5.26 0.13,-6.33 2.45,2.03 0.85,-3.56 3.56,-1.87 1.66,-2.07 2.75,0.56 4.53,0.43 1.14,1.96 2.46,4.41 4.04,1.37 2.25,-2.5 -5.64,-2.56 -1.56,-4.98 1.91,-0.32 6.85,-0.7 5.84,-3.41 -3.62,0.11 -4.71,-4.72 -0.54,-4.92 1.7,1.78 3.23,3.99 3.46,6.31 3.43,1.14 2.88,-2.05 2.74,-4.44 1.24,-0.74 2.86,2.59 3.98,0.85 2.05,0.25 3.31,3.93 3.51,0.42 1.87,-1.02 3.37,-2.54 3.2,-4.86 1.65,-0.79 5.11,0.92 3.61,-2.58 0.23,-2.56 3.55,-6.11 4.18,-1.52 0.52,0.87 1.91,-3.3 3.78,-0.91 2.24,0.69 2.87,-1.22 1.62,-2.8 0.91,-0.95 2.23,-3.84 -0.03,-2.5 -1.07,2.43 -6.09,-0.82 -6.91,-3.1 -0.98,-3.43 -6.75,-3 -7.98,-6.29 2.91,-1.68 0.76,-3.48 -1.25,-4.16 3.26,-0.53 0.29,-2.11 -0.5,-3.7 0.64,-3.06 -3.23,-3.07 -3.17,-5.79 -1.79,-0.87 -1.06,-3.76 -1.85,-4.82 z", - "department-09" : "m 281,514.26 c -1.93,0.45 -2.81,3.42 -0.61,3.74 0.47,1.06 3.65,0.84 1.91,2.92 -1.78,0.48 -2.86,1.94 -5,1.65 -1.94,-0.47 -2.72,3.01 -0.2,2.59 2.24,0.58 1.95,2.32 0.27,3.21 -1.24,2.42 -2.69,-0.31 -3.19,-1.7 -1.18,-0.65 -2.35,-0.74 -3.49,-1.68 -1.21,1.5 -3.6,0.41 -3.5,3.08 -0.69,0.69 -2.14,-1.23 -2.07,0.85 0.78,1.23 -1.59,1.79 -0.08,3.25 -1.18,1.45 2.43,1.96 0.17,3.11 -0.33,2.96 -5.7,1.12 -4.88,4.08 -1,0.73 -3.51,0.76 -1.93,2.67 -0.14,2.58 1.36,4.98 3.85,6.04 1.3,1.43 2.44,-0.82 3.84,0.84 2.2,0.69 5.28,-0.08 6.42,2.49 -0.04,2.84 2.56,2.9 4.54,2 2.27,0.7 5.31,-0.62 6.28,1.97 2.47,1.03 1.46,6.42 4.53,5.84 0.33,-1.46 -0.02,-3.65 2.25,-2.77 2.58,-1.67 3.67,2.32 6.42,1.51 1.59,0.01 4.16,0.09 3.44,2.23 1.96,0.82 4.9,1.1 6.14,-0.77 0.17,-1.61 2.36,0.02 3.34,-1.21 1.09,-1.15 1.09,-3.64 3.34,-2.57 1.75,-1.21 4.32,-0.24 5.87,-0.95 0.4,-2.48 -3.41,-3.46 -4.42,-5.35 -2.08,0.81 -4.89,2.28 -6.69,-0.08 -1.29,-0.72 0.48,-2.24 -1.27,-3.27 -1.88,-0.45 -2.07,-2.21 -0.54,-3.2 2.84,0.11 5.65,-1.41 4.42,-4.62 -1.62,-0.54 -3.31,-2.15 -0.6,-2.68 1.86,-1.01 -0.44,-3.29 0.61,-4.77 -1.01,-0.87 -2.68,-1.46 -1.18,-2.69 -0.07,-1.43 -0.47,-4.45 -2.45,-3.41 -0.92,1.43 -0.96,-2.2 -2.67,-1.24 -2.3,-0.25 -5.38,-1.98 -6.1,-3.66 0.91,-1.6 -0.72,-3.91 -1.67,-5.05 -0.92,0.6 -1.38,4.39 -1.98,1.49 -1.2,-0.67 -2.47,-1.05 -3.16,-0.2 -0.47,-1.65 -2.24,-0.25 -2.45,-1.94 -1.91,1 1.34,4.52 -1.22,4.39 -1.46,2.03 -3.74,-0.79 -2.75,-2.52 -1.34,-0.95 -2.09,-3.13 -3.54,-3.63 z", - "department-11" : "m 322.74,505.07 c -2.05,0.87 -0.82,6.47 -3.43,3.37 -1.24,-1.83 -5.19,2.71 -5.61,-1.17 -0.96,-1.29 -3.24,1.91 -4.87,-0.09 -1.63,-0.8 -2.35,3.52 -2.64,0.63 -0.96,-2.44 -1.93,-1.82 -2.84,-0.31 -0.91,1.07 -1.52,2.84 -0.93,4.7 -1.36,0.65 -4.52,-0.56 -3.73,2 -2.59,1.87 -0.87,4.71 -0.49,7.11 -1.27,1.72 2.24,1.99 3.14,3.2 1.19,0.53 2.27,1.21 2.96,0.05 1.12,0.9 1.35,2.64 3.05,1.69 2.12,0.9 2.09,4.11 1.18,5.21 3.13,0.75 0.58,4.42 2.61,6.09 -0.39,0.99 -3.64,-0.55 -2.72,1.47 3.15,0.22 2.69,5.73 -0.43,5.57 -2.23,-0.56 -4.71,2.43 -1.69,3.29 1.21,1.07 1.25,2.2 0.94,3.14 2.17,2.52 4.98,0.67 7.49,0.33 1.51,2.48 4.82,3.48 4.44,6.58 1.77,-0.41 3.17,-3.16 4.49,-3.39 3.31,0.6 4.11,-3.13 3.04,-5.57 -1.83,-2.22 -0.3,-4.53 2.45,-3.77 2.55,1.09 4.79,-0.72 7.38,0.01 2.84,0.15 6.37,1.82 8.78,-0.17 0.65,-3.39 5.24,-6.04 7.54,-2.78 1.85,0.63 5.78,4.21 6.08,0.38 -0.45,-2.41 3.52,0.65 2.08,-2.31 -2.01,-0.09 -2.51,-4.47 -0.81,-3.38 -1.64,2.12 0.92,2.66 1.07,0.34 -0.46,-2.15 2.38,-4.6 1.05,-6.15 -2.36,0.27 -1.35,-5.67 0.64,-3.13 -2.54,0.73 1.01,4.03 1.12,0.84 1.32,-2.4 3.72,-4.96 4.13,-7.43 -1.48,-1.18 -2.13,-3.67 -4.25,-2.51 -1.21,-1.56 -3.82,-0.43 -5.13,-2.43 -2.87,1.08 -0.98,-4.2 -4.12,-2.08 -1.35,-0.41 -2.91,-0.78 -3.72,-1.82 -0.39,1.7 -3.42,0.2 -2.88,2.31 -1.03,1.88 -2.16,4.69 -4.29,2.05 -1.21,-0.21 -0.6,-4.63 -2.32,-1.66 -2.18,1.62 -3.12,-0.12 -3.87,-2.12 -3.09,-0.03 -1.41,-4.42 0.31,-5.1 -2.19,-1.27 -5.18,-2.28 -7.77,-1.42 -1.98,2 -4.51,-1.63 -6.72,-1.15 -0.21,-0.07 -0.4,-0.62 -0.72,-0.42 z", - "department-34" : "m 390.74,470.95 c -2.99,-0.26 -2.82,5.22 -4.91,4.05 -0.85,-0.82 -3.55,2.9 -1.7,3.78 -2.23,1.02 -3.63,-1.19 -4.2,-2.93 -1.16,0.9 -4.89,3.4 -3.25,0.24 -0.72,-2.79 -3.95,-1 -5.3,0 -2.69,-1.07 -4.43,1.99 -3.3,4.01 -2.19,2.21 -5.5,0.8 -7.8,-0.28 -1.78,1.11 -0.38,3.61 -0.42,5.05 -1.55,1.49 1.67,5.37 -2.24,4.09 -1.98,-1.46 -4.85,0.46 -4.95,2.6 -2.71,0.38 -5.15,2.58 -7.61,2.47 -1.2,-2.9 -5.65,-2.66 -5.41,0.83 -0.2,2.13 -0.02,4.29 2.09,5.91 -1.23,1.35 0.72,3.85 -1.77,4.6 -0.84,1.05 -3.22,1.42 -1.8,2.86 -2.1,0.55 -3.27,4.78 -0.38,4.9 0.41,3.09 3.29,3.1 4.71,0.7 1.12,1.12 0.35,3.34 2.55,3.76 2.97,1.15 1.66,-5.18 5.05,-4.27 1.09,-0.26 0.38,-2.58 1.62,-0.55 1.21,1.33 3.32,1.66 5.28,1.1 -0.81,3.2 2.64,2.34 4.33,4 1.73,-0.69 2.59,1.52 4.38,0.6 1.39,1.92 3.62,4.56 5.52,1.34 2.58,-2.15 5.39,-4.64 8.99,-3.22 1.68,-2.14 3.28,-4.7 5.33,-6.66 2.9,-0.94 5.12,-2.93 7.63,-4.62 1.32,-0.52 2.38,-2.93 0.36,-1.17 -0.86,0.97 -3.9,2.82 -4.09,1.95 2.86,-0.54 3.94,-3.18 5.35,-4.98 2.22,-0.89 3.15,-3.57 5.97,-3.69 2.76,-1.69 5.46,-2.2 8.14,-1.32 3.13,-2.28 2.15,-5.6 0.6,-8.52 -0.42,-1.85 -2.64,-1.51 -3.41,-3.24 -1.72,-0.64 -2.58,-4.02 -5.12,-2.47 -0.36,-1.17 1.06,-3.05 -1.22,-3.23 -1.16,-1.21 -1.48,-2.47 -3.51,-1.47 -2.48,1.54 -3.44,-1.7 -1.82,-3.25 0.15,-1.49 -1.98,-1.29 -2.11,-2.79 -0.5,-0.22 -1.04,-0.13 -1.56,-0.19 z", - "department-81" : "m 317.26,455.8 c -1.38,0.45 -1.96,1.61 -3.59,0.76 -0.3,1.95 -3.52,3.22 -5.56,2.27 -1.35,-1.6 -1.97,-0.02 -0.95,1.04 -0.95,0.36 -4.67,-1.27 -3.47,1.46 -0.16,1.66 -2.33,-1.92 -2.18,0.76 -1.1,0.98 -2.79,-1.57 -4.48,-0.74 -2.96,-0.67 -1.32,3.31 0.16,3.83 0.79,1.92 -1.89,3.01 -2.42,4.25 -1.32,0.93 -1.16,3.17 -3.54,1.88 -3.23,0.63 2.44,1.72 -0.33,3.16 -1.29,2.54 1.59,4.57 1.92,6.82 3.43,0.3 1.18,4.78 4.33,5.68 1.56,1.28 -3.01,2.06 -0.13,2.25 2.4,0.02 1.46,2.84 -0.02,3.51 0.41,1.89 3.59,2.46 5.14,3.73 3.27,0.27 2.72,5.06 6.14,5.64 1.57,0.82 3.54,1.72 3.47,-0.75 2.28,-0.44 1.4,2 0.21,3 0.06,1.82 2.22,2.93 2.93,4.31 2.14,0.3 3.89,-2.52 5.16,0.35 2.18,0.85 0.37,-3.47 2.64,-4.11 1.88,0.14 4.42,2.05 6.83,2.16 2.71,-2.86 6.35,1.58 9.11,-0.98 1.2,-0.64 2.07,-1.84 2.78,-2.36 -0.59,-1.87 0.29,-4.05 -1.8,-5.38 -0.4,-2.17 -0.06,-5.25 1.22,-6.85 1.68,0.37 3.78,1.08 4.87,2.68 2.13,-1.79 6.04,-1.49 7.35,-3.74 0.82,-2 0.39,-5.04 -2.37,-4.51 -1.51,-1.26 -3.19,-1.55 -4.19,0.39 -2.37,0.97 -5.11,-0.89 -6.55,-2.85 -1.52,-2.15 -3.76,-4.35 -2.85,-6.85 -1.52,-0.96 -0.28,-3.74 -2.85,-4.01 -0.47,-0.84 1.76,-2.39 -0.4,-3.07 -0.29,-2.52 -2.16,-4.07 -4.11,-4.88 -0.57,-2.53 -3.81,-3.32 -5.31,-4.22 -0.15,-2.48 -4.32,0.72 -4.86,-1.12 1.44,0.14 3.17,-1.78 0.74,-1.46 -0.91,0.39 -2.23,-1.71 -3,-2.06 z", - "department-82" : "m 270.52,443.01 c -2.14,1.16 -4.19,2.19 -6.63,2.16 -1.8,1.76 -1.62,-2.78 -3.54,-0.83 0.31,1.77 -1.92,4.88 1.19,4.85 2.39,1.55 0.09,4.21 -0.3,6.31 -0.44,1.21 -4,0.94 -1.6,2.01 1.97,0.84 -0.06,4.23 -1.88,2.4 -1.71,-1.22 -1.76,0.34 -2.14,1.6 -2.88,-0.32 -2.21,4.49 -0.81,4.92 0.76,-1.3 4.97,-1.27 3.43,0.36 -1.84,1.04 -0.66,3.8 -2.94,4.81 -1.25,0.84 -0.68,2.87 0.84,1.84 1.82,0.52 5.75,1.1 3.97,3.56 1.04,0.67 0.69,2.25 0.98,2.38 1.77,0.78 -1.98,4.07 1.01,3.39 2.26,-0.43 4.92,-0.42 6.74,-1.49 1.27,0.58 2.39,0.31 3.28,-0.35 1.56,0.75 2.53,2.41 3.56,2.88 1.74,-0.62 2.22,-2.04 4.12,-2 1.89,-0.5 1.91,-2.44 -0.22,-2.07 -1.95,-1.13 1.52,-1.46 1.74,-1.49 -0.38,-2.02 1.51,-2.5 2.7,-1.14 2.06,1 2.76,-3.06 4.11,-1.34 0.99,-1.05 2.54,-1.76 3.38,-2.23 -0.31,-0.89 -2.82,-2.03 -0.52,-2.27 3.19,1.02 3.39,-3.02 5.79,-4.18 1.52,-1.98 -2.9,-3.42 -1.35,-5.63 1.94,-1.07 4.17,0.24 5.66,0.61 0.71,-1.21 1.03,-1.65 2.08,-0.63 0.24,-1.33 0.21,-2.59 2.09,-1.85 1.1,0.24 2.24,0.41 1.15,-0.79 0.51,-1.8 4.19,2 3.66,-0.96 -0.31,-2.1 -2.39,0.61 -2.47,-1.31 -3.3,-1.19 0.65,-3.45 1.77,-4.89 0.21,-2.45 -4.44,-0.16 -4.38,-2.98 0.49,-1.88 -1.6,-1.91 -2.4,-1.54 -1.21,-0.58 -1.91,1.84 -3.15,0.41 -2.28,-0.21 -4.04,4.15 -5.85,2.74 -0.79,-2.47 -3.62,0.05 -1.56,1.51 0.31,2.35 -3.95,2.36 -3.07,-0.25 -2.24,-2.68 -3.51,1.69 -5.86,2.39 -1.45,2.53 -2.73,-0.71 -4.63,-0.48 -0.83,-1.02 1.91,-4.61 -0.86,-3.31 -1.97,2.14 -4.17,-0.81 -5.73,-2.04 -1.54,-0.03 -2.07,-2.27 -2.71,-3.05 0.48,-0.77 3.85,-1.24 1.34,-2.04 z", - "department-12" : "m 344.82,407.22 c -2.14,2.24 -4.92,3.53 -5.91,6.44 -0.2,3.05 -2.88,4.6 -2.81,7.85 -2.78,1.77 -2.83,6.44 -7.03,4.76 -2.85,0.81 -3.66,-2.92 -6.7,-0.63 -2.79,-0.18 -0.5,4.84 -3.68,4.44 -1,2.09 -4.35,0.18 -4.99,0.68 -2.27,1.36 -4.93,3.35 -6.47,5.56 -0.5,0.74 -1.33,-2.39 -1.72,0.49 -3.55,0.2 0.23,4.71 0.28,6.73 2.91,2.12 -2.27,3.27 -0.47,5.85 1.39,1.46 5.91,0.06 3.8,3.53 -3.1,-0.35 -2.94,5.1 0.37,3.8 0.84,2.24 2.93,2.1 3.97,0.28 0.64,-0.72 3.02,-0.92 4.38,-1.29 0.38,2.53 5.59,1.47 2.9,3.68 1.7,0.61 3.86,-0.93 4.36,1.52 3.19,-0.21 4.33,4.36 7.18,4.97 1.07,2.25 3.3,4.6 2.21,6.63 2.23,0.9 1.85,3.49 2.9,4.9 -1.38,2.72 2.8,5.25 4.08,7.58 2.19,1.85 5.01,1.88 6.77,-0.28 2.08,1.32 5.71,0.5 5.44,3.99 1.27,0.35 3.33,-1.02 4.93,0.31 1.97,-0.43 -0.03,-3.71 1.21,-5.08 -2.26,-3.18 1.08,-5.37 3.72,-2.96 2.82,0.94 5.31,-0.91 4.29,-3.64 1.04,-3.15 6.02,0.38 5.11,-4.28 0.93,-2.39 7.18,-5.33 2.04,-7.25 -1.51,-0.47 -2.97,-0.34 -3.42,-2.06 -1.73,1.9 -3.93,-2.51 -0.51,-1.95 0.48,-1.6 1.14,-3.68 2.65,-4.73 -0.68,-4.43 -9.42,2.3 -6.63,-3.08 -1.18,-1.25 -3.15,-1.32 -3.65,-2.81 -2.6,0.85 1.8,-4.01 -0.75,-5.21 -0.72,-3.41 2.21,-7.15 -2.14,-9.54 -0.76,-2.6 0.83,-5.86 -2.52,-7.49 -2.49,-2.83 -5.19,-5.99 -4.63,-9.9 -1,-0.3 1.62,-2.72 -0.79,-2.1 -2.92,-0.77 -0.83,-7.54 -5.15,-5.36 -2.76,2.56 0.68,-4.65 -2.57,-4.34 z", - "department-46" : "m 289.52,399.9 c -1.93,0.63 -3.22,2.08 -5.19,2.51 -0.55,2.48 1.91,5.04 0.2,6.77 1.53,1.17 0.68,2.13 -0.64,2.71 -0.49,1.39 -2.82,1.08 -2.03,3.22 -2.04,0.31 -3.93,1.87 -1.84,3.73 -0.63,1.48 -1.5,2.57 -2.96,3.19 -1.15,2.55 -6.2,0.92 -4.86,4.75 -0.81,1.54 -2.94,2.2 -2.41,4.25 -2.21,-0.14 -3.42,2.82 -5.02,1.78 1.06,2.16 1.42,4.31 1.76,6.68 1.42,0.87 1.66,2.27 1.65,3.98 1.08,0.06 4.12,-1.76 2.93,0.81 -1.71,0.25 -2.37,1.31 -0.78,2.24 0.3,2.25 3.42,1.16 3.62,3.37 1.9,1.69 3.3,-0.16 5.08,-0.35 0.72,1.57 -2.26,4.22 0.76,4.02 1.46,0.62 1.81,2.15 3.19,0.31 1.85,-0.6 3.07,-3.05 4.33,-3.46 2.43,-0.2 1.29,4.21 3.91,2.83 1.72,-1.05 -1.79,-4.67 1.45,-4.27 1,-0.03 1.35,3.17 2.11,1.18 -1.32,-1.83 1.53,0.24 1.9,-1.51 1.38,-1.16 3.1,-1.29 4.45,-0.92 0.2,-1.96 1.81,0.11 2.71,-1.11 1.67,0.1 4.18,-1.49 1.89,-2.9 -0.47,-2.26 -2.34,-4.82 -1.67,-6.85 1.76,-0.03 1.59,-1.88 3.42,-1.54 2.32,-1.45 3.8,-3.77 6.26,-4.75 1.66,-0.78 4.05,1.82 5.11,-0.84 2.37,0.13 1.47,-2.41 -0.05,-3.14 -0.16,-1.64 0.62,-3.82 -1.82,-3.9 0.88,-2.1 0.95,-4.43 1.69,-6.42 -0.75,-2.19 -3.06,-3.63 -3.78,-5.98 -0.22,-1.15 1.69,-2.17 -0.2,-3.09 0.38,-3.82 -4.01,-3.64 -6.05,-1.43 -0.4,-1.8 -2.37,-1.92 -3.03,-0.03 -1.66,0.66 -3.24,2.7 -4.53,1.71 -1.67,0.61 -1.38,-2.93 -3.39,-2.7 -0.94,-2.08 -2.85,-4.19 -5.2,-4.37 -1.54,-0.53 -2.13,1.38 -2.99,-0.49 z", - "department-24" : "m 247.71,356.64 c -1.33,1.72 -2.15,5.44 -4.37,3.98 -1.29,2.19 0.65,6.02 -2.78,7.22 -1.07,1.73 -1.22,3.17 -3.43,2.89 -1.35,1.3 -2.7,2.47 -3.69,2.4 1.31,1.44 -2.43,1.19 -1.92,3.33 -1.11,2.86 2.21,7.18 -2.16,7.82 -1.72,1.11 -2.1,4.21 -4.37,4.44 -1.83,-1.85 -4.84,-0.09 -5.58,2.19 -1.71,0.92 1.62,1.85 -0.97,2.36 -2.09,3.33 4.38,0.08 4.2,3.85 0.13,2.45 -1.7,4.67 -1.9,7.15 -2.34,1.81 1.75,4.57 -1.01,6.63 -1.98,1.62 -0.57,1.93 1.18,2.08 1.5,2.41 4.72,0.24 7.34,1.24 1.58,-2.14 3.57,-4.36 5.67,-1.25 -1.59,1.46 -2.98,1.82 -1.65,4.38 2.67,1.95 3.57,5.11 3.66,7.87 2.89,2.27 5.83,-2.31 8.31,-0.64 1.5,-0.14 1.73,-2.6 3.78,-2.17 1.74,-0.66 1.71,2.87 4.06,1.59 2.32,0.27 4.87,-3.2 5.62,0.33 1.53,0.48 -2.2,5.61 1.71,4.55 1.86,-2.63 5.57,-3.37 7.55,-0.26 1.61,0.15 2.83,4.14 2.8,0.73 3.09,-1.47 0.93,-6.06 5.03,-5.87 2.1,-1.49 4.63,-2.68 4.89,-5.07 -3.18,-2.94 3.24,-2.15 2.07,-5.03 1.39,-0.77 2.75,-1.97 3.62,-3.12 -2.55,-1.45 1.11,-2.89 -0.92,-4.95 -0.82,-1.88 -0.06,-3.23 0.88,-4.14 -1.12,-2.13 -3.92,-5.19 -1.35,-6.5 -1.47,-1.44 -7.7,-0.59 -6.45,-3.12 3.25,-2.31 -3.9,-1.43 -1.21,-3.75 2.08,-0.54 1.75,-2.32 -0.17,-2.44 -0.66,-1.42 -0.44,-4.25 1.4,-4.42 0.7,-1.32 4.27,-4.12 0.61,-3.76 -2.11,-1.25 -0.47,-1.95 0.2,-2.77 -1.16,-1.12 -2.39,-0.61 -3.26,-2.06 -1.89,0.78 -2.29,-1.48 -4.2,-1.06 -0.44,-1.95 3.54,-4.4 -0.69,-4.44 -2.48,1.66 -3.1,-3.01 -4.18,-4.31 -2.45,-0.69 -5.34,1.33 -6.92,-0.8 -0.28,1.94 -2.24,3.99 -3.3,1.71 -4.01,-0.32 1.3,-5.83 -3.25,-6.54 -2.23,1.7 -3.48,-1.31 -4.85,-0.28 z", - "department-16" : "m 252.54,327.65 c -2.29,0.72 -1.44,3.44 -4.4,2.98 -1.27,1.85 -4.05,0.47 -4.98,-1.39 -0.68,-3.54 -5.06,1.6 -1.79,2.2 -0.58,3.13 -3.4,1.11 -5.1,0.91 -3.14,1.37 -5.19,-1.3 -7.86,-1.81 -1.52,1.5 -2.93,-1.91 -4.66,0.15 -1.97,-0.37 -2.45,3.38 -5.06,2.24 -1.93,0.04 0.82,2.24 -1.2,2.74 0.87,2.68 -3.95,2.15 -2.09,4.68 -0.28,1.91 -3.6,0.31 -2.2,2.53 -0.11,1.44 2.16,2.96 -0.03,4.42 -0.09,1.53 -0.09,4.77 -2.18,3.4 -1.96,2.42 -3.18,-3.47 -5.22,-0.43 -2.04,1.16 -4.38,0.45 -6.15,1.89 -2.73,1.16 0.38,1.62 1.39,1.98 -2.76,2.08 2.9,5.14 -0.46,5.78 -1.46,1.75 0.17,2.05 1.51,1.62 1.01,2.19 5.21,3.29 2.97,5.77 2.34,0.08 4.85,3.05 1.84,4.29 -0.18,1.67 3.8,4.33 0.08,4.95 -3.11,0.84 0.04,2.57 1.34,2.89 -0.62,0.79 -3.1,1.95 -1.06,3.18 2.2,-2.04 4.86,0.36 7.25,0.92 -0.44,1.96 0.03,3.48 2.36,2.77 1.73,0.17 2.65,2.07 3.44,2.83 1.42,-1.43 3.54,-1.84 5.23,-0.38 1.69,-1.46 2.03,-3.29 3.72,-4.47 1.1,-1.12 3.55,-1.27 2.27,-3.69 -1.79,-2.79 1.03,-5.85 1.8,-7.57 0.23,-1.21 1.54,0.42 2.16,-1.12 1.02,-1.12 2.42,-1.8 3.66,-1.6 0.38,-3.16 4.03,-3.24 3.74,-6.43 -0.64,-1.42 -0.09,-4.56 1.85,-3.02 1.5,-1.35 2.27,-4.04 4,-5.85 1.03,-2.13 3.92,-2.7 3.46,-5.45 1.36,-0.67 3.4,1.91 3.05,-0.98 1.5,-1.75 2.07,-3.92 1.46,-6.01 -0.57,-2.93 3.18,0.64 4.34,-1.8 2.69,-1.02 0.69,-6.52 -1.66,-5.43 -1.88,-0.53 -3.24,-3.11 -1.94,-5.21 -0.3,-3.28 -2.38,-2.24 -4.88,-2.46 z", - "department-86" : "m 220.19,259.01 c -2.67,1.11 -1.14,6.66 -4.7,5.46 -1.12,2.67 -0.28,6.33 2.34,7.3 1.21,2.8 -0.12,6.86 2.81,8.58 -0.34,0.88 -4.74,0.94 -2.01,2.12 1.66,0.91 -1.21,4.66 1.86,5.01 0.17,2.88 -3.53,4.96 -3.39,7.51 2.34,-1.74 2.86,1.09 4.01,2.56 -2.36,1.41 -1.42,4.19 -3.11,6.09 1.11,2.79 0.46,6.03 2.68,8.32 -0.98,2.26 1.88,5.6 3.64,2.56 3.26,-2.86 4.22,4.09 1.42,5.44 -1.17,2.3 -1.1,6.6 2.78,6.31 1.76,0.42 -1.54,4.9 1.9,4.82 2.58,2.29 6.42,0.33 9.24,2 3.12,-1.13 -1.64,-3.61 1.54,-4.88 2.93,-0.45 3.66,4.64 7.15,2.55 2.65,-1.24 4.01,-4.64 7.5,-3.07 5.18,0.43 -2.68,-6.17 1.99,-6.32 0.93,-3.5 4.73,-3.96 7.28,-4.09 1.27,-2.3 2.21,-5.88 5.59,-4.54 3.05,-1.23 4.82,-4.66 1.43,-6.65 -0.96,-2.09 -0.63,-5.43 -4.09,-4.96 -2.4,-0.38 -3.1,-2.52 -5.49,-3.06 -4.32,-2.56 0.87,-7.41 -2.39,-10.17 -3.73,-2.36 -3.49,-7.19 -7.25,-9.59 -1.82,-2.65 -1.18,-7.21 -5.41,-7.83 -3.82,-1.6 1.37,4.35 -2.65,2.83 -3.22,-0.17 -6.05,2.2 -9.36,1.21 -5,0.41 0.09,-6.41 -3.44,-7.54 -1.02,-1.75 -5.86,1.14 -3.94,-2.42 -1.49,-2.05 -5.43,-1.78 -6.57,-4.86 -0.36,-0.36 -0.83,-0.61 -1.33,-0.67 z", - "department-37" : "m 248.48,223.77 c -1.42,3.62 -6.45,2.73 -8.2,5.37 -1.46,1.36 -3.9,-2.72 -3.72,0.4 1.37,1.11 1.66,4.33 -0.82,2.81 -1.82,-1.23 -6.06,-3.74 -5.96,0.05 -1.81,2.38 0.79,4.4 -1.19,6.79 -1.59,2.5 -0.38,5.84 -2.27,7.78 -1.62,2.49 -3.61,4.89 -3.44,8.06 -0.62,2.26 -1.45,6.53 1.54,7.19 1.25,-0.87 1.94,2.54 3.31,0.71 0.97,1.11 -0.63,5.21 2.13,3.2 1.8,-1.1 1.89,1.61 3.57,1.4 0.89,2.11 -1.82,7.48 2.05,6.94 1.94,-0.66 4.56,0.68 6.7,-0.98 1.61,-0.96 6.42,0.73 3.58,-2.33 -0.63,-2.85 4.7,0.45 5.56,1.73 0.59,2.71 0.86,5.99 3.94,7.28 1.95,1.88 1.63,7.78 6,6.31 1.43,1.23 2.54,1.03 3.52,-0.09 1.84,-0.7 -1.13,-3.48 0.89,-4.6 0.94,-2.88 0.5,-6.24 2.1,-8.75 -0.51,-3.01 1.88,-5.04 4.77,-5.05 2.3,-0.22 4.18,2.32 5.36,-0.8 1.09,-2.04 2.29,-3.59 3.83,-4.89 -0.17,-3.29 -2.68,-5.86 -4.09,-8.7 -1.3,-3.91 -5.06,-1e-4 -7.13,-2.72 -1.96,-2.54 1.63,-6.07 -1.07,-8.64 1.91,-0.4 1.97,-2.18 -0.13,-2.78 -0.17,-1.99 -3.11,-4.5 -0.71,-6.14 -0.62,-1.2 -2.55,-4.44 -3.27,-1.51 -0.57,-2.17 -2.63,-4.19 -4.63,-1.88 -3.07,2.82 -2.07,-3.8 -2.27,-4.29 -2.95,-0.2 -5.98,-1.05 -8.71,-0.82 -1.21,0.63 -0.51,-1.11 -1.23,-1.05 z", - "department-72" : "m 231.9,172.51 c -2.61,0.34 -4.43,1.91 -6.19,3.04 -1.38,0.48 -2.05,1.94 -3.42,2.6 -0.33,3.05 -3.2,-1.34 -4.33,0.83 -1.43,1.08 -5.63,0.06 -4.24,2.95 -3.08,-0.79 0.86,3.38 -1.37,4.58 -0.86,1.81 1.85,4.28 -0.94,5.2 -2.01,1.1 -4.73,3.07 -1.86,4.9 -0.99,1.29 0.02,2.59 -0.74,3.79 -2.44,-0.68 -6.78,1.67 -3.4,3.85 0.73,2.09 1.76,4.48 -1.53,4.5 -2.58,-0.44 -3.89,2.42 -1.36,3.52 0.5,2.29 -5.19,2.01 -2.45,4.82 3.47,-0.45 1.48,4.86 3.4,5.98 2.31,-1.32 4.91,2 6.78,-0.52 3.29,0.6 -2.46,2.42 0.25,4.06 0.74,1.66 3.87,2.49 4.49,0.08 2.3,1.12 4.71,0.48 6.02,2.83 1.69,1.36 4.05,0.33 5.35,2.19 1.62,-0.93 1.69,-2.65 3.94,-1.78 2.54,-0.05 4.67,2.82 7.14,2.4 0.9,-1.5 -2.93,-3.52 -0.02,-4.31 1.04,1.34 2.82,2.12 3.33,-0.2 2.31,-0.39 4.79,-1.35 6.51,-2.6 -2.85,-2.23 1.58,-5.3 3.79,-5.52 0.46,-1.4 2.4,-3.52 3.78,-4.83 -1.44,-1.85 -0.29,-6.03 1.78,-3.82 -1.09,-2.59 3.21,-2.96 0.58,-5.37 0.08,-1.7 1.43,-3.61 -1.11,-3.97 -1.64,-2.45 2.4,-1.51 1.74,-3.29 -2.05,-0.4 1.4,-1.62 0.89,-2.96 2.29,0.52 3.2,-1.49 0.55,-1.94 -2.01,-0.09 -3.25,-2.56 -5.32,-1.22 -2.38,-0.82 -2.49,-6.22 -5.36,-4.81 0.79,2.39 -2.74,0.17 -4.1,0.37 -1.11,-1.06 -2.58,-1.99 -2.45,-3.6 -1.86,0.23 -5.36,-0.71 -4.94,-3.08 -0.44,-3.4 0.09,-8.02 -4.58,-8.58 l -0.59,-0.08 2e-5,0 z", - "department-61" : "m 236.9,140.22 c -1.37,2.93 -4.44,0.95 -5.77,0.51 -0.7,2.09 -2.92,0.83 -4.24,2.34 -1.35,-2.77 -4.38,-0.25 -5.26,1.87 -3.09,0.73 -4.56,4.12 -8.22,4.12 0.6,2.97 -3.23,-1.05 -4.99,-0.78 -2.07,-0.19 -4.42,-1.53 -4.55,1.51 -1.86,-0.97 -4.38,-5.01 -6.99,-1.88 -2.67,0.7 -5.63,2.58 -8.38,0.81 -1.94,-0.21 0.58,2.41 -2,2.73 -2.21,0.79 -4.81,2.48 -5.8,4.18 1.64,0.47 4.03,2.64 4.89,3.81 -2.6,1.08 -0.04,3.17 -0.37,4.16 -0.1,3.46 -3.63,4.61 -4.76,7.47 1.29,1.59 1.78,3.06 3.56,2.81 -0.2,2.49 3.05,0.83 2.04,-0.77 2.19,0.16 3.37,-1.72 3.97,1.42 2.29,-1.26 4.74,-2.16 6.49,-3.76 2.15,-0.24 4.6,-0.72 6.51,1.02 1.07,-1.63 2.35,-2.41 3.95,-1.42 1.83,-1.07 -0.27,-4.47 3.02,-3.12 1.81,1.18 3.45,2.14 1.99,3.87 0.35,2.25 1.92,4.62 4.47,2.94 1.72,0.65 -0.84,6.99 2.46,4.03 1.16,0.36 3.03,2.09 3.43,-0.38 1.63,-0.81 2.66,-2.19 4.04,-2.85 0.28,-1.38 5.31,-3.16 7.52,-1.96 3.9,1.26 2.59,5.53 3.26,8.6 -0.11,2.92 4.56,1.76 5.41,3.53 -0.07,1.99 3.35,3.78 5.67,2.91 3.19,-3.99 3.88,7.21 7.66,3.4 3.17,-1.53 -1.64,-4 -0.17,-6.33 -3.57,-0.8 0.8,-4.69 3.13,-4.08 2.2,-1.01 6.03,-4.76 3.83,-6.66 -0.95,-2.15 2.33,-4.5 -0.88,-5.72 0.72,-2.4 -4.26,-1.56 -3.98,-4.43 -1.88,-0.39 0.25,-5.19 -3.06,-4.1 -0.43,-1.15 -0.37,-2.32 -1.89,-2.36 3.89,-2.53 -0.45,-5.72 -3.19,-6.87 -1.23,-0.78 -2.92,-1.32 -1.88,-2.86 -1.36,-1.19 -1.22,-3.67 -3.26,-1.5 -2.58,-0.67 -7.27,0.22 -7.13,-3.52 0.64,-0.73 0.75,-2.65 -0.53,-2.7 z", - "department-27" : "m 242.33,106.21 c -2.25,1.4 -4.46,3.12 -7.27,3.2 -3.13,0.01 -1.44,3.96 -0.97,5.79 -0.25,1.42 -0.2,3.07 0.05,4.32 1.56,-2.67 4.74,1.16 1.61,1.68 -3.49,1.51 3.09,2.25 1.65,4.56 -0.6,1.84 0.47,2.5 1.82,3.11 -1.56,1.19 -0.91,2.9 -0.68,4.31 -3.08,-0.3 -1.43,3.4 0.78,3.14 1.11,2.25 -1.15,5.22 -2.03,7.57 1.97,1.86 5.79,2.95 8.17,1.67 1.68,-0.94 2.06,2.46 2.78,2.55 -1.38,3.04 5.18,3.21 5.92,5.84 1.68,1.55 -0.55,2.63 -0.78,3.74 1.84,0.46 1,3.47 3.6,1.89 2.3,-0.06 2.09,-4.03 4.58,-2.4 2.21,-1.11 4.77,-0.84 6.52,-3.04 1.78,1 3.18,0.1 2.69,-1.95 1.73,0.3 3.34,2.1 5.52,1.18 1.73,0.91 5.58,0.54 5.97,-1.71 -2.26,-3.14 2.59,-4.24 4.24,-5.72 -0.13,-1.58 -1.51,-4.22 1.43,-3.88 0.74,-0.67 -0.33,-1.93 0.53,-2.57 -1.47,0.74 -2.69,-0.27 -1.44,-1.58 -1.04,-1.31 -2.12,-4.8 0.61,-3.44 1.11,-1.2 0.8,-1.98 2.49,-1.09 3.37,-0.07 4.6,-2.86 5.45,-5.81 0.13,-2.58 1.39,-4.89 2.52,-6.95 1.56,-1.59 3.56,2.74 3.6,-0.58 -1.93,-1.54 -0.62,-5.1 -2.69,-7.09 -0.94,-2.78 -3.12,-0.33 -5.23,-1.99 -1.74,0.33 -2.23,-3.11 -4.08,-1.45 -2.23,-1.34 -5.13,-1.37 -7.71,-1.23 -0.89,1.39 -2.82,1.34 -2.49,3.35 -1.48,1.47 -1.23,4.8 -4.4,3.5 -1.42,0.9 -3.69,0.83 -4.18,2.58 -2.63,-0.42 -3.44,1.09 -2.81,3.24 -1.76,0.32 -3.16,0.76 -4.2,-0.95 -1.28,0.44 -0.68,-4.41 -2.73,-1.94 -0.92,0.95 -1.47,-2.05 -3.03,-1.54 0.47,-2.75 5.09,0.66 3.34,-3.08 -0.36,-1.37 -2.02,1.31 -1.95,-1 -2.7,-0.13 -3.88,-2.85 -6.72,-1.29 -2.27,1 -3.56,-0.22 -5.16,-1.45 -2.66,0.51 -3.03,-3.16 -5.33,-3.52 z", - "department-14" : "m 231.23,109.9 c -4.06,0.09 -6.85,2.84 -9.55,5.38 -3.34,2.06 -7.05,3.56 -10.99,3.85 -1.95,1.92 -3.54,-1.01 -5.94,-1.28 -2.67,-1.83 -5.65,-1.96 -8.71,-2.47 -2.52,-0.48 -5.06,0.57 -7.64,-0.13 -3.42,-0.41 -7.08,-0.38 -10.19,-1.98 -1.94,-1.82 -4.91,-0.74 -7.32,-0.9 -3.6,0.27 -1.56,4.12 -3.38,5.89 0.35,2.42 2.43,4.3 4.66,5.41 1.29,2.26 4.25,1.82 4.95,-0.81 0.89,1.47 2.18,1.84 0.71,3.15 -2.85,2.72 2.74,3.63 1.8,6.79 0.25,1.58 -1.34,2.53 0.39,3.45 -2.56,1.47 -4.13,6.64 -7.82,4.57 -1.7,0.05 -2.56,3.86 0.25,2.27 1.68,0.8 -1.5,3.01 -2.33,3.69 -1.18,-0.64 -2.61,2.05 -3.44,2.77 1.51,0.52 3.07,1.11 2.99,2.92 1.94,0.53 4.35,0.57 6.32,-0.18 1.55,1.73 4.66,1.77 5.78,1.31 0.33,1.85 2.06,-2.55 3.65,-1.79 1.67,-0.4 2.88,-1.72 1.91,-3.16 2.07,-1.17 2.99,1.93 4.94,0.32 1.69,0.63 2.6,-1.47 4.44,-1.14 2.02,-2.53 4.71,-0.49 6.27,0.75 0.09,2.25 1.52,-0.03 1.58,-1.02 2.72,0.42 5.75,0.47 7.89,2.34 0.72,-2.21 4.15,-0.58 5.38,-3.06 1.98,-1.59 4.45,-2.16 5.53,-4.57 1.56,-0.47 2.62,-1.63 3.42,0.6 1.16,-0.33 2.13,-1.63 3.58,-1.13 0.5,-2.08 1.78,-0.88 2.61,-0.44 1.61,0.55 3,0.24 4,-1.29 0.95,1.22 2.59,1.22 2.01,-0.7 1.28,-2.16 0.25,-3.37 -2.04,-3.81 -1.78,-1.67 1.38,-2.37 1.39,-3.02 -1.93,-1.58 2.62,-4.1 -0.98,-4.39 -0.16,-2.06 0.6,-4.48 -2.13,-4.95 -3.24,-2.19 4.22,-2.19 0.79,-4.43 -0.9,-0.04 -3.11,2.04 -1.98,-0.25 -0.33,-1.14 -1.2,-1.29 -0.01,-2.61 -1.49,-1.67 0.64,-7.09 -2.8,-5.97 z", - "department-76" : "m 285.08,67.51 c -1.66,1.28 -3.92,-0.27 -5.32,2.21 -2.55,2.82 -5.75,4.75 -9.23,6.16 -2.69,2.07 -6.27,0.91 -9.1,2.49 -3.04,0.83 -5.97,2.2 -9.16,2.2 -4.64,-0.08 -8.38,2.85 -12.2,5.03 -3.19,1.24 -5.65,3.53 -8.97,4.44 -4.45,0.63 -4.32,5.58 -6.08,8.7 -1.33,2.41 -3.69,6.09 0.02,7.66 2.71,1.09 5.28,1.25 8.39,1.98 3.84,1.23 7.92,-4.2 10.87,-0.97 1.02,1.67 2.99,3.04 4.68,1.44 -0.81,3.45 3.88,2.23 5.92,1.74 1.25,0.7 1.48,-1.8 1.82,0.62 0.74,1.56 3.24,0.12 3.81,1.84 1.65,-0.96 2.48,4.22 -0.34,2.48 -3.28,0.03 0.21,1.48 0.51,2.68 2.73,-3.35 2.83,4.25 5.77,2.84 2.8,-0.27 -0.27,-3.85 3.3,-3.41 1.82,-0.28 2.83,-2.57 4.57,-2.23 0.36,-1.37 4.68,0.8 4.04,-2.57 1.27,-2.05 1.52,-4.08 4.3,-5.05 2.08,0.14 5.31,0.85 7.56,1.4 2.14,-0.45 3.59,3.15 6.18,2.19 2.06,0.69 2.28,-3.97 4.3,-4.86 1.52,-1.49 -0.75,-3.01 -1.45,-0.94 -2.42,-0.89 0.93,-2.53 -0.81,-3.95 0.3,-1.61 -2.27,-1.27 -1.03,-2.58 -0.73,-1.35 1.8,-2.21 -0.04,-3.48 1.02,-1.01 3.32,-5.11 0.67,-2.57 -2.48,-0.31 0.5,-3.34 1.11,-4.23 -0.07,-1.57 3.34,-0.34 1.01,-2.16 -2.4,-2.69 -1.34,-6.85 -4.28,-9.1 -3.65,-1.5 -5.37,-5.07 -8.6,-7.13 -2.03,-0.46 -0.42,-2.8 -2.2,-2.85 z", - "department-60" : "m 299.82,88.06 c -0.68,1.53 -2.52,3 -2.62,4.61 0.88,0.83 2.72,-2.26 2.36,0.47 -2.03,0.88 -1.5,2.81 -1.5,4.35 -1.65,1.28 0.75,1.64 0.2,3.03 0.54,1.64 1.83,2.54 0.02,4.14 0.78,1.65 2.88,-1.94 3.18,0.81 -0.81,1.88 -3.2,3.3 -3.32,5.72 1.83,-0.19 -0.44,1.38 1.38,2.1 1.48,2.13 0.75,4.92 2.41,6.82 0.2,2.27 -1.63,1.56 -2.48,0.39 -2.21,-0.34 -2.49,2.24 -0.48,2.81 -0.83,1.16 -0.47,2.78 1.13,3 2.38,-0.91 4.68,1.32 7.04,0.62 2.19,-0.63 4.26,-0.42 6.14,-1.88 1.82,-1.52 2.59,1.29 4.7,0.92 0.24,2.48 3.26,-1.11 3.69,1.4 -0.75,1.55 3.2,0.09 3.21,-1.39 1.69,-0.21 1.93,2.59 3.71,1.86 2.57,0.22 4.8,1.97 6.25,3.43 0.62,-1.34 1.71,-1.33 1.95,0.34 1.46,2.81 2.94,-2.02 4.79,0.35 1.09,0.96 1.32,2.68 2.73,1.05 0.38,2.06 2.62,0.41 2.41,-0.61 2.06,-2.04 3.56,2.74 5.7,0.23 1.37,0.79 3.07,-1.58 3.55,0.59 0.9,-2.08 4.02,0.32 3.84,-2.61 0.97,-1.2 1.9,-2.09 3.15,-2.84 -1.43,-0.2 -1,-3.93 -2.02,-1.23 0.12,2.36 -0.59,-0.15 -0.51,-1.14 -0.98,-0.34 -1.96,-0.8 -2.82,-1.45 1.46,-1.59 0.58,-5.08 -1.78,-5.51 -1.64,-1.93 1.32,-3.14 3,-2.37 2.78,-1.33 1.45,-5.56 2.96,-6.93 1.83,1.02 3.46,-1.08 0.88,-1.43 -2.12,-0.58 0.91,-1.96 -1.18,-3 -0.31,-1.21 1.9,-1.71 1.13,-3.46 1.11,-2.28 -2.26,-3.66 -0.83,-5.46 -1.28,-1.35 1.28,-1.82 0.48,-3.31 0.33,-2.37 -2.35,1.17 -1.98,-1.22 -1.06,0.07 -2.21,3.33 -3.26,0.83 -1.15,-1.16 -2.97,0.6 -2.46,1.87 -0.95,-1.04 -2.28,-2.96 -3.61,-2.19 0.98,1.2 1.14,2.51 -0.39,1.26 -0.14,2.4 -4.2,0.61 -3.1,3.55 -0.54,2.6 -5.29,-1.86 -5.5,1.9 0.32,2.24 -2.85,2.23 -2.21,0.03 -1.14,-1.83 -2.74,1.59 -3.58,-0.97 -1.21,-1.4 -2.44,-1.07 -3.66,-0.6 -0.85,-3.25 -4.16,-1.53 -6.1,-3.1 -0.93,-1.42 -3.34,-0.98 -4.87,-2.04 -2.87,-0.39 -5.38,1.28 -8.22,0.91 -0.21,-2.15 -3.87,-1.59 -4.92,-1.24 -1.09,-1.54 -2.79,1.74 -4.47,0.11 -1.06,-0.76 -1.06,-1.17 -0.69,-2.16 -0.99,-0.72 -2.08,-1.47 -3.42,-1.36 z", - "department-80" : "m 292.25,47.76 c -3.3,0.48 -3.7,7.09 -0.18,7.88 1.08,1.67 4.2,2.74 3.06,4.24 -2.73,-1.29 -6.63,-3.63 -7.9,0.8 -0.08,3.06 -3.29,5.38 -4.22,7.27 1.37,-0.11 3.64,-1.46 3.18,1.37 3.11,1.87 5.05,5.06 7.98,7.06 3.9,1.29 3.89,5.38 5.12,8.61 0.56,2.66 4.89,3.47 4.09,5.66 1.46,2.82 4.15,-0.88 5.54,0.73 2.25,-2 4.72,2.18 7.27,1.01 2.7,-0.93 5.98,-1.02 8.68,0.5 1.84,-0.03 3.1,2.73 5.49,1.65 1.93,0.79 2.11,3.17 3.94,1.57 2.03,0.38 2.41,3.33 4.24,1.67 1.8,-0.87 1.46,4.54 3.03,1.36 0.02,-3.92 4.11,-1.35 5.69,-2.17 -0.71,-2.24 0.89,-2.61 2.47,-2.96 0.23,-1.49 2.58,-0.96 0.98,-2.41 1.05,-1.53 0.91,1.46 2.09,-0.25 0.9,2.74 1.49,1.35 3.01,0.23 1.35,0.58 3.49,2.16 3.45,-0.59 1.21,0.66 3.53,0.99 2.21,-1.27 0.39,-2.05 -3.23,-2.65 -0.99,-4.12 0.13,-1.56 -2.17,-2.32 -0.06,-3.42 -0.06,-1.95 2.47,-2.66 2.02,-5.11 0.89,-1.27 2.86,-3.19 2.9,-4.11 -2.64,0.29 0.37,-2.52 -2.05,-2.42 -2.22,-1.41 -5.14,-3.16 -7.9,-1.23 -1.34,-2.15 -4.91,2.97 -5.09,0.51 1.42,-1.44 -0.8,-3.49 -2.15,-1.79 -0.94,1.46 -4.33,1.85 -2.41,-0.4 3.11,-2.33 -2.99,-5.63 -2.46,-2.07 1.41,1.98 -2.63,-0.12 -3.46,-0.4 -1.61,-0.21 -3.12,-0.74 -2.69,-2.12 -1.34,-0.69 -1.48,3.04 -2.43,0.22 -3.21,-2.44 -3.38,5.35 -5.85,1.64 -1.72,-1.93 1.49,-5.21 3.99,-5.44 1.33,-2.2 -4.48,-3.79 -5.35,-1.18 -0.74,-1.34 -1.37,-2.06 -1.64,-0.43 -2.88,-0.65 -5.6,0.07 -8.2,1.37 -1.11,-1.55 -3.47,0.2 -3.68,-2.58 1.41,-3.13 -8.2,-2.22 -4.92,-5.34 -0.16,-2.3 -3.14,1.95 -4.11,-1.07 -2.18,-2.39 -5.42,-2.15 -7.98,-0.54 -2.27,1.67 -2.44,-2.55 -4.75,-1.91 z", - "department-95" : "m 297.89,122.77 c -1.93,0.92 -1.82,3.28 -2.24,5.06 -0.18,1.39 -0.88,2.57 -1.71,3.66 -1.18,2.5 3.25,0.35 3.28,2.76 0.67,1.03 2.44,0.71 2.86,-0.15 1.62,0.83 1.89,-1.96 3.5,-0.67 1.15,0.5 1.54,1.3 0.91,2.4 0.05,1.46 1.28,0.91 1.47,-0.15 1.23,-1.85 1.56,1.36 3.2,0.93 1.81,-0.33 2.63,2.19 4.51,1.19 1,-0.65 2.03,-0.32 2.94,-0.74 0.27,0.84 -0.01,2.32 1.49,2.09 1.39,0.41 0.73,2.42 2.34,2.4 -0.26,0.82 -0.29,3.2 0.91,1.57 0.86,-1.05 2.61,-1.25 3.07,-2.57 1.17,0.19 2.33,0.34 3.34,-0.64 1.5,0.48 3.52,2.04 5,0.44 1.28,-0.6 2.07,-1.91 3.13,-2.67 -1.04,-1.28 1.15,-1.17 1.41,-2.36 0.47,-0.74 -0.21,-1.51 0.41,-2.34 -0.57,-0.87 -1.19,-1.72 -1.74,-2.51 -0.76,0.04 -0.35,1.66 -1.56,0.99 -1.63,0.01 0.09,-1.59 -1.48,-1.79 -0.96,-0.62 -1.98,-0.38 -2.67,-1.33 -1.15,-0.06 -2.21,-0.73 -3.09,-0.09 -0.52,-1.59 -2.64,-3.14 -3.11,-0.65 -0.81,0.43 -3.97,1.21 -2.53,-0.5 -0.87,-1.58 -3.19,1.28 -3.56,-1.01 -1.15,-0.35 -2.65,-0.19 -3.11,-1.46 -1.37,0.13 -2.53,1.17 -3.72,1.84 -1.32,-0.26 -2.69,0.49 -4.1,0.64 -1.33,0.67 -2.12,-0.84 -3.46,0.08 -0.96,-1.47 -2.91,-0.73 -4.2,-0.81 -0.5,-0.95 -2.12,-1.82 -0.57,-2.52 0.13,-0.53 -0.36,-1.09 -0.9,-1.1 z", - "department-78" : "m 292.32,132.84 c -1.68,0.81 -3.67,0.76 -5.14,1.83 -1.97,-1.3 -0.99,2.02 -0.1,2.67 0.55,0.79 -1.34,2.61 0.69,2.07 1.64,-0.39 0.59,0.65 0.37,1.44 0.56,0.92 0.3,2.44 1.88,2.64 -0.09,1.26 1.67,1.89 0.48,3.08 1.64,0.66 2.24,2.6 1.48,4.19 -1.03,2.01 0.99,3.08 1.85,4.34 -0.58,1.19 -2.9,3.12 -0.68,3.75 -0.47,1.26 0.09,2.42 1.54,2.47 0.18,1.99 1.68,2.21 3.27,2.53 -0.41,1.11 -0.51,2.96 1.4,2.43 1.42,0.39 2.18,2 1.59,3.43 0.23,1.67 0.57,3.89 2.53,3.87 0.36,1.68 3.78,2.12 3.77,0.29 -0.23,-1.35 1.17,-2.66 1.54,-4.05 1.67,-0.97 -2.33,-2.06 -0.18,-2.66 1.44,0.17 3.44,0.88 3.57,-1.25 0.08,-1.12 0.7,-1.71 1.35,-2.36 -0.8,-1.15 -2.97,-2.42 -1.13,-3.55 0.61,-1.71 3.54,-1.04 3.46,-3.33 -0.81,-1.48 0.7,-1.23 1.5,-1.61 0.73,-1.13 2.67,-0.43 2.55,-1.99 1.23,0.53 1.88,-0.53 0.53,-1.07 -0.97,-1.07 -3.27,-1.54 -2.66,-3.59 -0.02,-1.82 0.75,-3.53 2.25,-4.55 0.27,-1.43 0.56,-2.46 -1.03,-2.77 0.42,-2.23 -2.99,-1.71 -2.63,-3.73 -1.61,-0.09 -3.2,1.35 -4.8,0.6 -1.14,-1.79 -3.8,-0.64 -4.79,-2.64 -0.79,0.03 -1.9,3.2 -2.31,1.04 -0.6,-0.85 0.89,-2.23 -0.76,-2.51 -1.37,-1.91 -2.01,1.2 -3.59,0.52 -1.03,1.41 -3.22,0.49 -3.58,-1.01 -1.62,-1.22 -2.88,0.79 -4.21,-0.53 z", - "department-28" : "m 287.11,142.32 c -2.1,1.04 1.22,5.31 -2.55,5.04 -3.13,0.47 -2.25,4.05 -2.79,5.7 -2.08,1.39 -4.66,0.71 -6.89,0.79 -1.67,0.17 -4.55,-2.91 -4.14,0.39 -0.94,1.3 -4.08,-0.75 -3.86,1.85 -2.43,0.08 -5.51,1.27 -7.37,1.58 -1.08,1.71 -3.78,2.6 -2.33,4.99 0.77,3.5 4.78,4.24 6.38,7.09 -0.22,2.23 -1.98,4.13 0.4,5.86 -1.32,2.12 -2.68,4.96 -5.61,5.63 -2.31,-0.78 -5.36,3.02 -2.13,3.95 -1.7,2.27 2.62,5.08 0.17,6.87 0.96,1.32 5.87,1.56 4.27,3.23 -2.59,-0.41 -2.61,3.43 0.12,2 1.93,-0.18 2.86,0.02 4.27,-1.38 2.46,-1.17 2.35,1.12 0.44,1.89 0.94,1.94 5.72,-0.14 5.24,3.16 2.38,1.44 2.98,5.53 5.88,5 2.46,1.01 5.04,1.84 7.07,-0.1 2.12,0.96 1.21,-4.35 3.42,-1.33 2.91,1.91 0.9,-4.73 4.83,-2.76 1.99,-0.3 2.54,-3.35 5.19,-2.24 2.89,0.64 5.49,-1.07 8.22,-1.66 2.33,-1.48 0.35,-5.82 3.98,-5.14 -0.56,-1.06 0.03,-1.81 0.2,-2.18 -1.12,-2.33 1.98,-4.62 -0.13,-6.47 1.22,-2.57 0.51,-6.45 -1.46,-7.17 0.98,-3.67 -3.12,-0.53 -4.61,-2.82 -3.57,-1.35 -1.08,-6.34 -4.19,-7.79 -2.86,0.53 -0.05,-3.49 -3.13,-2.7 -2.21,-2.24 -5.44,-5.53 -2.5,-8.36 -1.41,-1.65 -2.75,-3.31 -1.37,-5.55 -0.35,-2.12 -1.91,-3.29 -1.97,-5.44 -0.63,-1.06 -1.8,-1.83 -3.04,-1.94 z", - "department-75" : "m 326.98,144.71 c -1.27,-0.06 -2.46,0.68 -3.27,1.54 -0.47,-0.15 -0.85,0.06 -1.23,0.25 -0.65,0.03 -1.66,1.18 -0.69,1.52 0.81,0.18 0.93,1.2 1.8,1.35 1.65,0.28 3.42,1.43 5.03,0.39 1.03,-0.88 2.21,0.62 3.32,0.28 0.54,-0.43 0.6,-1.27 -0.33,-1.23 -0.68,-0.16 -1.14,-0.33 -1.46,-0.06 -0.34,-1.13 -0.06,-2.23 -0.93,-3.14 -0.12,-1.14 -1.17,-0.96 -2.05,-0.92 l -0.18,0 -0.03,3e-4 z", - "department-93" : "m 336.5,137.58 c -0.46,0.33 -1.14,0.34 -1.42,0.97 -0.75,1.19 -2.15,1.71 -3.14,2.62 -0.82,-0.03 -1.72,-0.07 -2.53,-0.25 -0.64,-0.37 -1.29,-1.34 -2.07,-0.64 -0.6,0.3 -1.08,1.1 -1.81,0.59 -0.35,-0.19 -1.46,-0.42 -1.19,0.3 0.56,0.53 2.05,0.32 2.05,1.33 -0.06,0.69 -1.13,1.34 -0.68,2.02 1.05,0.43 2.37,-0.21 3.33,0.37 0.27,0.54 0.5,1.08 0.89,1.55 0.18,0.57 -0.13,1.72 0.86,1.53 1.07,-0.15 2.16,-1.04 3.23,-0.34 1.04,0.72 2.32,1.35 3.05,2.37 -0.11,0.74 1.41,0.94 1.04,0.05 -0.24,-0.71 -0.92,-1.55 -0.78,-2.26 0.67,-0.23 -0.04,-0.79 -0.4,-0.86 0.27,-0.43 -0.26,-0.81 -0.29,-1.14 0.41,-0.57 1.31,-0.71 1.23,-1.58 -0.09,-0.8 0.8,-1.4 0.35,-2.19 -0.23,-0.84 -1.06,-1.46 -1.25,-2.26 0.77,-0.61 0.45,-1.99 -0.49,-2.17 z", - "department-94" : "m 332.85,147.49 c -0.56,0.21 -2.03,0.43 -2.18,1.01 0.31,0.21 1.82,-0.09 1.77,0.51 0.02,0.58 -0.23,1.64 -1.05,1.16 -1.03,-0.16 -2.09,-1.01 -3.03,-0.14 -0.7,0.5 -1.59,0.2 -2.33,0.5 -0.4,1.12 0.01,2.46 -0.66,3.53 -0.23,0.79 0.87,0.44 1.11,0.99 0.42,0.39 0.99,0.13 1.33,-0.1 0.46,0.44 -0.1,1.74 0.84,1.68 0.59,-0.25 1.17,-0.38 1.79,-0.16 1.34,-0.05 2.64,-0.54 3.94,-0.71 0.51,0.63 0.39,1.61 1.15,2.11 0.31,0.19 0.6,0.29 0.75,0.66 0.59,0.31 1.26,-0.47 0.77,-0.99 -0.01,-0.93 1.56,-1.44 0.88,-2.44 0.49,-0.32 0.24,-1.11 0.85,-1.28 0.43,-0.58 -0.47,-0.6 -0.83,-0.71 -0.34,-0.52 0.66,-1.17 0.14,-1.69 0.12,-0.8 -1.11,-0.7 -1.2,-1.46 -1.03,-1.05 -2.25,-2.13 -3.71,-2.49 -0.1,-0.01 -0.2,-0.01 -0.31,0 z", - "department-92" : "m 324.24,141.53 c -2,0.52 -3.26,2.41 -5.06,3.32 -1.07,0.77 -1.1,2.2 -0.99,3.39 -0.4,0.4 -0.48,0.98 -0.25,1.53 0.01,0.71 0.73,0.52 1.15,0.65 0.16,0.65 0.67,1.01 1.28,1.14 0.25,0.33 0.49,0.67 0.86,0.85 0.32,0.72 0.72,1.57 1.66,1.53 0.78,-0.01 1.11,0.83 1.08,1.46 0.36,0.27 0.92,-0.2 1.18,0.31 0.73,-0.09 0.08,-1 0.1,-1.43 0.14,-0.72 0.7,-1.47 0.38,-2.22 -0.12,-0.62 0.28,-1.24 0.24,-1.78 -0.96,-0.79 -2.46,-0.33 -3.22,-1.42 -0.37,-0.47 -1.1,-0.68 -1.44,-1.08 0.22,-1.13 1.41,-1.83 2.5,-1.7 0.39,-0.7 1.58,-0.82 1.76,-1.68 -0.35,-0.89 1.37,-1.42 0.54,-2.3 -0.48,-0.39 -1.16,-0.56 -1.77,-0.58 z", - "department-91" : "m 320.25,153.32 c -0.58,0.51 -0.49,1.56 -1.65,1.15 -1.09,0.27 -1.38,1.31 -2.58,1.12 0.11,1.05 -0.02,2.93 -1.5,3.32 -1.61,-0.22 -1.97,1.45 -2.84,2.24 0.58,0.86 2.2,1.77 1.79,2.96 -1.64,0.36 -0.55,3.52 -2.55,3.44 -0.79,0.15 -3.39,-0.81 -2.43,0.71 1.02,0.53 2.16,1.11 0.51,1.61 -0.86,0.93 -0.75,2.41 -1.65,3.25 0.14,1.24 1.76,2.59 0.46,3.92 0.71,0.75 2.78,0.14 2.06,1.92 1.07,1.28 -0.54,2.43 0.19,3.85 0.08,0.92 -1.54,1.43 -0.06,2.16 1.67,1.02 3.4,-0.35 5.09,-0.44 0.79,-1.48 2.15,0.97 2.97,-0.44 -0.22,-1.14 1.58,-0.26 1.55,-1.49 0.43,-1.63 2.01,-0.33 2.65,0.23 -0.12,0.95 0.48,1.61 1.08,0.67 0.98,0.38 1.68,0 2.09,-1.03 1.19,-0.35 1.89,2.24 3.4,1.07 0.49,-0.63 -0.03,-1.81 1.37,-1.59 1.11,-0.46 0.12,-2.39 1.77,-2.49 0.99,-0.33 0.83,-1.84 2.2,-1.42 0.62,-0.47 2.15,-0.38 0.97,-1.39 -1.69,-0.77 -1.16,-2.85 -1,-4.34 0.63,-1.35 -0.62,-2.47 -0.1,-3.88 0.63,-1.33 0.75,-2.86 1.78,-3.97 -0.3,-0.67 -1.97,-1.85 -0.32,-2.16 1.12,-0.7 -0.81,-1.91 0.75,-2.52 1.46,0.63 1.85,-1.77 0.18,-1 -1.09,-0.51 -1.76,-1.71 -2.13,-2.88 -1.08,-0.05 -2.24,1 -2.98,0.91 -0.9,-0.56 -2.37,0.31 -3.35,-0.26 0.08,-0.81 -0.25,-1.5 -1.11,-1.09 -0.9,-1.03 -1.16,0.24 -1.83,0.61 -0.49,-0.5 -1.91,-0.11 -1.24,-1.2 -0.57,-1.05 -2.44,-1.17 -3.52,-1.52 z", - "department-45" : "m 320.43,181.91 c -1.93,3.75 -6.85,2.12 -9.9,4.16 -1.95,2.44 0.54,6.83 -3.34,8.04 -0.15,3.54 -2.85,4.96 -6.06,5.24 -2.92,1.1 -6.42,-0.72 -8.49,2.39 -1.57,0.69 -5.05,0.19 -3.17,3.06 1.8,0.69 1.81,1.21 0.63,2.66 -1.69,2.43 4.05,3.22 1.25,6.02 -2.34,2.28 -0.38,4.59 0.09,7.04 1.76,1.74 4.95,-1.17 6.29,2.07 1.03,2.45 2.79,7.52 5.89,3.78 1.72,-3.2 5.45,1.69 8.15,-0.49 3.31,-0.11 8.68,-1.55 10.42,2.55 3,0.8 5.42,3.73 8.74,2.17 2.13,1.16 4.32,2.3 6.96,2.83 1.97,1.01 3.09,6.61 5.84,4.26 -0,-3.62 2.76,-1.68 4.41,-0.43 2.59,0.81 2.19,-2.3 2.2,-3.37 1.94,-0.4 6.46,-0.48 3.87,-3.36 0.34,-3.56 -2.17,-6.48 -4.41,-8.39 0.34,-3.92 6.29,-1.58 7.84,-4.63 1.26,-2.84 -2.35,-5.65 1.12,-7.77 4,-1.7 4.51,-6.41 1.51,-9.33 -2.16,-2.35 -2.73,-6.91 -6.87,-6.87 -1.86,0.13 -5.92,3.75 -6.03,-0.07 -2.63,1.14 -5.36,4.25 -8.22,1.8 -2.17,-0.24 -6.58,1.49 -7.34,0.08 2.67,-1.6 4.53,-6.27 0.45,-7.38 -2.86,-1.04 -1.71,-5.28 -5.43,-4.57 -1.53,-1.38 -4.89,2.52 -5.34,-1.02 -0.33,-0.2 -0.71,-0.32 -1.06,-0.48 z", - "department-41" : "m 266.29,195.63 c -2.06,2.95 -7.43,0.3 -8.5,3.42 -1.9,1 -2.23,2.67 -0.22,3.62 0.19,3.26 0.26,5.82 -1.16,8.6 -4.07,-1.69 0.07,5.24 -3.5,5.91 -0.99,3.4 -6.81,3.06 -5.94,7 2.53,-0.22 6.07,1.21 9.36,0.87 2.33,-0.38 3.21,0.87 2.33,3.13 -0.6,3 2.08,2.14 3.12,0.52 2.68,-0.46 3,3.47 5.15,1.95 3.31,1.92 -0.52,5.3 2.24,7.5 2.87,2.54 0.27,5.57 1.51,8.9 -2.12,3.16 1.39,5.4 4.47,4.52 3.84,-0.06 2.69,7.22 7.32,5.56 1.87,-1.68 3.74,-3.34 6.46,-2 0.88,-3.66 5.55,-2.27 8.48,-2.51 2.88,0.7 4.8,4.16 8.08,3.56 2.17,-0.93 0.23,-5.2 4,-4.24 2.53,1.03 9.23,0.49 7.7,-3.24 -2.46,-1.98 -1.75,-6.33 1.55,-6.48 1.62,0.43 3.89,1.9 3.49,-1.2 0.4,-2.84 -2.55,-3.04 -1.96,-5.71 -0.66,-1.86 -5.5,-1.35 -2.85,-4.03 2.3,-0.71 6.5,-3.18 2.67,-5.2 -3.4,-0.6 -6.94,-0.37 -10.34,0.3 -2.3,0.89 -5.75,-3.14 -6.32,0.82 -3.73,2.59 -5.33,-2.8 -6.15,-5.3 -2.21,-2.59 -5.58,2.04 -6.3,-1.81 -0.8,-1.62 0.46,-2.55 -1.18,-3.79 1.15,-2.66 3.49,-5.56 -0.29,-7.32 0.2,-1.64 2.39,-4.45 -1.04,-3.94 -1.34,-0.61 -4.15,-1.65 -3.51,1.01 -2.97,0.88 -5.87,1.72 -8.76,0.26 -3.05,-0.48 -3.65,-3.81 -5.67,-5.58 -0.41,-3.18 -5.31,-0.86 -5.28,-3.08 0.5,-0.52 3.23,-1.6 1.02,-2.02 z", - "department-36" : "m 292.75,252.32 c -0.22,1.96 -4.71,0.36 -3.09,3.11 -2.43,-0.72 -5.02,-1.03 -6.59,1.34 -2.69,0.52 -2.88,2.56 -1.18,4.37 -0.27,2.79 -3.21,4.19 -4.35,6.82 -1.44,3.03 -4.42,-1.33 -6.53,0.46 -3.18,0.46 -2.88,3.92 -3.68,6.03 -1.05,3.06 -0.95,6.5 -2.13,9.41 1.56,2.64 -2,4.95 -4.07,2.91 -3.4,-0.16 1.5,2.15 0.47,4.03 -1.36,3.26 -0.89,7.48 3.29,8.02 1.63,1.02 1.82,2.51 4.05,2.13 3.15,0.49 2.87,3.8 3.42,5.86 3.01,0.61 1.99,2.49 1.57,4.47 1.47,-0.43 1.97,1.71 3.8,0.38 1.85,0.34 2.68,-2.93 4.56,-0.65 1.37,1.89 2.88,2.94 4.14,0.35 1.12,-1.38 3.37,-4.31 4.14,-1.21 1.33,-0.81 3.52,-2.34 3.35,0.47 1.47,0.6 2.78,-3.28 3.75,-0.32 2.88,0.93 1.17,-5.91 4.57,-3.2 2.52,2.22 5.64,-0.66 8.59,0.82 2.5,1.04 7.68,2.32 7.46,-1.55 4.04,-2.02 -1.08,-5.26 0.41,-8.47 1.23,-2.22 0.34,-4.16 -1.32,-5.77 1.29,-2.28 -5.15,-3.19 -2.63,-5.41 3.7,-2.03 -4.12,-5.08 0.13,-6.45 0.15,-1.85 5.09,-3.55 1.3,-4.36 -3.14,-0.2 -1.71,-2.81 -0.75,-4.45 0.55,-3.16 -4.43,-3.11 -2.28,-6.14 0.71,-2.59 -1.84,-0.34 -2.34,-2.38 -2.14,-1.4 -4.51,2.29 -6.97,0.12 -1.89,-0.3 -3.87,-1.35 -1.68,-3.08 2.9,-1.88 1.03,-5.37 -2,-5.37 -1.57,-1.11 -2.26,-2.41 -4.45,-1.38 -1.18,-0.07 -1.7,-1.07 -2.98,-0.88 z", - "department-18" : "m 323.87,229.07 c -2.35,0.13 -9.34,2.52 -5.77,4.83 3.63,-0.55 1.32,4.29 3.95,4.19 1.09,2.3 -0.24,7.95 -2.97,4.02 -2.53,0.84 -4.38,3.27 -2.23,5.76 1.94,2.35 0.54,4.87 -2.44,4.09 -2,0.97 -4.54,0.79 -6.09,-0.04 -3.26,0.8 0.48,4.8 -3.11,4.5 -2.3,-0.84 -0.78,2.92 -3.07,3.74 -2.13,3.21 4.52,3.78 6.54,2.69 2.19,-2.06 2.95,2.09 4.74,0.99 0.13,1.95 -1.78,4.73 1.47,5.08 2.39,1.98 -3.09,7.46 2.34,7.01 1.98,2.06 -4.63,4.48 -3.1,6.87 3.2,0.9 1.23,3.63 0.29,5.24 0.67,1.68 4.73,1.92 3.03,4.22 4.54,2.34 -0.65,6.57 2.07,9.85 1.42,2.13 -0.12,3.45 -1.35,4.8 0.97,3.01 6.38,2.02 6.61,-1.43 1.68,-1.43 2.79,-4.1 5.74,-3.71 2.61,-0.19 8.61,0.85 7.95,-3.28 -1.28,-1.97 -0.29,-4.02 -0.99,-5.76 1.11,-0.26 2.76,0.38 2.1,-1.66 2.77,0.03 3.8,-5.99 6.55,-2.38 4.02,-0.1 5.48,-4.84 9.43,-5.17 5.09,1.19 4.04,-5.2 3.91,-8.3 0.71,-2.84 1.27,-6.86 -1.24,-8.77 -0.49,-3.87 -0.61,-7.69 -2.18,-11.39 0.6,-4.25 -6.27,-4.24 -4.71,-8.26 2.14,-3.02 2.74,-7.4 -0.15,-10.16 -1.82,-0.35 -3.52,2.23 -5.06,-0.44 -2.66,-2.76 -1.08,3.94 -4.37,2.1 -2.06,-1.93 -3.82,-6.36 -7.51,-5.63 -1.58,-0.2 -3.8,-3.83 -5.86,-1.15 -1.78,-0.24 -2.82,-2.01 -4.51,-2.45 z", - "department-23" : "m 301.06,306.59 c -2.18,-0.09 -0.48,5.24 -3.46,3.84 -1.17,-2.86 -2.05,0.79 -3.59,0.42 -1.13,-0.79 -0,-3.31 -1.73,-1.25 -1.24,0.55 -2.36,1.38 -2.36,-0.7 -1.54,-0.88 -2.18,2.59 -3.79,3.02 -0.98,0.84 -2.88,2.44 -0.45,2.76 0.29,1.69 -1.79,2.6 -0.56,4.04 -2.11,0.16 0.28,2.07 -1.84,2.35 -1.71,2.37 1.37,3.88 3.12,3.98 -0.87,1.98 3.03,2.32 1.47,4.18 0.81,1.46 2.68,2.16 2.08,4.13 0.59,1.41 -1.07,3.49 1.38,3.72 1.8,2.32 -4.92,2.97 -1.35,4.46 1.26,1.18 3.64,-2.06 4.21,0.35 0.31,1.19 0.8,2.47 -1.06,2.08 -1.31,1.78 2.07,3.75 3.94,3.02 1.79,0.62 3.88,-3.62 3.75,-0.15 0.21,1.27 2.24,2.17 2.82,1.56 1.47,1.11 3.83,3.39 1.98,4.77 0.21,1.09 -0.08,4.28 1.82,2.42 1.13,0.08 1.99,-1.04 3.2,-0.95 0.33,-2.76 3.75,-2.96 4.66,-0.46 1.35,-0.17 2.6,0.94 3.34,-0.03 1.49,1.32 3.49,2.43 4.82,3.44 0.2,2.09 4,0.09 3.38,-1.73 2.36,-0.58 5.37,1.33 6.38,-2.1 -1.37,-1.09 -2.62,-1.96 -3.06,-3.78 -1.55,-1.24 -1.59,-2.93 0.65,-2.9 0.54,-1.38 1.04,-2.45 2.73,-1.85 0.62,-1.79 3.09,-2.23 2.56,-4.51 0.36,-1.75 3.84,-1.53 2.12,-3.52 1.2,-2.89 -2.25,-4.14 -2.04,-6.95 -0.08,-2.21 1.4,-4.81 -1.02,-6.11 0.02,-2.5 -1.86,-3.91 -2.39,-6.08 -1.13,-1.7 -3.1,0.63 -2.89,-2.06 -0.52,-1.65 -1.48,-0.92 -2.17,-0.16 -2.13,-0.72 -3.54,-2.45 -1.59,-4.12 -3.08,0.61 -1.54,-4.21 -4.75,-3.19 -2.85,-0.75 -5.52,1.57 -8.05,0.18 -2.39,-0.94 -4.83,-0.98 -7.12,-1.05 -1.87,0.89 -3.74,0.71 -4.87,-1.08 l -0.28,-0.01 10e-6,10e-5 z", - "department-87" : "m 281.04,310.22 c -0.51,0.05 -1.17,0.12 -1.14,0.78 -0.25,1 -1.41,1.2 -2.23,0.78 -0.91,-0.55 -1.46,0.97 -2.37,0.47 -0.41,-0.24 -0.15,-1.36 -0.88,-1.06 -0.15,0.36 -0.49,0.69 -0.87,0.31 -0.42,-0.56 -1.48,-0.46 -1.39,0.36 -0.29,0.51 -0.98,0.78 -0.95,1.46 -0.55,0.47 -1.05,-0.38 -1.56,-0.48 -1.22,-0.29 -2.83,0.17 -3.07,1.56 0.1,1.34 -1.16,2.36 -1.14,3.65 -1.12,-0.21 -2.43,-0.58 -3.48,-0.02 -0.57,-0.29 -1.43,-0.46 -1.55,0.41 -0.29,0.71 -1.42,0.57 -1.53,1.41 -0.45,0.32 -0.59,0.81 -0.41,1.28 -0.57,0.79 -2.14,-0.04 -2.35,1.21 -0.11,1.15 1.52,1.66 1.49,2.82 0.45,0.61 -0.22,1.55 0.51,2.07 0.3,0.78 -1.04,0.68 -1.22,1.21 0.1,0.73 1.16,1.32 0.57,2.1 -0.2,0.88 -0.43,1.82 -0.37,2.7 0.55,0.71 1.53,1.06 1.85,1.96 0.6,0.29 0.77,-1.11 1.42,-0.47 0.52,0.57 1.56,1 1.37,1.9 0.17,0.33 0.61,0.45 0.5,0.91 0.25,0.56 0.69,1.22 0.15,1.8 -0.4,0.33 -0.69,0.93 -0.79,1.33 -1.08,0.03 -1.62,1.44 -2.79,1.15 -0.74,0.09 -1.45,-0.83 -2.12,-0.41 -0.07,0.49 0.25,0.98 0.12,1.53 -0.13,0.54 0.63,1.01 0.41,1.49 -0.44,0.28 -0.27,0.69 -0.21,1.04 -0.23,1.22 -1.06,2.19 -1.62,3.25 -0.26,0.54 0.17,1.51 -0.39,1.85 -0.92,-0.16 -1.85,-1.49 -2.8,-0.78 -0.33,0.63 -0.36,1.44 0.03,2.02 -0.07,0.89 -1.28,0.52 -1.72,1.1 -0.39,0.39 -0.56,0.91 -1.06,1.2 -0.36,0.39 -0.09,1.12 -0.8,1.16 -0.53,0.7 0.73,1.29 1.05,1.78 1.12,0.48 2.72,-0.73 3.83,0.16 0.41,0.49 0.74,1.16 1.39,1.34 0.08,1.16 -0.5,2.25 -0.79,3.32 0.28,0.85 0.98,1.77 1.99,1.46 0.49,0.16 0.41,1.27 1.18,1.08 1.27,-0.42 1.02,-2.31 2.06,-2.9 0.55,0.27 0.58,1.69 1.39,1.27 0.5,-0.37 1.3,-0.2 1.85,-0.57 0.8,-0.12 1.59,0.64 2.37,0.08 1.2,-0.25 2.21,0.92 2.02,2.08 -0.09,0.92 0.66,1.5 1.35,1.88 0.41,0.32 0.61,1.42 1.32,0.86 0.49,-0.58 1.3,-0.68 1.86,-0.14 0.33,0.35 1.23,0.52 1.23,1.08 -0.69,0.87 -1.91,1.66 -1.92,2.87 0.34,0.84 1.26,0.35 1.87,0.21 0.56,0.26 0.58,0.97 0.93,1.33 0.84,-0.26 2.33,-0.56 2.49,0.7 0.19,0.63 0.87,0.23 0.77,-0.27 0.67,-0.31 0.04,-1.73 0.98,-1.81 0.57,0.07 0.21,-0.87 0.71,-0.67 0.95,0.21 1.74,1.1 2.68,1.15 0.76,-1.2 1.96,-2.1 2.52,-3.45 0.35,-0.6 1.02,-0.45 1.52,-0.23 0.86,-0.13 0.35,-1.3 0.75,-1.74 0.56,-0.03 0.98,-0.4 1.21,-0.85 0.63,0.05 0.58,1.16 1.29,0.85 0.37,-0.17 0.08,-0.99 0.68,-0.63 0.79,0.46 1.82,0.91 2.6,0.18 0.48,-0.4 0.34,-1.43 1.2,-1.3 1.25,0.1 2.05,-1.03 2.55,-1.98 0.73,-0.73 1.34,-1.82 2.34,-2.13 0.74,0.12 1.5,-0.28 1.86,-0.87 0.93,-0.17 1.13,-1.16 1.48,-1.85 0.37,-0.07 0.64,0.49 1.11,0.2 0.61,0.2 0.96,1.44 1.71,0.76 0.42,-0.5 1.1,0.52 1.33,-0.26 -0.03,-0.66 0.6,-0.53 1.03,-0.64 0.45,-0.2 0.16,-0.77 -0.12,-0.88 -0.02,-0.51 -0.84,-0.68 -0.83,-1.1 0.48,-0.35 0.14,-0.82 -0.21,-1.07 0.24,-0.6 0.41,-1.25 0.01,-1.83 -0.05,-0.55 1.2,0 0.86,-0.75 -0.45,-0.79 -0.3,-1.85 -1.25,-2.36 -0.47,-0.29 -0.97,-0.56 -1.37,-0.86 -0.42,0.28 -0.85,0.21 -1.19,-0.2 -0.57,-0.6 -1.85,-0.61 -1.72,-1.7 0.17,-0.43 0.1,-1.78 -0.62,-1.22 -0.17,0.44 -0.43,0.74 -0.89,0.86 -0.71,0.92 -2.04,0.24 -2.93,0.86 -0.49,0.28 -0.9,0.12 -1.15,-0.31 -0.68,-0.45 -1.84,-0.44 -2.21,-1.23 0.21,-0.61 -0.04,-1.24 -0.49,-1.61 0.25,-0.59 1.1,-0.28 1.36,-0.78 0.47,0.27 0.94,-0.21 0.51,-0.63 -0.6,-0.41 0.17,-1.39 -0.62,-1.58 -0.8,-0.29 -1.69,0.05 -2.03,0.8 -0.73,0.21 -1.51,-0.02 -1.97,-0.63 -0.45,-0.19 -1.31,-0.18 -0.96,-0.92 0.42,-1.4 2.91,-1.11 2.81,-2.77 -0.02,-0.79 -0.76,-1.12 -1.46,-1.02 -0.74,-0.49 -0.23,-1.62 0.01,-2.28 0.07,-0.84 -0.67,-1.62 -0.2,-2.45 -0.01,-0.95 -1.08,-1.21 -1.63,-1.75 -0.29,-0.44 -0.89,-1.12 -0.22,-1.54 0.59,-0.47 -0.22,-1.14 -0.7,-1.29 -0.29,-0.51 -0.96,-0.67 -1.32,-1.01 0.65,-0.4 0.49,-1.69 -0.42,-1.53 -0.93,0.06 -2.05,-0.18 -2.28,-1.2 -0.52,-0.39 -1.08,-1.35 -0.53,-1.94 0.31,-0.58 0.65,-1.21 1.38,-1.2 0.66,-0.47 -0.77,-0.84 -0.18,-1.34 0.43,-0.32 0.7,-0.79 0.48,-1.28 -0.02,-0.63 0.42,-1.1 0.86,-1.45 0.24,-0.83 0.18,-2.06 -0.9,-2.22 -0.7,-0.32 -0.2,-1.35 -0.83,-1.79 -0.85,-0.67 -1.34,-1.98 -2.45,-2.23 l -0.03,0.01 z", - "department-19" : "m 313.35,352.38 c -1.86,0.13 -2.22,1.42 -2.96,2.7 -1.7,-0.45 -2.02,1.25 -3.41,1.04 0.1,2.65 -3.23,3.39 -4.97,1.84 -1.53,1.04 -2.82,2.64 -4.95,2.95 -1.42,1.63 -2.47,3.68 -4.63,4.05 -0.78,2.4 -3.28,0.32 -4.72,1.32 -0.15,-2.02 -2.14,1.24 -2.3,2.01 -1.89,-1.15 -2.49,2.34 -3.89,3.21 -1.28,0.53 -3.65,-2.27 -4.12,0.75 -1.21,1.38 2.97,2.44 0.01,3.18 -0.68,2.09 4.29,0.8 2.12,3.47 -1.5,0.61 -1.7,2.64 -3.24,3.07 -0.37,1.74 -0.74,3.8 1.62,4.02 0.64,1.56 -3.73,2.47 -1.44,3.5 2.52,-0.79 2.31,2.08 0.75,2.84 2.1,1.86 4.91,0.57 6.95,2.2 -1.97,1.83 -0.08,4.96 1.55,6.77 1.57,0.57 3.76,-3.02 4.88,-0.71 2.49,-1.36 5.15,0.9 6.6,2.82 0.89,1.66 2.62,2.3 3.51,3.98 0.84,-0.76 2.22,0.94 2.83,-0.95 1.95,-0.25 4.19,-4.21 5.12,-0.84 2.18,-2.19 5.35,-1.42 8,-1.89 1.92,-1.72 -3.18,-4.39 -0.13,-5.96 1.44,-0.92 3.38,-0.83 2.82,-3.25 -0.27,-1.27 3.56,-2.56 1.06,-3.66 -2.12,-2.49 1.31,-4.07 2.09,-6.03 1.52,-1.54 3.08,-3.21 4.69,-4.48 0.47,-1.62 0.7,-3.32 -0.12,-4.93 2.48,-0.49 5.95,4.22 7.88,1.25 -2.68,-1.36 -0.86,-4.01 -0.65,-6.27 0.65,-2.61 -0.12,-4.5 -1.81,-6.42 -0.37,-1.09 0.41,-2.79 1.03,-3.68 2.2,0.41 0.72,-2.34 1.39,-3.43 -0.08,-1.62 -1.77,-3.7 -2.72,-1.42 -1.49,2.45 -5.53,-1.84 -5.69,2.21 -1.2,1.04 -3.48,1.86 -3.57,-0.45 -2.4,-0.22 -2.77,-1.54 -4.33,-2.87 -0.57,1 -2.92,0.03 -3.77,-0.11 0.11,-0.94 -1.07,-1.2 -1.5,-1.83 z", - "department-15" : "m 334.72,370.94 c -1.28,1.82 -1.55,4.58 0.43,5.9 -1.81,2.51 -4.37,0.04 -6.57,-1.17 -2.6,-1.06 0.22,2.76 -1.15,4.1 -0.02,1.86 -2.79,1.83 -3.22,3.86 -1.83,1.13 -3.51,3.59 -4.24,5.64 0.35,1.77 2.71,2.41 0.56,3.82 -1.95,0.87 -0.07,4.99 -2.89,4.16 -3.55,0.88 -0.82,4.03 -0.22,5.71 -0.43,1.88 -4.6,-0.03 -2.81,2.9 -0.04,1.62 2.21,2.57 0.46,3.91 0.13,3.08 4.46,4.57 3.6,7.69 -0.92,1.52 -0.85,3.76 -1.46,5.32 3.14,-0.54 0.43,4.14 3.05,4.94 0.99,0 -0.12,-3.03 2.23,-2.19 1.58,-0.83 4.01,-1.56 4.43,0.74 2.75,-0.34 6.48,0.85 7.12,-2.96 2.85,-1.73 1.71,-5.71 4.3,-7.33 -0.14,-2.33 1,-4.52 2.76,-5.39 0.66,-1.77 2.62,-2.11 3.53,-3.79 2.71,0.19 1.23,4.39 2.14,5.14 1.36,-1.39 4.37,-1.42 3.78,1.12 0.34,1.62 0.97,4.51 2.8,3.48 0.84,2.32 -0.52,5.11 1.01,7.65 0.5,1.69 1.9,2.45 2.17,0.12 0.35,-2.14 2.27,-2.85 1.68,-4.93 0.92,-1.91 0.56,-5.47 2.78,-5.83 -0.12,-1.77 1.65,-6.61 3.22,-3.03 1.26,2.36 3.56,-0.59 3.31,-2.05 0.59,-1.14 0.92,-2.65 1.95,-1.09 1.6,-1 4.29,-1.63 3.3,-3.81 1.88,-0.88 -1.23,-1.49 -1.31,-2.37 -2.47,-0.36 0.7,-4.16 -1.68,-4.86 0.04,-1.43 3.56,1.01 2.84,-0.76 -3.52,-0.25 -3.97,-3.78 -3.79,-6.72 -2.86,-0.25 -0.48,-5.68 -3.84,-4.2 -1,0.06 -0.92,-1.73 -2.53,-0.75 -1.83,0.05 -2.03,-0.79 -0.71,-1.66 -1.98,-0.82 1.54,-2.18 -0.51,-2.67 -1.63,1.16 -2.03,4.92 -4.8,3.76 -3.45,-0.77 -2.59,-5.89 -6.01,-5.8 -1.98,-1.95 -3.93,0.16 -6.22,-0.38 -1.82,0.76 -1.98,-2.81 -2.23,-3.3 -2,0.21 -2.37,-1.95 -4.2,-1.04 -0.86,-1.4 -2.85,0.57 -2.19,-1.65 -0.21,-0.26 -0.61,-0.13 -0.87,-0.22 z", - "department-30" : "m 402.45,438.56 c -1.2,2.08 -2.01,3.99 -4.41,4.18 -0.91,2.13 4,4.03 1.37,6.32 -0.45,1.86 3.55,2.45 0.94,3.7 -0.76,1.99 0.11,3.59 0.97,5.15 -2.84,-2.29 -3.24,4.22 -6.65,2.09 -2.84,1.31 -5.14,-3.82 -7.86,-2.71 -1.9,-0.09 0.68,4.12 -2.36,3.87 -3.59,-0.21 -7.54,0.01 -9.81,-3.3 -3.88,-0.94 -1.76,4.82 -5.2,4.63 -0.2,1.99 1.7,1.26 2.49,1.37 0.64,2.2 6.26,1.35 5.12,4.79 -0.92,1.9 -5.78,3.67 -3.13,5.83 2.48,-0.75 3.13,1.64 2.84,3.17 1.93,-1.62 4.32,-2.9 4.52,0.69 1.23,0.34 3.7,1.07 1.85,-0.84 1.05,-1.8 2.07,-3.7 4.36,-3.11 -0.01,-3.76 5,-4.67 6.38,-1.85 2.32,1.17 -2.54,5.3 1.82,4.76 1.89,-0.76 3.45,-1.45 3.7,1.02 2.53,0.02 1.7,2.08 1.81,3.51 2.89,-1.55 4.4,2.61 6.33,3.87 2.8,0.69 3.15,4.82 3.78,7.11 -0.67,2.22 -2.4,3.52 -4.18,3.93 1.03,2.15 2.04,4.41 2.86,6.75 1.85,2.05 3.54,0.51 3.74,-1.66 2.08,-0.46 3.52,-1.72 3.36,-3.55 0.97,2.31 4.15,-0.86 5.01,-1.94 1.98,0.27 2.78,-2.49 0.23,-2.01 -0.41,-2.17 1.81,-4.53 3.24,-5.76 1.92,-1.29 6.52,3.05 5.01,-1.07 0.59,-2.7 2.29,-5.32 1.74,-7.95 1.25,-0.84 -1.73,-1.91 0.74,-2.53 2.32,-1.47 3.71,-3.79 6.04,-5.21 0.4,-1.57 0.8,-2.1 2,-2.68 -1.38,-1.85 -2.67,-6.36 -5.46,-5.62 -1.54,-2.69 0.63,-6.1 -0.98,-8.69 -2.44,0.11 -1.5,-4.81 -4.22,-4.74 -2.14,-0.69 -5.48,-5.75 -7.17,-2.57 0.92,4.08 -4.49,2.27 -2.46,-0.85 -1.91,-1.19 -5.21,1.01 -5.19,3.34 -1.4,3.16 -4.03,-1.21 -5.4,-1.88 -1.7,0.52 -1.47,-2.53 -3.73,-1.05 -1.71,1.8 -2.68,-0.11 -1.46,-1.57 -0.15,-1.56 -0.74,-2.62 0.35,-3.62 -1.57,-1 -0.67,-2.78 -2.91,-3.32 z", - "department-48" : "m 373.48,404.94 c -1.47,0.89 -3.46,3.53 -5.12,1.98 -0.01,1.49 -1.57,1.93 -1.04,3.5 -1.43,1.81 -3.11,1.2 -3.88,-0.85 -2.88,-0.45 -1.07,4.27 -3.39,4.9 -1.4,1.6 -1.16,4.02 -1.76,5.9 0.45,1.49 -1.64,2.13 -1.6,3.92 -1.61,2.48 1.66,4.55 3.09,6.26 2.11,1.84 -1.38,5.67 2.08,6.72 1.92,1.77 1.3,4.27 0.7,6.32 -0.81,2.08 2.13,3.68 0.68,5.63 -1.2,1 -0.69,2.92 0.49,1.55 -0.34,2.49 4.49,1.53 3.22,4.04 -0.61,3.08 3.16,-0.47 4.71,0.57 2.33,-0.24 2.39,2.9 4.55,3.55 1.02,2.18 4.4,1.65 6.21,1.9 1.73,0.64 4.49,-0.1 3.28,-2.39 -0.17,-1.71 2.49,-2.35 3.14,-0.7 2.15,-0.14 3.4,3.16 5.36,2.3 1.4,-0.48 2.81,0.78 3.7,-1.01 1.48,-0.27 0.79,-2.83 2.56,-1.71 0.48,-1.13 -1.37,-1.78 -0.45,-3.23 -0.32,-1.45 2.55,-2.77 -0.12,-3.02 -0.49,-1.4 -1.27,-2.69 0.33,-3.79 -0.9,-1.25 -2.65,-3.18 -2.62,-4.42 1.46,-1.07 3.7,-0.89 3.95,-3.34 1.21,-1.8 0.03,-4.2 -0.54,-6.13 -0.14,-2.55 -3.1,-2.32 -3.01,-4.96 -0.51,-1.42 -0.74,-3.3 -1.23,-4.8 0.21,-0.99 -1.02,-2.2 -0.2,-3.43 -0.96,-0.75 -2.32,-0.83 -1.55,-2.36 -1.84,1.16 -1.86,-1.71 -3.45,-2.23 0.02,-3.18 -3.5,-0.79 -4.63,-2.01 2.18,-2.04 -3.67,-4.45 -2.82,-1.23 0.29,3.23 -3.33,0.7 -4.65,2.81 -2.12,0.38 -2.38,-3.83 -3.37,-5.42 -0.69,-1.57 0.03,-3.98 -2.15,-4.28 l -0.25,-0.51 -0.23,-0.01 -2.2e-4,-1e-4 z", - "department-63" : "m 350.25,319.87 c -2.41,0.1 -1.39,6.08 -4.36,2.69 -2.2,-1.55 -1.13,2.91 -3.36,2.6 -0.99,2.15 -2.4,5.06 -4.99,2.48 -3.53,1.71 0.74,5.9 1.02,8.31 0.33,2.26 -0.13,3.09 -1.85,4.34 -0.59,3.07 -2.87,5.1 -5.46,5.93 -0.78,1.08 -3.3,2.29 -0.7,4.14 1.84,2.94 6.68,6.33 3.76,10.01 -3.59,1.58 -0.37,5.2 0.63,7.47 -1.63,3.1 2.57,5.33 4.8,4.69 1.04,1.88 3.32,0.49 2.64,2.92 1.95,3.55 6.09,-0.43 8.67,2.01 3.48,0.74 2.44,6.76 6.82,5.67 2.39,-1.04 2.55,-4.68 5.97,-4.03 2.84,-0.11 5.33,-4.21 7.45,-3.45 1.17,-0.15 2.17,-1.54 3.06,0.31 2.88,1.39 5.17,-2.92 7.03,0.16 3.24,-0.64 2.05,6.51 5.21,2.85 1.13,-3.37 5.41,3.07 6.68,-1.35 0.83,-2.19 5.07,4.34 4.28,-0.59 0.72,-2.92 5.73,-4.1 3.45,-7.91 -0.98,-3.57 -2.63,-6.42 -6.17,-8.13 -2.69,-2.1 -1.82,-6.45 -4.74,-8.34 -0.45,-1.7 -2.19,-2.8 -0.35,-4.4 -0.69,-2.91 2.62,-4.84 -0.62,-6.96 -2.59,-1.57 -3.98,-4.12 -5.91,-6.12 -2.16,0.37 -6.24,1.62 -5.45,-1.98 -1.98,-2.68 -5.33,1.55 -7.73,-0.76 -2.66,-0.65 -5.11,0.01 -7.56,-0.72 -1.51,-1.52 -2.18,-2.56 -4.49,-2.07 -3.09,-0.49 -3.15,-3.91 -5.15,-5.29 0.27,-2.13 2.01,-5.11 -1.71,-4.35 l -0.47,-0.05 -0.43,-0.12 0,0 z", - "department-42" : "m 397.37,318.49 c -1.6,0.83 -3.4,1.29 -4.64,2.21 -1.3,0.59 1.02,2.59 0.48,3.98 0.61,1.85 -0.41,4.23 1.11,6.23 -1.61,2.5 2.37,7.25 -2.15,7.3 -1.09,-0.11 -1.49,1.09 -2.88,0.34 -2.32,2.56 2.22,3.36 1.74,5.81 -1.98,1.61 -0.24,4.65 -2.31,6.15 1.69,0.49 1.3,2.13 2.33,2.91 2.23,1.34 1.14,4.92 3.25,6.83 1.78,1.97 5.01,2.91 6.17,5.68 -1.24,2.45 2.85,3.93 0.67,5.95 0.89,3.06 -5.47,3.2 -3.23,7.04 0.42,3.41 2.25,-3.4 4.17,-0.43 0.87,1.44 1.19,2.02 2.38,0.77 1.23,1.18 1.39,0.75 2.25,-0.33 1.05,-0.89 3.38,0.13 2.65,-1.8 2.25,-0.56 4.93,-0.17 6.2,1.72 1.74,-1.96 5.45,1.48 2.47,2.65 0.55,1.23 1.98,1.3 0.84,2.91 0.86,2.54 3.62,-1.67 4.48,1.3 1.58,2.36 4.9,0.89 6.79,-0.08 -1.25,-1.91 1.2,-3.4 2.26,-5.02 1.49,-1.32 5.89,-1.48 4.47,-4.32 -0.52,-1.74 0.97,-3.48 -0.58,-5.25 -0.48,-1.69 -3.61,1.7 -3.93,-1.3 0.42,-2.1 -0.24,-3.68 -1.93,-4.86 -1.43,0.06 -2.67,-1.02 -4.29,-0.14 -2.32,-0.62 -2.91,-2.86 -5.1,-4.24 -1.42,-1.8 -2.51,-3.8 -0.78,-6.03 1.82,-2.31 -3.43,-0.74 -1.14,-3.43 0.94,-1.31 1.04,-3.98 1.15,-5.42 -2.5,-0.01 -3.12,-2.67 -2.32,-4.33 -1.63,-1.26 -2.43,-3.07 -4.07,-4.21 0.9,-0.54 3.97,0.36 2.35,-1.72 -1.31,0.09 -3.3,-2.79 -0.85,-2.47 1.97,-1.74 0.65,-5.53 4.11,-6 0.97,-0.45 2.45,1.37 2.78,-0.77 -0.25,-1.57 -2.38,-2.12 -0.65,-3.5 -1.51,-1.51 -2.16,1.22 -2.41,1.83 -1.97,-0.74 -4.16,3.26 -5.16,1 1.12,-2.05 -1.54,-0.14 -2.23,-1.49 -1.1,1.9 -3.25,0.89 -4.63,-0.3 -2.08,0.61 -5.43,3.53 -6.14,-0.27 -1.61,-0.39 -4.74,-0.44 -2.93,-2.93 0.29,-0.63 0.34,-2.13 -0.72,-1.99 z", - "department-69" : "m 433.73,316.51 c -1.23,0.46 -2.5,0.15 -2.78,2.07 -0.74,1.45 -2.37,-0.51 -2.67,-1.28 -0.69,1.49 -2.76,2.38 -3.71,0.45 -1.68,-1.33 -4.39,-0.82 -4.01,1.84 -0.71,1.65 0.63,2.41 1.38,3.48 -2.55,0.77 0.51,1.73 0.61,2.71 -0.41,1.66 -1.38,2.06 -2.7,1.09 -2.04,0.63 -3.43,2.17 -3.25,4.46 0.34,2.11 -3.89,1.45 -1.52,3.28 0.64,0.85 2.57,0.6 1.5,2.34 -0.59,0.49 -3.83,-0.49 -1.93,0.9 1.83,0.38 1.7,2.77 3.5,3.41 0.3,1.24 -1.23,2.13 0.17,3.34 0.85,1.23 3.47,0.4 1.96,2.6 -0.03,1.87 -0.27,3.49 -1.48,4.83 0.06,1.49 3.29,0.29 1.61,2.31 -1.06,1.85 -1.32,4.02 0.45,5.41 1.27,1.35 2.68,3.31 4.18,4.13 1.51,1.5 3.36,-0.41 4.88,1.05 1.7,-0.73 1.49,2.06 2.91,2.19 -1.19,1.71 0.21,5.2 2.42,3.21 1.24,-1.16 2.04,4.15 2.96,1.45 1.23,-1.41 3.83,-2.33 3.98,-4.32 -1.76,-0.7 -2.47,-2.54 -4.09,-3.51 1.84,-0.94 3.53,1.28 4.58,-0.77 1.51,-1.17 4.45,-0.14 5.27,-1.51 0.95,-0.25 2.74,0.97 2.03,-1.03 1.24,-1.85 2.79,-4.63 5.26,-4.54 0.24,-2.22 -3.33,-1.77 -3.23,-3.97 -1.59,-0.5 -1.14,-2.19 0.43,-1.77 0.7,-2.69 -4,-0.18 -5.55,-0.99 -1.61,0.21 -2.66,0.21 -2.4,-1.73 -0.63,-1.95 -1.32,-4.61 -3.64,-4.95 -0.96,0.68 -1.86,1.05 -1.38,-0.57 -0.83,-1.37 -2.55,-0.91 -3.49,-1.92 2.14,-2.03 -0.39,-5.26 0.95,-7.43 1.04,-0.99 -1.1,-2.32 0.59,-3.24 1.49,-1.45 2.32,-4.9 -0.84,-4.45 -2.61,-1.01 0.89,-5.07 -2.78,-5.24 -1.21,-1.33 2.19,-1.14 0.43,-2.68 -0.12,-0.26 -0.3,-0.58 -0.61,-0.66 z", - "department-43" : "m 379.31,374.73 c -1.62,2.39 -4.9,1.8 -6.71,0.33 -0.7,1.72 -0.87,1.21 -1.91,0.1 -0.8,1.98 -3.58,1.56 -4.38,3.23 -1.25,1.09 -2.57,1.35 -4.33,1.17 0.74,1.5 -1.58,1.78 -0.04,2.79 -2.08,1.77 1.79,1.15 2.36,1.2 -0.13,1.97 3.13,-0.54 2.89,1.98 -0.29,1.8 0.97,2.96 2.14,3.73 -0.86,2.28 -0.05,5.34 2.48,5.9 2.93,0.43 -0.37,2.07 -1.36,0.74 -1.49,0.56 1.82,1.51 0.26,2.94 -1.01,2.64 2.59,2.31 2.97,4.1 -2.04,1.24 0.26,1.73 1.03,2.74 1.8,0.69 0.7,3.92 2.11,5.44 0.56,1.74 1.53,5.67 3.68,3.09 2.13,0.18 4,-0.58 3.52,-3.06 1.72,-1.57 4.47,0.99 3.25,2.73 2.03,-0.35 4.24,-0.91 4.56,1.81 1.6,0.42 1.42,3.2 3.32,1.95 -0.31,0.86 -0.01,2.7 1.4,1.48 3.08,-0.04 2.22,-4.19 4.35,-5.07 0.8,1.72 0.74,-0.65 2.16,-0.3 0.91,-0.43 0.22,-3.47 2.51,-2.52 2.14,-0.66 5.33,0.63 5.55,-2.64 1.54,-1.36 1.15,-4.48 3.81,-3.54 1.57,0.05 2.24,-1.12 0.99,-2.15 -1.14,-2.94 5.69,-1.67 3.23,-3.83 -1.6,-1.11 -0.01,-3.44 1.47,-3.61 -1.01,-0.84 -1.65,-2.84 0.52,-2.06 0.75,0.25 1.93,2.57 1.79,0.63 -0.57,-2.5 2.93,-4.77 1.26,-7.19 -1.2,-1.98 -2.64,-2.48 -4.48,-1.26 -2.08,-0.82 0.53,-3 -1.95,-3.68 1.6,-1.09 1.44,-3.36 -0.89,-3.47 -2.17,2.19 -2.9,-2.58 -5.24,-0.98 -1.45,-1.18 -2.23,0.2 -2.36,1.14 -1.72,-0.24 -2.79,0.8 -3.72,1.87 -0.74,-1.86 -1.9,-0.59 -2.28,0.4 -0.52,-2.16 -2.78,-4.05 -4.23,-1.53 -0.3,1.52 -1.03,1.38 -1.49,0.05 -2.13,0.67 -3.37,-3.95 -4.67,-1.3 0.12,2.86 -4.25,0.82 -5.13,-0.4 -0.84,1.48 -2.99,4.23 -4.08,1.09 -0.06,-2.97 -3.34,-1.73 -4.39,-4.01 z", - "department-07" : "m 436.62,378.68 c -2.11,1.19 -5.05,1.82 -5.73,4.31 -0.61,0.74 -1.7,1.47 -0.63,2.83 -1.48,1.55 -5.39,0.21 -5.65,3.05 -0.4,2.17 -2.13,4.1 -1.51,6.11 -0.82,1.35 -2.2,-3.55 -3.34,-0.83 2.87,1.6 -1.37,1.64 -1.06,3.7 -0.07,1.01 2.58,2.11 0.3,2.78 -2.43,-0.04 -3.73,1.92 -2.22,3.92 -1.62,1.35 -4.39,-0.37 -4.36,2.53 -1.51,1.8 -1.89,5.12 -5.04,3.9 -1.64,0.68 -4.72,-0.35 -3.54,2.75 -1.69,0.44 -2.07,1.93 -3.57,0.7 -0.65,2.39 -1.67,4.38 -3.7,5.18 0.05,1.23 -0.23,2.66 0.56,3.58 -0.09,2.42 0.91,5.06 1.8,7.31 3.3,1.24 2.04,5.97 4.07,8.24 1.96,0.49 1.37,2.56 2.59,3.64 -1.74,0.94 0.2,3.57 -1,5.13 1.45,0.08 4.13,-2.2 4.71,0.49 2.27,-0.88 3.84,4.84 5.98,2.4 0.11,-2.69 3.06,-5.02 5.54,-4.01 -0.84,1.71 0.49,4.93 2.22,2.69 -1.12,-4.19 4.37,-2.87 5.2,-0.35 2.07,1.28 5.06,2.67 3.99,-1.18 -0.44,-2.49 0.5,-4.84 0.92,-7.23 2.57,-1.67 0.05,-4.72 1.41,-6.94 -1.34,-2.75 2.73,-3.36 2.63,-6.07 2.5,-3.08 -0.98,-6.81 0.47,-10.07 2,-1.59 2.83,-4.11 4.16,-6.22 -0.81,-2.28 2.55,-4.4 -0.11,-6.44 -1.37,-1.98 -0.41,-4.12 -0.17,-5.92 -1.82,-0.69 -0.96,-3.19 -2.25,-4.49 1.8,-2.26 -0.83,-5.08 0.05,-7.93 1.49,-3.08 -3.02,-4.17 -1.77,-7.12 l -0.36,-0.33 -0.59,-0.1 0,0 z", - "department-26" : "m 448.07,380.12 c -2.89,1.17 -5.09,3.5 -8.19,2.69 -0.39,2.66 -1.05,6.79 0.49,9.42 -1.96,1.97 0.32,3.64 0.34,5.76 2.35,1.37 -0.99,4.81 1.33,6.93 2.06,2.38 -0.62,5.13 -0.81,7.77 -1.22,2.58 -4.32,4.41 -3.69,7.71 1.66,3.46 0.06,6.59 -1.3,9.7 -3.02,0.93 -0.83,4.24 -2.03,6.3 0.95,3.33 -2.55,6.12 -1.92,9.81 1.2,3.03 7.51,-0.99 7.1,4.18 0.14,2.04 0.67,4.67 2.58,1.79 2.97,-0.92 6.04,-2.27 9.06,-3.52 1.12,3.67 4.14,-0.81 5.13,-0.14 -0.85,1.68 -0.59,3.54 -0.5,5.19 1.36,1.14 3.35,1.14 4.16,-0.1 1.72,1.86 4.28,0.89 5.95,1.95 0.03,1.94 0.09,3.52 2.41,3.44 1.06,4.04 4.77,0.96 6.47,-0.43 -1.58,-2.47 1.9,-2.75 3,-1.1 1.64,-1.37 2.06,-2.86 1.41,-5.21 1.53,-2.36 -2.87,-0.24 -1.73,-2.96 -1.59,-0.67 -0.77,-1.18 -0.59,-2.32 -2.51,0.48 -4.35,-1.04 -6.35,-0.89 -1.23,-1.45 -2.87,-1.53 -2.12,-3.69 -1.62,-1.67 -0.01,-2.82 1.69,-1.61 2.12,-0.83 -1.87,-1.85 -0.65,-3.64 -0.28,-2.93 4.33,0.48 6.05,0.59 1.73,0.39 1.15,-2.66 3.01,-2.35 -1.71,-1.67 -3.84,-2.97 -1.6,-5.43 1.79,-1.45 -0.55,-5.71 2.99,-3.98 1.94,0.82 3.33,-0.86 4.9,-1.06 1.29,-0.88 2.08,-3.19 -0.35,-2.44 -2.24,0.57 -3.91,-2.09 -6.41,-1.58 -1.16,-1.43 -2.84,-3.52 -4.34,-3.81 0.14,1.78 -6.09,-0.53 -3.44,-2.33 -1.37,-2.79 0.85,-6.84 0.11,-10.1 0.96,-2.47 -1.42,-5.35 0.09,-7.37 -2.07,0.93 -4.59,4.84 -6.88,1.6 -1.84,0.62 -4.04,-0.31 -5.88,-1.61 -1.29,0.02 -2.1,2.02 -3.13,0.34 2.95,-1.62 2.73,-5.57 1.54,-8.29 2.1,-1.71 -0.25,-3.63 -2.12,-2.9 0.27,-1.74 0.99,-4.37 -1.59,-2.47 -1.31,0.06 -1.04,-2.86 -3.02,-2.37 -0.42,-0.45 -0.36,-1.52 -1.19,-1.46 z m -1.27,60.35 c 2.68,0.18 1.93,3.2 4.79,3.14 -1.88,1.51 -2.98,3.63 -4.06,5.91 -1.76,-1.35 -5.66,0.15 -4.33,-3.15 -1.66,-0.66 1.47,-2.81 1.37,-4.36 0.67,-0.62 1.73,-0.72 2.23,-1.54 z", - "department-84" : "m 446.86,440.69 c -1.95,0.68 -2.59,2.23 -3.24,3.95 -1.54,1.08 0.24,1.84 -0.38,3.25 0.79,1.16 2.95,0.74 4.3,1.12 1.33,-1.76 1.41,-4.26 3.76,-4.92 -0.23,-0.92 -2.69,-0.73 -2.57,-2.42 -0.66,-0.27 -1.12,-0.97 -1.86,-0.99 z m -10.7,6.69 c -1.75,0.63 -4.36,-0.72 -3.75,2.23 -0.47,1.96 1.22,3.5 1.32,5.13 2.22,-0.26 1.8,3.29 1.6,4.89 -0.71,1.78 -0.16,4.41 1.97,3.57 1.39,1.79 2.8,3.83 3.94,5.76 0.11,1.52 -2.28,0.28 -1.54,2.26 -0.27,1.54 -4.74,2.54 -1.78,2.92 1.98,0.36 4.26,0.33 5.81,1.82 2.69,0.61 4.43,2.7 6.08,4.74 0.55,2.14 2.45,3.17 4.31,4.09 2.3,2.43 5.12,0.03 7.83,1.23 2.38,1.21 4.48,2.96 6.96,4.03 2.69,1.26 6.11,1.9 8.79,0.34 1.35,-1.61 3.7,-0.97 4.73,-3.09 0.97,-1.51 -1.94,-2.24 -1.96,-3.86 -1.56,-1.86 -3.42,-4.41 -6.24,-2.8 -2.07,0.95 -0.48,-2.95 0.61,-3.43 0.51,-1.33 1.55,-2.66 -0.1,-3.23 -0.29,-2.08 -4.3,-0.54 -3.06,-3.3 0.45,-2.01 1.86,-3.87 1.45,-6.01 -1.1,0.12 -2.63,0.07 -2.14,-1.74 0.53,-2.35 -2.66,-1.28 -2.71,-3.51 -1.05,-0.88 -3.35,-0.4 -2.48,-2.73 -0.01,-3.12 -4.03,-0.26 -5.3,-2.66 -1.51,-1.06 -0.98,1.74 -2.66,0.68 -2.01,-0.15 -3.06,-1.35 -2.27,-3.12 -1.69,-0.64 1.81,-3.73 -0.28,-2.95 -1.07,2.14 -3.56,1.91 -4.6,0.21 -2.41,0.78 -4.55,2.65 -7.11,2.79 -1.53,-0.33 -4,4.19 -3.94,0.55 -0.37,-2.16 -0.51,-5.06 -3.51,-4.81 z", - "department-13" : "m 436.6,474.08 c -0.74,1.85 -4.74,2.73 -4.06,4.51 1.26,0.66 -1.41,1.72 -0.12,3.06 0.08,2.7 -2.74,5.11 -1.37,7.86 -2.28,-0.28 -6.4,-2.34 -7.04,1.21 -2.02,1.17 -2.34,4.33 0.25,4.07 -0.26,2.18 -2.99,1.15 -3.24,3.2 -2.53,0.88 -3.65,1.48 -5.33,3.13 -3.12,0.45 -3.32,4.69 0.25,3.69 2.78,0.47 5.55,1.05 8.35,0.35 2.37,-0.45 7.29,1.42 4.55,4.28 -0.6,3.55 5.03,2.05 7.33,2.58 1.71,0.43 5.71,0.01 2.7,-2.11 -3.88,-1.35 -2.85,-5.16 -3.05,-8.31 -0.04,-1.21 -2.55,-5.59 -0.42,-2.89 1.89,2.36 1,5.34 0.95,8.05 0.88,2.13 3.62,3.05 5.46,4.22 1.53,-0.81 -2.25,-2.45 0.5,-3.11 1.91,-1.46 4.03,-0.52 5.49,0.58 3.35,0.39 4.55,-4.15 1.3,-5.2 -0.68,-1.48 -0.16,-6.09 1.79,-3.06 2.23,-0.56 2.91,0.56 2.79,2.29 1.26,2.1 3.09,1.09 4.71,0.38 1.06,3.09 -3.48,5.94 -6.44,5.14 -4.78,-0.48 -3.49,6.19 0.68,5.18 2.9,-0.06 6.07,0.58 8.6,-1.26 3.09,-1.75 3.91,2.83 3.27,4.72 2.03,1.28 -2.35,4.61 1.58,4.55 2.59,-0.26 5.17,0.78 7.33,0.32 0.97,2.95 3.72,1.97 5.67,1.14 -0.33,-3.01 1.95,-4.41 4.07,-5.87 -0.58,-2.14 -2.28,-2.58 -3.96,-3.03 2.56,-1.22 -1.49,-6.49 2.6,-5.65 1.54,0.73 3.39,-0.95 1.08,-1.75 -1.32,-1.96 -3.23,-3.39 -1.84,-5.73 2.26,-2.81 -4.73,-2.76 -1.41,-4.42 -0.82,-3.37 2.37,-4.88 5.13,-5.19 1.46,-1.69 -2.03,-5.66 -3.21,-2.42 -1.87,0.81 -3.79,1.87 -5.79,2.74 -4.96,0.73 -9.29,-2.44 -13.26,-4.94 -3.21,-1.31 -6.53,0.84 -9.27,-1.96 -2.79,-0.81 -2.96,-3.66 -4.98,-5.35 -1.7,-2.34 -4.64,-3.03 -7.08,-4.31 -1.52,-0.14 -3,-0.57 -4.52,-0.71 z", - "department-83" : "m 517.2,482.16 c -2.21,0.45 -4.51,0.15 -4.56,3.03 -1.71,2.89 -5.34,-0.75 -6.7,-2.47 -3.07,-2.54 -3.41,4.73 -6.6,3.29 -1.58,1.5 -2.96,3.5 -4.46,4.67 -1.25,-1.47 -1.71,-3.25 -3.55,-3.95 0.03,-1.86 -1.87,-1.86 -1.91,-0.09 -1.33,1.02 -2.66,0.95 -3.16,-0.75 -1.91,-1.9 -4.18,0.89 -2.09,2.04 0.53,1.23 1.97,1.94 0.53,3.38 -2.84,-0.21 -5.92,2 -4.84,5.1 -3.44,1.27 3.35,1.25 1.35,3.57 -0.22,1.94 -1.24,3.31 0.74,4.69 0.22,1.73 4.1,2.93 0.81,3.75 -2.63,-1.28 -3.72,1.11 -2.27,3.16 -1.33,1.63 -0.65,2.88 1.29,2.7 1.09,1.33 2.34,3.31 -0.22,3.83 -2.89,1.3 -2.33,4.54 -1.48,6.82 1.05,1.11 2.71,1.01 3.71,1.52 -0.45,1.28 3.17,1.21 0.61,2.02 -2.2,1.64 1.53,2.03 2.31,3.24 1.87,0.49 2.01,-2.69 4.02,-1.64 0.25,-1.17 -3.62,-2.32 -0.77,-2.94 1.5,-0.75 1.25,1.72 3.11,0.9 1.98,-0.44 2.88,1.82 4.97,0.72 2.49,0.17 1.79,3.18 -0.25,3.1 1.03,0.17 3.75,1.02 4.22,-0.22 -1.87,-1.01 -0.43,-5.47 2.18,-4.51 2.27,-1.02 4.3,0.74 5.47,2.2 2.95,0.7 -0.7,-3.95 2.56,-4.14 1.82,-1.17 4.32,-0.11 5.81,-1.82 1.19,-1.87 3.53,-0.69 3.91,0.87 1.83,-0.26 1.02,-2.97 3.25,-2.97 -1.94,-1.52 0.52,-2.56 0.71,-4.09 -0.88,-1.35 -6.14,0.84 -4.2,-1.29 1.98,-0.49 3.13,-1.3 3.41,-3.27 3.09,-0.38 1.58,-4.33 3.42,-5.76 2.02,1.51 4.49,0.53 6.29,-0.38 1.97,-1.45 2.07,-3.69 -0.21,-4.86 0.39,-1.48 -0.82,-2.76 0.73,-4.13 0.32,-1.33 0.43,-3.31 -1.68,-2.51 -2.08,-0.91 -4.86,-2.77 -4.6,-5.2 1.21,-2.45 -1.26,-3.59 -2.82,-4.44 -1.3,-0.4 -2.5,0.43 -2.84,-1.45 -0.36,-2.95 -3.06,-1.75 -4.46,-0.37 0.04,-0.84 -0.83,-2.43 -1.72,-1.38 z", - "department-06" : "m 534.65,445.17 c -2.26,1.07 -5.06,2.58 -4.36,5.66 -3,-0.21 -3.04,3.43 -4.06,5.54 -1.08,2.46 0.95,4.86 2.25,6.92 -1.14,3.22 2.36,4.62 4.05,6.69 0.63,2.61 3.53,3.37 4.77,5.63 -2.57,2.29 -4.92,-3.17 -6.86,-0.03 -0.74,2.32 -3.13,1.4 -4.56,1.36 1.15,1.61 -2.67,2.88 0.34,3.69 1.19,1.89 -4.95,1.17 -2.32,3.78 0.53,1.35 2.49,-0.04 3.3,1.63 2.89,-0.16 1.89,3.58 2.03,5.2 1.45,1.97 3.65,3.89 6.12,3.69 1.22,2.02 -1.58,4.04 -0.48,6.02 -0.26,2.6 3.76,2.43 2.74,-0.52 1.75,-2.03 4.78,-1.82 7.05,-2.83 2.15,2.34 0.79,-2.94 1.42,-4.1 0.35,-2.64 3.85,-1.42 4.44,-3.92 1.43,-0.64 4.04,-1.22 4.41,0.38 0.69,-1.18 0.32,-2.51 2.45,-2.28 -0.13,-1.76 1.58,-4.07 3.07,-2.16 1.7,0.06 1.19,-2.66 3.34,-2.27 -0.27,-2.4 -3,-5.81 0.3,-7.3 1.54,-1.45 0.99,-4.2 3.51,-4.76 2.78,-1.39 1.89,-4.43 4.17,-6.12 1.59,-2.77 -3.27,-4.24 -1.5,-7.3 -1.21,-2.71 -2.61,1.55 -4.47,0.73 -2.22,0.84 -4.68,1.32 -6.76,2.38 -2.04,0.2 -3.62,-0.51 -4.81,-1.86 -2.43,0.52 -3.44,-1.96 -5.53,-2.49 -1.15,-2.34 -3.58,-0.83 -4.96,-2.82 -1.54,-1.59 -4.78,0.61 -4.95,-2.66 -1.4,-1.9 -2.37,-3.95 -3.93,-5.85 l -0.23,-0.02 -1.8e-4,10e-5 z", - "department-04" : "m 536.03,425.47 c -1.91,1.96 -3.88,3.46 -6.49,4.44 -1.02,2.88 -4.75,3.12 -5.32,6.34 -1.11,1.83 -1.21,3.9 -4.02,3.07 -3.01,-0.06 -6.66,-0.3 -8.11,-3.08 -0.64,-1.8 -3.43,-1.98 -2.19,0.22 -0.26,3.25 -2.7,-0.14 -4.23,1.68 -1.44,0.61 2.06,5.8 -1.43,5.09 -2.1,-2.16 -2.71,-5.63 -6.09,-5.69 -0.87,3.33 -6.54,3.63 -7.12,7.81 -0.96,1.13 -2.01,2.66 -0.4,3.1 -0.61,1.4 0.72,5.52 -1.66,2.94 -0.44,-1.65 -2.49,-3.59 -2.83,-0.6 1.02,1.86 2.62,3.82 3.95,5.12 -2.91,0.83 -6.3,-2.29 -9.28,0.12 -0.78,0.38 -3.94,0.37 -2.37,1.8 0.52,0.59 -1.17,0.62 -1.27,-0.25 -1.21,-2.36 -3.58,-0.6 -2.43,1.22 -2.05,0.82 -5.12,3.55 -2.92,5.69 3.34,-0.23 0.15,4.71 -0.09,6.55 -0.21,2.32 3.26,0.85 3.55,3.17 2.24,1.52 -3.59,5.18 -1.33,6.48 2.81,-2.13 5.06,0.73 6.7,2.59 0.57,1.46 2.26,4.38 3.61,1.7 2.13,0.13 4.41,4.24 5.38,0.42 1.94,-1.62 1.55,2.48 3.59,2.29 0.43,1.7 2.31,4.04 2.93,1.23 2.03,-0.76 2.24,-3.96 4.52,-2.9 1.73,-1.32 3.93,-6.5 5.92,-2.58 1.76,2.61 6.67,4.01 6.46,-0.53 1.66,-0.48 3.88,-1.21 5.41,-0.9 0.99,2.9 3.19,-2.27 4.59,0.48 1.62,-0.3 5.25,-1.56 1.66,-2.44 0.5,-1.52 2.15,-2.44 0.07,-3.65 2.45,0.82 5.17,0.99 6.43,-1.88 1.98,-0.91 4.27,3.34 5.6,0.53 -2.39,-1.94 -3.94,-3.66 -5.54,-6.13 -1.97,-1.55 -3.7,-3.16 -3.01,-5.85 -1.63,-2.1 -3.46,-4.86 -1.89,-7.35 0.29,-2.57 2.02,-4.78 3.68,-5.75 -0.2,-4 5.64,-3.6 4.5,-7.78 -0.28,-2.01 3.78,-1.57 1.15,-3.33 -2.21,-1.59 -4,-5.51 -0.76,-7.08 1.56,-1.02 4.77,-6.03 1.11,-6.32 z", - "department-05" : "m 505.98,394.66 c -0.92,0.25 -1.63,1.24 -1.1,2.16 0.19,0.48 0.58,1.51 -0.28,1.51 -1.03,0.5 -0.62,1.96 -1.08,2.79 -0.5,0.85 0.81,1.35 1.44,1.52 1.22,0.46 2.5,-0.16 3.7,-0.25 0.54,0.61 -0.39,1.36 0.2,1.99 0.46,0.55 -0.24,1.49 0.61,1.76 1.28,0.11 1.04,1.22 0.99,2.19 0.04,1.33 -0.36,2.63 -0.12,3.94 -0.53,0.79 -1.69,0.39 -2,-0.4 -0.51,-1.19 -2.09,-0.47 -2.63,0.32 -1,0.97 -2.33,-0.4 -3.46,0.21 -0.85,0.38 -1.73,-1.03 -2.42,-0.12 -0.98,1 -2.08,1.88 -3.19,2.74 -0.6,-0.52 -1.36,-2.29 -1.99,-0.92 -0.19,0.45 -0.47,0.63 -0.95,0.63 -0.5,0.26 -1.64,0.37 -1.59,1.05 0.28,0.44 1.46,0.83 1.02,1.47 -0.54,0.3 -1.13,0.65 -1.29,1.26 -0.7,-0.05 -1.3,0.89 -1.97,0.42 -0.72,-0.21 -1.09,0.98 -1.85,0.43 -0.58,0.09 -1.28,-0.82 -1.74,-0.36 0.25,1.1 -0.94,2.04 -0.76,3.1 0.52,0.18 0.81,0.66 0.78,1.23 -0.53,0.61 -1.46,0.99 -1.58,1.94 -0.18,0.9 -1.25,0.06 -1.79,0.32 -0.68,0.37 -1.24,1.41 -2.12,0.79 -0.93,-0.21 -2.04,-0.85 -2.95,-0.39 -0.57,0.89 0.83,2.18 -0.26,2.82 -0.65,0.74 -0.7,1.84 -1.37,2.59 -0.33,0.63 -0.72,1.79 0.31,1.98 1.01,0.26 1.61,1.36 2.24,2.13 -0.07,0.59 -1.06,0.18 -1.47,0.37 -0.6,0.27 -0.26,1.22 -0.74,1.67 -0.29,0.65 -1.01,0.59 -1.49,0.18 -0.57,-0.34 -1.27,-0.05 -1.74,-0.61 -0.9,-0.62 -2,-0.67 -3.03,-0.83 -0.44,-0.35 -1.26,-0.9 -0.84,0.18 0.34,0.85 -0.18,1.94 0.35,2.71 0.46,0.27 1.64,0.66 1.06,1.38 -0.5,0.81 -1.41,0.3 -2.05,-0.05 -0.52,-0.37 -1.25,0.09 -0.87,0.7 0.33,0.77 0.86,1.66 0.62,2.5 -0.66,0.38 0.12,0.97 0.62,0.79 0.61,0.08 0.48,1.09 1.17,1.15 0.27,0.47 0.79,0.78 1.25,0.32 0.66,-0.57 1.26,0.29 1.64,0.72 1.26,0.36 2.77,-0.21 3.93,0.31 -0.15,0.66 -1.33,1.39 -0.16,1.75 0.4,0.17 0.78,0.55 0.44,0.97 -0.13,0.75 0.67,1.6 1.38,1.06 0.44,-0.36 1.29,0.39 0.73,0.76 -0.45,0.57 -0.47,1.41 -0.01,1.94 -0.06,0.96 -0.14,2.01 0.32,2.89 0.74,-0.36 1.48,-0.84 2.32,-1.03 0.89,-0.54 2.04,-0.3 3.03,-0.47 1.36,0.7 2.9,1.36 4.48,1.28 0.82,-0.57 -0.52,-1.06 -0.97,-1.25 -0.83,-0.92 -1,-2.37 -2.18,-3.02 -0.89,-0.61 -0.47,-1.72 -0.01,-2.44 0.2,-0.82 1.38,-0.21 1.78,0.12 0.44,0.5 0.07,1.39 0.76,1.79 0.27,0.34 1.29,1.11 1.39,0.28 -0.46,-0.7 -0.4,-1.72 0.04,-2.4 0.24,-0.63 -0.28,-0.96 -0.8,-0.99 -0.4,-0.58 -0.19,-1.66 0.53,-1.93 1.11,-0.98 1.03,-2.64 1.93,-3.7 0.84,-0.83 2.18,-1.02 2.91,-1.96 0.3,-0.69 1.08,-1.23 1.8,-1.37 0.77,0.34 0.76,-0.99 0.72,-1.47 0.2,-0.8 1.42,-0.33 1.96,-0.19 0.77,0.29 1.87,0.6 1.76,1.64 -0.03,0.5 0.41,0.7 0.8,0.64 0.65,1.23 1.63,2.21 2.33,3.38 0.67,0.53 1.08,-0.73 1.28,-1.18 0.53,-1.39 -0.98,-2.61 -0.83,-3.89 0.95,-0.06 1.68,-0.79 2.53,-1.06 0.55,0.33 1.53,1.41 2.02,0.36 0.44,-0.73 0.48,-1.61 -0.08,-2.27 0.17,-0.42 0.83,-0.77 1.24,-0.86 0.91,1 1.94,1.96 2.46,3.23 0.51,0.3 1.22,-0.11 1.7,0.41 0.56,0.61 1.25,1.09 2.14,1 1.98,0.14 3.96,0.2 5.94,0.29 0.53,-0.84 0.08,-2.27 1.05,-2.94 1.09,-0.75 1.13,-2.18 1.48,-3.28 1.39,0.19 2.51,-0.88 3.23,-1.94 0.77,-0.23 0.49,-1.3 1.27,-1.53 0.82,-0.72 1.93,-0.86 2.92,-1.25 0.49,-0.42 0.51,-1.23 1.32,-1.26 0.83,-0.36 1.14,-1.4 1.93,-1.78 0.77,0.27 1.79,0.29 2.08,-0.66 0.66,-1.38 2.4,-1.81 3.71,-1.06 0.39,0.18 1.29,0.5 1.12,-0.27 0.09,-1.44 -0.99,-2.46 -1.92,-3.38 -0.16,-1.25 0.2,-2.81 -0.7,-3.82 0.26,-0.63 1.23,-1.27 0.5,-1.95 -0.48,-0.56 -0.7,-1.27 -1.5,-1.47 -0.9,-0.29 -1.99,-1.36 -2.93,-0.65 -1.03,0.93 -2.61,0.14 -3.63,-0.46 -1.39,-1.22 -3.06,-2.05 -4.52,-3.16 -0.14,-0.64 0.04,-1.36 -0.18,-2.01 0.26,-0.67 0.64,-1.39 0.32,-2.14 -0.46,-0.77 -0.27,-1.65 -0.34,-2.48 -0.67,-1.47 -2.82,-0.12 -3.68,-1.29 -0.42,-1.05 0.19,-2.49 -0.93,-3.24 -0.45,-0.58 -0.89,-1.29 -0.84,-2.02 -0.58,-0.55 -1.68,-0.52 -2.38,-0.21 -0.4,0.9 -1.61,1.62 -2.44,0.8 -0.83,-0.16 -1.61,0.86 -1.3,1.66 0.16,0.65 0.15,1.68 -0.74,1.69 -0.9,0.39 -1.54,-0.53 -2.43,-0.47 -0.85,-0.07 -1.72,-0.21 -2.49,-0.62 0.67,-1.13 -0.23,-2.74 -1.37,-3.11 -0.83,0.45 -1.99,0.92 -2.79,0.12 -0.24,-0.12 -0.29,-0.52 -0.63,-0.43 z", - "department-38" : "m 464.21,344.5 c -2.79,1.9 -2.68,8.48 -7.27,6.99 -0.9,-2.78 -3.83,-2.24 -5.03,-0.76 -2.02,0.29 1.51,1.68 1.08,3.08 2.47,0.08 3.5,3.16 0.44,2.72 -1.73,1.6 -3.23,3.88 -3.85,5.57 -1.57,-1.3 -1.06,1.72 -2.92,0.29 -3.28,-0.47 -4.55,3.17 -7.48,1.48 -1.5,1.31 5.74,3.47 2.07,5.5 -2.26,2.06 -5.1,3.74 -4.23,6.93 0.77,2.57 -0.06,8.04 4.48,6.03 2.27,2 6.34,-5.1 8.45,-0.76 1.77,0.21 1.71,3.96 3.93,1.45 1.68,0.13 -1.09,4.61 1.72,3.03 1.9,0.92 2.02,2.4 0.5,3.24 1.61,2.88 0.73,6.17 -0.85,8.65 1.08,-0.16 3.1,-1.79 4.37,0.45 2.36,0.7 4.24,0.15 6.23,1.33 0.84,-0.27 3.02,-1.03 3.81,-2.77 2.64,0.63 -1.49,2.67 0.72,4.47 0.38,3.59 -0.09,7.56 -0.56,11.3 0.4,1.45 0.41,2.4 -0.01,3.62 1.24,0.79 4,2.16 3.74,0.13 2.61,1.83 4.3,5.05 7.54,4.72 2.17,2.94 5.3,0.26 5.21,-2.58 1.66,1.44 8.14,-0.42 5.75,-2.57 -0.07,-1 2.61,-2.26 3.54,-2.4 2.26,2.99 3.89,-3.83 6.67,-1.32 2.19,0.23 3.45,-0.22 5.31,-1.27 0.97,1.39 3.24,2.32 2.54,-0.45 1.1,-3.23 -1.77,-5.43 -1.86,-8.01 -3.37,1.84 -6.82,-1.82 -3.61,-4.41 -0.13,-1.84 0.52,-3.31 1.32,-4.86 -1.82,-0.13 -3.26,-1.51 -5.13,-0.74 1.43,-2.69 -1.8,-4.98 -0.71,-7.76 -0.38,-2.56 4.12,-3.93 2.03,-6.04 0.5,-3.14 -3.24,-5.89 -6.15,-5.13 -1.66,-1.14 -3.77,-5.23 -5.46,-1.87 -0.31,1.87 -0.63,3.21 -0.4,4.62 -2.15,1.23 -4.77,-3.87 -7.68,-2.52 -0.95,-2.94 -2.79,-6.19 -4.33,-9.02 -1.66,-2.41 -2.31,-5.84 -4.73,-7.23 -0.04,-3.77 -5.4,-5.53 -5.81,-9.3 0.88,-1.39 -2.2,-3.36 -3.39,-3.83 z", - "department-73" : "m 486.16,340.96 c -0.45,0.45 0.31,1.19 0.03,1.77 -0.43,2.29 -1.49,4.41 -1.88,6.69 -0.26,1.38 -0.01,2.88 -0.3,4.22 -0.62,0.31 0.02,1.17 -0.58,1.57 -0.45,1.17 -1.58,0.73 -2.55,0.64 -0.84,0.07 0.16,1.14 -0.18,1.7 -0.39,0.69 -1.23,1.27 -0.9,2.19 0.16,0.81 -0.73,0.85 -1.28,0.92 -0.46,0.22 -0.52,0.84 -0.99,1.02 -0.1,0.57 -0.89,1.04 -0.26,1.63 0.76,1.32 2.36,2.45 2.11,4.11 0.23,0.33 0.74,0.34 0.74,0.83 0.84,0.69 0.84,1.99 1.51,2.8 0.86,0.69 -0.26,2.79 1.33,2.79 0.69,-0.42 1.75,-0.43 2.21,0.36 0.86,0.8 2.15,0.9 3.12,1.6 0.57,0.15 0.69,0.71 1.06,1.03 0.59,0.02 1.32,-1.15 0.42,-1.31 -0.57,-0.83 0.26,-1.71 0.62,-2.42 0.32,-0.63 -0.18,-1.37 -0.02,-1.93 0.76,-0.47 1.65,-0.69 2.47,-1.04 0.43,0.56 1.01,1.07 1.58,1.38 0.13,0.76 0.39,1.57 1.25,1.79 0.96,0.51 2.24,-0.49 3,0.51 0.5,0.17 1.21,-0.47 1.46,0.31 0.64,1.59 2.48,2.51 2.66,4.29 -0.29,0.15 -0.79,0.54 -0.21,0.73 0.85,0.23 0.12,1.35 0.11,1.91 -0.05,0.98 -1.42,0.76 -1.63,1.63 -0.67,0.52 -0.97,1.32 -0.71,2.16 0.28,0.8 -0.51,1.41 -0.41,2.16 0.41,0.87 0.74,1.73 1.41,2.45 0.62,1.01 -0.59,1.95 -0.5,2.93 0.52,0.56 1.11,-0.22 1.49,-0.5 0.92,-0.1 1.37,0.91 2.13,1.15 0.63,-0.3 1.62,-0.2 1.66,0.68 -0.1,1.41 1.8,2.18 2.81,1.25 0.65,-0.79 1.23,0.33 1.67,0.84 0.46,0.64 0.68,1.43 0.45,2.15 0.54,0.74 1.75,0.36 2.53,0.62 0.86,0.16 1.92,1 2.66,0.13 0.38,-0.92 -0.65,-2.23 0.57,-2.71 0.35,-0.45 0.85,-0.56 1.27,-0.15 0.94,0.49 1.73,-0.4 2.13,-1.14 0.91,-0.24 1.86,0.12 2.72,0.29 0.81,-0.21 1.62,-0.66 2.1,-1.32 0.99,-0.68 2.46,0.1 3.22,-1.02 0.35,-0.43 0.97,-0.89 1.45,-0.3 0.85,0.52 2.11,0.47 2.52,1.51 0.72,0.63 1.87,0.09 2.61,-0.25 0.41,-0.56 -0.74,-1.63 0.24,-1.82 0.89,-0.31 2.18,-0.09 2.35,-1.31 0.28,-0.94 0.93,-1.7 1.94,-1.85 1,-0.19 1.96,-0.56 2.92,-0.94 0.28,0.29 0.54,1.02 1.07,0.58 0.47,-0.87 0.96,-2.03 2.06,-2.12 0.86,-0.78 0.12,-2.12 -0.06,-3.06 -0.11,-0.72 -1,-1.93 0.07,-2.33 0.68,-0.07 0.41,-0.73 0.59,-1.12 0.98,-0.99 1.63,-2.36 1.9,-3.7 -0.59,-0.97 -1.87,-1.22 -2.71,-1.86 -0.94,-0.95 -0.87,-3.04 -2.54,-3.15 -0.56,-0.01 -0.92,-0.42 -0.89,-0.96 -0.58,-0.7 -1.85,-0.56 -2.18,-1.57 -0.64,-1.44 -0.23,-3.2 -1.06,-4.6 -0.34,-1.1 0.49,-2.08 0.76,-3.02 -0.69,-0.83 -1.62,-1.51 -2.76,-1.31 -0.88,0.14 -0.91,-0.82 -1.25,-1.33 -0.99,-0.62 -2.63,-0.33 -3.11,-1.66 -0.83,-0.95 -1.39,-2.07 -1.33,-3.37 -0.05,-0.49 -0.09,-1.83 -0.91,-1.34 -0.91,0.06 -1.72,0.7 -1.99,1.6 -0.42,0.52 -0.86,1.4 -1.45,1.52 -0.4,-0.17 -1.27,-0.31 -0.7,-0.87 0.23,-0.66 -0.51,-1.2 -0.28,-1.88 -0.34,-0.89 -0.91,-2.04 -1.95,-2.2 -0.89,-0.13 -2.19,0.76 -2.83,-0.15 -0.09,-0.52 -0.37,-0.96 -0.88,-1.06 -0.72,-0.81 -1.07,-2.03 -1.15,-3.07 0.63,0.06 1.62,-0.31 1.26,-1.11 -0.35,-1.05 -1.53,-1.04 -2.36,-1.47 -0.67,-0.01 -0.86,0.94 -1.52,1.08 -0.85,0.88 -1.48,2.09 -1.51,3.29 -0.72,0.95 -0.91,2.24 -1.97,2.95 -0.76,0.61 -1.69,1.28 -1.54,2.39 -0.21,0.67 -0.99,1.04 -1.01,1.82 -0.44,0.97 -0.54,2.37 -1.86,2.41 -1.14,0.38 -2.33,0.53 -3.53,0.54 -0.06,-0.45 0.01,-1.66 -0.76,-1.32 -0.31,0.13 -0.76,0.69 -1.03,0.56 -0.25,-0.91 0.24,-2.16 -0.62,-2.79 -0.14,-0.81 -1.14,-1.57 -1.94,-1.34 -0.21,0.5 -0.78,0.26 -1.03,-0.06 -0.76,0.04 -0.24,1.32 -0.76,1.53 -0.34,-0.65 -1.25,-0.37 -1.8,-0.73 -0.47,-0.07 -0.73,0.7 -1.2,0.25 -0.48,-0.36 -1.21,-0.4 -1.7,-0.51 0.01,-0.61 -0.44,-1.04 -0.93,-1.29 0.04,-0.57 0.55,-1.77 -0.49,-1.68 -0.47,-0.1 -0.19,-0.97 -0.81,-1.05 -0.66,-0.37 -1.22,0.91 -1.76,0.14 -0.38,-0.36 -0.12,-1.3 -0.92,-1.18 -1.02,-0.5 -0.45,-1.96 -0.7,-2.86 -0.23,-1.29 -0.31,-2.65 -0.65,-3.91 -0.34,-0.35 -0.97,-0.38 -1.43,-0.38 z", - "department-74" : "m 522.73,306.41 c -1.97,0.51 -4.09,-0.11 -6.02,0.54 -1.69,0.88 -2.87,2.78 -4.92,2.88 -1.61,0.19 -3.71,0.06 -4.62,1.7 -1.07,1.16 -2.72,2.21 -2.73,3.97 0.1,0.69 1.48,0.71 0.93,1.55 -0.41,0.84 0.21,1.93 0.9,2.4 0.42,0.09 0.95,-0.58 1.26,0.01 0.37,0.53 0.48,1.32 -0.23,1.62 -1.53,1.19 -3.48,2.08 -4.62,3.7 0.15,0.96 -1.06,1.44 -1.7,1.89 -0.92,0.54 -2.12,0.67 -2.99,-0.02 -0.94,-0.11 -1.74,0.7 -2.72,0.57 -1.73,-0.1 -3.26,0.92 -4.93,1 -0.77,0.2 -1.52,0.85 -1.16,1.71 0.19,0.63 -0.32,1.15 -0.97,1 -0.99,0.19 -1.36,-0.93 -2.04,-1.36 -0.25,0.5 -0.16,1.27 -0.57,1.8 -0.32,1.76 -0.11,3.58 -0.18,5.37 -0.05,1.02 1.4,1.33 1.1,2.4 -0.08,0.89 -0.37,2.18 0.97,1.91 0.75,0.22 0.29,1.37 0.52,1.94 0.31,1.44 0.48,2.91 0.5,4.37 0.07,0.67 0.88,0.58 1.19,0.96 -0.06,0.61 0.65,1.43 1.18,0.8 0.34,-0.42 1.1,-0.12 1.48,0.06 -0.19,0.54 0.13,1.08 0.73,0.94 0.45,0.32 -0.03,1.12 0.02,1.58 0.26,0.43 0.87,0.53 0.99,1.06 0.58,0.39 1.43,1.09 2.13,0.73 0.22,-0.52 0.78,-0.22 1.09,0 0.59,0.21 1.53,0.05 1.32,-0.78 -0.01,-0.66 0.68,-0.27 0.9,0.03 0.57,0.28 0.97,-0.69 1.55,-0.21 0.84,0.25 1.11,1.08 1.58,1.67 0.61,0.22 0.16,1.19 0.32,1.69 -0.08,0.68 0.71,0.6 0.85,0.07 0.5,-0.09 1,0.52 0.86,1.04 0.4,0.69 1.5,0.24 2.16,0.27 0.76,-0.24 1.79,-0.22 2.32,-0.85 0.55,-0.82 0.59,-1.89 1.06,-2.69 0.59,-0.47 1.08,-1.17 0.58,-1.84 1.1,-1.12 2.6,-2.01 3.15,-3.59 0.44,-0.46 0.57,-1.04 0.46,-1.64 0.43,-1.24 1.14,-2.4 2.27,-3.1 0.24,-0.19 0.68,-1.23 1.02,-0.66 0.87,0.56 2.4,0.81 2.5,2.07 0.05,0.67 -0.39,0.98 -1.01,0.85 -0.65,0.38 0.05,1.31 0.13,1.86 0.25,0.92 1.4,1.05 1.58,2.03 0.48,0.87 1.65,0.01 2.41,0.12 0.73,-0.31 1.18,0.28 1.5,0.85 0.45,0.56 1.16,1.11 0.82,1.91 -0.09,0.58 0.7,0.95 0.24,1.52 -0.21,0.76 0.9,0.79 1.18,0.23 0.84,-0.71 0.9,-2.01 2.02,-2.43 1.02,-0.06 1.62,-1 1.61,-1.96 -0.09,-1.02 0.58,-2.66 1.85,-2.26 0.39,0.29 1.11,0.3 0.98,-0.35 0.01,-0.41 0.22,-0.99 0.72,-0.64 1.66,0.72 3.32,-0.42 4.67,-1.3 1.07,-1.02 1.17,-2.69 2.2,-3.72 0.24,-1.07 0.13,-2.38 -0.92,-2.98 -0.31,-0.29 0.4,-0.66 0.03,-1.04 -1.08,-1.72 -2.7,-3.09 -3.82,-4.78 -0.93,-0.47 -1.81,1.29 -2.7,0.56 -0.35,-0.84 0.72,-1.72 0.05,-2.53 0.03,-0.72 1.46,-1.61 0.49,-2.23 -0.76,-0.34 -1.61,-0.31 -2.36,-0.72 -0.84,-0.04 -2.06,-0.19 -2.06,-1.31 0.09,-1.22 0.81,-2.32 0.63,-3.59 0.03,-1.74 2.08,-2.69 2.14,-4.38 -0.61,-2.1 -2.81,-3.32 -3.41,-5.34 0.58,-0.82 1.83,-1.33 1.69,-2.56 0.1,-0.89 0.32,-2.26 -0.88,-2.5 -2.33,-0.82 -4.77,-1.84 -7.27,-1.85 z", - "department-71" : "m 412,260.36 c -2.93,0.55 -4.26,2.21 -6.96,2.68 -1.28,2.48 2.3,4.5 -0.5,6.99 -1.43,0.66 -3.07,3.09 -0.49,1.44 1.9,1.91 -1.31,5.49 2.35,6.61 2.41,2.48 -3.47,2.49 -1.06,5.02 0.77,3.39 -3.9,1.03 -5.18,3.67 -2.25,1.4 -4.63,2.62 -7.04,3.38 -0.31,-4.58 -4.86,-2.18 -7.6,-2.64 0.33,3.18 3.53,4.95 4.3,8.11 0.37,1.27 1.28,3.31 0.8,5.05 2.56,1.6 5.5,0.03 6.06,3.56 2.3,-0.67 6.83,0.19 5.63,3.81 -1.65,2.24 1.1,6.27 -0.41,7.48 -1.83,-0.26 -2.1,1.92 -4,2.06 1.17,2.28 -1.61,6.17 2.72,5.49 0.93,1.98 2.84,2.96 4.81,1.08 2.24,-1.83 4.53,2.66 6.18,-0.34 0.99,0.81 3.97,-0.12 2.52,2.07 1.82,0.5 3.17,-1.98 5.29,-1.84 0.91,-1.94 0.34,-5.84 2.53,-7.3 2.38,-0.25 4.64,4.02 6.14,0.44 0.69,1.02 2.58,2.86 3.18,0.21 1.5,-2.57 5.41,0.79 2.63,2.19 4.35,0.26 -0.17,5.73 3.79,5.35 1.63,-2.32 1.8,-5.62 3.02,-8.28 1.07,-3.54 2,-7.12 3.47,-10.47 -0.24,-4.22 3.76,-4.44 6.12,-2.01 2.73,0.91 5.4,-3.24 7.43,-0.63 0.71,4.46 5.42,3.07 8.23,1.96 3.48,-0.33 -0.18,-2.98 -1.2,-3.64 -0.19,-2.06 -0.14,-4 2.12,-4.12 -1.13,-2.06 2.54,-2.7 0.55,-4.54 0.27,-1.18 -1.25,-2.07 -0.87,-3.37 -1.29,-1.52 -2.14,-2.53 -0.54,-4.28 -1.91,-0.7 -4.07,-3.41 -0.68,-3.56 1.47,-0.64 5.77,0.15 2.85,-1.99 -1.77,-0.79 -1.54,-3.02 -3.84,-2.16 -2.27,0.63 -1.51,-5.03 -4.1,-2.86 0.12,-2.06 -1.07,-4.73 -3.5,-2.61 -2.78,0.86 -4.3,2.07 -6.4,-0.46 -1.94,0.4 -2.39,2.11 -4.89,0.86 -2.61,0.33 -5.24,2.44 -8.14,3.19 -1.76,-0.3 -4.71,2.29 -4.23,-1.06 -3.18,-0.15 -5.08,-3.48 -5.63,-5.52 -2.23,0.19 -4.16,-1.65 -6.41,-2.36 0.94,-2.91 -1.62,-1.37 -2.5,-0.96 0.79,-4 -4.82,-1.4 -5.2,-5.1 -0.71,0.24 -0.8,-0.59 -1.34,-0.6 z", - "department-03" : "m 355.26,283.59 c -2.47,0.46 -4.86,3.44 -6.02,4.72 -1.76,-0.99 -3.8,2.31 -4.59,-0.78 -1.76,0.08 -2.97,3.69 -5.04,3.94 1.97,2.84 -4.43,0.31 -1.55,2.39 0.4,1.42 -1.37,2.94 0.6,3.99 1.55,3.09 -3.65,5.08 -5.37,3.61 -2.24,1.35 -6.48,-0.24 -7.16,3.06 -1.54,1.23 -3.6,4.68 -1.43,6.74 2.23,0.25 1.54,1.18 0.45,2.24 0.46,1.75 3.06,2.36 3.77,1.35 1.79,0.78 0.58,3.48 2.71,2.33 2.32,1.7 3.03,4.85 4.13,7.52 1.59,1.1 1.36,3.94 4.21,3.81 2.2,-0.4 1.29,-4.32 4.06,-4.34 -0.38,-2.36 1.13,-2.81 2.64,-1.17 2.87,2.05 0.78,-4.7 4.25,-3.15 2.6,-0.56 4.31,1.53 2.01,3.27 -0.51,2.53 2.71,1.85 2.18,4.56 1.6,1.64 4.19,2.18 6.12,1.98 0.53,3.71 5.09,1.32 7.41,2.58 2.46,-0.35 4.25,2.07 6.4,-0.15 2.05,-0.87 3.81,1.48 3.14,3.62 2.97,-0.38 6.89,-1.86 7.42,2.51 1.3,0.31 3.13,3.55 3.29,0.55 1.79,-0.98 4.46,0.16 5.67,-2.24 -1.33,-3.25 -0.2,-6.45 -1.49,-9.65 1.17,-1.65 -1.28,-4.71 -0.7,-6.42 1.4,-0.12 2.34,-1.59 4.2,-1.58 1.27,-1.45 2.99,-2.22 4.25,-3.49 2.82,-0.46 -0.34,-5.16 1.28,-7.19 1.51,-3 -3.08,-4.88 -5.16,-3.65 -1.18,-1.3 -1.26,-3.58 -3.47,-2.38 -1.93,-1.04 -3.95,-1.45 -2.9,-4.14 -1.14,-2.8 -2.34,-5.73 -4.5,-8.23 0.48,-2.03 -3.61,-4.95 -2.1,-1.56 -0.34,1.45 -3.05,0.68 -1.66,2.91 -1.17,0.41 -2.72,0.17 -3.32,2.29 -3.21,0.75 -0.8,-5.19 -4.58,-3.84 -1.04,2.99 -3.56,1.08 -4.7,-0.26 -2.1,1.25 -4.73,3.83 -6.34,0.2 -2.17,-1.67 -4.84,-2.89 -5.84,-5.6 -0.73,-0.27 -1.51,-0.18 -2.26,-0.35 z", - "department-58" : "m 361.05,231.75 c -1.61,0.98 -3.32,2.58 -5.23,1.22 -1.54,0.66 -5.16,0.31 -5.72,1.84 1.58,2.33 4.2,5.39 3.03,8.27 -0.46,2.34 -4.01,5.74 -0.25,7.04 1.92,1.64 3.66,3.16 3.28,5.91 2.2,3.19 1.4,7.61 2.45,10.69 2.84,1.44 0.59,4.96 1.6,7.25 -1.99,2.66 1.02,5.99 -1.24,8.7 -1.75,2.29 0.81,5.12 3.16,5.53 1.64,1.06 3.28,4.95 5.39,2.27 1.52,-1.93 3.16,-1.38 4.16,0.57 1.96,0.7 3.24,-3.41 4.93,-1.11 0.68,1.01 0.94,1.95 1.13,3.28 1.84,0.37 2.58,-2.94 4.39,-2.04 -0.61,-1.82 -0.49,-2.4 1.36,-2.38 -0.2,-1.17 -0.22,-3.61 1.45,-1.97 2.29,2.03 7.01,-1.91 8.02,2.31 1.41,2.29 3.54,-1.84 5.75,-1.47 1.68,-2.02 4.85,-2.71 6.51,-3.23 -0.22,-2.14 -1.12,-3.85 1.59,-4.65 -0.2,-2.28 -4.24,-3.86 -1.97,-6.79 0.18,-2.41 -4.07,0.3 -1.77,-2.02 2.77,-1.18 2.72,-4.62 1.41,-6.48 -0.21,-2.71 3.29,-1.57 3.61,-3.64 2.41,0.12 4.36,-0.55 4.66,-3.1 0.33,-2.07 -2.28,-4.7 -4.14,-3.18 -2.16,-1.91 1.5,-6.7 -2.23,-6.47 -2.06,-0.11 -3.88,3.63 -5.15,0.03 -0.32,-1.35 -0.05,-4.35 -2.03,-2.79 -1.29,0.05 -2.91,2.04 -2.96,-0.58 1.08,-0.8 1.65,-3.07 -0.35,-2.77 -1.09,1.35 -0.9,4.62 -3.13,2.61 -0.88,-1.42 -3.65,0.48 -4.06,-2.21 -1.01,-1.24 -3.05,-2.54 -4.54,-2.45 -1.62,0.35 -0.42,-3.16 -2.49,-3.09 -1.47,-0.17 -1.9,-4.94 -2.3,-1.85 0.35,2 -0.34,3.67 -2.39,2.1 -2.63,-1.51 -3.86,4.14 -5.82,1.03 -1.87,-1.04 -4.17,1.13 -5,-2 -2.26,0.34 -4.45,-1.48 -4.25,-4 -0.17,-0.32 -0.55,-0.4 -0.88,-0.38 z", - "department-89" : "m 374.12,178.1 c -1.36,2.82 -5.36,0.91 -7.76,1.83 -2.91,0.12 -7.22,-0.23 -8.27,2.98 0.14,3.17 1.58,6.21 -2.22,8.02 -3.13,1.63 -1.03,2.94 1.17,4.04 2.28,2.02 1.91,5.48 4.92,6.98 0.09,2.23 1.57,5.13 -1.56,6.65 -2.34,1.36 -4.04,3.95 -2.14,6.31 -0.68,1.5 0.04,4.08 -2.76,4.29 -2.25,0.39 -7.34,0.64 -4.79,4.05 2.45,0.93 4.06,4.45 3.33,7.05 1.14,3.61 5.07,3.17 7.39,1.37 1.4,1.71 1.46,5.08 4.64,4.36 1.07,1.7 2.94,2.2 4.19,1.56 2.83,2.78 4.94,-2.42 8.04,-0.36 2.24,0.32 0.05,-5.91 2.11,-2.26 1.33,1.79 2.94,3.05 3.85,4.95 3.33,-1.09 4.42,4.4 7.1,3.73 1.63,0.4 3.4,2.47 3.61,-0.47 1.06,-2.78 3.75,-0.39 1.71,1.41 -0.27,3 5.9,-2.28 4.47,2.93 0.46,3.12 3.19,1.32 4.4,0.59 4.42,-0.6 -2.45,-5.06 1.49,-6.94 2.21,-1.57 -0.41,-5.47 2.78,-6.83 1.14,-2.73 3.9,-5.69 3.26,-8.58 1.88,-0.52 1.26,-1.92 0.64,-3.48 1.6,-1.09 4.66,-1.22 3.88,-4.34 0.07,-2.34 -0.26,-3.73 -2.7,-3.42 -3.53,-2.05 4.19,-4.69 -0.03,-5.12 -1.97,-0.1 -2.62,-5.1 -3.28,-1.27 -2.05,-2.67 -2.92,2.59 -5.45,0.23 -2.35,0.79 -5.27,0.01 -8.15,0.79 0.15,-1.59 0.88,-6.21 -1.65,-3.46 -2.36,-1.38 1.3,-2.55 -1.24,-3.58 -0.94,-2.75 -2.25,-5.79 -4.33,-7.09 0.87,-2.25 -1.27,-2.36 -1.7,-0.43 -3.07,1.65 -2.16,-4.29 -5.46,-2.45 0.07,-1.1 1.54,-2.74 1.12,-4.43 -0.2,-2.34 -3.48,-5.41 -5.2,-7.74 -2.07,-0.04 -3.97,0.46 -4.78,-1.75 -0.22,-0.05 -0.43,-0.1 -0.65,-0.14 z", - "department-77" : "m 360.11,130.7 c -0.75,1.23 -0.27,2.29 -2.33,1.67 -1.38,-0.38 -1.84,2.1 -2.56,0.07 -2.14,0.21 -4.49,1.91 -6.24,0.1 -2.04,-1.53 -3.2,3.4 -5.16,0.88 -1.56,1.65 -2.68,-3.86 -4.86,-1.22 -1.42,0.6 -1.4,2.29 -1.08,2.9 -0.79,0.91 -3.3,2.12 -0.93,2.41 0.92,1.64 0.15,3.36 1.66,4.95 -0.21,1.86 -2.5,3.75 -0.77,5.03 -0.42,1.69 1.07,3.83 0.45,5.54 1.88,0.5 -0.47,2.18 -0.41,3.35 -1.82,0.99 1.36,3.93 -1.65,3.64 -0.82,0.84 0.31,2.38 -1.22,3.04 1.7,1.22 -0.11,2.87 -0.29,4.11 -0.83,2.76 -0.35,5.7 -0.38,8.61 1.13,0.77 2.32,2.24 0.22,2.19 -1.67,0.77 -3.86,1.83 -3.71,4.1 -3.26,-0.23 0.46,3.05 -0.39,4.73 1.93,0.89 5.35,1.9 4.16,4.93 0.05,1.63 -0.21,2.35 -1.8,2.26 -2.59,2.58 2.06,2.09 3.18,0.95 1.95,0.94 4.16,-0.38 5.89,1.16 1.74,-0.08 3.98,-1.65 3.26,-2.69 2.16,-0.61 3.3,-0.11 2.62,2.03 1.99,0.05 3.64,-2.23 5.85,-2.23 1.28,-2.5 4.18,-3.1 5.17,-5.95 -1.75,-1.86 -0.91,-4.39 0.11,-6.51 2.23,0.08 3.58,-0.87 5.81,-1.29 2.4,1.59 4.47,-0.91 6.89,0.03 1.85,0.05 2.21,-2.32 4.09,-1.22 1.02,-1.56 -1.94,-1.95 -0.46,-3.63 -1.01,-1.71 -0.67,-2.54 1.28,-3.16 -0.64,-1.19 -1.85,-3.14 0.59,-2.27 3.2,-0.16 -0.39,-3.09 2.44,-3.84 0.11,-1.36 2.11,-1.25 2.34,-2.32 -1.35,-1.35 -2.61,-1.35 -4.33,-0.87 -0.83,-1.72 0,-2.93 0.73,-4.28 -0.27,-1.41 0.18,-2.58 -1.57,-2.81 -0.08,-1.26 -2.46,0.08 -1.43,-1.87 0.29,-0.92 3.06,-1.11 0.77,-1.96 -2,-1.6 4.65,-0.07 2.85,-3.04 -0.62,0.26 -2.18,0.96 -1.62,-0.5 -2.19,-0.35 -3.93,-1.72 -3.63,-4.09 -1.91,1.44 -2.54,-0.3 -3.11,-1.76 -2.53,1.6 -2.02,-2.84 -4.2,-3.33 -1.26,-1.06 -2.94,-1.79 -1.15,-3.4 -0.57,-2.97 -1.82,-4.38 -5.07,-4.44 z", - "department-10" : "m 415.76,157.34 c -2.6,0.51 -5.55,-0.05 -7.71,1.48 -2.64,-2.28 -2.21,2.93 -5.08,1.84 -1.93,0.67 -1.61,4.36 -4.3,3.88 -0.4,1.61 -1.36,1.64 -2.59,1.72 1.3,3.01 -1.42,4.79 -3.84,3.13 -2.09,-1.39 -6.82,1.14 -6.65,-2.55 -0.6,-0.93 -2.3,-0.55 -2.52,-2.29 -2.04,-2.28 -2.83,1.06 -4.5,1.77 -0.06,1.25 0.93,2.82 -1.41,3.08 -3.5,-1.29 1.33,2.83 -1.65,2.81 -1.9,0.54 0.78,2.64 -0.38,3.85 2.1,0.63 -0.62,5.56 2.52,3.51 3.16,-0.12 4.15,3.44 6.03,5.22 0.01,1.47 3.08,2.04 0.93,3.9 2.08,0.85 -3.12,4.07 0.15,3.27 2.29,-0.8 2.03,4.35 4.19,2.52 1.08,-0.14 0.3,-2.78 1.94,-1.13 0.93,0.76 -0.96,2.98 1.14,2.23 2.34,1.66 1.67,5.24 3.89,6.96 2.43,1.45 -2.11,1.84 0.59,3.02 0.73,-0.46 1.14,-2.22 1.92,-0.23 0.37,1.61 -1.44,4.62 1.62,3.35 1.95,0.01 2.99,-0.54 4.79,0.26 0.99,-3.03 2.57,1.82 4.01,-0.76 0.84,-1.92 1.99,-0.84 2.76,-0.15 -0.14,-1.03 0.29,-2.65 1.27,-1.4 -0.33,2.78 3.95,3.53 3.81,0.39 2.92,-0.59 5.93,0.14 8.85,-0.56 2.39,0.31 2.85,-0.77 1.49,-2.56 2.05,-2.2 4.43,-1.32 6.94,-0.84 2.63,-1.11 0.34,-3.51 -1.25,-4.11 2.37,-0.23 3.32,-3.91 6.03,-1.87 3.03,1.11 1.67,-2.97 2.47,-4.56 1.68,-1.76 -0.94,-2.47 -0.07,-3.99 1.1,-2.25 -0.53,-3.76 -1.25,-5.67 2.38,-2.25 -3.94,-1.43 -2.88,-4.17 -1.47,-0.37 -2.51,-0.25 -2.96,-1.8 0.24,-1.72 -4.18,-2.97 -1.75,-4.03 0.72,-2.19 1.43,-3.93 -1.16,-5.04 -2.33,-0.81 -3.68,3.05 -5.35,0.57 -2.15,0.43 -4.7,-0.92 -6.23,-2.52 -2.9,-1.25 -2.44,-3.78 -2.05,-6.39 -0.16,-1 -0.29,-2.51 -1.75,-2.14 z", - "department-51" : "m 405.08,111.51 c -1.06,0.78 -0.74,4.64 -2.69,2.03 -2.26,-0.62 -3.69,-3.04 -5.85,-0.46 -0.76,1.47 -0.53,3.07 -2.6,1.59 -2.67,0.5 -5.66,1.55 -7.69,3.27 1.02,2.06 1.46,4.73 0.89,6.32 2.55,-0.42 1.18,3.01 3.85,2.11 0.48,4.28 -5.3,-0.05 -6.19,3.06 -0.39,1.65 2.79,4.09 -0.6,4.59 -2.26,3.23 5.49,0.01 3.06,3.78 -2.35,0.83 -2.21,3.44 -4.02,4.55 -0.04,2.3 -3.69,1.38 -3.38,4.24 -1.75,1.12 0.58,4.63 -2.54,3.99 -2.46,-0.16 -1.14,0.3 -0.32,1.22 0.08,0.89 -3.17,1.69 -1.26,2.59 2.53,0.21 3.88,3.9 1.46,5.7 0.25,2.2 1.1,2.12 2.94,1.45 1.92,0.52 2.98,4.27 5.46,4.81 -0.12,4.68 6.56,0.97 8.91,3.79 3.18,-0.68 -0.17,-4.93 3.46,-4.46 0.45,-2.04 3.42,-1.33 3.65,-3.97 0.75,-2.28 4.33,-0.39 4.38,-3.49 1.36,-0.34 2.79,1.39 3.81,-0.56 2.71,0.28 5.46,-1.6 7.64,0.42 0.89,2.81 -1.6,6.2 2.08,7.6 1.6,3.05 5.89,1.61 7.51,3.56 1.84,-1.76 4.32,-2.12 5.98,-0.45 1.91,-1.07 7.38,1.87 5.1,-2.02 -2.42,-2.79 6.05,-2.46 2.44,-5.4 -1.35,-0.11 -4.14,-0.27 -1.58,-1.69 1.66,-0.63 3.72,1.24 5.25,-0.9 2.3,1.31 5.6,-0.99 4.11,-3.45 -1.93,-1.13 -3.33,-3.27 -5.05,-4.35 0.2,-1.89 3.07,-2.43 1.04,-4.46 -0.24,-2.76 1.96,-3.93 4.51,-4.61 2.25,-1.35 -0.39,-2.44 -0.39,-3.09 2.85,-0.57 0.54,-4.33 -1.51,-2.09 2.09,-1.98 1.44,-5.68 -0.12,-8.2 -0.96,-1.63 -1.81,-3.48 0.73,-4.04 -0.24,-1.82 -2.4,-2.81 -3.5,-3.66 -2.15,0.23 -1.49,3.78 -3.82,1.54 -2.45,0 -5.77,-1.84 -7.92,0.23 -2.68,0.36 -2.07,-5.98 -5.47,-3.2 -2.64,0.89 -6.12,0.77 -7.24,-2.32 -2.8,0.56 -4.24,-2.36 -6.09,-4.01 -2.61,-1.4 -5.28,-1.58 -8.44,-1.57 z", - "department-02" : "m 388.2,68.13 c -1.08,1.13 -2.82,3.24 -4.4,1.16 -2.84,-2.2 -4.67,3.68 -7.97,1.02 -2.67,-1.47 -4.82,2.26 -7.41,-0.08 -2.13,-0.29 -5.92,2.27 -2.52,2.96 -2.98,2.53 -3.74,6.36 -5.63,9.48 -1.75,0.96 2.24,2.4 -0.4,3.91 1.95,1.43 2.51,4.94 2.65,7.7 -1.5,0.24 -0.31,2.46 -1.01,3.2 2.8,2.14 0.67,5.53 0.21,7.42 1.3,1.39 -0.62,2.75 2.02,3.19 1.86,2.58 -4.01,-0.19 -2.57,2.99 0.21,2.78 -1.91,6.35 -4.84,5.03 -3.19,2.38 3.18,2.33 1.82,4.68 0.73,2 -0.93,3.6 1.68,4.15 1.16,1.34 2.5,-0.57 2.39,2.15 3.19,1.07 -5.03,3.79 0.04,3.92 2.54,0.03 3.91,4.01 2.15,5.73 2.04,1.28 3.84,3.72 5.3,5.32 1.97,-1.81 1.27,4.11 3.47,1.27 1.13,0.14 0.62,4.1 3.08,3.73 1.02,1.15 2.26,2.18 2.67,-0.16 1.3,-1.34 1.82,-3.4 3.99,-3.73 1.01,-2.49 2.46,-4.36 4.65,-6 0.1,-2.93 -6.07,0.28 -3.5,-3.33 4.06,-0.79 -1.61,-3.63 1.16,-5.63 1.74,-0.53 6.13,1.2 5.33,-1.72 -2.24,0.27 -1.72,-2.21 -3.92,-2.36 2.32,-2 -2.35,-5.73 0.53,-7.34 2.85,-0.42 5.37,-3.57 8.29,-1.65 -0.29,-1.73 3.19,-4.87 4.55,-2.85 1.43,0.76 4.63,3.46 4.24,0.06 0.75,-1.54 -0.52,-3.16 0.75,-4.21 -1.86,-2.09 0.18,-3.94 0.86,-5.41 -1.97,-0.87 0.95,-3.51 -1.67,-4.78 -1.57,-3.69 5.08,0.31 4.01,-3.96 1.21,-2.05 5.54,-3.68 5.14,-6.49 -2.5,-0.39 -0.05,-2.22 -0.82,-3.84 1.25,-2 2.5,-4.89 -0.05,-6.15 1.79,-3.26 -2.77,-4.61 -5.35,-3.57 -2.14,-1.09 -7,-0.34 -5.08,-4.21 -1.57,-0.94 -4.83,3.39 -5.36,0.08 -2.78,-0.3 -5.86,-1.9 -8.53,-1.67 z", - "department-59" : "m 335.57,0.12 c -3.45,1.43 -6.99,2.74 -10.76,2.39 -2.72,1.29 -8.66,1.44 -9.11,3.85 2.44,2.79 3.25,6.62 4.77,9.94 0.43,4.77 5.56,3.66 8.58,4.42 2.32,1.45 -4.63,1.65 -1.51,3.98 2.44,0.67 -1.2,3.42 2.07,2.61 2.93,3.85 6.72,1.92 9.95,3.5 2.19,-0.65 4.1,-0.87 5.68,0.87 0.41,-1.85 2.1,-1.38 0.62,-3.01 2.05,-2.57 7.25,2.09 2.69,2.82 -1.83,1.68 0.07,3.54 -0.61,5.52 2.34,0.14 3.9,-1 3.93,1.59 2.5,-1.01 7,0.2 5.64,3.54 1.27,0.39 3.92,-0.75 2.32,1.89 -3.74,0.21 -4.27,4.12 -0.66,5.49 2.67,1.86 -0.52,2.17 0.31,4.28 2.66,0.03 5.42,1.44 5.6,3.59 -3.49,-0.01 -0.66,2 -1.8,3.32 -2.94,0.76 0.82,2.08 -1.93,3.52 1.19,2.22 -2.19,4.81 1.75,6.08 2.76,1.37 5.33,-1.11 8.08,0.5 2.78,-2.8 7.12,1.76 9.94,-1.66 1.88,-2.21 4.77,3.11 6.2,-0.72 3.06,-1.45 6.64,0.94 9.78,1.44 0.46,3.12 6.54,-3.53 4.81,1.34 0,2.28 5.16,2.43 7.07,2.12 1.13,-1.37 -0.83,-4.12 2.33,-4.63 2.68,-0.88 0.57,-5.07 -0.84,-5.54 -3.3,1 -0.12,-4.14 0.06,-5.58 2.39,-1.25 2.41,-3.76 -0.41,-4.14 -0.6,4.11 -2.68,-3.09 -5.06,-3.38 -1.96,-3.39 -6.66,2.37 -9.45,-1.06 -3.02,-1.09 -5.18,0.58 -6.36,2.66 -3.42,-1.36 -0.95,-6.36 -2.22,-9.19 -1.09,-3.5 -4.72,-3.12 -7.3,-3.15 1.15,-5.24 -5.66,2.5 -7.97,-1.03 -3.9,-1.63 -1.34,-6.5 -3.82,-9.41 1.83,-3.67 -3.12,-4.71 -3.84,-8.29 -2.91,-1.52 -7.12,1 -10.06,2.09 -0.33,4.97 -4.26,1.63 -6.9,0.96 -1.64,-3.04 -3.74,-6.42 -7.35,-5.98 -1.29,-2.74 -2.17,-6.28 -0.14,-8.73 -2.25,-2.77 -2.84,-5.71 -4.09,-8.81 z m 28.08,54.5 0.01,0.01 -0.01,-0.01 z", - "department-62" : "m 313.33,5.46 c -4.94,0.63 -9.82,2.03 -14.3,4.19 -2.31,2.03 -4.44,4.39 -7.41,5.25 0.4,3 1.9,6.23 -0.01,9.07 -1.39,2.89 0.06,6.1 -0.08,9.15 0.12,1.92 1.85,2.89 0.02,4.03 0.23,3.04 -1.19,6.37 -0.33,9.17 2.74,1.63 4.65,4.95 7.93,2.3 3.81,-2.29 6.82,4.56 9.77,1.72 1.01,1.14 -1.99,2.68 0.88,2.9 2.1,1.36 5.3,1.26 4.69,4.15 0.88,1.54 2.94,0.71 3.92,1.37 1.81,-1.07 3.99,-1.33 5.74,-1.4 1.16,1.12 1.77,-0.42 1.57,-0.98 1.33,-0.36 1.77,3.47 2.74,0.75 1.51,-1.51 6.22,0.91 4.51,2.46 -2.54,0.07 -6.33,4.05 -3.27,5.63 1.73,2.15 1.55,-3.53 4.22,-2.43 1.09,-0.01 1.95,2.52 2.26,-0.06 2.83,-0.7 -0.14,2.46 2.59,2.02 1.28,-0.01 4.09,2 4.68,1.23 -1.22,-1.42 0.73,-3.47 2.15,-1.5 3.8,-0.04 -3.11,6.76 1.65,4.07 2.16,-2.39 3.64,-1.2 4.04,1.36 2.23,-1.54 4.16,-0.79 6.67,-1.69 1.7,0.68 3.25,0.84 2.92,-1.52 2.01,-0.93 -0.86,-3.26 1.69,-4.17 -3.08,-1.56 3.06,-1.88 0.19,-3.89 0.22,-1.46 4.13,-1.5 1.13,-2.69 -0.34,-2.78 -7.17,-0.62 -4.12,-4.27 0.8,-2.23 -5.36,-4.49 -3.06,-6.23 1.03,-0.79 5.01,-2.22 2.55,-3.36 -2.01,2.19 -1.83,-1.12 -1.83,-2.28 -1.69,-2.27 -3.83,-0.79 -5.87,-1.11 1.15,-3.86 -4.88,0.62 -3.97,-3.05 1.99,-1.08 -1.84,-2.64 0.61,-4.04 1.4,-1.06 3.51,-1.23 1.17,-2.9 -1.51,-1.43 -4.89,0 -2.23,1.47 -1.85,-0.59 -1.52,3.3 -3.1,0.89 -1.9,-1.78 -4.14,1.01 -6.2,-0.92 -1.66,1.28 -2.66,-1.12 -4.47,0.08 -1.69,-1.59 -4.29,-2.33 -5.63,-3.51 2,-1.35 -3.65,-3.85 0.56,-4.64 3.01,-2.03 -3.3,-1.35 -4.61,-1.78 -3.99,-1.02 -3.27,-5.59 -5.16,-8.44 -1.11,-2.34 -2,-6.31 -5.19,-6.38 z", - "department-08" : "m 440.07,60.88 c -1.81,2.16 -4.2,3.74 -5.88,5.87 0.42,3.23 -0.62,6.85 -4.6,6.61 -2.61,1.4 -5.4,3.78 -8.53,2.23 -2.57,-0.31 -6.87,-3.07 -8.21,0.49 -1.09,2.27 2.57,2.05 1.26,4.47 -0.9,1.91 -2.03,4.96 -1.4,6.42 2.68,1.57 -1.58,4.47 -2.94,5.51 -2.03,1.01 -1.06,5.37 -4.36,3.7 -3.54,0.85 2.51,3.79 -0.29,5.51 1.51,0.87 0.58,2.56 -0.65,3.44 -0.53,1.71 1.98,3.37 -0.03,4.16 0.01,4.05 5.16,0.95 6.98,2.81 3.3,0.55 4.18,4.27 7.37,4.91 1.8,0.07 3.13,4.15 6,2.59 2.07,-0.07 4.96,-2.29 5.47,0.74 0.38,2.71 2.61,2.41 4.09,0.8 2.57,1.18 5.4,0.24 7.56,1.64 0.31,-2.7 3.11,-2.45 4.13,-0.68 1.4,-1.13 3.89,-1.64 4.64,-3.09 -2.15,-1.79 -0.62,-5.71 2.04,-5.88 0.24,-1.22 -1.21,-1.95 0.54,-2.89 0.24,-2.32 -1.77,-3.52 -2.04,-5.72 1.86,-0.63 0.83,-2.98 2.1,-3.97 -0.49,-2.87 2.16,-0.91 2.97,0.03 2.69,-1.68 3.87,3.39 6.05,0.41 0.28,-2.43 4.57,-1.6 3.3,-4.01 -0.97,-0.75 -4.08,1.55 -3.04,-1.15 1.75,-1.77 -2.34,-4.79 -3.97,-3 -1.63,-0.09 -2.52,-1.03 -3.35,-1.82 -2.04,-0.2 -1.16,-4.65 -4.28,-3.56 -2.09,-0.97 -3.75,-3.12 -6.22,-1.46 -1.91,0.12 -3.56,-0.3 -2.44,-2.42 -2.07,-2.68 2.55,-6.08 -1.42,-8.03 -4.13,-0.79 1.05,-4.77 -0.06,-7.24 0.2,-2.35 3.01,-3.4 2.16,-5.95 -1.43,-0.71 -2.14,0.48 -2.93,-1.47 z", - "department-55" : "m 466.47,97.47 c -1.56,1.83 -3.96,2.91 -5.49,4.69 -1.73,-0.62 -3.36,-2.29 -5.13,-1.66 -3.57,-3.74 -2.07,3.57 -4.83,4.43 1.86,1.88 2.97,4.89 1.69,6.85 0.61,2.43 -4.88,3.04 -2.52,6.02 2.38,3.31 -6.19,2.92 -2.28,6.6 -4.21,1.78 0.99,5.9 0.55,8.83 -0.1,1.57 -1.24,3.24 0.94,2.92 1.75,1.64 -1.92,3.15 0.48,3.93 0.25,3.59 -6.19,2.07 -5.18,5.89 1.08,1.97 -0.23,3.47 -1.14,4.72 1.38,2.47 5.49,3.27 5.15,6.61 0.23,1.76 -1.52,5.98 0.78,6.29 1.9,-2.79 1.64,2.85 3.89,1.37 2.31,2.74 5.53,4.67 8.96,5.55 2.27,1.43 4.35,3.02 5.92,5.23 2.69,2.59 4.85,-1.27 7.77,-0.65 1.95,-0.75 1.99,-2.61 4.21,-1.43 3.14,0.06 4.5,-5.18 1.4,-6.29 -3.87,-2.46 6.35,-3.69 1.46,-4.42 -1.47,-2.21 0.74,-5.44 -1.65,-7.38 0.52,-3.01 3.49,-5.5 2.03,-8.71 1.74,-1.41 -2.37,-3.07 0.56,-4.22 1.59,-0.69 4.2,-1.75 1.55,-3.18 -1.32,-1.7 3.57,-5.15 -0.4,-5.57 1.51,-1.93 -0.24,-3.53 -1.91,-2.99 -2.09,-1.69 1.38,-6.16 -1.64,-5.8 -0.54,-2.63 -0.07,-4.79 1.7,-6.78 -2.19,-0.64 -1.63,-2.43 -1.84,-4.23 -1.39,-1.72 -2.89,-6.03 -5.8,-3.74 -2.4,-0.05 -3.98,1.51 -4.61,0.54 -0.96,-0.51 -0.02,-0.62 -1.25,-1.61 0.46,-1.47 -0.85,-2.06 -0.1,-2.7 -0.17,-2.17 1.28,-0.21 0.11,-1.81 -0.06,-2.69 -0.83,-5.88 -3.37,-7.28 z", - "department-54" : "m 483.26,101.56 c -1.75,2.39 -6.72,-0.76 -7.03,2.38 -2.62,-1.44 -7.36,1.12 -6.17,4.43 0.74,4.88 5.26,0.58 8.1,1.48 2.96,1.01 3.57,5.58 4.1,7.38 3.12,1.31 -1.93,3.72 -0.52,5.95 -0.87,2.35 2.62,1.44 1.12,3.56 0.09,2.56 -0.17,4.4 2.68,4.39 0.95,1.44 -0.85,2.5 1.32,3.1 0.08,2.43 -2.65,4.77 0.06,6.73 -1.86,1.53 -5.42,2.68 -2.94,4.96 -0.32,3.14 0.42,6.53 -2.29,8.78 0.3,2.26 1.85,3.57 0.92,5.93 -0.21,2.42 4.1,2.54 0.74,3.73 -2.75,0.52 -2.79,3.37 -0.09,3.76 0.33,2.01 0.1,5.32 3,2.95 5.39,-1.2 1.3,5.69 5.29,7.31 -0.38,3.55 5.14,2.54 6.11,0.87 0.8,0.45 2.56,2.67 3.02,-0.32 0.4,-3.41 3.98,0.7 5.58,-2.34 2.07,-1.7 2.85,1.78 5.26,0.83 2.41,0.96 5.78,-1.97 8.72,-1.33 -0.11,-2.51 2.69,-4.44 3.49,-1.11 1.87,2.12 5.7,3.02 8.46,2.03 1.11,-2.51 3,0.55 4.43,-2.06 1.4,-3.3 8.67,-2.58 5.72,-7.33 -1.28,-1.26 -2.12,-2.52 -2.84,-3.74 -2.12,0.62 -3.12,-2.23 -5.19,-0.6 -3.43,-1.47 -6.2,-3.18 -9.79,-3.87 -0.04,-2.22 -3.9,-2.63 -5.43,-4.68 -2.97,-0.67 -5.52,-2.5 -8.38,-2.2 -1.35,-2.37 -4.49,-3.45 -2.73,-6.5 1.93,-3.82 -4.9,-3.21 -7.26,-3.68 -1.33,-1.55 -2.62,-2.04 -4.55,-3.04 0.53,-3.54 -7.57,-4.55 -4.54,-8.33 3.1,1.07 1.22,-3.19 3.24,-3.88 -1.85,-1.34 -2.22,-2.92 0.05,-3.88 0.24,-1.64 -0.87,-4.88 -1.53,-5.53 -2.45,-0.97 -0.9,-3.36 -2.63,-4.79 -0.94,-2.62 2.2,-6.94 -2.47,-7.44 -1.91,-1.02 -2.61,-3.63 -5,-3.91 z", - "department-57" : "m 503.4,104.95 c -3.5,0.04 -5.26,4.42 -8.98,3.78 -1.89,-0.4 -2.66,-4.83 -4.84,-2.71 4.17,0.85 -0.69,5.81 2.03,8.08 0.95,1.12 1.47,1.12 0.16,1.85 2.72,1.47 3.97,5.18 2.78,8.12 -3.16,1.23 2.9,3.39 -0.76,4.28 0.68,2.17 0.05,3.22 -2.29,2.94 -2.22,3.61 4.41,3.78 4.47,6.79 0.32,2.5 4.34,1.92 4.61,4.09 2.63,0.22 7.9,-0.18 8.05,3.09 -1.51,2.09 -1.02,3.76 1.16,4.61 -0.07,2.41 2.71,3.1 4.16,2.64 2.31,1.86 5.93,1.31 7.61,4.01 3.25,1.89 6.08,3.97 9.68,5.11 1.62,1.34 4.4,1.49 5.37,1.07 1.15,1.63 4.32,0.61 3.99,3.06 2.04,2.55 6.14,5.26 8.81,1.93 1.69,-2.04 5.6,-6.38 2.03,-8.09 -0.63,-2.26 4.24,-5.88 0.71,-8.42 -2.28,-1.08 -5.5,-4.67 -6.48,-0.31 -1.32,2.17 -2.68,0.9 -2.94,-0.66 -3.5,-1.06 4.07,-2.79 -0.09,-3.01 -2.21,-1.11 -5.81,-2.3 -5.04,-4.57 1.13,0.06 2.3,-2.29 3.7,-2.54 0.74,-1.99 0.82,-7.28 3.45,-6.47 0.09,2.59 1.3,4.57 3.75,4.84 3.24,0.28 5.22,3.37 8.36,2.73 2.95,-1.6 5.64,0.34 8.22,0.72 1.73,-1.99 3.39,-5.75 3.26,-7.88 -3.15,-1.08 -5.79,-2.77 -6.37,-6.36 -2.47,-1.1 -4.98,-1.26 -6.78,1.45 -3.22,2.32 -7.72,1.44 -11.17,-0.38 -0.64,3.79 -3.96,0.62 -3.06,-1.79 -1.61,-2.56 -5.77,-3.52 -8.36,-2.33 2.56,4.39 -5.29,4.06 -5.55,1.2 0.78,-2.3 -2.24,-2.11 -2.29,-4.46 -1.24,-2.84 -6.04,-4.38 -3.87,-7.88 -2.52,-2.26 -3.82,-6.64 -8.27,-6.11 -4.17,1.53 -5.59,-3.04 -9.23,-2.45 z", - "department-67" : "m 544.44,133.33 c -2.55,1.2 -1.86,5.34 -3.54,7.57 -2.79,-0.45 -3.98,5.32 -0.38,4.93 0.87,1.03 5.75,1.83 2.14,2.53 -1.78,1.5 1.91,2.4 0.8,3.44 3.07,0.38 2.8,-5.61 5.59,-2.68 1.27,0.5 2.75,1.06 3.36,2.31 3.21,1.88 -0.45,5.47 -1.04,7.67 0.4,1.75 3.37,1.12 1.47,2.94 -0.9,2.92 -2.34,6.34 -5.54,7.14 -1.52,-0.27 -6.22,0.31 -2.38,1.08 1.92,0.81 -2.32,1.02 0.26,2.27 -0.26,2.11 -1.22,5.21 -0.98,7.34 -1.59,2.69 3.49,1.95 4.06,2.53 1.12,2.38 5.28,1.06 5.74,4.01 2.04,-0.84 -0.91,2.57 1.9,1.72 3.01,0.58 6.32,2.58 6.2,5.56 1.67,1.12 3.39,4.4 5.2,1.29 0.87,-3.2 3.75,-5.3 4.22,-8.66 0.15,-2.7 3.74,-3.64 2.22,-6.76 -0.27,-3.01 1.17,-6.05 2.5,-8.7 1.39,-2.29 -0.7,-5.94 1.56,-8.31 1.96,-2.54 5.71,-3.61 6.25,-7.2 0.97,-1.38 2.5,-0.59 3.09,-2.39 3.71,-1.2 3.61,-5.01 5.11,-7.95 0.24,-2.03 5.28,-4.42 1.59,-4.91 -3.51,-0.14 -6.34,-2.15 -9.28,-3.81 -2.69,-1.53 -5.76,0.29 -8.43,-1.4 -2.54,1.19 -6.23,-0.86 -8.22,1.79 -0.69,2.41 -2.45,7.76 -5.69,4.83 -2.43,-2.51 -5.76,1.35 -8.43,-0.25 -1.12,-1.59 -3.01,-2.5 -4.57,-2.09 -2.06,-1.13 -5.18,-2.13 -4.56,-5.04 0.33,-0.23 0.21,-0.84 -0.21,-0.81 z", - "department-88" : "m 543.7,170.72 c -3.31,1.38 -6.33,2.9 -8.64,5.73 -1.29,0.67 -1.97,-1.71 -3,0.67 -1.48,2.53 -4.46,-1.14 -6.53,-0.37 -3.07,0.39 -1.42,-5.29 -4.45,-2.86 -1.72,1.06 0.93,4.33 -2.07,2.2 -1.78,0.74 -4.05,0.76 -5.72,1.72 -1.57,1.83 -1.69,-1.56 -3.59,-0.23 -1.77,0.14 -2.17,-3.2 -3.48,-0.63 -1.05,2.66 -5.79,-1 -5.2,1.97 -0.89,2.75 -2.59,1.71 -3.28,0.37 -0.1,2.4 -3.59,0.58 -5.16,1.87 -1.7,-0.72 0.13,-3.65 -2.1,-3.15 -3.28,-1.76 1.05,-7.74 -3.76,-6.9 -1.91,1.57 -3.93,0.03 -4.94,2.56 -1.62,0.54 -3.6,-1.45 -4.31,0.83 -0.98,2.28 -4.98,-0.54 -5.76,2.63 -1.49,-1.12 -4.76,0.24 -4.44,1.84 2.72,-0.76 -1.5,4.16 1.48,2.83 2.58,-2.8 4.27,0.92 5.47,2.86 0.99,2.29 2.44,-0.84 3.66,1.62 0.19,1.46 -0.14,2.91 2.21,2.73 1.05,0.81 2.84,3.4 0.16,2.99 -1.16,2.1 -0.8,4.9 -2.74,6.18 0.01,1.72 3.18,0.08 3.76,2.45 2.71,0.96 3.73,3.61 3.02,6.15 1.1,2.31 3.31,-2.88 3.5,0.86 1.43,3.89 3.56,-4.88 4.18,-0.76 -1.87,1.59 0.22,2.12 0.99,0.26 2.44,-0.34 2.63,-4.83 6.01,-3.79 2.78,-2.08 1.94,3.16 3.04,3.81 1.67,1.1 3.1,2.11 4.88,0.16 2.8,0.02 6.14,-1.3 7.82,1.99 0.57,3.89 4.42,1.42 5.62,-0.82 2.89,-1.35 3.54,3.7 6.5,4.05 2.19,0.9 3.46,2.55 5.11,3.85 2.21,-0.74 5.19,-1.96 3.36,-4.73 1.56,-1.66 0.35,-4.44 1.89,-6.56 0.98,-1.7 3.7,-2.62 3.88,-5.25 1.52,-1.58 3,-3.43 1.6,-5.14 1.49,-2.96 3.07,-5.84 4.54,-8.75 0.95,-1.35 2.26,-2.99 0.28,-4.02 -1.87,1.29 -5.67,-0.97 -2.92,-2.78 -2.18,-1.78 1.85,-5.54 -0.21,-7.07 -0.57,-0.2 -0.01,-1.38 -0.66,-1.38 z", - "department-52" : "m 446.82,158.96 c -1.69,0.91 -3.13,-0.45 -4.82,1.2 -1.12,-0.83 -4.57,-0.69 -3.54,0.9 2.8,-1.2 4.68,3.32 1.31,3.37 -2.26,0.28 -2.04,1.83 -1.08,2.97 1.74,4.14 -5.82,-1.2 -5.38,2.99 -0.5,1.16 -1.78,3.02 -1.22,3.88 2.37,0.94 2.16,4.62 5.26,4.46 -0.97,2.99 5.41,1.68 2.86,4.7 2.62,1.68 0.37,4.97 1.38,6.77 1.02,1.49 -1.35,3.52 -0.54,5.29 0.17,4.44 -5.3,-1.1 -6.39,2.93 -2.48,1.02 2.31,2.62 0.41,4.4 1.49,1.78 5.61,0.36 3.83,3.87 2.37,-0.59 4.42,1.86 1.79,3.34 0.65,2.75 2.75,-2.78 3.64,0.5 0.65,2.55 3.6,4.14 3.33,6.7 -1.31,0.89 -4.49,2.9 -1.32,2.84 1.47,1.51 -1.34,5.58 1.92,4.46 1.63,-2.16 2.42,0.63 2.94,1.7 1.79,1.42 3.81,1.4 4.82,-0.8 0.79,0.32 -0.13,2.53 1.75,2.49 0.96,1.39 3.18,1.14 1.74,3.15 0.89,2.65 3.78,-3.01 5.24,-0.13 1.75,-1.89 1.15,-6.06 4.57,-5.11 1.28,-1.4 3.49,1.3 4.33,-1.4 1.59,-1.92 1.63,2.72 3.95,1.22 2.18,-0.12 2.71,-1.17 2.09,-3.01 0.93,-1.34 1.22,-2.86 -0.38,-3.56 -0.59,-2.58 1.37,-2.98 3.06,-3.3 -0.71,-3.1 2.46,-1.42 3.57,-1.95 -0.16,-2.01 1.36,-3.53 2.99,-3.36 -0.29,-2.42 -2.17,-4.47 -4.19,-2.78 -1.26,-1.95 0.41,-5.52 -3.04,-6.35 -1,-1.34 -2.58,-2.41 -4.02,-2.13 -1.13,-1.43 1.6,-1.92 0.97,-3.42 1.1,-1.79 0.88,-4.33 2.89,-4.52 -0.46,-2.76 -4.86,-1.71 -3.68,-4.79 -1.34,-2.4 -3.06,0.93 -3.95,-2 -1.16,-2.97 -3.69,-4.38 -6.2,-2.11 -0.59,-1.91 1.12,-3.24 -1.32,-3.92 1.85,-0.41 3.47,-2.52 0.93,-3.26 -0.38,-1.87 -1.16,-2.02 -2.78,-2.58 -1.73,-3.16 -6.41,-1.82 -8.19,-4.99 -2.15,-0.46 -2.78,-2.81 -5.04,-3 -0.12,-2.21 -1.01,-1.61 -2.26,-0.66 -2.79,-0.35 1.41,-5.66 -2.22,-4.93 z", - "department-70" : "m 499.88,202.89 c -2.63,0.3 -4.89,2.11 -5.97,4.12 -0.94,0.91 -3.97,2.32 -2.12,-0.03 0.13,-1.92 -1.88,-0.34 -1.76,0.64 -1.02,1.34 -0.98,3.88 -3.06,3.55 -0.55,1.66 -1.23,4.46 -3.43,2.67 -1.42,0.7 -1.13,3.58 -3.32,2.54 -2.26,2.15 1.83,3.96 -0.2,6.21 1.24,3.12 -4.32,4.77 -5.32,1.82 -0.58,-0.92 -2.73,2.87 -4.37,1.01 -1.22,1.14 -4.49,-0.07 -3.8,2.59 -2.11,1.09 0.1,3.94 1.06,1.41 2.21,-1.57 4.14,3.91 2.96,5.69 -0.66,2.07 -2.95,2.72 -4.23,3.24 1.21,1.06 -1.76,2.05 0.86,1.83 2.25,0.29 -0.16,6.1 3.34,4.24 1.79,2.16 -1.88,5.33 1.36,5.71 1.44,2.16 3.91,4.38 6.57,2.71 2.27,-0.86 4.59,0.16 6.71,-1.75 2.79,-1.14 5.72,-4.18 8.47,-2.76 2.5,-0.09 4.56,-1.97 5.85,-3.76 1.83,0.46 2.61,-0.36 2.86,-1.77 2.63,-0.46 5.27,-1.6 5.54,-4.7 2.29,-1.29 5.83,-3.32 7.88,-0.71 1.23,-0.95 5.65,1.5 4.64,-1.81 -0.18,-2.44 4.57,1.54 3.74,-2.01 -0.12,-2.68 3.06,0.48 4.42,0.6 2.85,1.79 2.94,-3.34 1.04,-4.6 1.68,-2.26 -0.76,-5 -0.83,-7.47 -0.79,-2.86 4.43,-4.21 1.79,-6.71 -2.08,-2.66 -6.24,-2.87 -7.71,-6.14 -2.5,-2.92 -3.93,3.02 -6.8,2.39 -1.62,-1.8 -2.57,-4.88 -5.66,-4.53 -2.96,-0.21 -6.08,3.12 -8.15,0.41 -2.4,-0.51 0.23,-4.03 -2.37,-4.63 z", - "department-21" : "m 430.26,202.39 c -2.98,-0.36 -2.28,3.5 -2.89,4.09 -3.52,0.85 -7.72,-0.28 -10.91,1.13 0.12,1.91 0.16,3.7 -1.78,4.39 -1.43,2.57 2.23,2.59 2.78,2.96 0.78,2.82 0.56,7.26 -3.23,7.04 -0.11,2.16 1.99,3.62 -1,3.9 0.72,2.94 -2.41,6.52 -3.86,9.44 -2.44,2.06 0.03,6.34 -3.4,7.86 -0.01,1.52 1.54,3.57 2.08,4.44 2.08,-1.74 -0.71,3.97 0.05,5.35 0.76,2.06 4.84,0.48 4.74,3.88 -1.32,3.42 1.69,6.38 5.01,6.9 1.3,1.42 0.65,2.78 2.51,1.23 2.03,0.22 0.19,2.75 2.63,2.77 2.7,1.39 5.44,1.37 6.15,4.62 1.34,1.99 4.7,1.98 4.57,4.24 2.88,-1.34 6.42,-1.22 9.16,-3.33 2.31,-0.8 6.07,-0.86 8.14,-1.17 2.91,2.58 6.21,-1.12 9.25,-0.89 2.24,-0.61 1.63,-2.43 0.75,-3.34 1.62,-2.89 6.07,-2.65 6.78,-6.47 1.41,-2.73 2.01,-5.54 2.73,-8.48 0.14,-1.92 1.96,-2.74 -0.25,-3.51 0.43,-2.24 1.54,-5.31 -1.69,-5.06 -0.44,-1.89 -1.3,-4.9 -2.86,-4.55 0.22,-3.37 5.14,-1.91 4.96,-5.91 0.76,-2.96 -2.67,-7.08 -4.51,-2.82 -2.22,-0.25 -3.54,-1.43 -5.3,0.74 -2.39,1.02 -0.78,-3.81 -3.53,-3.94 -1.77,-1.18 -0.62,-3.19 -2.39,-0.9 -3.64,2.12 -4.58,-4.93 -7.28,-2.21 -2.89,-0.45 0.78,-4.91 -3.01,-5.07 0.9,-1.64 5.08,-3.23 1.85,-5.04 -1.35,-1.96 -2.46,-6.59 -4.91,-3.77 -2.57,-0.44 2.15,-3.15 -0.94,-3.86 -1.96,-0.39 -2.06,-0.68 -1.78,-2.38 -2.58,-1.59 -5.78,-1.16 -8.59,-2.28 l 0,0 z", - "department-25" : "m 524.75,232.72 c 0.6,3.47 -5.06,1.11 -4.41,4.65 -1.59,0.18 -4.21,0.28 -5.1,0.07 -2.83,-2.93 -7.31,0.27 -8.34,3.45 -1.29,2.51 -4.23,1.18 -5.23,3.59 -1.44,0.48 -2.41,0.42 -2.71,1.78 -2.17,0.44 -3.6,3.16 -6.39,2.02 -3.22,-0.12 -5.72,2.6 -8.74,3.57 -3.03,0.32 -3.9,3.34 -1.23,5.03 3.1,1.51 4.18,4.87 1.57,7.47 0.1,1.6 -1.31,3.03 -1.29,4.53 1.26,1.41 2.75,-3.16 3.11,0.11 0.9,2.49 4.55,-0.29 4.63,2.13 3.8,0.81 1.81,4.9 4.19,7.22 0.91,2.91 5.17,1.46 6.56,4.25 3.53,2.93 0.14,6.33 -2.84,7.54 -1.4,1.89 0.42,3.62 -1.39,5.19 -0.75,2.81 3.69,5.73 3.76,1.72 2.39,-2.03 4.37,-4.58 7.12,-6.18 2.26,-1.76 5.45,-2.91 6.57,-5.72 -0.74,-2.93 1.48,-6 -0.08,-9.15 0.11,-4.19 6.86,-3.29 9.42,-5.9 2.72,-1.98 2.28,-6.41 5.92,-7.6 2.76,-2.22 4.53,-5.44 7.39,-7.56 -0.61,-3.67 3.46,-4.22 4.78,-6.73 -0.15,-3.82 -4.97,0.07 -7.07,-1.46 0.7,-1.9 3.21,-4.13 1.45,-6.71 -0.76,-1.48 -0.67,-2.19 0.61,-2.92 -0.66,-3.47 -5.22,-3.74 -7.78,-2.34 -1.29,-1.12 -3.19,-0.98 -4.5,-2.06 z", - "department-2B" : "m 591.47,517.82 c -3.8,0.59 0.96,5.58 -2.34,7.11 0.41,2.37 -1.56,4.36 0.27,6.51 0.91,2.65 0.16,5.25 -1.21,7.52 -1.7,1.4 -2.28,-3.59 -4.88,-2.82 -2.72,-0.68 -5.78,0.73 -6.51,3.55 -0.96,3.57 -5.53,1.85 -7.86,3.52 -1.89,1.06 -3.87,1.71 -4.61,3.96 -1.27,0.02 -3.62,-0.97 -3.17,1.52 -0.83,1.46 -4.01,3 -1.97,4.89 -0.74,1.76 -0.34,3.49 -2.71,3.49 -0.21,1.44 -2.22,2.88 0.58,2.71 2.53,1.11 5.12,2.12 7.69,3.24 1.52,0.72 3.8,-1.59 3.24,1.35 1.14,3.16 4.05,4.22 6.73,6.16 3.36,0.28 1.41,5.5 4.55,6.47 1.71,1.96 0.79,6.36 4.83,5.7 0.18,2.3 0.59,4.8 0.39,7.09 3.14,0.81 -1.89,5.25 2.18,4.96 1.78,0.52 2.82,0.98 4.16,-0.94 3.62,-1.36 0.49,-5.59 2.73,-7.46 1.3,-1.69 2.64,-3.75 1.77,-5.45 1.89,-0.05 4.02,-2.43 3.98,-4.66 -3.67,0.56 1.98,-2.55 0.4,-4.61 0.47,-4.5 -0.6,-8.88 -1.01,-13.3 -0.14,-3.75 0.34,-7.67 -0.54,-11.31 -2.55,0.11 -3.67,-4.24 -3.35,-6.45 -0.43,-3.66 1.56,-7.1 1.67,-10.65 -0.63,-3.67 -1.07,-7.33 -1.55,-11 -0.76,-1.12 -2.26,-1.12 -3.47,-1.1 z", - "department-2A" : "m 553.92,559.49 c -0.76,0.55 -0.1,3.85 1.13,1.96 1.53,-0.6 3.16,1.13 1.04,1.7 0.18,1.06 4.56,1.95 3.28,3.75 -1.7,0.83 -4.95,1.13 -5.71,2.43 1.47,0.55 1.4,3.03 1,3.92 1.78,0.17 -1.16,0.99 0.63,1.63 0.63,1.3 2.89,1.78 3.93,2.6 2.01,-0.69 1.72,2.93 3.31,3.71 -1.37,1.54 -4.97,1.78 -3.83,4.58 -1,1.17 -4.84,0.3 -2.28,2.46 0.58,1.07 -0.7,3.38 1.57,2.3 2.41,0.81 4.08,-2.02 6.12,-1.18 1.97,1.46 -0.22,3.37 0.14,5 -2.75,0 1.8,1.85 -1.02,2.54 -3.01,0.03 -0.83,3.83 -3.9,3.99 -1.68,0.23 1.57,0.7 1.54,1.65 1.76,-0.59 3.68,-1.62 3.39,1.11 1.89,0.2 4.59,0.62 6.1,1.72 -1.54,1.28 -2.78,3.54 -5.39,3.37 -1.08,2.57 -0.44,5.65 2.26,6.65 0.47,1.48 3.07,1.49 4.07,2.79 2.06,-0.18 4.37,2.72 5.98,1.13 0.61,-0.03 -0.33,2.68 1.6,1.9 1.78,0.68 -1.94,3.73 1.39,3.43 1.92,2.48 5.07,2.16 5.35,-1.31 -0.28,-1.01 -2.21,1.4 -1.26,-0.4 -1.13,-2.4 4.15,-2.95 2.21,-5.91 -0.37,-2.45 4.29,-3.07 3.59,-5.68 -1.11,-1.47 -3.9,2.07 -2.85,-0.95 0.15,-2.4 3.01,0.56 2.82,-1.99 2.59,-0.18 0.07,-3.36 2.35,-4.13 0.15,-3.28 0.23,-6.85 -0.14,-10.22 -1.57,-1.53 -3.07,3.01 -4.83,0.98 -2.75,0.63 -3.37,-1.87 -1.99,-3.78 0.22,-1.35 -2.56,-0.55 -1.08,-2.17 -0.85,-2.32 1.32,-7.41 -2.67,-6.39 -2.45,-0.98 -0.65,-4.44 -2.73,-5.65 -2.85,-1.24 -1.36,-6.19 -4.82,-6.53 -1.64,-1.96 -4.77,-2 -5.5,-4.65 -1.21,-1.02 -0.51,-3.66 -2.85,-2.55 -2.75,-0.46 -5.3,-1.82 -7.74,-2.91 -1.28,-0.57 -2.84,-0.72 -4.21,-0.9 z", - "department-66" : "m 350.33,540.74 c -2.96,0.38 -4.31,2.8 -5.6,5.05 -3.53,0.71 -7.2,-0.41 -10.77,-0.57 -2.35,1.71 -6.82,-1.75 -7.77,1.56 0.2,2.13 1.85,4.41 0.81,6.44 -1.56,1.89 -4.34,1.3 -5.68,3.47 -1.35,1.08 -2.18,1.99 -3.65,0.52 -2.39,0.04 -5.76,-0.02 -7.25,1.69 -0.99,2.71 -4.23,1.36 -5.45,3.77 -3.15,-0.36 -6.54,2.28 -5.14,5.7 2.43,0.62 5.15,0.58 6.86,2.76 2.19,0.36 3.92,1.1 3.79,3.75 0.25,2.56 3.21,3.71 5.32,2.52 1.96,-1.04 2.2,-4.45 4.97,-3.96 2.58,-0.15 5.03,-1.38 7.33,0.7 1.62,1.14 4.07,1.03 4.94,3.03 1.26,1.86 4.32,3.14 5.35,0.56 1.73,0.75 6.82,2.34 4.14,-1.14 0.71,-2.52 4.05,-2.95 6.3,-2.62 1.56,-1.63 3.48,-3.18 5.81,-2.8 0.99,-2.12 3.1,-0.12 4.88,-0.88 1.63,1.07 2.93,3.67 5.54,2.51 3.2,-0.39 -1.16,-3.71 -1.44,-5.38 -2.92,-1.29 -2.81,-4.63 -3.06,-7.37 0.78,-2.2 -2.64,-2.22 -1.43,-4.12 2.29,1.97 1.16,-2.93 1.55,-4.24 0.36,-2.22 -0.89,-3.89 -3.17,-3.82 -1.26,-1.48 0.41,-4.01 -2.35,-4.33 -1.89,-0.44 -3.32,-1.87 -4.85,-2.81 z", - "department-01" : "m 445.43,302.59 c -1.44,3.02 -1.75,6.16 -3.18,9.18 -0.78,3.16 -1.85,6.34 -2.91,9.5 -0.74,1.88 -1.31,3.79 -0.09,5.37 -0.73,2.05 -2.97,3.67 -1.95,5.9 -1.67,2.26 0.87,5.73 -1.18,7.83 1.88,0.01 3.46,1.61 3.99,2.62 2.16,-1.53 3.89,1.88 4.07,3.41 0.92,1.26 -0.03,3.77 2.46,2.77 2.89,0.46 5.98,-0.89 8.76,0.39 1.35,2.24 3.89,2.93 5.42,0.31 1.18,-1.7 1.66,-5.65 4.09,-5.27 2.02,1.24 3.75,2.88 3.08,4.98 1.95,2.32 3.67,4.97 5.93,6.73 1.33,1.23 0.17,0.8 -0.53,0.61 0.61,1.8 3.11,2.49 3.34,4.83 0.97,0.84 1.38,-1.89 2.87,-1.59 -0.3,-1.63 1.67,-2.68 0.77,-4.34 3.81,0.96 3.71,-3.34 3.75,-5.95 0.89,-3.44 1.98,-6.82 2.27,-10.31 -1.07,-2.3 -1.36,-4.85 -1.09,-7.47 0.3,-1.5 0.9,-3.58 2.27,-1.4 2.48,1.01 0.53,-3.51 3.59,-2.7 2.71,-0.13 3.55,-3.26 1.37,-4.78 1.32,-2.8 5.95,-1.73 6.82,-4.09 -1.66,-3.05 4.61,-7.07 -0.2,-9.19 -2.62,-2.47 -4.13,2.14 -6.1,3.38 -0.9,2.11 -2.5,3.05 -3.65,4.53 -1.99,2.56 -5.47,0.79 -8.11,1.25 0.84,-3.04 -2.73,-3.43 -3.76,-4.72 -2.02,1.65 -3.16,4.49 -6.19,4.68 -2.73,0.46 -1.81,-2.02 -1.56,-3.51 -1.42,0.56 -1.69,-0.36 -2.26,-1.49 -0.06,1.35 -0.96,2.99 -0.83,0.6 -1.4,-1.01 -1.59,-2.59 -1.58,-3.72 -1.32,-0.93 -3.93,-1.28 -2.29,-3.07 -1.76,-1.43 -5.48,-1.31 -5.42,-4.72 -2.13,-0.62 -4.08,0.9 -6.23,1.42 -1.93,-0.36 -3.28,-2.81 -5.2,-1.46 0.07,-0.1 -0.3,-0.68 -0.54,-0.51 z", - "department-39" : "m 472.04,250.64 c -2.16,1.79 -1.36,5.28 -2.94,7.45 0.09,2.73 -2.31,4.73 -3.53,7.05 -3.03,-0.47 -5.35,3.74 -3.19,4.71 -2.06,0.47 -3.73,5.36 -0.52,4.7 1.33,0.76 0.69,4.17 3.48,3.21 1.68,-0.66 1.23,2.18 3.27,2.09 2.46,1.35 -0.2,2.67 -1.91,2.03 -2.06,-0.51 -4.46,1.94 -1.6,2.77 2.43,1.33 -1.33,3.03 1.08,4.08 0.89,2.1 1.19,3.82 2.13,6.05 -2.12,0.95 -0.43,3.73 -3.06,3.72 -1.86,2.41 0.74,4.14 2.3,5.69 -0.13,2.93 -6.18,0.76 -4.86,4.67 0.41,1.69 3.59,1.72 2.72,3.84 0.3,1.7 2.14,1.5 2.39,1.42 0.16,2.17 2.98,0.53 1.91,2.98 -0.9,3.13 3.87,1.82 4.85,0.12 1.46,-0.55 2.58,-4.59 4.24,-1.99 2.29,0.06 2.46,3.2 3.09,3.77 2.93,-0.04 7.08,0.91 8.5,-2.49 2.02,-1.97 3.8,-4.92 6.21,-7.02 2.27,-1.54 0.39,-4.74 2.54,-6.4 1.4,-1.49 3.11,-3.84 -0.06,-3.89 -2.06,-1.17 -3.31,-3.74 -0.87,-5.29 0.4,-1.53 -1.44,-3.09 0.76,-4.19 2.73,-1.36 6.13,-4.43 2.26,-6.76 -1.6,-2.02 -3.91,-2.65 -5.92,-3.04 -1.27,-2 -1.73,-3.98 -2.6,-5.89 -0.82,-0.25 1.22,-2.33 -1.1,-2.27 -1.84,-1.29 -4.2,-1.14 -5.91,-2.76 -0.62,-1.82 -0.09,-1.2 -1.26,-0.03 -2.05,2.08 -3.47,-2.98 -0.74,-2.02 0.76,-1.1 -0.4,-3.36 1.4,-4.52 2.37,-3.1 -2.64,-4.46 -3.59,-6.62 -0.37,-1.97 -2.06,-4.51 -3.97,-2.34 -2.56,0.88 -4.13,-1.12 -5.49,-2.82 z", - "department-68" : "m 549.43,183.82 c -2.25,1 -2.94,3.73 -3.79,5.81 -0.9,2.15 -3.75,4.26 -2.11,6.74 -0.93,2.22 -2.92,4.25 -3.93,6.64 -2.43,1.18 -3.51,3.7 -3.19,6.38 0.13,1.69 -1.55,2.36 -0.44,3.95 0.77,2.64 -4.62,1.97 -2.6,4.52 2.13,1.91 5.37,1.9 7.52,3.96 0.67,1.81 1.6,4.32 0.06,6.09 -1.78,1.43 -0.08,4 1.85,2.88 1.83,0.98 2.47,3.66 3.32,5.16 -0.72,2.04 1.34,2.1 2.39,2.44 -0.32,1.38 -1.23,4 1.33,3.32 1.03,1.33 2.07,1.29 3.35,0.31 2.56,-0.08 5.85,0.35 7.17,-2.31 -0.73,-1.24 -0.96,-2.18 0.78,-1.43 2.66,0.8 0.35,-2.42 2.52,-2.38 0.82,-0.85 -1.99,-1.47 0.03,-2.05 1.88,-1.02 4.21,-2.78 2.05,-4.99 -1.7,-1.63 -3.7,-3.88 -1.43,-6.04 0.91,-2.16 -1.41,-4.57 0.56,-6.71 0.67,-2 0.44,-4 1.78,-5.83 -0.03,-2.09 3.45,-4.94 0.43,-6.95 -3.06,-1.46 0.88,-6.62 -2.19,-7 -1.65,-0.56 -1.53,-2.31 -3.25,-2.51 -0.17,-1.94 -0.33,-3.93 -2.69,-4.35 -2.09,-1.1 -4.78,-1.23 -5.71,-3.58 0.07,-2.15 -2.48,-1.52 -3.79,-2.06 z", - "department-90" : "m 532.37,216.22 c -0.55,0.23 -0.49,0.97 -0.95,1.33 -0.62,0.8 -1.51,1.36 -1.95,2.3 -0.77,0.99 -0.8,2.48 -0.08,3.5 -0.03,0.67 0.48,1.24 0.41,1.93 -0.01,0.83 -0.07,1.76 0.62,2.36 0.29,0.29 0.48,0.66 0.1,0.97 -0.14,0.38 -0.57,0.43 -0.76,0.72 -0.05,0.5 0.53,0.78 0.56,1.29 0.18,0.47 0.52,0.85 0.75,1.28 0.26,0.15 0.87,0.53 0.4,0.81 -0.7,0.47 -0.05,1.72 0.76,1.5 0.78,0.02 1.57,-0.19 2.27,-0.46 0.8,0.18 1.42,0.82 1.45,1.64 0.04,0.86 1.41,0.54 1.43,1.42 0.01,0.47 0.26,1.11 -0.01,1.5 -0.5,0.35 -0.45,-0.64 -0.86,-0.74 -0.5,-0.2 -0.94,0.42 -0.64,0.85 0.2,0.34 -0.18,0.93 0.34,1.04 0.43,0.61 0.84,1.44 0.71,2.19 -0.36,0.5 0.42,0.64 0.75,0.45 0.83,-0.18 1.47,-0.8 2.26,-1.07 0.62,-0.6 -0.22,-1.42 -0.38,-2.05 -0.12,-0.36 -0.45,-1.06 0.17,-1.13 0.42,-0.08 0.81,-0.3 1.15,-0.48 0.96,0.2 1.82,0.91 2.86,0.71 1.1,-0.11 2.47,-0.62 2.45,-1.94 0.16,-1 -0.69,-1.62 -1.41,-2.13 -0.16,-0.46 -0.02,-1.09 -0.52,-1.4 -0.45,-0.55 -0.43,-1.71 -1.38,-1.73 -0.72,-0.12 -1.46,0.05 -1.95,0.59 -0.4,0.24 -0.3,-0.53 -0.6,-0.62 -0.31,-0.79 -0.34,-1.73 0.1,-2.47 0.16,-0.36 0.01,-1.1 0.63,-0.98 0.41,0.01 0.38,-0.37 0.4,-0.64 0.61,-1 -0.15,-2.14 -0.3,-3.13 0.23,-0.47 0.38,-1.05 -0.1,-1.44 -0.8,-1.1 -2.3,-1.18 -3.29,-2.06 -0.38,-0.36 -0.84,-0.58 -1.33,-0.6 -0.84,-0.67 -2.13,-0.38 -2.92,-1.15 -0.45,-0.63 -0.74,-1.4 -0.95,-2.13 -0.05,-0.04 -0.12,-0.05 -0.18,-0.04 z" - } - } - } - } - ); - - return Mapael; - -})); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/france_departments.min.js b/htdocs/public/high/plugins/jquery-mapael/maps/france_departments.min.js deleted file mode 100644 index c615fe06..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/france_departments.min.js +++ /dev/null @@ -1,16 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires jQuery and Mapael - * - * Map of metropolitan France by department - * Equirectangular projection - * - * @author Vincent Brouté - * @source http://fr.m.wikipedia.org/wiki/Fichier:France_location_map-Departements.svg - */ -!function(a){"object"==typeof exports?module.exports=a(require("jquery"),require("mapael")):"function"==typeof define&&define.amd?define(["jquery","mapael"],a):a(jQuery,jQuery.mapael)}(function(a,b){"use strict";return a.extend(!0,b,{maps:{france_departments:{width:600.08728,height:626.26221,getCoords:function(a,b){var c,d,e,f,g,h;return 43.1571>a&&b>8.17199?(c=43.64246,d=181.3452,g=b*c+d,e=-65.77758,f=3346.37839,h=a*e+f):(c=45.48385,d=220.22005,g=b*c+d,e=-65.97284,f=3371.10748,h=a*e+f),{x:g,y:h}},elems:{"department-29":"m 37.28,156.11 c -1.42,1.23 -3.84,1.18 -3.99,3.49 -1.31,-2.24 -8,-0.27 -6.23,1.86 -0.83,0.29 -3.61,-0.09 -4.72,1.08 1.27,-3.15 -2.84,-2.76 -4.74,-1.32 -1.52,0.3 0.5,1.51 -1.67,1.26 -1.43,1.46 -5.78,-1.22 -5,1.7 2.01,2.28 -4.44,-1.17 -2.19,2.21 2.05,2.35 -1.91,-1.21 -3.2,0.17 -2.44,0.46 -5.9,3.28 -4.27,6.2 1.31,1.03 -2.45,2.79 -0.89,4.68 1.85,1.54 -1.54,4.66 1.85,4.99 2.29,0.7 2.49,-2.98 4.87,-0.96 3.08,0.74 5.89,-2.07 8.89,-2.74 1.93,-0.34 5.67,-2.04 6.34,-1.85 -2,1.78 -5.83,1.89 -6.41,4.93 -0.69,1.92 2.11,-0.67 2.33,1.07 1.34,-0.89 2.68,-1.87 3.94,-1.39 3.81,-2.03 -2.75,2.24 0.52,1.99 1.47,0.34 4.01,0.96 4.33,1.46 -1.94,0.3 -3.28,1.07 -4.57,-0.08 -2.38,0.71 -4.58,1.45 -6.63,0.05 -2.75,0.86 -5.75,0.61 -4.18,-2.84 -3.29,-0.24 -0.4,5.1 -3.79,3.67 -1.2,2.84 5.41,0.67 2.62,3.42 0.89,1.41 -0.15,5.78 1.86,2.76 0.83,-2.29 2.62,-4.57 5.09,-2.36 1.97,1.37 5.1,0.79 5.41,4 1.86,2.04 -0.29,6.23 -3,3.6 -3.95,0.62 -7.67,1.95 -11.58,2.45 -2.09,0.38 -5.98,-0.08 -4.41,2.7 2.53,0.06 4.87,1.62 7.03,1.82 2.62,-1.48 5.9,3.16 7.51,5.27 1.61,2.44 2.66,5.4 0.91,7.66 1.94,1.19 5.11,1.18 7.5,0.75 1.99,-0.45 3.16,-2.44 1.04,-3.28 -1.05,-1.98 0.82,-2.27 1.51,-0.45 3.34,0.23 -0.63,-4.11 0.69,-3.65 0.91,2.75 3.66,3.46 5.82,3.53 2.26,0.86 -0.02,-4.66 2.92,-2.01 2.11,1.7 2.69,4.22 4.57,6.13 2.01,0.11 4.17,0.12 6.01,-0.65 1.82,2.12 5.68,2.27 8.25,2.23 1.8,-1.51 -1.55,-4.66 0.95,-5.09 0.94,2.57 3.24,-0.19 3.58,-1.33 2.95,0.23 0.38,-3.13 2.08,-4.2 -0.21,-1.43 -0.64,-3.61 -2.53,-1.94 -1.44,2.09 -1.76,-1.59 -3.7,-1.52 -2.13,-1.41 -5.77,1.37 -6.1,-2.55 -0.44,-2.07 -2.04,-3.22 -2.32,-5.05 -2.23,-0.45 0.49,-4.53 2.59,-4.02 1.42,-1.43 5.76,-1.87 5.77,-3.15 -3.54,-1.5 2.53,-4.55 -0.88,-5.73 0.6,-1.35 -0.87,-3.79 -0.56,-5.72 -3.53,0.13 -1.65,-3.79 0.06,-4.6 -3.56,-1.53 -0.98,-4.21 0.33,-6.05 -1.3,-1.16 -2.22,-1.16 -1.99,-2.94 -3.12,-0.26 -3.41,-4.67 -2.3,-6.54 -0.38,-1.53 -3.23,-0.42 -4.45,-1.94 -2.01,-0.12 -5.18,-1.19 -4.7,2.29 -0.84,1.4 0.25,4.35 -1.82,2.22 -1.36,-0.49 -0.48,-3.38 -2.36,-1.3 -1.28,1.93 -1.52,-3.86 -1.99,-4.38 z m -9.88,28.66 0,0.02 0,-0.02 z","department-22":"m 77.67,146.73 c -2.58,0.94 -4.37,2.6 -5.78,4.84 1.21,-2.76 0.01,-6.18 -2.26,-2.58 -2.86,-0.54 -4.85,2.02 -7.32,2.35 0.05,-2.38 -5.14,-2.89 -4.97,-0.27 -1.65,0.69 -2.79,2.55 -0.54,3.83 1.42,1.41 -3.19,1.12 -1.21,3.58 0.75,2.79 -2.62,-0.53 -2.95,1.74 -2.03,2.25 0.93,5.14 2.73,6.11 -0.89,1.81 3.77,1.87 0.94,3.62 -2.27,1.33 -1.69,4.1 0.71,4.68 -2.37,0.99 -3.54,4.66 -0.18,4.93 -0.75,1.8 0.34,4.07 1.35,3.89 -2.23,1.45 2.07,3.31 -1.02,4.81 -1.32,1.63 3.39,3.81 -0.37,3.46 -0,1.68 3.4,-0.17 4.6,0.64 2.17,-1.15 0.09,3.47 2.84,1.65 2.78,-2.51 5.12,2.28 8.16,0.11 1.28,-1.21 4.21,0.16 3.71,-2.72 2.36,-2.11 5.53,-0.32 6.55,2.07 3.1,-1.66 5.66,1.79 8.52,1.44 1.09,1.13 1.31,4.63 2.54,1.67 1.77,0.69 4.7,-2.67 4.36,1 -1.42,1.92 -0.06,5.98 2.29,3.25 2.15,-1.33 3.24,-3.52 3.71,-5.84 -1.55,-1.8 3.03,-1.29 4.1,-2.17 2.56,0.5 2.84,5.71 5.3,2.6 2.48,-0.52 4.76,-2.21 4.35,-5.23 2.66,1.35 0.38,-3.98 3.68,-3.07 2.3,0.76 0.88,-1.21 2.74,-1.68 0.93,-2.46 3.26,2.1 3.88,-0.74 2.87,-0.05 0.28,-3.49 2.75,-3.67 -0.67,-1.88 -0.1,-4.12 -0.62,-6.07 1.57,-1.46 2.25,-5.3 0.59,-6.78 -0.36,1.32 -2.86,3.56 -2.08,0.75 -0.58,-2.28 -2.24,-1.04 -3,-0.66 -0.39,-2.19 -3.7,-1.69 -4.26,-4.29 -2.01,-0.96 -0.92,3.96 -2.61,1.33 -0.93,2.11 -1.72,-1.85 -2.25,-2.64 -0.23,-2.69 -5.02,3.57 -3.11,-0.38 2.12,-1.4 -0.5,-4.55 -1.42,-1.9 -1.94,1.15 -2.92,1.92 -4.85,1.1 -2.9,-0.12 0.52,1.54 -2.1,2.49 -3.58,0.78 -5.19,5.69 -8.5,5.48 0.49,3.36 -2.74,-0.19 -2.06,-1.81 -2.95,-1.1 -4.73,-3.24 -4.7,-6.38 -2,-2 -5.44,-3.63 -5.11,-6.81 -0.95,-1.07 -6.79,-1.08 -3.38,-3.09 0.47,-2.76 -4.12,-1.19 -3.66,1.11 -0.44,1.73 -2.27,2.41 -0.65,0.39 1.33,-1.47 1.44,-4.62 0.53,-6.14 z","department-56":"m 78.99,190.76 c -3.41,-1.13 -2.2,3.92 -5.32,2.9 -1.41,0.4 -1.19,1.61 -2.99,0.82 -1.13,0.79 -2.69,-0.38 -3.4,-0.47 -0.84,-2.28 -6.08,2.96 -4.76,-1.3 -1.92,-0.69 -4.61,-0.08 -6.81,-0.32 -2.56,1.49 -6.48,1.43 -6.89,4.97 1.66,0.45 1.27,1.18 1.54,2.72 2.29,1.28 1.38,6.71 5.21,4.85 2.27,-0.57 4.21,1.54 5.35,2.54 1.09,-1.75 3.9,-1.39 3.21,0.95 0.1,1.55 -1.11,2.84 -0.3,4.77 -2.2,-0.71 -3.03,4.58 -5.67,1.76 -1.43,0.94 1.23,2.98 -0.19,4.47 0.79,3.11 4.25,6.81 7.21,3.89 -1.96,-1.82 1.17,-1.04 2.08,-2.79 1.53,-1.34 1.85,-1.47 0.72,0.46 -0.96,1.01 -3.43,3.3 -0.38,3.09 1.49,0.45 3.45,4.36 4.77,2.88 -0.27,-2.53 3.83,-3.05 1.1,-5.44 1.05,0.63 2.71,-0.96 2.12,1.15 2.98,0.99 -0.94,3.03 -2.44,3.55 -2.08,3.14 3.5,3.77 1.75,6.92 -0.29,1.59 0.31,5.9 2.13,4.03 -1.68,-0.96 -1.89,-7.61 0.51,-4.94 -0.5,1.26 4.8,0.74 3.44,-1.25 0.35,-0.76 1.34,3.45 1.43,0.83 0.89,1.74 3.91,2.47 1.59,0.06 -0.51,-1.47 -0.02,-3.03 -0.87,-4.45 1.76,1.65 1.37,4.11 4.01,4.31 0.21,-1.28 1.88,-0.67 1.78,-2.23 1.83,0.46 2.89,-0.48 3.79,-0.93 2.28,0.82 -0.59,1.71 2.06,2.43 1.57,0.52 0.39,-4.11 1.62,-1.05 -0.46,2.03 -2.17,6.08 -4.56,4.17 -1.51,0.14 -2.97,0.56 -4.53,-0.67 -3.37,0.66 2.51,2.11 2.17,4.25 2.28,1.57 4.95,-1.33 7.46,-0.04 0.09,-2.03 1.34,-0.88 2.36,-1.71 -1.31,-1.38 4.01,-1.27 0.96,-0.1 0.22,1.93 4.41,-1.17 5.9,0.75 1.01,1.43 4.31,0.26 4.44,1.04 -2.33,0.43 -6.75,-0.69 -5.01,3.23 1.5,1.03 2.59,-3.6 4.01,-0.77 1.99,-0.12 4.3,0.38 4.4,-2.43 0.29,-2.58 2.25,-0.15 3.16,-0.22 1.19,-1.05 2.3,-1.01 2.74,0.42 1.6,-0.29 0.66,-3.06 3.03,-2.61 0.96,-1.59 -0.11,-4.05 1.01,-5.76 -1.21,-2.25 -1.75,-4.67 -1.62,-7.13 1.06,-1.01 4.05,-0.69 1.57,-1.96 -1.94,-0.06 -2.1,-1.17 -0.12,-1.66 0.89,-1.32 3.49,-4.07 1.04,-4.6 -2.47,1.93 -2.55,-3.4 -0.68,-4.04 -0.57,-3.25 -3.22,-4.81 -6.13,-5.41 -2.4,0.4 -4.25,0.1 -2.46,-2.49 0.6,-2.26 5.5,-0.56 4.09,-3.23 -1.75,-0.22 -3.84,2.7 -3.33,-0.63 0.01,-3.41 -3.32,-2.88 -4.84,-1.45 -0.88,-3.11 -3.48,-4.72 -6.36,-3.01 -2.15,-0.01 0.26,2.97 -2.05,3.88 -0.09,2.06 -3.87,4.92 -5.31,3.84 -1.21,-1.39 2.06,-7.27 -1.57,-5.21 -1.38,0.54 -2.88,0.33 -3.62,2.06 -0.18,-2.38 -1.59,-4.23 -4.05,-3.7 -1.5,-2.53 -4.89,-0.74 -6.39,-1.56 -0.77,-1.17 -1.33,-2.65 -3.1,-2.43 z","department-35":"m 134.53,157.78 c -2.29,1.25 -4.29,0.31 -6.19,1.59 -0.35,1.67 -2.93,2.17 -1.16,4.31 0.18,1.71 3.99,2.25 1.51,3.04 0.71,1.27 0.98,3.59 2.33,1.22 1.69,2.12 0.9,4.75 -0.11,6.67 -1.16,1.66 0.84,3.78 -0.19,5.68 1.34,1.46 -2.11,1.58 -0.78,3.48 0.21,2.25 -2.03,-0.13 -2.56,2.08 -1.42,-0.68 -2.58,-1.61 -3.47,0.21 -1.19,0.31 -0.39,2.42 -2.44,1.14 -3.01,-0.11 -1.06,4.1 -3.56,3.46 -0.04,2.21 -0.64,4.46 -2.86,4.2 0.62,1.53 1.56,3.49 1.75,5.16 0.54,-2.03 5.23,-1.03 2.52,0.76 -2.33,-0.69 -5.1,2.03 -3.97,3.88 2.89,-0.33 6.41,0.27 7.93,3.03 1.44,1.66 0.87,2.99 -0.39,4.33 0.11,1.6 0.84,3.69 2.2,1.35 0.71,-0.77 0.83,2.07 1.01,2.45 -1.23,1.26 -2.05,2.91 -3.28,3.92 1.71,0.13 3.61,2.39 0.59,2.1 -2.68,1.22 0.26,4 -0.22,5.86 2.34,-0.34 4.15,-1.76 6.12,-3.07 0.06,2.7 3.03,-0.8 4.56,-0.57 2.43,-1.1 5.63,0.82 7.84,-0.63 3.6,0.5 2.72,-4.87 6.32,-4.78 1.62,-0.77 5.16,-0.84 3.73,-3.31 2.85,-0.62 4.57,1.21 6.54,2.5 1.91,0.57 5.04,2.11 4.63,-1.3 1.15,-1.21 0.6,-2.9 1.92,-3.9 0.7,-1.81 1.08,-4.73 2.39,-6.4 1.07,-2.4 6.58,0.52 5.22,-3.48 -0.09,-3.31 -1.44,-6.24 -2.22,-9.58 0.1,-2.96 -2.26,-6.23 0.02,-8.8 1.83,-2.19 0.74,-5.58 -0.28,-8.01 0.55,-2.21 1.33,-6.39 -2.22,-6.48 -2.56,-0.06 -6.32,-3.21 -7.21,0.93 -2.37,0.79 -4.8,5.49 -7.02,1.82 -2.57,-0.44 -4.28,-3.63 -3.95,-6.18 -0.99,-1.91 -2.39,-5.92 -4.86,-2.88 -3.41,0.04 -8.02,2.16 -10.43,-0.96 -1.67,-2.06 2.03,-3.1 0.24,-4.85 z","department-44":"m 152.12,215.29 c 0.59,4.69 -7.52,2.23 -7.55,6.92 -2.45,2.92 -6.64,1.42 -9.84,1.79 -2.21,0.47 -4.62,2.21 -6.1,1.16 -2.15,1.71 -5.77,2.38 -4.86,5.66 -0.41,1.99 0.14,5.32 -2.78,5.46 0.29,3.39 -2.45,-0.35 -3.39,1.23 -1.97,-0.43 -3.4,-1.22 -3.87,1.43 -1.39,3.38 -7.86,-1.72 -6.53,3.45 1.04,0.36 3.95,1.27 1.26,1.45 -1.78,0.18 -4.38,-0.42 -5.51,2.1 0.81,1.67 6.76,3.88 3.55,5.8 -1.04,-0.85 -4.89,-1.36 -1.91,0.14 1.73,1.23 3.86,1.82 5.03,0.15 2.77,0.79 5.25,4.76 7.99,1.3 2.33,-2.98 5.67,-3.71 9.18,-3.56 3.26,1.31 7.02,1.76 9.14,4.89 0.59,1.56 5.82,2.63 2.15,2.16 -4.08,-0.08 -5.45,-5.45 -9.25,-4.42 -2.59,-1.44 -6.59,-0.45 -8.62,1.17 0.15,2.98 1.07,6.99 -2.64,7.63 1.56,2.78 6.83,0.77 8.69,4.16 2.99,2.74 4.83,7.09 8.9,8.42 0.9,1.88 5.53,0.57 5.08,3.59 3.08,0.7 6.82,2.86 9.67,1.11 2.13,-1.29 -2.55,-2.42 -0.14,-3.94 -2.91,-1.74 -0.81,-8.5 2.35,-5.93 0.6,2.44 -0.71,8.47 3.28,5.3 3.57,-0.9 -1,-7.35 3.9,-6.19 0.83,-0.5 2.39,-4.6 3.91,-1.32 1.06,2.31 6.94,2.33 4.03,-0.72 -1.16,-2.43 -6.27,-0.49 -4.19,-3.49 1.19,-2.09 4.14,-3.59 2.27,-6.58 -0.11,-2.99 -2.79,0.14 -3.66,-2.47 -0.42,-1.81 -2.18,-3.14 -3.54,-3 1.51,-3.16 6.07,-2.52 8.85,-3.95 3.12,-0.79 9.37,1.47 9.71,-3.23 -1.08,-2.47 -1.12,-5.9 -4.66,-5.46 -2.8,0.23 -7.97,-1.25 -5.65,-4.79 1.85,-0.34 7.04,1.35 6.32,-1.48 -2.96,-1.34 -7.7,-2.06 -7.06,-6.38 -0.89,-2.42 -4.47,-2.43 -3.18,-5.19 -2.78,-1.29 -5.51,-2.7 -8.1,-4.12 -0.73,-0.11 -1.47,-0.12 -2.19,-0.28 z","department-50":"m 131.13,90.31 c -1.88,0.95 -0.8,4.82 1.86,4.23 3.56,1.9 1.73,6.62 0.2,9.04 2.05,2.45 3.1,5.7 3,9 0.14,1.74 2.63,0.2 3.07,2.34 0.75,1.03 1.85,2.12 2.19,0.36 1.37,1.6 -1.38,2.27 1.05,3.66 1.37,1.28 0.99,6.4 3.69,4.06 1.9,0.29 2.45,1.19 0.04,0.86 -1.6,1.67 0.46,4.57 0.89,5.74 -2.97,1.02 -0.03,4.32 -0.89,6.45 0.25,4.18 2.26,-2.3 3.97,0.71 -3,-1.64 -2.73,4.63 -1.52,5.52 -1.39,1.53 -0.75,4.59 -2.48,6.57 2.85,1.89 0.3,6.73 3.77,8.41 0.72,3.65 6.47,2.47 6.87,4.86 -3.09,-0.67 -6.13,1.28 -9.29,0.14 2.12,2.48 1.69,5.44 3.35,8.16 0.49,2.03 2.9,1.69 3.89,3.28 2.85,0.97 3.52,-2.95 6.22,-3.35 0.5,-4.19 4.83,-0.16 7.12,-0.52 2.46,0.21 4.49,2.11 6.88,1.58 1.14,-3.4 4.72,2.61 6.05,-1.83 2.14,-1.71 4.11,-4.11 4,-6.8 -2.86,-1.65 2.62,-4.05 -1.04,-4.65 -1.19,-1.03 -1.99,-2.17 -3.44,-2.39 0.65,-1.72 0.69,-2.24 -1.24,-1.46 -2.15,-1.56 -3.83,-1.87 -6.18,-1.16 -1.5,-0.55 -4.16,0.68 -4.02,-2.14 -1.26,-0.78 -4.15,-1.48 -1.38,-2.84 0.99,-1.27 1.76,-1.9 2.97,-1.76 1.12,-1.18 3.8,-4.02 0.24,-2.9 -1.76,-0.83 1.02,-4.16 2.87,-2.17 3.08,-0.43 3.89,-3.82 6.01,-5.35 -2.27,-0.59 1.2,-4.39 -1.22,-5.32 -2.09,1.3 -1,0.15 0.07,-0.89 -1.07,-1.07 -4.55,-2.49 -1.49,-2.88 2.17,-1.47 -0.09,-4.82 -1.5,-1.9 -3.17,0.81 -5.99,-2.78 -7.94,-5.02 -1.69,-1.95 2.34,-3.94 -0.73,-4.53 -0.02,-1.64 -2.94,0.31 -1.33,-2.17 1.04,-2.89 -2.27,-4.45 -3.47,-6.64 -1.37,-1.99 -4.59,-6.54 -0.56,-7.31 0.17,-1.79 2.56,-1.35 1.09,-3.59 -0.43,-3.65 -3.79,-3.85 -6.83,-3.94 -3.88,-1.03 -4.69,4.08 -8.52,3.07 -3.16,1.2 -5.48,-1.83 -8.81,-1.65 -2.47,0.02 -3.19,-2.65 -5.7,-1.92 -0.51,-0.38 -1.01,-1.1 -1.74,-0.94 z","department-53":"m 208.55,167.1 c -1.01,1 0.05,3.16 -1.88,3.54 -1.52,-1.01 -2.64,-0.44 -3.16,1.13 -2.16,0.27 -4.3,-2.6 -6.35,-0.72 -2.51,0.71 -4.34,2.89 -6.91,3.52 -1.47,-0.07 -0.73,-3.05 -2.63,-1.24 -1.44,-0.25 -1.57,0.24 -1.23,1.52 -1.95,1.91 -3.12,-1.9 -4.31,-1.2 -0.57,-2.91 -4.17,-1.79 -5.68,-3.27 -1.71,1.43 -3.54,2.05 -5.24,0.23 -1.62,1.36 -0.04,4.11 -0.87,5.96 1,2.8 1.94,6.2 -0.3,8.68 -1.8,2.64 0.64,5.51 0.63,8.4 0.26,2.57 1.34,4.89 2.01,7.32 0.27,1.9 0.56,4.67 -2.4,4.46 -3.58,-1.21 -3.75,3.46 -4.8,5.71 -0.32,2.32 -3.14,4.44 -1.31,6.55 2.18,1.99 5.34,0.43 7.83,1.57 1.63,0.66 3.95,1.05 3.53,-1.27 2.64,-0.54 3.9,3.91 6.54,1.42 2.25,1.91 5.27,1.85 7.94,2.38 1.76,-0.55 3.96,-1.63 5.33,-1.8 0.74,-3.63 3.49,1.65 5.63,-0.72 3.1,-0.49 -0.69,-2.25 -1.75,-2.95 -1.24,-2.55 5.38,-2.7 2.17,-4.78 -2.1,-2.18 2.21,-3.41 3.9,-3.25 2.7,-2.12 -2.9,-5 -0.82,-7.18 1.54,-1.12 5.56,-0.07 4.23,-2.96 2.04,-1.51 -2.56,-3.7 0.57,-5.19 2.14,-0.95 4.31,-2.8 2.75,-5.2 0.4,-1.84 1.4,-3.83 0.29,-5.45 0.84,-2.27 2.74,-2.67 4.64,-3.69 0.49,-2.31 0.11,-5.38 -2.99,-3.91 -2.18,-0.9 -2.07,-4.02 -1.67,-5.52 -0.9,-1.11 -2.32,-1.86 -3.72,-2.1 z","department-49":"m 163.22,217.21 c -0.83,2.37 -1.6,5.33 1.37,5.86 1.81,2.08 0.91,5.95 4.42,6.63 2.22,0.05 6.13,2.61 1.99,3.38 -1.68,0.33 -6.88,-1.51 -4.42,1.8 -0.28,3.95 5.62,1.28 7.64,2.98 2.45,0.74 1.41,5.07 2.67,6.48 -2.29,2.93 -6.35,1.4 -9.46,1.86 -2.75,1.47 -6.15,1.11 -8.63,2.95 -2.19,2.35 2.81,0.48 2.57,3.2 0.31,2.29 2.55,1.71 3.57,1.87 1.63,2.89 1.11,5.74 -1.65,7.56 -1.38,3.05 3.73,1.85 4.64,4.57 0.65,0.86 -1.19,3.33 1.44,2.98 2.09,1.51 5.06,-0.93 6.83,0.87 2.12,0.24 3.87,3.37 5.76,0.52 2.61,-0.75 5.23,0.76 7.87,-0.16 3.45,0.68 4.18,-2.89 4.98,-5 2.46,-1.53 5.74,1.7 7.32,-1.15 3.52,-0.32 7.2,-1.11 10.47,-0.77 1.05,1.17 -2.26,1.94 0.29,2.63 2.66,0.88 1.49,-3.86 4.67,-2.23 0.32,-1.55 1.08,-6.07 4.26,-4.7 1.02,-3.55 0.54,-7.68 3.15,-10.63 1.2,-1.75 2.78,-3.33 2.02,-5.32 0.89,-2.49 1.94,-4.87 2.33,-7.52 -2.3,-1.25 2.95,-6.06 -1.28,-5.83 -1.14,3.4 -4.78,-0.25 -6.77,-0.21 -1.89,-1.86 -5.83,-3.95 -7.59,-1.47 -2.9,0.48 -5.51,-3.13 -2.87,-5.2 -1.31,-0.36 -3.53,1.25 -5.3,-0.11 -1.96,-0.38 -3.12,0.57 -3.07,-1.96 -1.12,-2.87 -4.12,0.14 -5.77,-2.2 -1.77,-0.71 -0.8,2.61 -3.03,1.75 -3.13,1.53 -6.89,1.32 -10.17,-0.06 -1.72,-2.25 -3.57,1.59 -5.08,-1.25 -0.8,-0.99 -3.72,-1.84 -2.9,0.37 -3.4,0.17 -6.97,-0.89 -10.18,-1.14 -0.72,-0.44 -1.37,-0.99 -2.14,-1.36 z","department-85":"m 161.28,265.2 c -0.97,1.7 -1.54,3.91 -3.7,2.64 -1.76,1.98 1.21,6.33 -3.05,6.68 -4.15,2.13 -1.3,-4.19 -2.86,-6.14 -3.81,-0.88 -3.43,4.2 -2.06,6.39 -1.18,1.59 2.88,3.89 -0.56,4.36 -2.8,1.01 -5.58,-1.25 -8.45,-1.27 -0.94,-1.21 -1.09,-3.22 -3.4,-2.64 -2.06,0.15 -1.35,-2.2 -3.49,-1.71 -2.48,-1.21 -5.24,-7.8 -7.15,-2.42 -0.59,3.85 -5.53,4.8 -4.91,9.21 0.37,4.17 5.72,4.87 7.16,8.67 2.67,2.58 4.99,5.43 6.65,8.8 0.87,1.89 0.24,6.13 2,6.75 0.16,-1.73 0.12,-2.45 1.07,-0.5 1.66,2.86 6.15,2.45 7.02,5.1 3.4,-0.42 6.93,0.3 7.04,4.36 1.27,2.81 4.49,-1.27 6.02,1.84 2.09,-0.13 3,3.11 4.96,3.02 -0.36,-3.97 4.41,-1.93 6.48,-3.3 1.71,-1.96 4.7,-2.5 6.81,-2.37 -1.17,1.68 -0.83,3.92 1.65,2.75 2.07,-0.36 4.04,-2.66 5.25,0.14 2.09,1.8 3.55,-0.97 5.61,-0.12 1.62,-1.38 3.3,-2.9 5.04,-3.72 0.18,-2.56 -3.47,-1.87 -3.87,-1.44 -0.63,-2.59 1.8,-5.29 -0.47,-7.7 0.94,-1.38 2.03,-1.54 1.08,-3.45 0.09,-2.1 -0.29,-4.13 -1.61,-5.22 0.65,-2.15 -1.16,-2.52 -0.79,-4.52 -1.57,-1.94 -3.3,-3.94 -1.89,-6.5 -1.72,-1.62 -5.39,-2.92 -5.22,-6.11 0.38,-2.29 -3.29,-2.9 -3.68,-5.31 -1.81,-2.01 -4.49,-1.74 -7.1,-1.32 -3.49,-1.03 -6.73,-2.66 -9.6,-4.96 z","department-79":"m 211.41,263.54 c -3.47,1 -7.46,-0.24 -10.55,2.01 -1.54,0.87 -3.61,1.5 -3.45,-0.55 -2.89,-0.11 -3.46,3 -4.1,4.64 -2.76,1.84 -6.3,1.53 -9.35,1.02 -2.77,-0.37 -6.01,2.62 -2.55,4.27 1.05,2.29 0.26,5.24 3.5,6.22 3.7,1.27 0.35,4.83 3.08,6.91 1.95,2.46 1.89,5.88 3.13,8.43 0.79,2.29 0.53,5.23 -0.6,6.69 2.08,1.92 -1.04,5.98 0.79,6.87 2.26,-2.05 4.86,2.6 1.35,3.21 -1.82,2.1 -4.84,2.03 -7.01,3.55 -1.92,3.7 2.7,4.91 3.24,8.13 1.44,0.37 2.62,0.88 2.81,2.1 3.32,-0.93 5.83,3.57 8.63,3.01 2.89,1.17 6.03,0.6 8.47,3.22 3.7,-0.54 3.87,6.56 7.56,4.57 1.73,-2.11 1.24,-5.98 4.87,-5.81 1.63,-2.21 4.23,-2.49 6.45,-1.63 1.55,-1.48 2.11,-4.78 -0.83,-4.33 -3.29,-1.46 -1.71,-5.49 -0.5,-7.4 1.75,-0.97 0.56,-7.43 -1.84,-3.75 -2.3,2.89 -5.28,-1.21 -4.22,-3.39 -2.48,-2.03 -1.19,-5.37 -2.68,-7.99 1.33,-2.02 1.71,-4.55 3.11,-6.42 -0.55,-0.92 -2.28,-2.13 -2.08,-2.45 -3.66,1.58 0.19,-4.05 1.24,-5.25 2.3,-2.33 -3.14,-3.07 -0.93,-5.56 1.44,-1.85 -3.47,-1.82 -0.33,-2.92 3.33,-0.16 0.56,-1.18 -0.24,-2.53 0.5,-2.54 0.1,-5.85 -1.91,-7.36 -1.96,-0.52 -0.38,-5.88 -4.15,-4.77 -2.43,-0.12 2.22,-3.17 -0.9,-2.74 z","department-17":"m 175.73,312.62 c -2.1,1.05 -4.89,0.98 -6.33,3.16 -2.59,0.12 1.24,4.72 -2.26,5.02 -2,0.79 -4.42,5.17 -2.11,6.01 2.93,0 2.49,3.17 4.17,4.84 0.72,1.37 3.67,5.65 0.03,4.87 -2.18,0.36 1.95,2.77 0.48,4.24 1.55,2.23 0.05,3.13 -1.55,3.46 -0.38,1.57 -2.23,1.63 -0.92,3.81 0.7,3.56 3.92,5.46 6.53,7.53 -3.66,-0.31 -5.1,-4.96 -7.98,-5.25 -3.89,-1.1 -3.52,4.91 -2.88,6.67 2.74,-1.46 4.76,2.94 7.48,3.54 3.34,1.31 3.69,5.42 7.19,6.15 4.09,3 7.55,7.17 8.5,12.27 0.26,3.76 5.67,2.29 7.12,1.56 -1.08,5.27 6.99,0.78 7.08,5.12 0.92,1.82 -0.24,5.87 1.93,6.53 3.38,-1.84 5.25,4.16 8.91,4.29 2.53,1.16 3.84,-3.72 5.99,-0.43 0.42,-1.35 1.41,-3.02 1.97,-3.79 -0.43,-1.67 1.72,-4.75 -1.44,-5.53 -1.82,-0.53 -4.59,0.36 -3.27,-2.54 -1.47,-1.11 -5.11,-3.27 -7.08,-1.29 -2.02,-1.16 -0.75,-3.34 0.78,-3.22 -1.02,-0.53 -4.64,-2.27 -1.19,-3.33 4.28,-0.66 -2.5,-4.27 0.56,-5.26 2.44,-2.46 -2.28,-2.77 -2.54,-4.29 2.17,-2.32 -2.75,-3.59 -3.55,-5.14 -2.87,0.92 -0.97,-2.62 0.33,-2.63 -2.65,-1.14 -0.44,-4.4 -1.57,-5.27 -2.89,0.77 -1.45,-2.34 0.53,-2.18 1.34,-1.34 4.68,-0.44 6.11,-2.14 2.35,-0.74 2.26,3.5 4.57,1.02 2.44,-0.29 1.26,-3.78 2.59,-5.17 -1.46,-1.93 -1.99,-4.68 1.15,-4.47 0.21,-2.43 -3.03,-4.09 -3.83,-6.1 -0.81,-1.69 -4.49,-0.9 -5.2,-3.54 -1.75,0.56 -3.25,0.45 -4.22,-0.82 -1.42,1.85 -1.72,-1.94 -2.91,-0.25 -3.3,-0.03 -3.97,-4.4 -7.72,-2.73 0.56,-2.08 -4.7,-2.08 -3.15,-4.59 -0.87,-1.66 -4.22,-2.08 -2.44,-4.29 -0.3,-2.54 -4.15,-5.59 -5.48,-2.93 -1.22,-0.57 -5.78,1.4 -3.85,-1.55 0.3,-0.71 0.63,-1.62 -0.55,-1.38 z m -24.48,7.33 c -2.5,0.03 -3.87,1.14 -1.7,3.09 3.95,0.17 7.19,2.31 10.9,3.68 3.89,-1.05 -3.64,-4.87 -5.82,-4.1 0.29,-2.41 -4.61,1.24 -3.83,-1.48 1.5,1.02 1.83,-1.02 0.46,-1.19 z m 4.27,13.72 c -0.7,1.54 2.03,3.7 0.87,5.86 3.02,2.81 6.53,5.8 7.08,10.16 2.32,-1.62 3.28,-6.49 0.08,-7.91 -0.51,-2.29 -0.47,-5.1 -3.54,-5.11 -1.46,-1 -2.65,-2.71 -4.49,-2.99 z","department-33":"m 170.37,365.5 c -2.88,2.39 -3.66,6.38 -3.67,9.99 -0.06,6.47 -0.57,12.93 -1.99,19.26 -0.93,8.17 -1.59,16.38 -2.58,24.55 0.15,2.18 -1.38,7.44 -0.06,8.1 -0.08,-3.31 1.98,-7.54 4.36,-8.96 1.97,1.72 7.34,5.74 3.76,7.49 -2.73,1.04 -6.38,-2.36 -6.38,2.52 -1.52,2.69 -2.74,7 -1.06,9.24 2.84,-0.63 5.96,-2.27 7.61,-3.75 2.03,1.26 5.7,0.92 3.77,4.43 -2.89,4.65 3.5,-0.33 5.45,2.23 3.86,1.51 7.87,-3.74 11.26,-0.84 -1.42,4.09 4.44,3.2 5.19,6.56 1.94,1.37 4.07,0.77 4.89,3.31 2.18,0.86 -1.21,6.6 3.33,5.68 2.58,1.12 6.14,0.42 4.75,-3.03 1.75,-3.72 3.17,3 5.62,1.04 3.5,-1.1 3.84,-4.91 0.95,-7.06 1.78,-1.99 6.6,-1.58 3.43,-5.47 1.27,-2.35 -1.77,-5.16 1.09,-7.2 -1.95,-2.11 4.08,0.01 3.42,-3.48 2.15,-0.49 2.85,-2.17 2.61,-3.54 1.82,1.01 2.01,-3.15 -0.54,-1.86 -1.24,-1.31 -2.01,-2.64 0.2,-3.47 -0.33,-1.44 2,-1.21 2.56,-1.67 0.96,3.46 0.77,-3.24 2.88,-0.59 3.44,-0.12 -2.08,-5.38 2.19,-5.6 -0.3,-3.57 -4.29,-0.98 -5.16,1.24 -2.94,-0.94 -4.42,-0.02 -6.92,-0.52 -0.48,-1.95 -5.24,-0.86 -1.96,-2.84 3,-2.61 -1.26,-5.76 1.74,-8.21 0.18,-2.65 3.61,-7.86 -1.4,-8.03 -1.8,0.66 -3.02,1.85 -4.53,-0.13 -2.79,3.68 -7.23,0.65 -9.47,-1.85 -1.02,0.81 -2.89,-3.34 -3.74,-0.02 -1.83,-2.9 -1.15,-5.89 -1.94,-8.56 -2.49,-1.97 -7.58,0.6 -7.16,-4.13 -0.99,3.32 -7.86,-1.7 -5.65,3.47 1.12,5.25 -0.04,11.74 4.13,15.79 1.6,0.97 5.46,1.4 5.09,3.59 -1.14,-1.76 -5.95,-2.2 -2.42,0.16 0.89,1.86 0.32,4.86 0.46,6.96 -0.86,-3.57 -0.31,-7.65 -4.4,-9.5 -4,-3.65 -3.81,-9.3 -4.62,-14.2 -0.83,-4.14 -2.82,-8.05 -6.26,-10.61 -1.82,-3.68 -6.55,-3.9 -8.36,-7.63 -0.3,-0.84 1.03,-2.73 -0.47,-2.88 z","department-40":"m 169.77,433.93 c -1.39,4.09 -9.03,1.92 -8.11,7.38 -1.02,7.04 -1.81,14.11 -3.21,21.09 -1.27,6.3 -2.02,12.7 -3.64,18.93 -1,6.23 -2.25,12.44 -3.8,18.55 2.58,-1.5 3.77,4.05 6.97,1.91 3.34,1.32 5.68,-3.95 8.44,-2.39 2.07,1.33 0.83,1.91 -0.48,2.62 2.25,0.71 3.66,-2.53 5.72,-0.83 1.43,1.01 3.09,-0.31 2.14,-1.78 2.65,0.58 4.62,-1.18 7.1,-0.71 0.89,-0.91 2.56,-0.97 3.4,-1.93 1.42,1.18 2.14,3.21 3.39,1.18 1.9,-0.75 2.12,-1.21 2.41,0.33 1.62,2.42 3.07,-1.23 4.2,0.55 1.35,-0.65 5.1,-4.97 5.14,-2 -2.25,3.45 3.32,-1.25 4.51,1.48 1.42,-0.66 5.29,-2.61 3.41,-4.06 -2.62,-1.1 2.2,-2.69 0.51,-4.53 -0.4,-2.09 3.75,-3.09 1.72,-4.6 0.25,-1.62 -1.17,-3.73 0.82,-4.32 -0.1,-1.59 -0.15,-2.99 -0.15,-4.15 -3.84,-1.04 1.14,-3.46 2.82,-3.81 1.4,0.08 1.6,0.86 2.46,-0.49 1.85,-0.5 2.29,-3.87 4,-0.74 -0.03,1.42 -1.08,2.56 1.12,3.35 3.85,1.54 0.42,-3.68 2.06,-5.19 -1.31,-3.01 1.52,-6.01 2.73,-8.67 -3.45,-0.68 -6.76,-2.36 -10.44,-2.46 -3.14,0.72 -0.38,-5.12 -3.37,-6.17 -1.68,-2.94 -3.31,0.33 -2.44,2.4 -1.45,2.03 -6.15,0.75 -7.76,-0.49 0.06,-2.43 0.64,-4.45 -1.66,-5.74 -0.75,-1.94 -4.67,-0.97 -4.92,-3.99 -2.01,-1.55 -5.69,-1.4 -4.21,-4.64 -1.24,-2.31 -3.79,0.2 -5.94,-0.34 -3.05,3.71 -7.01,-1.41 -10.49,1 -4.03,1.42 2.63,-4.52 -0.65,-5.54 -1.61,0.68 -2.43,-1.07 -3.83,-1.21 z","department-64":"m 211.2,495.72 c -1.9,1.07 -4.71,-0.23 -5.99,2.39 -1.98,0.52 -4.11,-1.44 -6.18,0.45 -1.47,-0.65 2.04,-3.79 -1.1,-2.24 -1.84,1.1 -3.29,3.13 -5.1,2.48 -1.96,1.45 -5,-2.73 -6.29,0.37 -1.3,-1.42 -2.42,-3.2 -3.7,-1.06 -1.86,0.3 -2.9,1.44 -5.06,0.79 -0.86,1.97 -4.19,-0.71 -3.64,2.4 -2.25,0.68 -5.49,-1.09 -7.26,1.32 -3.27,-0.97 2.34,-1.26 -0.09,-2.53 -2.18,-3.25 -4.64,2.8 -7.39,1.71 -2.74,0.92 -5.67,0.14 -7,-2.21 -3.51,1.11 -4.76,4.93 -7.06,7.37 -1.86,2.09 -5.86,0.94 -7.14,3.17 0.39,1.82 2.63,2.08 2.45,4.31 2.16,-0.79 5.47,-0.83 4.92,2.37 1.44,2.55 2.98,-0.5 3.6,-1.51 2.37,0.53 4.98,1.17 7.12,1.91 1.21,3.15 -0.34,6.66 -1.84,9.39 -3.7,1.82 -0.21,5.81 2.82,5.62 2.52,-0.18 0.25,-6.64 4.3,-5.38 -2.77,2.45 0.66,4.77 3.15,4.41 2.76,1.62 4.75,2.53 7.73,3.53 2.51,0.74 4.11,3.68 7.28,2.92 2.81,1.52 7.35,-3.02 7.16,2.26 -1.02,2.96 3.25,2.28 4.34,4.46 1.78,1.41 3.01,6.8 5.13,3.41 1.29,-2.94 5.1,2.52 7.14,-0.85 1.53,-1.11 3.1,-1.71 2.2,-4.29 -2.14,-2.89 3.19,-3.06 1.08,-6.08 -0.73,-2.21 1.82,-2.45 1.78,-4.48 3.8,1.19 0.42,-4.25 3.06,-5 2.06,-1.26 1.63,-4.46 4.21,-4.01 0.61,-1.33 0.15,-2.87 1.47,-3.33 2.68,-2.17 -1.51,-4.94 1.51,-6.75 3.94,0.18 -1.17,-3.74 0.89,-5.91 -0.71,-3.82 -1.88,1.82 -3.23,0.54 -0.52,-1.85 0.16,-3.46 1.54,-4.09 -0.91,-1.78 -0.41,-4.39 -2.84,-4.92 0.66,-3.73 -2.6,-1.04 -3.99,-2.95 z","department-65":"m 216.99,494.91 c -1.84,0.25 -2.8,4.03 -0.53,4.11 1.88,1.3 0.29,3.67 2.23,4.92 -1.93,0.09 -2.67,2 -1.81,3.38 0.3,1.54 2.42,-3.88 2.78,-0.62 0.04,1.77 -0.37,4.08 1.04,5.66 -0.74,1.52 -3.19,0.65 -3.23,3.06 1.46,1.22 1.22,2.8 0.07,4.31 -0.99,0.9 -1.52,1.78 -1.24,3.38 -1.18,1.4 -2.47,-0.59 -2.75,1.65 -0.31,2.34 -3.5,2.62 -2.83,5.08 -0.23,1.21 0.77,2.46 -1.27,2.75 -1.74,-1.03 -0.67,2.29 -2.47,2.46 -0.22,2.15 1.18,4.49 -1.44,5.52 0.13,2.35 0.39,5.58 3.33,6.26 1.51,1 2.85,2.84 4.69,1.37 -0.57,1.85 1.47,3.6 2.41,4.96 1.56,0.38 2.66,3.5 4.75,1.97 1.8,-0.64 3.96,-1.24 5.98,-1.71 2.21,-1.74 5.92,-0.18 6.53,2.47 2.16,1.45 2.84,-4.54 5.11,-1.48 1.05,2.42 6.1,0.26 2.72,-1.38 -0.47,-1.86 -0.16,-4.75 -0.08,-7.05 -0.01,-1.71 0.82,-4 2.68,-2.21 3.39,1.23 2.02,-4.26 4.56,-5.2 1.78,-1.39 -1.78,-2.01 -0.27,-3.71 -0.3,-0.99 -0.83,-2.98 -1.65,-1.25 -1.08,0.21 -3.2,2.39 -2.44,-0.12 -0.09,-1.57 2.08,-1.37 1.06,-3.26 -1.4,-1.24 -3.29,-2.47 -4.49,-3.12 -2.02,-2.1 3.51,-3.46 2.42,-5.76 0.93,-0.47 4.3,-0.56 1.96,-2.04 0.32,-1.95 5.47,-3.77 2.06,-5.05 -2.3,-1.28 -4.63,-0.69 -6.84,-1.39 -2.1,2.1 -2.26,-2.3 -4.28,-0.93 -1.76,1.3 -0.81,-1.74 -2.47,-1.53 -0.55,-2.46 -4.01,1.85 -5.67,-0.21 0.62,-1.85 -3.42,-2.4 -1.35,-4.21 1.51,-1.16 -1.9,-2.45 -1.19,-4.22 -1.14,-1.21 -3.48,-0.65 -4.39,-2.66 -2.13,-0.62 -0.57,-4.95 -3.7,-4.22 z","department-32":"m 246.37,463.78 c -1.87,2.87 -5.69,0.08 -7.22,3.28 -1.88,1.49 -4.2,0.57 -5.81,2.33 -2.39,-0.54 -4.55,-3.39 -6.11,0.1 -0.16,1.89 -1.71,0.96 -1.7,-0.3 -2.5,0.36 -4.05,2.53 -2.63,4.96 0.01,3.29 -6.18,-0.5 -3.3,-1.85 -0.54,-2.21 -2.13,-1.97 -3.07,-0.29 -1.34,0.89 -1.71,2.04 -3.36,1.03 -1.68,0.34 -3.48,1.37 -4.38,2.76 1.22,0.28 3.13,1.71 1.37,2.42 1.01,1.6 0.51,3.2 -0.73,3.83 -0.07,2.44 2.42,4.6 -0.76,5.86 -1.18,1.63 0.66,4.33 -1.94,5.01 -0.42,1.69 2.27,1.13 1.62,3.13 2.18,-0.55 3.63,0.28 6.01,0.22 1.55,-0.54 3.47,-2.96 4.82,-0.45 0.15,2.77 2.68,4.35 4.51,5.25 2.48,-0.68 1.19,3.49 3.25,4.21 -0.48,0.88 -2.09,2.3 -0,3.14 1.28,0.27 0.25,2.29 2,2.07 2.01,0.08 3.81,-1.91 5.13,-0.1 0.83,0.3 0.34,2.73 2.13,1.32 1.65,-1.02 1.99,3.25 3.69,0.87 2.91,0.44 5.72,1.25 8.79,1.59 2.28,-1 2.83,-4 4.96,-4.85 -0.08,-1.97 1.2,-2.17 2.72,-1.09 2.04,-2.03 5.8,0.4 7.36,1.79 1.25,2.38 1.53,-1.44 1.56,-2.27 1.63,-0.08 0.78,-2.07 1.64,-3.14 -1.95,-1.43 1.97,-2.65 1.07,-4.39 -0.66,-1.2 0.97,-1.78 2.08,-0.85 0.33,-1.45 2.39,-1.29 3.2,-2.18 2.33,0.7 0.78,-3.33 -0.81,-2.33 -0.96,-0.86 -0.26,-2.97 -2.3,-2.06 -1.55,-0.33 0.33,-2.07 -1.76,-1.78 -1.88,-0.75 0.92,-3.18 -2.09,-3.14 -1.61,-1.44 -2.45,-4.37 -4.36,-5.15 -3.35,1.69 1.17,-3.08 -1.5,-3.24 0.76,-1.49 -1.03,-2.76 -0.22,-4.22 -1.16,-1.24 -2.92,-1.03 -4.29,-1.63 -2.35,1.17 -1.75,-1.94 -0.23,-2.55 1.5,-1.23 1.3,-2.73 1.39,-4.08 3.53,-0.83 -1.38,-2.38 -2.33,-0.22 -1.18,0.08 -0.41,-3.33 -2.53,-1.63 -1.28,0.69 -2.36,3.52 -3.35,0.81 -0.67,-0.82 -1.46,-1.92 -2.53,-2.18 z","department-47":"m 230.07,418.5 c -0.81,0.77 -0.9,3.82 -1.83,1.38 -1.82,-0.02 -3.21,2.14 -3.88,3.3 1.04,0.9 2.08,1.66 3.3,1.8 -0.04,1.51 -1.7,2.55 -2.03,4.05 -1.55,0.64 -2.55,2.47 -3.24,3.29 -3.01,0.59 -4.44,4.14 -2.78,6.75 -1.33,1.76 2.46,5.68 -1.08,5.69 -2.16,-0.16 -3.67,2.4 -1.25,3.45 1.89,2.62 -1.53,5.28 -3.79,5.58 -0.01,1.94 -0.52,5.85 2.43,4.84 2.83,-0.58 4.82,1.94 7.53,1.7 1.96,-0.36 2.73,1.43 1.07,2.55 -0.51,2.08 -4.01,5.95 -0.67,6.93 1.39,-0.27 1.71,-1.54 2.32,0.34 1.42,0.2 1.56,-3.84 3.99,-2.43 2.21,2.53 4.49,0.26 7.07,0 2.57,-0.7 3.69,-3.71 6.77,-2.71 1.7,-0.39 3.39,-2.44 4.44,0.28 1.31,3.29 3.19,-0.23 4.88,-1.16 0.36,-1.62 1.13,-2.69 2.56,-3.54 -1.25,-2.97 5.51,1.65 4.18,-2.52 -0.96,-0.29 -2.25,-1.68 -0.22,-2.14 2.35,-0.03 2.05,-4.03 2.4,-5.78 -1.23,-1.07 -4.15,-1.71 -2.2,-3.71 -0.38,-1.68 1.32,-4.27 2.55,-1.77 1.53,0.85 4.19,-0.22 5.25,-0.41 0.48,-2.12 -0.42,-3.89 -1.57,-5.33 0.06,-1.97 -1.67,-5.18 -1.15,-6.13 2.23,0.07 5.01,-2.93 1.78,-3.93 -1.73,-2.48 -5.12,-2.94 -6.92,-0.28 -2.08,2.1 -3.89,-1.44 -2.14,-3.04 0.26,-1.39 -1.37,-4.01 -2.62,-1.92 -2.44,1.01 -5.83,0.37 -7,-0.95 -2.41,-0.18 -2.86,2.94 -5.17,1.62 -2.31,0.8 -5.39,2.91 -7.69,0.67 0.42,-2.17 -0.14,-6.16 -2.93,-6.02 -0.81,0.25 -1.86,0.44 -2.38,-0.43 z","department-31":"m 290.02,474.31 c -1.06,1.38 -2.08,2.2 -3.14,1.27 -0.58,4.46 -6.27,-1.79 -5.29,3.06 -1.9,-0.93 -3.5,1.28 -0.64,0.98 2.48,2.1 -3.77,2.63 -4.93,4.19 -2.22,1.21 -0.1,-1.87 -2.62,-1.46 -1.27,-3.41 -2.92,1.42 -4.53,-1.01 -1.38,1.57 -7.9,0.39 -4.49,3.87 1.19,2.36 4.47,2.68 3.64,5.37 2.67,0.06 0.55,2.9 3.52,1.95 0.58,0.93 0.66,2.79 2.12,2.09 2.71,3.12 -2.63,3.32 -4.16,4.93 -1.1,-1.53 -1.56,1.15 -1.34,1.61 0.44,1.44 -2.97,2.2 -1.16,3.88 -0.09,2.59 -2.4,2.6 -1.68,5.18 -1.9,1.75 -3.41,-2.85 -6.25,-2.48 -1.97,-0.25 -2.83,1.49 -4.6,-0.2 -0.73,3 -3.35,2.98 -4.53,6.1 -1.7,0.77 -1.89,0.75 -1.75,2.05 -1.29,1.74 -3.85,2.87 -2.67,4.97 -1.64,0.77 -2.86,0.43 -2.8,2.37 -2.19,1.55 -3.92,4.34 -0.36,4.93 1.97,0.94 4.52,4.07 1.77,4.79 -1.3,4.88 3.7,-2.96 3.72,1.66 0.49,1.32 -0.65,2.24 1.07,3.28 -2.79,1.64 -2.18,9.05 -6.68,5.6 -1.73,2.41 -1.93,7.77 -0.38,10.18 1.27,3.59 5.97,0.17 8.88,1.83 2.51,-1.92 -1.95,-5.09 0.25,-7.4 -0.76,-3.42 2.9,-4.02 4.93,-2.32 1.62,-0.12 4.31,1.32 2.68,-1.53 -0.93,-1.79 -1.4,-4.59 1.53,-4.74 -1.15,-3.31 5.98,-1.18 5.47,-5.37 -2.22,-1.5 -0.83,-5.26 0.13,-6.33 2.45,2.03 0.85,-3.56 3.56,-1.87 1.66,-2.07 2.75,0.56 4.53,0.43 1.14,1.96 2.46,4.41 4.04,1.37 2.25,-2.5 -5.64,-2.56 -1.56,-4.98 1.91,-0.32 6.85,-0.7 5.84,-3.41 -3.62,0.11 -4.71,-4.72 -0.54,-4.92 1.7,1.78 3.23,3.99 3.46,6.31 3.43,1.14 2.88,-2.05 2.74,-4.44 1.24,-0.74 2.86,2.59 3.98,0.85 2.05,0.25 3.31,3.93 3.51,0.42 1.87,-1.02 3.37,-2.54 3.2,-4.86 1.65,-0.79 5.11,0.92 3.61,-2.58 0.23,-2.56 3.55,-6.11 4.18,-1.52 0.52,0.87 1.91,-3.3 3.78,-0.91 2.24,0.69 2.87,-1.22 1.62,-2.8 0.91,-0.95 2.23,-3.84 -0.03,-2.5 -1.07,2.43 -6.09,-0.82 -6.91,-3.1 -0.98,-3.43 -6.75,-3 -7.98,-6.29 2.91,-1.68 0.76,-3.48 -1.25,-4.16 3.26,-0.53 0.29,-2.11 -0.5,-3.7 0.64,-3.06 -3.23,-3.07 -3.17,-5.79 -1.79,-0.87 -1.06,-3.76 -1.85,-4.82 z","department-09":"m 281,514.26 c -1.93,0.45 -2.81,3.42 -0.61,3.74 0.47,1.06 3.65,0.84 1.91,2.92 -1.78,0.48 -2.86,1.94 -5,1.65 -1.94,-0.47 -2.72,3.01 -0.2,2.59 2.24,0.58 1.95,2.32 0.27,3.21 -1.24,2.42 -2.69,-0.31 -3.19,-1.7 -1.18,-0.65 -2.35,-0.74 -3.49,-1.68 -1.21,1.5 -3.6,0.41 -3.5,3.08 -0.69,0.69 -2.14,-1.23 -2.07,0.85 0.78,1.23 -1.59,1.79 -0.08,3.25 -1.18,1.45 2.43,1.96 0.17,3.11 -0.33,2.96 -5.7,1.12 -4.88,4.08 -1,0.73 -3.51,0.76 -1.93,2.67 -0.14,2.58 1.36,4.98 3.85,6.04 1.3,1.43 2.44,-0.82 3.84,0.84 2.2,0.69 5.28,-0.08 6.42,2.49 -0.04,2.84 2.56,2.9 4.54,2 2.27,0.7 5.31,-0.62 6.28,1.97 2.47,1.03 1.46,6.42 4.53,5.84 0.33,-1.46 -0.02,-3.65 2.25,-2.77 2.58,-1.67 3.67,2.32 6.42,1.51 1.59,0.01 4.16,0.09 3.44,2.23 1.96,0.82 4.9,1.1 6.14,-0.77 0.17,-1.61 2.36,0.02 3.34,-1.21 1.09,-1.15 1.09,-3.64 3.34,-2.57 1.75,-1.21 4.32,-0.24 5.87,-0.95 0.4,-2.48 -3.41,-3.46 -4.42,-5.35 -2.08,0.81 -4.89,2.28 -6.69,-0.08 -1.29,-0.72 0.48,-2.24 -1.27,-3.27 -1.88,-0.45 -2.07,-2.21 -0.54,-3.2 2.84,0.11 5.65,-1.41 4.42,-4.62 -1.62,-0.54 -3.31,-2.15 -0.6,-2.68 1.86,-1.01 -0.44,-3.29 0.61,-4.77 -1.01,-0.87 -2.68,-1.46 -1.18,-2.69 -0.07,-1.43 -0.47,-4.45 -2.45,-3.41 -0.92,1.43 -0.96,-2.2 -2.67,-1.24 -2.3,-0.25 -5.38,-1.98 -6.1,-3.66 0.91,-1.6 -0.72,-3.91 -1.67,-5.05 -0.92,0.6 -1.38,4.39 -1.98,1.49 -1.2,-0.67 -2.47,-1.05 -3.16,-0.2 -0.47,-1.65 -2.24,-0.25 -2.45,-1.94 -1.91,1 1.34,4.52 -1.22,4.39 -1.46,2.03 -3.74,-0.79 -2.75,-2.52 -1.34,-0.95 -2.09,-3.13 -3.54,-3.63 z","department-11":"m 322.74,505.07 c -2.05,0.87 -0.82,6.47 -3.43,3.37 -1.24,-1.83 -5.19,2.71 -5.61,-1.17 -0.96,-1.29 -3.24,1.91 -4.87,-0.09 -1.63,-0.8 -2.35,3.52 -2.64,0.63 -0.96,-2.44 -1.93,-1.82 -2.84,-0.31 -0.91,1.07 -1.52,2.84 -0.93,4.7 -1.36,0.65 -4.52,-0.56 -3.73,2 -2.59,1.87 -0.87,4.71 -0.49,7.11 -1.27,1.72 2.24,1.99 3.14,3.2 1.19,0.53 2.27,1.21 2.96,0.05 1.12,0.9 1.35,2.64 3.05,1.69 2.12,0.9 2.09,4.11 1.18,5.21 3.13,0.75 0.58,4.42 2.61,6.09 -0.39,0.99 -3.64,-0.55 -2.72,1.47 3.15,0.22 2.69,5.73 -0.43,5.57 -2.23,-0.56 -4.71,2.43 -1.69,3.29 1.21,1.07 1.25,2.2 0.94,3.14 2.17,2.52 4.98,0.67 7.49,0.33 1.51,2.48 4.82,3.48 4.44,6.58 1.77,-0.41 3.17,-3.16 4.49,-3.39 3.31,0.6 4.11,-3.13 3.04,-5.57 -1.83,-2.22 -0.3,-4.53 2.45,-3.77 2.55,1.09 4.79,-0.72 7.38,0.01 2.84,0.15 6.37,1.82 8.78,-0.17 0.65,-3.39 5.24,-6.04 7.54,-2.78 1.85,0.63 5.78,4.21 6.08,0.38 -0.45,-2.41 3.52,0.65 2.08,-2.31 -2.01,-0.09 -2.51,-4.47 -0.81,-3.38 -1.64,2.12 0.92,2.66 1.07,0.34 -0.46,-2.15 2.38,-4.6 1.05,-6.15 -2.36,0.27 -1.35,-5.67 0.64,-3.13 -2.54,0.73 1.01,4.03 1.12,0.84 1.32,-2.4 3.72,-4.96 4.13,-7.43 -1.48,-1.18 -2.13,-3.67 -4.25,-2.51 -1.21,-1.56 -3.82,-0.43 -5.13,-2.43 -2.87,1.08 -0.98,-4.2 -4.12,-2.08 -1.35,-0.41 -2.91,-0.78 -3.72,-1.82 -0.39,1.7 -3.42,0.2 -2.88,2.31 -1.03,1.88 -2.16,4.69 -4.29,2.05 -1.21,-0.21 -0.6,-4.63 -2.32,-1.66 -2.18,1.62 -3.12,-0.12 -3.87,-2.12 -3.09,-0.03 -1.41,-4.42 0.31,-5.1 -2.19,-1.27 -5.18,-2.28 -7.77,-1.42 -1.98,2 -4.51,-1.63 -6.72,-1.15 -0.21,-0.07 -0.4,-0.62 -0.72,-0.42 z","department-34":"m 390.74,470.95 c -2.99,-0.26 -2.82,5.22 -4.91,4.05 -0.85,-0.82 -3.55,2.9 -1.7,3.78 -2.23,1.02 -3.63,-1.19 -4.2,-2.93 -1.16,0.9 -4.89,3.4 -3.25,0.24 -0.72,-2.79 -3.95,-1 -5.3,0 -2.69,-1.07 -4.43,1.99 -3.3,4.01 -2.19,2.21 -5.5,0.8 -7.8,-0.28 -1.78,1.11 -0.38,3.61 -0.42,5.05 -1.55,1.49 1.67,5.37 -2.24,4.09 -1.98,-1.46 -4.85,0.46 -4.95,2.6 -2.71,0.38 -5.15,2.58 -7.61,2.47 -1.2,-2.9 -5.65,-2.66 -5.41,0.83 -0.2,2.13 -0.02,4.29 2.09,5.91 -1.23,1.35 0.72,3.85 -1.77,4.6 -0.84,1.05 -3.22,1.42 -1.8,2.86 -2.1,0.55 -3.27,4.78 -0.38,4.9 0.41,3.09 3.29,3.1 4.71,0.7 1.12,1.12 0.35,3.34 2.55,3.76 2.97,1.15 1.66,-5.18 5.05,-4.27 1.09,-0.26 0.38,-2.58 1.62,-0.55 1.21,1.33 3.32,1.66 5.28,1.1 -0.81,3.2 2.64,2.34 4.33,4 1.73,-0.69 2.59,1.52 4.38,0.6 1.39,1.92 3.62,4.56 5.52,1.34 2.58,-2.15 5.39,-4.64 8.99,-3.22 1.68,-2.14 3.28,-4.7 5.33,-6.66 2.9,-0.94 5.12,-2.93 7.63,-4.62 1.32,-0.52 2.38,-2.93 0.36,-1.17 -0.86,0.97 -3.9,2.82 -4.09,1.95 2.86,-0.54 3.94,-3.18 5.35,-4.98 2.22,-0.89 3.15,-3.57 5.97,-3.69 2.76,-1.69 5.46,-2.2 8.14,-1.32 3.13,-2.28 2.15,-5.6 0.6,-8.52 -0.42,-1.85 -2.64,-1.51 -3.41,-3.24 -1.72,-0.64 -2.58,-4.02 -5.12,-2.47 -0.36,-1.17 1.06,-3.05 -1.22,-3.23 -1.16,-1.21 -1.48,-2.47 -3.51,-1.47 -2.48,1.54 -3.44,-1.7 -1.82,-3.25 0.15,-1.49 -1.98,-1.29 -2.11,-2.79 -0.5,-0.22 -1.04,-0.13 -1.56,-0.19 z","department-81":"m 317.26,455.8 c -1.38,0.45 -1.96,1.61 -3.59,0.76 -0.3,1.95 -3.52,3.22 -5.56,2.27 -1.35,-1.6 -1.97,-0.02 -0.95,1.04 -0.95,0.36 -4.67,-1.27 -3.47,1.46 -0.16,1.66 -2.33,-1.92 -2.18,0.76 -1.1,0.98 -2.79,-1.57 -4.48,-0.74 -2.96,-0.67 -1.32,3.31 0.16,3.83 0.79,1.92 -1.89,3.01 -2.42,4.25 -1.32,0.93 -1.16,3.17 -3.54,1.88 -3.23,0.63 2.44,1.72 -0.33,3.16 -1.29,2.54 1.59,4.57 1.92,6.82 3.43,0.3 1.18,4.78 4.33,5.68 1.56,1.28 -3.01,2.06 -0.13,2.25 2.4,0.02 1.46,2.84 -0.02,3.51 0.41,1.89 3.59,2.46 5.14,3.73 3.27,0.27 2.72,5.06 6.14,5.64 1.57,0.82 3.54,1.72 3.47,-0.75 2.28,-0.44 1.4,2 0.21,3 0.06,1.82 2.22,2.93 2.93,4.31 2.14,0.3 3.89,-2.52 5.16,0.35 2.18,0.85 0.37,-3.47 2.64,-4.11 1.88,0.14 4.42,2.05 6.83,2.16 2.71,-2.86 6.35,1.58 9.11,-0.98 1.2,-0.64 2.07,-1.84 2.78,-2.36 -0.59,-1.87 0.29,-4.05 -1.8,-5.38 -0.4,-2.17 -0.06,-5.25 1.22,-6.85 1.68,0.37 3.78,1.08 4.87,2.68 2.13,-1.79 6.04,-1.49 7.35,-3.74 0.82,-2 0.39,-5.04 -2.37,-4.51 -1.51,-1.26 -3.19,-1.55 -4.19,0.39 -2.37,0.97 -5.11,-0.89 -6.55,-2.85 -1.52,-2.15 -3.76,-4.35 -2.85,-6.85 -1.52,-0.96 -0.28,-3.74 -2.85,-4.01 -0.47,-0.84 1.76,-2.39 -0.4,-3.07 -0.29,-2.52 -2.16,-4.07 -4.11,-4.88 -0.57,-2.53 -3.81,-3.32 -5.31,-4.22 -0.15,-2.48 -4.32,0.72 -4.86,-1.12 1.44,0.14 3.17,-1.78 0.74,-1.46 -0.91,0.39 -2.23,-1.71 -3,-2.06 z", -"department-82":"m 270.52,443.01 c -2.14,1.16 -4.19,2.19 -6.63,2.16 -1.8,1.76 -1.62,-2.78 -3.54,-0.83 0.31,1.77 -1.92,4.88 1.19,4.85 2.39,1.55 0.09,4.21 -0.3,6.31 -0.44,1.21 -4,0.94 -1.6,2.01 1.97,0.84 -0.06,4.23 -1.88,2.4 -1.71,-1.22 -1.76,0.34 -2.14,1.6 -2.88,-0.32 -2.21,4.49 -0.81,4.92 0.76,-1.3 4.97,-1.27 3.43,0.36 -1.84,1.04 -0.66,3.8 -2.94,4.81 -1.25,0.84 -0.68,2.87 0.84,1.84 1.82,0.52 5.75,1.1 3.97,3.56 1.04,0.67 0.69,2.25 0.98,2.38 1.77,0.78 -1.98,4.07 1.01,3.39 2.26,-0.43 4.92,-0.42 6.74,-1.49 1.27,0.58 2.39,0.31 3.28,-0.35 1.56,0.75 2.53,2.41 3.56,2.88 1.74,-0.62 2.22,-2.04 4.12,-2 1.89,-0.5 1.91,-2.44 -0.22,-2.07 -1.95,-1.13 1.52,-1.46 1.74,-1.49 -0.38,-2.02 1.51,-2.5 2.7,-1.14 2.06,1 2.76,-3.06 4.11,-1.34 0.99,-1.05 2.54,-1.76 3.38,-2.23 -0.31,-0.89 -2.82,-2.03 -0.52,-2.27 3.19,1.02 3.39,-3.02 5.79,-4.18 1.52,-1.98 -2.9,-3.42 -1.35,-5.63 1.94,-1.07 4.17,0.24 5.66,0.61 0.71,-1.21 1.03,-1.65 2.08,-0.63 0.24,-1.33 0.21,-2.59 2.09,-1.85 1.1,0.24 2.24,0.41 1.15,-0.79 0.51,-1.8 4.19,2 3.66,-0.96 -0.31,-2.1 -2.39,0.61 -2.47,-1.31 -3.3,-1.19 0.65,-3.45 1.77,-4.89 0.21,-2.45 -4.44,-0.16 -4.38,-2.98 0.49,-1.88 -1.6,-1.91 -2.4,-1.54 -1.21,-0.58 -1.91,1.84 -3.15,0.41 -2.28,-0.21 -4.04,4.15 -5.85,2.74 -0.79,-2.47 -3.62,0.05 -1.56,1.51 0.31,2.35 -3.95,2.36 -3.07,-0.25 -2.24,-2.68 -3.51,1.69 -5.86,2.39 -1.45,2.53 -2.73,-0.71 -4.63,-0.48 -0.83,-1.02 1.91,-4.61 -0.86,-3.31 -1.97,2.14 -4.17,-0.81 -5.73,-2.04 -1.54,-0.03 -2.07,-2.27 -2.71,-3.05 0.48,-0.77 3.85,-1.24 1.34,-2.04 z","department-12":"m 344.82,407.22 c -2.14,2.24 -4.92,3.53 -5.91,6.44 -0.2,3.05 -2.88,4.6 -2.81,7.85 -2.78,1.77 -2.83,6.44 -7.03,4.76 -2.85,0.81 -3.66,-2.92 -6.7,-0.63 -2.79,-0.18 -0.5,4.84 -3.68,4.44 -1,2.09 -4.35,0.18 -4.99,0.68 -2.27,1.36 -4.93,3.35 -6.47,5.56 -0.5,0.74 -1.33,-2.39 -1.72,0.49 -3.55,0.2 0.23,4.71 0.28,6.73 2.91,2.12 -2.27,3.27 -0.47,5.85 1.39,1.46 5.91,0.06 3.8,3.53 -3.1,-0.35 -2.94,5.1 0.37,3.8 0.84,2.24 2.93,2.1 3.97,0.28 0.64,-0.72 3.02,-0.92 4.38,-1.29 0.38,2.53 5.59,1.47 2.9,3.68 1.7,0.61 3.86,-0.93 4.36,1.52 3.19,-0.21 4.33,4.36 7.18,4.97 1.07,2.25 3.3,4.6 2.21,6.63 2.23,0.9 1.85,3.49 2.9,4.9 -1.38,2.72 2.8,5.25 4.08,7.58 2.19,1.85 5.01,1.88 6.77,-0.28 2.08,1.32 5.71,0.5 5.44,3.99 1.27,0.35 3.33,-1.02 4.93,0.31 1.97,-0.43 -0.03,-3.71 1.21,-5.08 -2.26,-3.18 1.08,-5.37 3.72,-2.96 2.82,0.94 5.31,-0.91 4.29,-3.64 1.04,-3.15 6.02,0.38 5.11,-4.28 0.93,-2.39 7.18,-5.33 2.04,-7.25 -1.51,-0.47 -2.97,-0.34 -3.42,-2.06 -1.73,1.9 -3.93,-2.51 -0.51,-1.95 0.48,-1.6 1.14,-3.68 2.65,-4.73 -0.68,-4.43 -9.42,2.3 -6.63,-3.08 -1.18,-1.25 -3.15,-1.32 -3.65,-2.81 -2.6,0.85 1.8,-4.01 -0.75,-5.21 -0.72,-3.41 2.21,-7.15 -2.14,-9.54 -0.76,-2.6 0.83,-5.86 -2.52,-7.49 -2.49,-2.83 -5.19,-5.99 -4.63,-9.9 -1,-0.3 1.62,-2.72 -0.79,-2.1 -2.92,-0.77 -0.83,-7.54 -5.15,-5.36 -2.76,2.56 0.68,-4.65 -2.57,-4.34 z","department-46":"m 289.52,399.9 c -1.93,0.63 -3.22,2.08 -5.19,2.51 -0.55,2.48 1.91,5.04 0.2,6.77 1.53,1.17 0.68,2.13 -0.64,2.71 -0.49,1.39 -2.82,1.08 -2.03,3.22 -2.04,0.31 -3.93,1.87 -1.84,3.73 -0.63,1.48 -1.5,2.57 -2.96,3.19 -1.15,2.55 -6.2,0.92 -4.86,4.75 -0.81,1.54 -2.94,2.2 -2.41,4.25 -2.21,-0.14 -3.42,2.82 -5.02,1.78 1.06,2.16 1.42,4.31 1.76,6.68 1.42,0.87 1.66,2.27 1.65,3.98 1.08,0.06 4.12,-1.76 2.93,0.81 -1.71,0.25 -2.37,1.31 -0.78,2.24 0.3,2.25 3.42,1.16 3.62,3.37 1.9,1.69 3.3,-0.16 5.08,-0.35 0.72,1.57 -2.26,4.22 0.76,4.02 1.46,0.62 1.81,2.15 3.19,0.31 1.85,-0.6 3.07,-3.05 4.33,-3.46 2.43,-0.2 1.29,4.21 3.91,2.83 1.72,-1.05 -1.79,-4.67 1.45,-4.27 1,-0.03 1.35,3.17 2.11,1.18 -1.32,-1.83 1.53,0.24 1.9,-1.51 1.38,-1.16 3.1,-1.29 4.45,-0.92 0.2,-1.96 1.81,0.11 2.71,-1.11 1.67,0.1 4.18,-1.49 1.89,-2.9 -0.47,-2.26 -2.34,-4.82 -1.67,-6.85 1.76,-0.03 1.59,-1.88 3.42,-1.54 2.32,-1.45 3.8,-3.77 6.26,-4.75 1.66,-0.78 4.05,1.82 5.11,-0.84 2.37,0.13 1.47,-2.41 -0.05,-3.14 -0.16,-1.64 0.62,-3.82 -1.82,-3.9 0.88,-2.1 0.95,-4.43 1.69,-6.42 -0.75,-2.19 -3.06,-3.63 -3.78,-5.98 -0.22,-1.15 1.69,-2.17 -0.2,-3.09 0.38,-3.82 -4.01,-3.64 -6.05,-1.43 -0.4,-1.8 -2.37,-1.92 -3.03,-0.03 -1.66,0.66 -3.24,2.7 -4.53,1.71 -1.67,0.61 -1.38,-2.93 -3.39,-2.7 -0.94,-2.08 -2.85,-4.19 -5.2,-4.37 -1.54,-0.53 -2.13,1.38 -2.99,-0.49 z","department-24":"m 247.71,356.64 c -1.33,1.72 -2.15,5.44 -4.37,3.98 -1.29,2.19 0.65,6.02 -2.78,7.22 -1.07,1.73 -1.22,3.17 -3.43,2.89 -1.35,1.3 -2.7,2.47 -3.69,2.4 1.31,1.44 -2.43,1.19 -1.92,3.33 -1.11,2.86 2.21,7.18 -2.16,7.82 -1.72,1.11 -2.1,4.21 -4.37,4.44 -1.83,-1.85 -4.84,-0.09 -5.58,2.19 -1.71,0.92 1.62,1.85 -0.97,2.36 -2.09,3.33 4.38,0.08 4.2,3.85 0.13,2.45 -1.7,4.67 -1.9,7.15 -2.34,1.81 1.75,4.57 -1.01,6.63 -1.98,1.62 -0.57,1.93 1.18,2.08 1.5,2.41 4.72,0.24 7.34,1.24 1.58,-2.14 3.57,-4.36 5.67,-1.25 -1.59,1.46 -2.98,1.82 -1.65,4.38 2.67,1.95 3.57,5.11 3.66,7.87 2.89,2.27 5.83,-2.31 8.31,-0.64 1.5,-0.14 1.73,-2.6 3.78,-2.17 1.74,-0.66 1.71,2.87 4.06,1.59 2.32,0.27 4.87,-3.2 5.62,0.33 1.53,0.48 -2.2,5.61 1.71,4.55 1.86,-2.63 5.57,-3.37 7.55,-0.26 1.61,0.15 2.83,4.14 2.8,0.73 3.09,-1.47 0.93,-6.06 5.03,-5.87 2.1,-1.49 4.63,-2.68 4.89,-5.07 -3.18,-2.94 3.24,-2.15 2.07,-5.03 1.39,-0.77 2.75,-1.97 3.62,-3.12 -2.55,-1.45 1.11,-2.89 -0.92,-4.95 -0.82,-1.88 -0.06,-3.23 0.88,-4.14 -1.12,-2.13 -3.92,-5.19 -1.35,-6.5 -1.47,-1.44 -7.7,-0.59 -6.45,-3.12 3.25,-2.31 -3.9,-1.43 -1.21,-3.75 2.08,-0.54 1.75,-2.32 -0.17,-2.44 -0.66,-1.42 -0.44,-4.25 1.4,-4.42 0.7,-1.32 4.27,-4.12 0.61,-3.76 -2.11,-1.25 -0.47,-1.95 0.2,-2.77 -1.16,-1.12 -2.39,-0.61 -3.26,-2.06 -1.89,0.78 -2.29,-1.48 -4.2,-1.06 -0.44,-1.95 3.54,-4.4 -0.69,-4.44 -2.48,1.66 -3.1,-3.01 -4.18,-4.31 -2.45,-0.69 -5.34,1.33 -6.92,-0.8 -0.28,1.94 -2.24,3.99 -3.3,1.71 -4.01,-0.32 1.3,-5.83 -3.25,-6.54 -2.23,1.7 -3.48,-1.31 -4.85,-0.28 z","department-16":"m 252.54,327.65 c -2.29,0.72 -1.44,3.44 -4.4,2.98 -1.27,1.85 -4.05,0.47 -4.98,-1.39 -0.68,-3.54 -5.06,1.6 -1.79,2.2 -0.58,3.13 -3.4,1.11 -5.1,0.91 -3.14,1.37 -5.19,-1.3 -7.86,-1.81 -1.52,1.5 -2.93,-1.91 -4.66,0.15 -1.97,-0.37 -2.45,3.38 -5.06,2.24 -1.93,0.04 0.82,2.24 -1.2,2.74 0.87,2.68 -3.95,2.15 -2.09,4.68 -0.28,1.91 -3.6,0.31 -2.2,2.53 -0.11,1.44 2.16,2.96 -0.03,4.42 -0.09,1.53 -0.09,4.77 -2.18,3.4 -1.96,2.42 -3.18,-3.47 -5.22,-0.43 -2.04,1.16 -4.38,0.45 -6.15,1.89 -2.73,1.16 0.38,1.62 1.39,1.98 -2.76,2.08 2.9,5.14 -0.46,5.78 -1.46,1.75 0.17,2.05 1.51,1.62 1.01,2.19 5.21,3.29 2.97,5.77 2.34,0.08 4.85,3.05 1.84,4.29 -0.18,1.67 3.8,4.33 0.08,4.95 -3.11,0.84 0.04,2.57 1.34,2.89 -0.62,0.79 -3.1,1.95 -1.06,3.18 2.2,-2.04 4.86,0.36 7.25,0.92 -0.44,1.96 0.03,3.48 2.36,2.77 1.73,0.17 2.65,2.07 3.44,2.83 1.42,-1.43 3.54,-1.84 5.23,-0.38 1.69,-1.46 2.03,-3.29 3.72,-4.47 1.1,-1.12 3.55,-1.27 2.27,-3.69 -1.79,-2.79 1.03,-5.85 1.8,-7.57 0.23,-1.21 1.54,0.42 2.16,-1.12 1.02,-1.12 2.42,-1.8 3.66,-1.6 0.38,-3.16 4.03,-3.24 3.74,-6.43 -0.64,-1.42 -0.09,-4.56 1.85,-3.02 1.5,-1.35 2.27,-4.04 4,-5.85 1.03,-2.13 3.92,-2.7 3.46,-5.45 1.36,-0.67 3.4,1.91 3.05,-0.98 1.5,-1.75 2.07,-3.92 1.46,-6.01 -0.57,-2.93 3.18,0.64 4.34,-1.8 2.69,-1.02 0.69,-6.52 -1.66,-5.43 -1.88,-0.53 -3.24,-3.11 -1.94,-5.21 -0.3,-3.28 -2.38,-2.24 -4.88,-2.46 z","department-86":"m 220.19,259.01 c -2.67,1.11 -1.14,6.66 -4.7,5.46 -1.12,2.67 -0.28,6.33 2.34,7.3 1.21,2.8 -0.12,6.86 2.81,8.58 -0.34,0.88 -4.74,0.94 -2.01,2.12 1.66,0.91 -1.21,4.66 1.86,5.01 0.17,2.88 -3.53,4.96 -3.39,7.51 2.34,-1.74 2.86,1.09 4.01,2.56 -2.36,1.41 -1.42,4.19 -3.11,6.09 1.11,2.79 0.46,6.03 2.68,8.32 -0.98,2.26 1.88,5.6 3.64,2.56 3.26,-2.86 4.22,4.09 1.42,5.44 -1.17,2.3 -1.1,6.6 2.78,6.31 1.76,0.42 -1.54,4.9 1.9,4.82 2.58,2.29 6.42,0.33 9.24,2 3.12,-1.13 -1.64,-3.61 1.54,-4.88 2.93,-0.45 3.66,4.64 7.15,2.55 2.65,-1.24 4.01,-4.64 7.5,-3.07 5.18,0.43 -2.68,-6.17 1.99,-6.32 0.93,-3.5 4.73,-3.96 7.28,-4.09 1.27,-2.3 2.21,-5.88 5.59,-4.54 3.05,-1.23 4.82,-4.66 1.43,-6.65 -0.96,-2.09 -0.63,-5.43 -4.09,-4.96 -2.4,-0.38 -3.1,-2.52 -5.49,-3.06 -4.32,-2.56 0.87,-7.41 -2.39,-10.17 -3.73,-2.36 -3.49,-7.19 -7.25,-9.59 -1.82,-2.65 -1.18,-7.21 -5.41,-7.83 -3.82,-1.6 1.37,4.35 -2.65,2.83 -3.22,-0.17 -6.05,2.2 -9.36,1.21 -5,0.41 0.09,-6.41 -3.44,-7.54 -1.02,-1.75 -5.86,1.14 -3.94,-2.42 -1.49,-2.05 -5.43,-1.78 -6.57,-4.86 -0.36,-0.36 -0.83,-0.61 -1.33,-0.67 z","department-37":"m 248.48,223.77 c -1.42,3.62 -6.45,2.73 -8.2,5.37 -1.46,1.36 -3.9,-2.72 -3.72,0.4 1.37,1.11 1.66,4.33 -0.82,2.81 -1.82,-1.23 -6.06,-3.74 -5.96,0.05 -1.81,2.38 0.79,4.4 -1.19,6.79 -1.59,2.5 -0.38,5.84 -2.27,7.78 -1.62,2.49 -3.61,4.89 -3.44,8.06 -0.62,2.26 -1.45,6.53 1.54,7.19 1.25,-0.87 1.94,2.54 3.31,0.71 0.97,1.11 -0.63,5.21 2.13,3.2 1.8,-1.1 1.89,1.61 3.57,1.4 0.89,2.11 -1.82,7.48 2.05,6.94 1.94,-0.66 4.56,0.68 6.7,-0.98 1.61,-0.96 6.42,0.73 3.58,-2.33 -0.63,-2.85 4.7,0.45 5.56,1.73 0.59,2.71 0.86,5.99 3.94,7.28 1.95,1.88 1.63,7.78 6,6.31 1.43,1.23 2.54,1.03 3.52,-0.09 1.84,-0.7 -1.13,-3.48 0.89,-4.6 0.94,-2.88 0.5,-6.24 2.1,-8.75 -0.51,-3.01 1.88,-5.04 4.77,-5.05 2.3,-0.22 4.18,2.32 5.36,-0.8 1.09,-2.04 2.29,-3.59 3.83,-4.89 -0.17,-3.29 -2.68,-5.86 -4.09,-8.7 -1.3,-3.91 -5.06,-1e-4 -7.13,-2.72 -1.96,-2.54 1.63,-6.07 -1.07,-8.64 1.91,-0.4 1.97,-2.18 -0.13,-2.78 -0.17,-1.99 -3.11,-4.5 -0.71,-6.14 -0.62,-1.2 -2.55,-4.44 -3.27,-1.51 -0.57,-2.17 -2.63,-4.19 -4.63,-1.88 -3.07,2.82 -2.07,-3.8 -2.27,-4.29 -2.95,-0.2 -5.98,-1.05 -8.71,-0.82 -1.21,0.63 -0.51,-1.11 -1.23,-1.05 z","department-72":"m 231.9,172.51 c -2.61,0.34 -4.43,1.91 -6.19,3.04 -1.38,0.48 -2.05,1.94 -3.42,2.6 -0.33,3.05 -3.2,-1.34 -4.33,0.83 -1.43,1.08 -5.63,0.06 -4.24,2.95 -3.08,-0.79 0.86,3.38 -1.37,4.58 -0.86,1.81 1.85,4.28 -0.94,5.2 -2.01,1.1 -4.73,3.07 -1.86,4.9 -0.99,1.29 0.02,2.59 -0.74,3.79 -2.44,-0.68 -6.78,1.67 -3.4,3.85 0.73,2.09 1.76,4.48 -1.53,4.5 -2.58,-0.44 -3.89,2.42 -1.36,3.52 0.5,2.29 -5.19,2.01 -2.45,4.82 3.47,-0.45 1.48,4.86 3.4,5.98 2.31,-1.32 4.91,2 6.78,-0.52 3.29,0.6 -2.46,2.42 0.25,4.06 0.74,1.66 3.87,2.49 4.49,0.08 2.3,1.12 4.71,0.48 6.02,2.83 1.69,1.36 4.05,0.33 5.35,2.19 1.62,-0.93 1.69,-2.65 3.94,-1.78 2.54,-0.05 4.67,2.82 7.14,2.4 0.9,-1.5 -2.93,-3.52 -0.02,-4.31 1.04,1.34 2.82,2.12 3.33,-0.2 2.31,-0.39 4.79,-1.35 6.51,-2.6 -2.85,-2.23 1.58,-5.3 3.79,-5.52 0.46,-1.4 2.4,-3.52 3.78,-4.83 -1.44,-1.85 -0.29,-6.03 1.78,-3.82 -1.09,-2.59 3.21,-2.96 0.58,-5.37 0.08,-1.7 1.43,-3.61 -1.11,-3.97 -1.64,-2.45 2.4,-1.51 1.74,-3.29 -2.05,-0.4 1.4,-1.62 0.89,-2.96 2.29,0.52 3.2,-1.49 0.55,-1.94 -2.01,-0.09 -3.25,-2.56 -5.32,-1.22 -2.38,-0.82 -2.49,-6.22 -5.36,-4.81 0.79,2.39 -2.74,0.17 -4.1,0.37 -1.11,-1.06 -2.58,-1.99 -2.45,-3.6 -1.86,0.23 -5.36,-0.71 -4.94,-3.08 -0.44,-3.4 0.09,-8.02 -4.58,-8.58 l -0.59,-0.08 2e-5,0 z","department-61":"m 236.9,140.22 c -1.37,2.93 -4.44,0.95 -5.77,0.51 -0.7,2.09 -2.92,0.83 -4.24,2.34 -1.35,-2.77 -4.38,-0.25 -5.26,1.87 -3.09,0.73 -4.56,4.12 -8.22,4.12 0.6,2.97 -3.23,-1.05 -4.99,-0.78 -2.07,-0.19 -4.42,-1.53 -4.55,1.51 -1.86,-0.97 -4.38,-5.01 -6.99,-1.88 -2.67,0.7 -5.63,2.58 -8.38,0.81 -1.94,-0.21 0.58,2.41 -2,2.73 -2.21,0.79 -4.81,2.48 -5.8,4.18 1.64,0.47 4.03,2.64 4.89,3.81 -2.6,1.08 -0.04,3.17 -0.37,4.16 -0.1,3.46 -3.63,4.61 -4.76,7.47 1.29,1.59 1.78,3.06 3.56,2.81 -0.2,2.49 3.05,0.83 2.04,-0.77 2.19,0.16 3.37,-1.72 3.97,1.42 2.29,-1.26 4.74,-2.16 6.49,-3.76 2.15,-0.24 4.6,-0.72 6.51,1.02 1.07,-1.63 2.35,-2.41 3.95,-1.42 1.83,-1.07 -0.27,-4.47 3.02,-3.12 1.81,1.18 3.45,2.14 1.99,3.87 0.35,2.25 1.92,4.62 4.47,2.94 1.72,0.65 -0.84,6.99 2.46,4.03 1.16,0.36 3.03,2.09 3.43,-0.38 1.63,-0.81 2.66,-2.19 4.04,-2.85 0.28,-1.38 5.31,-3.16 7.52,-1.96 3.9,1.26 2.59,5.53 3.26,8.6 -0.11,2.92 4.56,1.76 5.41,3.53 -0.07,1.99 3.35,3.78 5.67,2.91 3.19,-3.99 3.88,7.21 7.66,3.4 3.17,-1.53 -1.64,-4 -0.17,-6.33 -3.57,-0.8 0.8,-4.69 3.13,-4.08 2.2,-1.01 6.03,-4.76 3.83,-6.66 -0.95,-2.15 2.33,-4.5 -0.88,-5.72 0.72,-2.4 -4.26,-1.56 -3.98,-4.43 -1.88,-0.39 0.25,-5.19 -3.06,-4.1 -0.43,-1.15 -0.37,-2.32 -1.89,-2.36 3.89,-2.53 -0.45,-5.72 -3.19,-6.87 -1.23,-0.78 -2.92,-1.32 -1.88,-2.86 -1.36,-1.19 -1.22,-3.67 -3.26,-1.5 -2.58,-0.67 -7.27,0.22 -7.13,-3.52 0.64,-0.73 0.75,-2.65 -0.53,-2.7 z","department-27":"m 242.33,106.21 c -2.25,1.4 -4.46,3.12 -7.27,3.2 -3.13,0.01 -1.44,3.96 -0.97,5.79 -0.25,1.42 -0.2,3.07 0.05,4.32 1.56,-2.67 4.74,1.16 1.61,1.68 -3.49,1.51 3.09,2.25 1.65,4.56 -0.6,1.84 0.47,2.5 1.82,3.11 -1.56,1.19 -0.91,2.9 -0.68,4.31 -3.08,-0.3 -1.43,3.4 0.78,3.14 1.11,2.25 -1.15,5.22 -2.03,7.57 1.97,1.86 5.79,2.95 8.17,1.67 1.68,-0.94 2.06,2.46 2.78,2.55 -1.38,3.04 5.18,3.21 5.92,5.84 1.68,1.55 -0.55,2.63 -0.78,3.74 1.84,0.46 1,3.47 3.6,1.89 2.3,-0.06 2.09,-4.03 4.58,-2.4 2.21,-1.11 4.77,-0.84 6.52,-3.04 1.78,1 3.18,0.1 2.69,-1.95 1.73,0.3 3.34,2.1 5.52,1.18 1.73,0.91 5.58,0.54 5.97,-1.71 -2.26,-3.14 2.59,-4.24 4.24,-5.72 -0.13,-1.58 -1.51,-4.22 1.43,-3.88 0.74,-0.67 -0.33,-1.93 0.53,-2.57 -1.47,0.74 -2.69,-0.27 -1.44,-1.58 -1.04,-1.31 -2.12,-4.8 0.61,-3.44 1.11,-1.2 0.8,-1.98 2.49,-1.09 3.37,-0.07 4.6,-2.86 5.45,-5.81 0.13,-2.58 1.39,-4.89 2.52,-6.95 1.56,-1.59 3.56,2.74 3.6,-0.58 -1.93,-1.54 -0.62,-5.1 -2.69,-7.09 -0.94,-2.78 -3.12,-0.33 -5.23,-1.99 -1.74,0.33 -2.23,-3.11 -4.08,-1.45 -2.23,-1.34 -5.13,-1.37 -7.71,-1.23 -0.89,1.39 -2.82,1.34 -2.49,3.35 -1.48,1.47 -1.23,4.8 -4.4,3.5 -1.42,0.9 -3.69,0.83 -4.18,2.58 -2.63,-0.42 -3.44,1.09 -2.81,3.24 -1.76,0.32 -3.16,0.76 -4.2,-0.95 -1.28,0.44 -0.68,-4.41 -2.73,-1.94 -0.92,0.95 -1.47,-2.05 -3.03,-1.54 0.47,-2.75 5.09,0.66 3.34,-3.08 -0.36,-1.37 -2.02,1.31 -1.95,-1 -2.7,-0.13 -3.88,-2.85 -6.72,-1.29 -2.27,1 -3.56,-0.22 -5.16,-1.45 -2.66,0.51 -3.03,-3.16 -5.33,-3.52 z","department-14":"m 231.23,109.9 c -4.06,0.09 -6.85,2.84 -9.55,5.38 -3.34,2.06 -7.05,3.56 -10.99,3.85 -1.95,1.92 -3.54,-1.01 -5.94,-1.28 -2.67,-1.83 -5.65,-1.96 -8.71,-2.47 -2.52,-0.48 -5.06,0.57 -7.64,-0.13 -3.42,-0.41 -7.08,-0.38 -10.19,-1.98 -1.94,-1.82 -4.91,-0.74 -7.32,-0.9 -3.6,0.27 -1.56,4.12 -3.38,5.89 0.35,2.42 2.43,4.3 4.66,5.41 1.29,2.26 4.25,1.82 4.95,-0.81 0.89,1.47 2.18,1.84 0.71,3.15 -2.85,2.72 2.74,3.63 1.8,6.79 0.25,1.58 -1.34,2.53 0.39,3.45 -2.56,1.47 -4.13,6.64 -7.82,4.57 -1.7,0.05 -2.56,3.86 0.25,2.27 1.68,0.8 -1.5,3.01 -2.33,3.69 -1.18,-0.64 -2.61,2.05 -3.44,2.77 1.51,0.52 3.07,1.11 2.99,2.92 1.94,0.53 4.35,0.57 6.32,-0.18 1.55,1.73 4.66,1.77 5.78,1.31 0.33,1.85 2.06,-2.55 3.65,-1.79 1.67,-0.4 2.88,-1.72 1.91,-3.16 2.07,-1.17 2.99,1.93 4.94,0.32 1.69,0.63 2.6,-1.47 4.44,-1.14 2.02,-2.53 4.71,-0.49 6.27,0.75 0.09,2.25 1.52,-0.03 1.58,-1.02 2.72,0.42 5.75,0.47 7.89,2.34 0.72,-2.21 4.15,-0.58 5.38,-3.06 1.98,-1.59 4.45,-2.16 5.53,-4.57 1.56,-0.47 2.62,-1.63 3.42,0.6 1.16,-0.33 2.13,-1.63 3.58,-1.13 0.5,-2.08 1.78,-0.88 2.61,-0.44 1.61,0.55 3,0.24 4,-1.29 0.95,1.22 2.59,1.22 2.01,-0.7 1.28,-2.16 0.25,-3.37 -2.04,-3.81 -1.78,-1.67 1.38,-2.37 1.39,-3.02 -1.93,-1.58 2.62,-4.1 -0.98,-4.39 -0.16,-2.06 0.6,-4.48 -2.13,-4.95 -3.24,-2.19 4.22,-2.19 0.79,-4.43 -0.9,-0.04 -3.11,2.04 -1.98,-0.25 -0.33,-1.14 -1.2,-1.29 -0.01,-2.61 -1.49,-1.67 0.64,-7.09 -2.8,-5.97 z","department-76":"m 285.08,67.51 c -1.66,1.28 -3.92,-0.27 -5.32,2.21 -2.55,2.82 -5.75,4.75 -9.23,6.16 -2.69,2.07 -6.27,0.91 -9.1,2.49 -3.04,0.83 -5.97,2.2 -9.16,2.2 -4.64,-0.08 -8.38,2.85 -12.2,5.03 -3.19,1.24 -5.65,3.53 -8.97,4.44 -4.45,0.63 -4.32,5.58 -6.08,8.7 -1.33,2.41 -3.69,6.09 0.02,7.66 2.71,1.09 5.28,1.25 8.39,1.98 3.84,1.23 7.92,-4.2 10.87,-0.97 1.02,1.67 2.99,3.04 4.68,1.44 -0.81,3.45 3.88,2.23 5.92,1.74 1.25,0.7 1.48,-1.8 1.82,0.62 0.74,1.56 3.24,0.12 3.81,1.84 1.65,-0.96 2.48,4.22 -0.34,2.48 -3.28,0.03 0.21,1.48 0.51,2.68 2.73,-3.35 2.83,4.25 5.77,2.84 2.8,-0.27 -0.27,-3.85 3.3,-3.41 1.82,-0.28 2.83,-2.57 4.57,-2.23 0.36,-1.37 4.68,0.8 4.04,-2.57 1.27,-2.05 1.52,-4.08 4.3,-5.05 2.08,0.14 5.31,0.85 7.56,1.4 2.14,-0.45 3.59,3.15 6.18,2.19 2.06,0.69 2.28,-3.97 4.3,-4.86 1.52,-1.49 -0.75,-3.01 -1.45,-0.94 -2.42,-0.89 0.93,-2.53 -0.81,-3.95 0.3,-1.61 -2.27,-1.27 -1.03,-2.58 -0.73,-1.35 1.8,-2.21 -0.04,-3.48 1.02,-1.01 3.32,-5.11 0.67,-2.57 -2.48,-0.31 0.5,-3.34 1.11,-4.23 -0.07,-1.57 3.34,-0.34 1.01,-2.16 -2.4,-2.69 -1.34,-6.85 -4.28,-9.1 -3.65,-1.5 -5.37,-5.07 -8.6,-7.13 -2.03,-0.46 -0.42,-2.8 -2.2,-2.85 z","department-60":"m 299.82,88.06 c -0.68,1.53 -2.52,3 -2.62,4.61 0.88,0.83 2.72,-2.26 2.36,0.47 -2.03,0.88 -1.5,2.81 -1.5,4.35 -1.65,1.28 0.75,1.64 0.2,3.03 0.54,1.64 1.83,2.54 0.02,4.14 0.78,1.65 2.88,-1.94 3.18,0.81 -0.81,1.88 -3.2,3.3 -3.32,5.72 1.83,-0.19 -0.44,1.38 1.38,2.1 1.48,2.13 0.75,4.92 2.41,6.82 0.2,2.27 -1.63,1.56 -2.48,0.39 -2.21,-0.34 -2.49,2.24 -0.48,2.81 -0.83,1.16 -0.47,2.78 1.13,3 2.38,-0.91 4.68,1.32 7.04,0.62 2.19,-0.63 4.26,-0.42 6.14,-1.88 1.82,-1.52 2.59,1.29 4.7,0.92 0.24,2.48 3.26,-1.11 3.69,1.4 -0.75,1.55 3.2,0.09 3.21,-1.39 1.69,-0.21 1.93,2.59 3.71,1.86 2.57,0.22 4.8,1.97 6.25,3.43 0.62,-1.34 1.71,-1.33 1.95,0.34 1.46,2.81 2.94,-2.02 4.79,0.35 1.09,0.96 1.32,2.68 2.73,1.05 0.38,2.06 2.62,0.41 2.41,-0.61 2.06,-2.04 3.56,2.74 5.7,0.23 1.37,0.79 3.07,-1.58 3.55,0.59 0.9,-2.08 4.02,0.32 3.84,-2.61 0.97,-1.2 1.9,-2.09 3.15,-2.84 -1.43,-0.2 -1,-3.93 -2.02,-1.23 0.12,2.36 -0.59,-0.15 -0.51,-1.14 -0.98,-0.34 -1.96,-0.8 -2.82,-1.45 1.46,-1.59 0.58,-5.08 -1.78,-5.51 -1.64,-1.93 1.32,-3.14 3,-2.37 2.78,-1.33 1.45,-5.56 2.96,-6.93 1.83,1.02 3.46,-1.08 0.88,-1.43 -2.12,-0.58 0.91,-1.96 -1.18,-3 -0.31,-1.21 1.9,-1.71 1.13,-3.46 1.11,-2.28 -2.26,-3.66 -0.83,-5.46 -1.28,-1.35 1.28,-1.82 0.48,-3.31 0.33,-2.37 -2.35,1.17 -1.98,-1.22 -1.06,0.07 -2.21,3.33 -3.26,0.83 -1.15,-1.16 -2.97,0.6 -2.46,1.87 -0.95,-1.04 -2.28,-2.96 -3.61,-2.19 0.98,1.2 1.14,2.51 -0.39,1.26 -0.14,2.4 -4.2,0.61 -3.1,3.55 -0.54,2.6 -5.29,-1.86 -5.5,1.9 0.32,2.24 -2.85,2.23 -2.21,0.03 -1.14,-1.83 -2.74,1.59 -3.58,-0.97 -1.21,-1.4 -2.44,-1.07 -3.66,-0.6 -0.85,-3.25 -4.16,-1.53 -6.1,-3.1 -0.93,-1.42 -3.34,-0.98 -4.87,-2.04 -2.87,-0.39 -5.38,1.28 -8.22,0.91 -0.21,-2.15 -3.87,-1.59 -4.92,-1.24 -1.09,-1.54 -2.79,1.74 -4.47,0.11 -1.06,-0.76 -1.06,-1.17 -0.69,-2.16 -0.99,-0.72 -2.08,-1.47 -3.42,-1.36 z","department-80":"m 292.25,47.76 c -3.3,0.48 -3.7,7.09 -0.18,7.88 1.08,1.67 4.2,2.74 3.06,4.24 -2.73,-1.29 -6.63,-3.63 -7.9,0.8 -0.08,3.06 -3.29,5.38 -4.22,7.27 1.37,-0.11 3.64,-1.46 3.18,1.37 3.11,1.87 5.05,5.06 7.98,7.06 3.9,1.29 3.89,5.38 5.12,8.61 0.56,2.66 4.89,3.47 4.09,5.66 1.46,2.82 4.15,-0.88 5.54,0.73 2.25,-2 4.72,2.18 7.27,1.01 2.7,-0.93 5.98,-1.02 8.68,0.5 1.84,-0.03 3.1,2.73 5.49,1.65 1.93,0.79 2.11,3.17 3.94,1.57 2.03,0.38 2.41,3.33 4.24,1.67 1.8,-0.87 1.46,4.54 3.03,1.36 0.02,-3.92 4.11,-1.35 5.69,-2.17 -0.71,-2.24 0.89,-2.61 2.47,-2.96 0.23,-1.49 2.58,-0.96 0.98,-2.41 1.05,-1.53 0.91,1.46 2.09,-0.25 0.9,2.74 1.49,1.35 3.01,0.23 1.35,0.58 3.49,2.16 3.45,-0.59 1.21,0.66 3.53,0.99 2.21,-1.27 0.39,-2.05 -3.23,-2.65 -0.99,-4.12 0.13,-1.56 -2.17,-2.32 -0.06,-3.42 -0.06,-1.95 2.47,-2.66 2.02,-5.11 0.89,-1.27 2.86,-3.19 2.9,-4.11 -2.64,0.29 0.37,-2.52 -2.05,-2.42 -2.22,-1.41 -5.14,-3.16 -7.9,-1.23 -1.34,-2.15 -4.91,2.97 -5.09,0.51 1.42,-1.44 -0.8,-3.49 -2.15,-1.79 -0.94,1.46 -4.33,1.85 -2.41,-0.4 3.11,-2.33 -2.99,-5.63 -2.46,-2.07 1.41,1.98 -2.63,-0.12 -3.46,-0.4 -1.61,-0.21 -3.12,-0.74 -2.69,-2.12 -1.34,-0.69 -1.48,3.04 -2.43,0.22 -3.21,-2.44 -3.38,5.35 -5.85,1.64 -1.72,-1.93 1.49,-5.21 3.99,-5.44 1.33,-2.2 -4.48,-3.79 -5.35,-1.18 -0.74,-1.34 -1.37,-2.06 -1.64,-0.43 -2.88,-0.65 -5.6,0.07 -8.2,1.37 -1.11,-1.55 -3.47,0.2 -3.68,-2.58 1.41,-3.13 -8.2,-2.22 -4.92,-5.34 -0.16,-2.3 -3.14,1.95 -4.11,-1.07 -2.18,-2.39 -5.42,-2.15 -7.98,-0.54 -2.27,1.67 -2.44,-2.55 -4.75,-1.91 z","department-95":"m 297.89,122.77 c -1.93,0.92 -1.82,3.28 -2.24,5.06 -0.18,1.39 -0.88,2.57 -1.71,3.66 -1.18,2.5 3.25,0.35 3.28,2.76 0.67,1.03 2.44,0.71 2.86,-0.15 1.62,0.83 1.89,-1.96 3.5,-0.67 1.15,0.5 1.54,1.3 0.91,2.4 0.05,1.46 1.28,0.91 1.47,-0.15 1.23,-1.85 1.56,1.36 3.2,0.93 1.81,-0.33 2.63,2.19 4.51,1.19 1,-0.65 2.03,-0.32 2.94,-0.74 0.27,0.84 -0.01,2.32 1.49,2.09 1.39,0.41 0.73,2.42 2.34,2.4 -0.26,0.82 -0.29,3.2 0.91,1.57 0.86,-1.05 2.61,-1.25 3.07,-2.57 1.17,0.19 2.33,0.34 3.34,-0.64 1.5,0.48 3.52,2.04 5,0.44 1.28,-0.6 2.07,-1.91 3.13,-2.67 -1.04,-1.28 1.15,-1.17 1.41,-2.36 0.47,-0.74 -0.21,-1.51 0.41,-2.34 -0.57,-0.87 -1.19,-1.72 -1.74,-2.51 -0.76,0.04 -0.35,1.66 -1.56,0.99 -1.63,0.01 0.09,-1.59 -1.48,-1.79 -0.96,-0.62 -1.98,-0.38 -2.67,-1.33 -1.15,-0.06 -2.21,-0.73 -3.09,-0.09 -0.52,-1.59 -2.64,-3.14 -3.11,-0.65 -0.81,0.43 -3.97,1.21 -2.53,-0.5 -0.87,-1.58 -3.19,1.28 -3.56,-1.01 -1.15,-0.35 -2.65,-0.19 -3.11,-1.46 -1.37,0.13 -2.53,1.17 -3.72,1.84 -1.32,-0.26 -2.69,0.49 -4.1,0.64 -1.33,0.67 -2.12,-0.84 -3.46,0.08 -0.96,-1.47 -2.91,-0.73 -4.2,-0.81 -0.5,-0.95 -2.12,-1.82 -0.57,-2.52 0.13,-0.53 -0.36,-1.09 -0.9,-1.1 z","department-78":"m 292.32,132.84 c -1.68,0.81 -3.67,0.76 -5.14,1.83 -1.97,-1.3 -0.99,2.02 -0.1,2.67 0.55,0.79 -1.34,2.61 0.69,2.07 1.64,-0.39 0.59,0.65 0.37,1.44 0.56,0.92 0.3,2.44 1.88,2.64 -0.09,1.26 1.67,1.89 0.48,3.08 1.64,0.66 2.24,2.6 1.48,4.19 -1.03,2.01 0.99,3.08 1.85,4.34 -0.58,1.19 -2.9,3.12 -0.68,3.75 -0.47,1.26 0.09,2.42 1.54,2.47 0.18,1.99 1.68,2.21 3.27,2.53 -0.41,1.11 -0.51,2.96 1.4,2.43 1.42,0.39 2.18,2 1.59,3.43 0.23,1.67 0.57,3.89 2.53,3.87 0.36,1.68 3.78,2.12 3.77,0.29 -0.23,-1.35 1.17,-2.66 1.54,-4.05 1.67,-0.97 -2.33,-2.06 -0.18,-2.66 1.44,0.17 3.44,0.88 3.57,-1.25 0.08,-1.12 0.7,-1.71 1.35,-2.36 -0.8,-1.15 -2.97,-2.42 -1.13,-3.55 0.61,-1.71 3.54,-1.04 3.46,-3.33 -0.81,-1.48 0.7,-1.23 1.5,-1.61 0.73,-1.13 2.67,-0.43 2.55,-1.99 1.23,0.53 1.88,-0.53 0.53,-1.07 -0.97,-1.07 -3.27,-1.54 -2.66,-3.59 -0.02,-1.82 0.75,-3.53 2.25,-4.55 0.27,-1.43 0.56,-2.46 -1.03,-2.77 0.42,-2.23 -2.99,-1.71 -2.63,-3.73 -1.61,-0.09 -3.2,1.35 -4.8,0.6 -1.14,-1.79 -3.8,-0.64 -4.79,-2.64 -0.79,0.03 -1.9,3.2 -2.31,1.04 -0.6,-0.85 0.89,-2.23 -0.76,-2.51 -1.37,-1.91 -2.01,1.2 -3.59,0.52 -1.03,1.41 -3.22,0.49 -3.58,-1.01 -1.62,-1.22 -2.88,0.79 -4.21,-0.53 z","department-28":"m 287.11,142.32 c -2.1,1.04 1.22,5.31 -2.55,5.04 -3.13,0.47 -2.25,4.05 -2.79,5.7 -2.08,1.39 -4.66,0.71 -6.89,0.79 -1.67,0.17 -4.55,-2.91 -4.14,0.39 -0.94,1.3 -4.08,-0.75 -3.86,1.85 -2.43,0.08 -5.51,1.27 -7.37,1.58 -1.08,1.71 -3.78,2.6 -2.33,4.99 0.77,3.5 4.78,4.24 6.38,7.09 -0.22,2.23 -1.98,4.13 0.4,5.86 -1.32,2.12 -2.68,4.96 -5.61,5.63 -2.31,-0.78 -5.36,3.02 -2.13,3.95 -1.7,2.27 2.62,5.08 0.17,6.87 0.96,1.32 5.87,1.56 4.27,3.23 -2.59,-0.41 -2.61,3.43 0.12,2 1.93,-0.18 2.86,0.02 4.27,-1.38 2.46,-1.17 2.35,1.12 0.44,1.89 0.94,1.94 5.72,-0.14 5.24,3.16 2.38,1.44 2.98,5.53 5.88,5 2.46,1.01 5.04,1.84 7.07,-0.1 2.12,0.96 1.21,-4.35 3.42,-1.33 2.91,1.91 0.9,-4.73 4.83,-2.76 1.99,-0.3 2.54,-3.35 5.19,-2.24 2.89,0.64 5.49,-1.07 8.22,-1.66 2.33,-1.48 0.35,-5.82 3.98,-5.14 -0.56,-1.06 0.03,-1.81 0.2,-2.18 -1.12,-2.33 1.98,-4.62 -0.13,-6.47 1.22,-2.57 0.51,-6.45 -1.46,-7.17 0.98,-3.67 -3.12,-0.53 -4.61,-2.82 -3.57,-1.35 -1.08,-6.34 -4.19,-7.79 -2.86,0.53 -0.05,-3.49 -3.13,-2.7 -2.21,-2.24 -5.44,-5.53 -2.5,-8.36 -1.41,-1.65 -2.75,-3.31 -1.37,-5.55 -0.35,-2.12 -1.91,-3.29 -1.97,-5.44 -0.63,-1.06 -1.8,-1.83 -3.04,-1.94 z","department-75":"m 326.98,144.71 c -1.27,-0.06 -2.46,0.68 -3.27,1.54 -0.47,-0.15 -0.85,0.06 -1.23,0.25 -0.65,0.03 -1.66,1.18 -0.69,1.52 0.81,0.18 0.93,1.2 1.8,1.35 1.65,0.28 3.42,1.43 5.03,0.39 1.03,-0.88 2.21,0.62 3.32,0.28 0.54,-0.43 0.6,-1.27 -0.33,-1.23 -0.68,-0.16 -1.14,-0.33 -1.46,-0.06 -0.34,-1.13 -0.06,-2.23 -0.93,-3.14 -0.12,-1.14 -1.17,-0.96 -2.05,-0.92 l -0.18,0 -0.03,3e-4 z","department-93":"m 336.5,137.58 c -0.46,0.33 -1.14,0.34 -1.42,0.97 -0.75,1.19 -2.15,1.71 -3.14,2.62 -0.82,-0.03 -1.72,-0.07 -2.53,-0.25 -0.64,-0.37 -1.29,-1.34 -2.07,-0.64 -0.6,0.3 -1.08,1.1 -1.81,0.59 -0.35,-0.19 -1.46,-0.42 -1.19,0.3 0.56,0.53 2.05,0.32 2.05,1.33 -0.06,0.69 -1.13,1.34 -0.68,2.02 1.05,0.43 2.37,-0.21 3.33,0.37 0.27,0.54 0.5,1.08 0.89,1.55 0.18,0.57 -0.13,1.72 0.86,1.53 1.07,-0.15 2.16,-1.04 3.23,-0.34 1.04,0.72 2.32,1.35 3.05,2.37 -0.11,0.74 1.41,0.94 1.04,0.05 -0.24,-0.71 -0.92,-1.55 -0.78,-2.26 0.67,-0.23 -0.04,-0.79 -0.4,-0.86 0.27,-0.43 -0.26,-0.81 -0.29,-1.14 0.41,-0.57 1.31,-0.71 1.23,-1.58 -0.09,-0.8 0.8,-1.4 0.35,-2.19 -0.23,-0.84 -1.06,-1.46 -1.25,-2.26 0.77,-0.61 0.45,-1.99 -0.49,-2.17 z","department-94":"m 332.85,147.49 c -0.56,0.21 -2.03,0.43 -2.18,1.01 0.31,0.21 1.82,-0.09 1.77,0.51 0.02,0.58 -0.23,1.64 -1.05,1.16 -1.03,-0.16 -2.09,-1.01 -3.03,-0.14 -0.7,0.5 -1.59,0.2 -2.33,0.5 -0.4,1.12 0.01,2.46 -0.66,3.53 -0.23,0.79 0.87,0.44 1.11,0.99 0.42,0.39 0.99,0.13 1.33,-0.1 0.46,0.44 -0.1,1.74 0.84,1.68 0.59,-0.25 1.17,-0.38 1.79,-0.16 1.34,-0.05 2.64,-0.54 3.94,-0.71 0.51,0.63 0.39,1.61 1.15,2.11 0.31,0.19 0.6,0.29 0.75,0.66 0.59,0.31 1.26,-0.47 0.77,-0.99 -0.01,-0.93 1.56,-1.44 0.88,-2.44 0.49,-0.32 0.24,-1.11 0.85,-1.28 0.43,-0.58 -0.47,-0.6 -0.83,-0.71 -0.34,-0.52 0.66,-1.17 0.14,-1.69 0.12,-0.8 -1.11,-0.7 -1.2,-1.46 -1.03,-1.05 -2.25,-2.13 -3.71,-2.49 -0.1,-0.01 -0.2,-0.01 -0.31,0 z","department-92":"m 324.24,141.53 c -2,0.52 -3.26,2.41 -5.06,3.32 -1.07,0.77 -1.1,2.2 -0.99,3.39 -0.4,0.4 -0.48,0.98 -0.25,1.53 0.01,0.71 0.73,0.52 1.15,0.65 0.16,0.65 0.67,1.01 1.28,1.14 0.25,0.33 0.49,0.67 0.86,0.85 0.32,0.72 0.72,1.57 1.66,1.53 0.78,-0.01 1.11,0.83 1.08,1.46 0.36,0.27 0.92,-0.2 1.18,0.31 0.73,-0.09 0.08,-1 0.1,-1.43 0.14,-0.72 0.7,-1.47 0.38,-2.22 -0.12,-0.62 0.28,-1.24 0.24,-1.78 -0.96,-0.79 -2.46,-0.33 -3.22,-1.42 -0.37,-0.47 -1.1,-0.68 -1.44,-1.08 0.22,-1.13 1.41,-1.83 2.5,-1.7 0.39,-0.7 1.58,-0.82 1.76,-1.68 -0.35,-0.89 1.37,-1.42 0.54,-2.3 -0.48,-0.39 -1.16,-0.56 -1.77,-0.58 z","department-91":"m 320.25,153.32 c -0.58,0.51 -0.49,1.56 -1.65,1.15 -1.09,0.27 -1.38,1.31 -2.58,1.12 0.11,1.05 -0.02,2.93 -1.5,3.32 -1.61,-0.22 -1.97,1.45 -2.84,2.24 0.58,0.86 2.2,1.77 1.79,2.96 -1.64,0.36 -0.55,3.52 -2.55,3.44 -0.79,0.15 -3.39,-0.81 -2.43,0.71 1.02,0.53 2.16,1.11 0.51,1.61 -0.86,0.93 -0.75,2.41 -1.65,3.25 0.14,1.24 1.76,2.59 0.46,3.92 0.71,0.75 2.78,0.14 2.06,1.92 1.07,1.28 -0.54,2.43 0.19,3.85 0.08,0.92 -1.54,1.43 -0.06,2.16 1.67,1.02 3.4,-0.35 5.09,-0.44 0.79,-1.48 2.15,0.97 2.97,-0.44 -0.22,-1.14 1.58,-0.26 1.55,-1.49 0.43,-1.63 2.01,-0.33 2.65,0.23 -0.12,0.95 0.48,1.61 1.08,0.67 0.98,0.38 1.68,0 2.09,-1.03 1.19,-0.35 1.89,2.24 3.4,1.07 0.49,-0.63 -0.03,-1.81 1.37,-1.59 1.11,-0.46 0.12,-2.39 1.77,-2.49 0.99,-0.33 0.83,-1.84 2.2,-1.42 0.62,-0.47 2.15,-0.38 0.97,-1.39 -1.69,-0.77 -1.16,-2.85 -1,-4.34 0.63,-1.35 -0.62,-2.47 -0.1,-3.88 0.63,-1.33 0.75,-2.86 1.78,-3.97 -0.3,-0.67 -1.97,-1.85 -0.32,-2.16 1.12,-0.7 -0.81,-1.91 0.75,-2.52 1.46,0.63 1.85,-1.77 0.18,-1 -1.09,-0.51 -1.76,-1.71 -2.13,-2.88 -1.08,-0.05 -2.24,1 -2.98,0.91 -0.9,-0.56 -2.37,0.31 -3.35,-0.26 0.08,-0.81 -0.25,-1.5 -1.11,-1.09 -0.9,-1.03 -1.16,0.24 -1.83,0.61 -0.49,-0.5 -1.91,-0.11 -1.24,-1.2 -0.57,-1.05 -2.44,-1.17 -3.52,-1.52 z","department-45":"m 320.43,181.91 c -1.93,3.75 -6.85,2.12 -9.9,4.16 -1.95,2.44 0.54,6.83 -3.34,8.04 -0.15,3.54 -2.85,4.96 -6.06,5.24 -2.92,1.1 -6.42,-0.72 -8.49,2.39 -1.57,0.69 -5.05,0.19 -3.17,3.06 1.8,0.69 1.81,1.21 0.63,2.66 -1.69,2.43 4.05,3.22 1.25,6.02 -2.34,2.28 -0.38,4.59 0.09,7.04 1.76,1.74 4.95,-1.17 6.29,2.07 1.03,2.45 2.79,7.52 5.89,3.78 1.72,-3.2 5.45,1.69 8.15,-0.49 3.31,-0.11 8.68,-1.55 10.42,2.55 3,0.8 5.42,3.73 8.74,2.17 2.13,1.16 4.32,2.3 6.96,2.83 1.97,1.01 3.09,6.61 5.84,4.26 -0,-3.62 2.76,-1.68 4.41,-0.43 2.59,0.81 2.19,-2.3 2.2,-3.37 1.94,-0.4 6.46,-0.48 3.87,-3.36 0.34,-3.56 -2.17,-6.48 -4.41,-8.39 0.34,-3.92 6.29,-1.58 7.84,-4.63 1.26,-2.84 -2.35,-5.65 1.12,-7.77 4,-1.7 4.51,-6.41 1.51,-9.33 -2.16,-2.35 -2.73,-6.91 -6.87,-6.87 -1.86,0.13 -5.92,3.75 -6.03,-0.07 -2.63,1.14 -5.36,4.25 -8.22,1.8 -2.17,-0.24 -6.58,1.49 -7.34,0.08 2.67,-1.6 4.53,-6.27 0.45,-7.38 -2.86,-1.04 -1.71,-5.28 -5.43,-4.57 -1.53,-1.38 -4.89,2.52 -5.34,-1.02 -0.33,-0.2 -0.71,-0.32 -1.06,-0.48 z","department-41":"m 266.29,195.63 c -2.06,2.95 -7.43,0.3 -8.5,3.42 -1.9,1 -2.23,2.67 -0.22,3.62 0.19,3.26 0.26,5.82 -1.16,8.6 -4.07,-1.69 0.07,5.24 -3.5,5.91 -0.99,3.4 -6.81,3.06 -5.94,7 2.53,-0.22 6.07,1.21 9.36,0.87 2.33,-0.38 3.21,0.87 2.33,3.13 -0.6,3 2.08,2.14 3.12,0.52 2.68,-0.46 3,3.47 5.15,1.95 3.31,1.92 -0.52,5.3 2.24,7.5 2.87,2.54 0.27,5.57 1.51,8.9 -2.12,3.16 1.39,5.4 4.47,4.52 3.84,-0.06 2.69,7.22 7.32,5.56 1.87,-1.68 3.74,-3.34 6.46,-2 0.88,-3.66 5.55,-2.27 8.48,-2.51 2.88,0.7 4.8,4.16 8.08,3.56 2.17,-0.93 0.23,-5.2 4,-4.24 2.53,1.03 9.23,0.49 7.7,-3.24 -2.46,-1.98 -1.75,-6.33 1.55,-6.48 1.62,0.43 3.89,1.9 3.49,-1.2 0.4,-2.84 -2.55,-3.04 -1.96,-5.71 -0.66,-1.86 -5.5,-1.35 -2.85,-4.03 2.3,-0.71 6.5,-3.18 2.67,-5.2 -3.4,-0.6 -6.94,-0.37 -10.34,0.3 -2.3,0.89 -5.75,-3.14 -6.32,0.82 -3.73,2.59 -5.33,-2.8 -6.15,-5.3 -2.21,-2.59 -5.58,2.04 -6.3,-1.81 -0.8,-1.62 0.46,-2.55 -1.18,-3.79 1.15,-2.66 3.49,-5.56 -0.29,-7.32 0.2,-1.64 2.39,-4.45 -1.04,-3.94 -1.34,-0.61 -4.15,-1.65 -3.51,1.01 -2.97,0.88 -5.87,1.72 -8.76,0.26 -3.05,-0.48 -3.65,-3.81 -5.67,-5.58 -0.41,-3.18 -5.31,-0.86 -5.28,-3.08 0.5,-0.52 3.23,-1.6 1.02,-2.02 z","department-36":"m 292.75,252.32 c -0.22,1.96 -4.71,0.36 -3.09,3.11 -2.43,-0.72 -5.02,-1.03 -6.59,1.34 -2.69,0.52 -2.88,2.56 -1.18,4.37 -0.27,2.79 -3.21,4.19 -4.35,6.82 -1.44,3.03 -4.42,-1.33 -6.53,0.46 -3.18,0.46 -2.88,3.92 -3.68,6.03 -1.05,3.06 -0.95,6.5 -2.13,9.41 1.56,2.64 -2,4.95 -4.07,2.91 -3.4,-0.16 1.5,2.15 0.47,4.03 -1.36,3.26 -0.89,7.48 3.29,8.02 1.63,1.02 1.82,2.51 4.05,2.13 3.15,0.49 2.87,3.8 3.42,5.86 3.01,0.61 1.99,2.49 1.57,4.47 1.47,-0.43 1.97,1.71 3.8,0.38 1.85,0.34 2.68,-2.93 4.56,-0.65 1.37,1.89 2.88,2.94 4.14,0.35 1.12,-1.38 3.37,-4.31 4.14,-1.21 1.33,-0.81 3.52,-2.34 3.35,0.47 1.47,0.6 2.78,-3.28 3.75,-0.32 2.88,0.93 1.17,-5.91 4.57,-3.2 2.52,2.22 5.64,-0.66 8.59,0.82 2.5,1.04 7.68,2.32 7.46,-1.55 4.04,-2.02 -1.08,-5.26 0.41,-8.47 1.23,-2.22 0.34,-4.16 -1.32,-5.77 1.29,-2.28 -5.15,-3.19 -2.63,-5.41 3.7,-2.03 -4.12,-5.08 0.13,-6.45 0.15,-1.85 5.09,-3.55 1.3,-4.36 -3.14,-0.2 -1.71,-2.81 -0.75,-4.45 0.55,-3.16 -4.43,-3.11 -2.28,-6.14 0.71,-2.59 -1.84,-0.34 -2.34,-2.38 -2.14,-1.4 -4.51,2.29 -6.97,0.12 -1.89,-0.3 -3.87,-1.35 -1.68,-3.08 2.9,-1.88 1.03,-5.37 -2,-5.37 -1.57,-1.11 -2.26,-2.41 -4.45,-1.38 -1.18,-0.07 -1.7,-1.07 -2.98,-0.88 z","department-18":"m 323.87,229.07 c -2.35,0.13 -9.34,2.52 -5.77,4.83 3.63,-0.55 1.32,4.29 3.95,4.19 1.09,2.3 -0.24,7.95 -2.97,4.02 -2.53,0.84 -4.38,3.27 -2.23,5.76 1.94,2.35 0.54,4.87 -2.44,4.09 -2,0.97 -4.54,0.79 -6.09,-0.04 -3.26,0.8 0.48,4.8 -3.11,4.5 -2.3,-0.84 -0.78,2.92 -3.07,3.74 -2.13,3.21 4.52,3.78 6.54,2.69 2.19,-2.06 2.95,2.09 4.74,0.99 0.13,1.95 -1.78,4.73 1.47,5.08 2.39,1.98 -3.09,7.46 2.34,7.01 1.98,2.06 -4.63,4.48 -3.1,6.87 3.2,0.9 1.23,3.63 0.29,5.24 0.67,1.68 4.73,1.92 3.03,4.22 4.54,2.34 -0.65,6.57 2.07,9.85 1.42,2.13 -0.12,3.45 -1.35,4.8 0.97,3.01 6.38,2.02 6.61,-1.43 1.68,-1.43 2.79,-4.1 5.74,-3.71 2.61,-0.19 8.61,0.85 7.95,-3.28 -1.28,-1.97 -0.29,-4.02 -0.99,-5.76 1.11,-0.26 2.76,0.38 2.1,-1.66 2.77,0.03 3.8,-5.99 6.55,-2.38 4.02,-0.1 5.48,-4.84 9.43,-5.17 5.09,1.19 4.04,-5.2 3.91,-8.3 0.71,-2.84 1.27,-6.86 -1.24,-8.77 -0.49,-3.87 -0.61,-7.69 -2.18,-11.39 0.6,-4.25 -6.27,-4.24 -4.71,-8.26 2.14,-3.02 2.74,-7.4 -0.15,-10.16 -1.82,-0.35 -3.52,2.23 -5.06,-0.44 -2.66,-2.76 -1.08,3.94 -4.37,2.1 -2.06,-1.93 -3.82,-6.36 -7.51,-5.63 -1.58,-0.2 -3.8,-3.83 -5.86,-1.15 -1.78,-0.24 -2.82,-2.01 -4.51,-2.45 z","department-23":"m 301.06,306.59 c -2.18,-0.09 -0.48,5.24 -3.46,3.84 -1.17,-2.86 -2.05,0.79 -3.59,0.42 -1.13,-0.79 -0,-3.31 -1.73,-1.25 -1.24,0.55 -2.36,1.38 -2.36,-0.7 -1.54,-0.88 -2.18,2.59 -3.79,3.02 -0.98,0.84 -2.88,2.44 -0.45,2.76 0.29,1.69 -1.79,2.6 -0.56,4.04 -2.11,0.16 0.28,2.07 -1.84,2.35 -1.71,2.37 1.37,3.88 3.12,3.98 -0.87,1.98 3.03,2.32 1.47,4.18 0.81,1.46 2.68,2.16 2.08,4.13 0.59,1.41 -1.07,3.49 1.38,3.72 1.8,2.32 -4.92,2.97 -1.35,4.46 1.26,1.18 3.64,-2.06 4.21,0.35 0.31,1.19 0.8,2.47 -1.06,2.08 -1.31,1.78 2.07,3.75 3.94,3.02 1.79,0.62 3.88,-3.62 3.75,-0.15 0.21,1.27 2.24,2.17 2.82,1.56 1.47,1.11 3.83,3.39 1.98,4.77 0.21,1.09 -0.08,4.28 1.82,2.42 1.13,0.08 1.99,-1.04 3.2,-0.95 0.33,-2.76 3.75,-2.96 4.66,-0.46 1.35,-0.17 2.6,0.94 3.34,-0.03 1.49,1.32 3.49,2.43 4.82,3.44 0.2,2.09 4,0.09 3.38,-1.73 2.36,-0.58 5.37,1.33 6.38,-2.1 -1.37,-1.09 -2.62,-1.96 -3.06,-3.78 -1.55,-1.24 -1.59,-2.93 0.65,-2.9 0.54,-1.38 1.04,-2.45 2.73,-1.85 0.62,-1.79 3.09,-2.23 2.56,-4.51 0.36,-1.75 3.84,-1.53 2.12,-3.52 1.2,-2.89 -2.25,-4.14 -2.04,-6.95 -0.08,-2.21 1.4,-4.81 -1.02,-6.11 0.02,-2.5 -1.86,-3.91 -2.39,-6.08 -1.13,-1.7 -3.1,0.63 -2.89,-2.06 -0.52,-1.65 -1.48,-0.92 -2.17,-0.16 -2.13,-0.72 -3.54,-2.45 -1.59,-4.12 -3.08,0.61 -1.54,-4.21 -4.75,-3.19 -2.85,-0.75 -5.52,1.57 -8.05,0.18 -2.39,-0.94 -4.83,-0.98 -7.12,-1.05 -1.87,0.89 -3.74,0.71 -4.87,-1.08 l -0.28,-0.01 10e-6,10e-5 z", -"department-87":"m 281.04,310.22 c -0.51,0.05 -1.17,0.12 -1.14,0.78 -0.25,1 -1.41,1.2 -2.23,0.78 -0.91,-0.55 -1.46,0.97 -2.37,0.47 -0.41,-0.24 -0.15,-1.36 -0.88,-1.06 -0.15,0.36 -0.49,0.69 -0.87,0.31 -0.42,-0.56 -1.48,-0.46 -1.39,0.36 -0.29,0.51 -0.98,0.78 -0.95,1.46 -0.55,0.47 -1.05,-0.38 -1.56,-0.48 -1.22,-0.29 -2.83,0.17 -3.07,1.56 0.1,1.34 -1.16,2.36 -1.14,3.65 -1.12,-0.21 -2.43,-0.58 -3.48,-0.02 -0.57,-0.29 -1.43,-0.46 -1.55,0.41 -0.29,0.71 -1.42,0.57 -1.53,1.41 -0.45,0.32 -0.59,0.81 -0.41,1.28 -0.57,0.79 -2.14,-0.04 -2.35,1.21 -0.11,1.15 1.52,1.66 1.49,2.82 0.45,0.61 -0.22,1.55 0.51,2.07 0.3,0.78 -1.04,0.68 -1.22,1.21 0.1,0.73 1.16,1.32 0.57,2.1 -0.2,0.88 -0.43,1.82 -0.37,2.7 0.55,0.71 1.53,1.06 1.85,1.96 0.6,0.29 0.77,-1.11 1.42,-0.47 0.52,0.57 1.56,1 1.37,1.9 0.17,0.33 0.61,0.45 0.5,0.91 0.25,0.56 0.69,1.22 0.15,1.8 -0.4,0.33 -0.69,0.93 -0.79,1.33 -1.08,0.03 -1.62,1.44 -2.79,1.15 -0.74,0.09 -1.45,-0.83 -2.12,-0.41 -0.07,0.49 0.25,0.98 0.12,1.53 -0.13,0.54 0.63,1.01 0.41,1.49 -0.44,0.28 -0.27,0.69 -0.21,1.04 -0.23,1.22 -1.06,2.19 -1.62,3.25 -0.26,0.54 0.17,1.51 -0.39,1.85 -0.92,-0.16 -1.85,-1.49 -2.8,-0.78 -0.33,0.63 -0.36,1.44 0.03,2.02 -0.07,0.89 -1.28,0.52 -1.72,1.1 -0.39,0.39 -0.56,0.91 -1.06,1.2 -0.36,0.39 -0.09,1.12 -0.8,1.16 -0.53,0.7 0.73,1.29 1.05,1.78 1.12,0.48 2.72,-0.73 3.83,0.16 0.41,0.49 0.74,1.16 1.39,1.34 0.08,1.16 -0.5,2.25 -0.79,3.32 0.28,0.85 0.98,1.77 1.99,1.46 0.49,0.16 0.41,1.27 1.18,1.08 1.27,-0.42 1.02,-2.31 2.06,-2.9 0.55,0.27 0.58,1.69 1.39,1.27 0.5,-0.37 1.3,-0.2 1.85,-0.57 0.8,-0.12 1.59,0.64 2.37,0.08 1.2,-0.25 2.21,0.92 2.02,2.08 -0.09,0.92 0.66,1.5 1.35,1.88 0.41,0.32 0.61,1.42 1.32,0.86 0.49,-0.58 1.3,-0.68 1.86,-0.14 0.33,0.35 1.23,0.52 1.23,1.08 -0.69,0.87 -1.91,1.66 -1.92,2.87 0.34,0.84 1.26,0.35 1.87,0.21 0.56,0.26 0.58,0.97 0.93,1.33 0.84,-0.26 2.33,-0.56 2.49,0.7 0.19,0.63 0.87,0.23 0.77,-0.27 0.67,-0.31 0.04,-1.73 0.98,-1.81 0.57,0.07 0.21,-0.87 0.71,-0.67 0.95,0.21 1.74,1.1 2.68,1.15 0.76,-1.2 1.96,-2.1 2.52,-3.45 0.35,-0.6 1.02,-0.45 1.52,-0.23 0.86,-0.13 0.35,-1.3 0.75,-1.74 0.56,-0.03 0.98,-0.4 1.21,-0.85 0.63,0.05 0.58,1.16 1.29,0.85 0.37,-0.17 0.08,-0.99 0.68,-0.63 0.79,0.46 1.82,0.91 2.6,0.18 0.48,-0.4 0.34,-1.43 1.2,-1.3 1.25,0.1 2.05,-1.03 2.55,-1.98 0.73,-0.73 1.34,-1.82 2.34,-2.13 0.74,0.12 1.5,-0.28 1.86,-0.87 0.93,-0.17 1.13,-1.16 1.48,-1.85 0.37,-0.07 0.64,0.49 1.11,0.2 0.61,0.2 0.96,1.44 1.71,0.76 0.42,-0.5 1.1,0.52 1.33,-0.26 -0.03,-0.66 0.6,-0.53 1.03,-0.64 0.45,-0.2 0.16,-0.77 -0.12,-0.88 -0.02,-0.51 -0.84,-0.68 -0.83,-1.1 0.48,-0.35 0.14,-0.82 -0.21,-1.07 0.24,-0.6 0.41,-1.25 0.01,-1.83 -0.05,-0.55 1.2,0 0.86,-0.75 -0.45,-0.79 -0.3,-1.85 -1.25,-2.36 -0.47,-0.29 -0.97,-0.56 -1.37,-0.86 -0.42,0.28 -0.85,0.21 -1.19,-0.2 -0.57,-0.6 -1.85,-0.61 -1.72,-1.7 0.17,-0.43 0.1,-1.78 -0.62,-1.22 -0.17,0.44 -0.43,0.74 -0.89,0.86 -0.71,0.92 -2.04,0.24 -2.93,0.86 -0.49,0.28 -0.9,0.12 -1.15,-0.31 -0.68,-0.45 -1.84,-0.44 -2.21,-1.23 0.21,-0.61 -0.04,-1.24 -0.49,-1.61 0.25,-0.59 1.1,-0.28 1.36,-0.78 0.47,0.27 0.94,-0.21 0.51,-0.63 -0.6,-0.41 0.17,-1.39 -0.62,-1.58 -0.8,-0.29 -1.69,0.05 -2.03,0.8 -0.73,0.21 -1.51,-0.02 -1.97,-0.63 -0.45,-0.19 -1.31,-0.18 -0.96,-0.92 0.42,-1.4 2.91,-1.11 2.81,-2.77 -0.02,-0.79 -0.76,-1.12 -1.46,-1.02 -0.74,-0.49 -0.23,-1.62 0.01,-2.28 0.07,-0.84 -0.67,-1.62 -0.2,-2.45 -0.01,-0.95 -1.08,-1.21 -1.63,-1.75 -0.29,-0.44 -0.89,-1.12 -0.22,-1.54 0.59,-0.47 -0.22,-1.14 -0.7,-1.29 -0.29,-0.51 -0.96,-0.67 -1.32,-1.01 0.65,-0.4 0.49,-1.69 -0.42,-1.53 -0.93,0.06 -2.05,-0.18 -2.28,-1.2 -0.52,-0.39 -1.08,-1.35 -0.53,-1.94 0.31,-0.58 0.65,-1.21 1.38,-1.2 0.66,-0.47 -0.77,-0.84 -0.18,-1.34 0.43,-0.32 0.7,-0.79 0.48,-1.28 -0.02,-0.63 0.42,-1.1 0.86,-1.45 0.24,-0.83 0.18,-2.06 -0.9,-2.22 -0.7,-0.32 -0.2,-1.35 -0.83,-1.79 -0.85,-0.67 -1.34,-1.98 -2.45,-2.23 l -0.03,0.01 z","department-19":"m 313.35,352.38 c -1.86,0.13 -2.22,1.42 -2.96,2.7 -1.7,-0.45 -2.02,1.25 -3.41,1.04 0.1,2.65 -3.23,3.39 -4.97,1.84 -1.53,1.04 -2.82,2.64 -4.95,2.95 -1.42,1.63 -2.47,3.68 -4.63,4.05 -0.78,2.4 -3.28,0.32 -4.72,1.32 -0.15,-2.02 -2.14,1.24 -2.3,2.01 -1.89,-1.15 -2.49,2.34 -3.89,3.21 -1.28,0.53 -3.65,-2.27 -4.12,0.75 -1.21,1.38 2.97,2.44 0.01,3.18 -0.68,2.09 4.29,0.8 2.12,3.47 -1.5,0.61 -1.7,2.64 -3.24,3.07 -0.37,1.74 -0.74,3.8 1.62,4.02 0.64,1.56 -3.73,2.47 -1.44,3.5 2.52,-0.79 2.31,2.08 0.75,2.84 2.1,1.86 4.91,0.57 6.95,2.2 -1.97,1.83 -0.08,4.96 1.55,6.77 1.57,0.57 3.76,-3.02 4.88,-0.71 2.49,-1.36 5.15,0.9 6.6,2.82 0.89,1.66 2.62,2.3 3.51,3.98 0.84,-0.76 2.22,0.94 2.83,-0.95 1.95,-0.25 4.19,-4.21 5.12,-0.84 2.18,-2.19 5.35,-1.42 8,-1.89 1.92,-1.72 -3.18,-4.39 -0.13,-5.96 1.44,-0.92 3.38,-0.83 2.82,-3.25 -0.27,-1.27 3.56,-2.56 1.06,-3.66 -2.12,-2.49 1.31,-4.07 2.09,-6.03 1.52,-1.54 3.08,-3.21 4.69,-4.48 0.47,-1.62 0.7,-3.32 -0.12,-4.93 2.48,-0.49 5.95,4.22 7.88,1.25 -2.68,-1.36 -0.86,-4.01 -0.65,-6.27 0.65,-2.61 -0.12,-4.5 -1.81,-6.42 -0.37,-1.09 0.41,-2.79 1.03,-3.68 2.2,0.41 0.72,-2.34 1.39,-3.43 -0.08,-1.62 -1.77,-3.7 -2.72,-1.42 -1.49,2.45 -5.53,-1.84 -5.69,2.21 -1.2,1.04 -3.48,1.86 -3.57,-0.45 -2.4,-0.22 -2.77,-1.54 -4.33,-2.87 -0.57,1 -2.92,0.03 -3.77,-0.11 0.11,-0.94 -1.07,-1.2 -1.5,-1.83 z","department-15":"m 334.72,370.94 c -1.28,1.82 -1.55,4.58 0.43,5.9 -1.81,2.51 -4.37,0.04 -6.57,-1.17 -2.6,-1.06 0.22,2.76 -1.15,4.1 -0.02,1.86 -2.79,1.83 -3.22,3.86 -1.83,1.13 -3.51,3.59 -4.24,5.64 0.35,1.77 2.71,2.41 0.56,3.82 -1.95,0.87 -0.07,4.99 -2.89,4.16 -3.55,0.88 -0.82,4.03 -0.22,5.71 -0.43,1.88 -4.6,-0.03 -2.81,2.9 -0.04,1.62 2.21,2.57 0.46,3.91 0.13,3.08 4.46,4.57 3.6,7.69 -0.92,1.52 -0.85,3.76 -1.46,5.32 3.14,-0.54 0.43,4.14 3.05,4.94 0.99,0 -0.12,-3.03 2.23,-2.19 1.58,-0.83 4.01,-1.56 4.43,0.74 2.75,-0.34 6.48,0.85 7.12,-2.96 2.85,-1.73 1.71,-5.71 4.3,-7.33 -0.14,-2.33 1,-4.52 2.76,-5.39 0.66,-1.77 2.62,-2.11 3.53,-3.79 2.71,0.19 1.23,4.39 2.14,5.14 1.36,-1.39 4.37,-1.42 3.78,1.12 0.34,1.62 0.97,4.51 2.8,3.48 0.84,2.32 -0.52,5.11 1.01,7.65 0.5,1.69 1.9,2.45 2.17,0.12 0.35,-2.14 2.27,-2.85 1.68,-4.93 0.92,-1.91 0.56,-5.47 2.78,-5.83 -0.12,-1.77 1.65,-6.61 3.22,-3.03 1.26,2.36 3.56,-0.59 3.31,-2.05 0.59,-1.14 0.92,-2.65 1.95,-1.09 1.6,-1 4.29,-1.63 3.3,-3.81 1.88,-0.88 -1.23,-1.49 -1.31,-2.37 -2.47,-0.36 0.7,-4.16 -1.68,-4.86 0.04,-1.43 3.56,1.01 2.84,-0.76 -3.52,-0.25 -3.97,-3.78 -3.79,-6.72 -2.86,-0.25 -0.48,-5.68 -3.84,-4.2 -1,0.06 -0.92,-1.73 -2.53,-0.75 -1.83,0.05 -2.03,-0.79 -0.71,-1.66 -1.98,-0.82 1.54,-2.18 -0.51,-2.67 -1.63,1.16 -2.03,4.92 -4.8,3.76 -3.45,-0.77 -2.59,-5.89 -6.01,-5.8 -1.98,-1.95 -3.93,0.16 -6.22,-0.38 -1.82,0.76 -1.98,-2.81 -2.23,-3.3 -2,0.21 -2.37,-1.95 -4.2,-1.04 -0.86,-1.4 -2.85,0.57 -2.19,-1.65 -0.21,-0.26 -0.61,-0.13 -0.87,-0.22 z","department-30":"m 402.45,438.56 c -1.2,2.08 -2.01,3.99 -4.41,4.18 -0.91,2.13 4,4.03 1.37,6.32 -0.45,1.86 3.55,2.45 0.94,3.7 -0.76,1.99 0.11,3.59 0.97,5.15 -2.84,-2.29 -3.24,4.22 -6.65,2.09 -2.84,1.31 -5.14,-3.82 -7.86,-2.71 -1.9,-0.09 0.68,4.12 -2.36,3.87 -3.59,-0.21 -7.54,0.01 -9.81,-3.3 -3.88,-0.94 -1.76,4.82 -5.2,4.63 -0.2,1.99 1.7,1.26 2.49,1.37 0.64,2.2 6.26,1.35 5.12,4.79 -0.92,1.9 -5.78,3.67 -3.13,5.83 2.48,-0.75 3.13,1.64 2.84,3.17 1.93,-1.62 4.32,-2.9 4.52,0.69 1.23,0.34 3.7,1.07 1.85,-0.84 1.05,-1.8 2.07,-3.7 4.36,-3.11 -0.01,-3.76 5,-4.67 6.38,-1.85 2.32,1.17 -2.54,5.3 1.82,4.76 1.89,-0.76 3.45,-1.45 3.7,1.02 2.53,0.02 1.7,2.08 1.81,3.51 2.89,-1.55 4.4,2.61 6.33,3.87 2.8,0.69 3.15,4.82 3.78,7.11 -0.67,2.22 -2.4,3.52 -4.18,3.93 1.03,2.15 2.04,4.41 2.86,6.75 1.85,2.05 3.54,0.51 3.74,-1.66 2.08,-0.46 3.52,-1.72 3.36,-3.55 0.97,2.31 4.15,-0.86 5.01,-1.94 1.98,0.27 2.78,-2.49 0.23,-2.01 -0.41,-2.17 1.81,-4.53 3.24,-5.76 1.92,-1.29 6.52,3.05 5.01,-1.07 0.59,-2.7 2.29,-5.32 1.74,-7.95 1.25,-0.84 -1.73,-1.91 0.74,-2.53 2.32,-1.47 3.71,-3.79 6.04,-5.21 0.4,-1.57 0.8,-2.1 2,-2.68 -1.38,-1.85 -2.67,-6.36 -5.46,-5.62 -1.54,-2.69 0.63,-6.1 -0.98,-8.69 -2.44,0.11 -1.5,-4.81 -4.22,-4.74 -2.14,-0.69 -5.48,-5.75 -7.17,-2.57 0.92,4.08 -4.49,2.27 -2.46,-0.85 -1.91,-1.19 -5.21,1.01 -5.19,3.34 -1.4,3.16 -4.03,-1.21 -5.4,-1.88 -1.7,0.52 -1.47,-2.53 -3.73,-1.05 -1.71,1.8 -2.68,-0.11 -1.46,-1.57 -0.15,-1.56 -0.74,-2.62 0.35,-3.62 -1.57,-1 -0.67,-2.78 -2.91,-3.32 z","department-48":"m 373.48,404.94 c -1.47,0.89 -3.46,3.53 -5.12,1.98 -0.01,1.49 -1.57,1.93 -1.04,3.5 -1.43,1.81 -3.11,1.2 -3.88,-0.85 -2.88,-0.45 -1.07,4.27 -3.39,4.9 -1.4,1.6 -1.16,4.02 -1.76,5.9 0.45,1.49 -1.64,2.13 -1.6,3.92 -1.61,2.48 1.66,4.55 3.09,6.26 2.11,1.84 -1.38,5.67 2.08,6.72 1.92,1.77 1.3,4.27 0.7,6.32 -0.81,2.08 2.13,3.68 0.68,5.63 -1.2,1 -0.69,2.92 0.49,1.55 -0.34,2.49 4.49,1.53 3.22,4.04 -0.61,3.08 3.16,-0.47 4.71,0.57 2.33,-0.24 2.39,2.9 4.55,3.55 1.02,2.18 4.4,1.65 6.21,1.9 1.73,0.64 4.49,-0.1 3.28,-2.39 -0.17,-1.71 2.49,-2.35 3.14,-0.7 2.15,-0.14 3.4,3.16 5.36,2.3 1.4,-0.48 2.81,0.78 3.7,-1.01 1.48,-0.27 0.79,-2.83 2.56,-1.71 0.48,-1.13 -1.37,-1.78 -0.45,-3.23 -0.32,-1.45 2.55,-2.77 -0.12,-3.02 -0.49,-1.4 -1.27,-2.69 0.33,-3.79 -0.9,-1.25 -2.65,-3.18 -2.62,-4.42 1.46,-1.07 3.7,-0.89 3.95,-3.34 1.21,-1.8 0.03,-4.2 -0.54,-6.13 -0.14,-2.55 -3.1,-2.32 -3.01,-4.96 -0.51,-1.42 -0.74,-3.3 -1.23,-4.8 0.21,-0.99 -1.02,-2.2 -0.2,-3.43 -0.96,-0.75 -2.32,-0.83 -1.55,-2.36 -1.84,1.16 -1.86,-1.71 -3.45,-2.23 0.02,-3.18 -3.5,-0.79 -4.63,-2.01 2.18,-2.04 -3.67,-4.45 -2.82,-1.23 0.29,3.23 -3.33,0.7 -4.65,2.81 -2.12,0.38 -2.38,-3.83 -3.37,-5.42 -0.69,-1.57 0.03,-3.98 -2.15,-4.28 l -0.25,-0.51 -0.23,-0.01 -2.2e-4,-1e-4 z","department-63":"m 350.25,319.87 c -2.41,0.1 -1.39,6.08 -4.36,2.69 -2.2,-1.55 -1.13,2.91 -3.36,2.6 -0.99,2.15 -2.4,5.06 -4.99,2.48 -3.53,1.71 0.74,5.9 1.02,8.31 0.33,2.26 -0.13,3.09 -1.85,4.34 -0.59,3.07 -2.87,5.1 -5.46,5.93 -0.78,1.08 -3.3,2.29 -0.7,4.14 1.84,2.94 6.68,6.33 3.76,10.01 -3.59,1.58 -0.37,5.2 0.63,7.47 -1.63,3.1 2.57,5.33 4.8,4.69 1.04,1.88 3.32,0.49 2.64,2.92 1.95,3.55 6.09,-0.43 8.67,2.01 3.48,0.74 2.44,6.76 6.82,5.67 2.39,-1.04 2.55,-4.68 5.97,-4.03 2.84,-0.11 5.33,-4.21 7.45,-3.45 1.17,-0.15 2.17,-1.54 3.06,0.31 2.88,1.39 5.17,-2.92 7.03,0.16 3.24,-0.64 2.05,6.51 5.21,2.85 1.13,-3.37 5.41,3.07 6.68,-1.35 0.83,-2.19 5.07,4.34 4.28,-0.59 0.72,-2.92 5.73,-4.1 3.45,-7.91 -0.98,-3.57 -2.63,-6.42 -6.17,-8.13 -2.69,-2.1 -1.82,-6.45 -4.74,-8.34 -0.45,-1.7 -2.19,-2.8 -0.35,-4.4 -0.69,-2.91 2.62,-4.84 -0.62,-6.96 -2.59,-1.57 -3.98,-4.12 -5.91,-6.12 -2.16,0.37 -6.24,1.62 -5.45,-1.98 -1.98,-2.68 -5.33,1.55 -7.73,-0.76 -2.66,-0.65 -5.11,0.01 -7.56,-0.72 -1.51,-1.52 -2.18,-2.56 -4.49,-2.07 -3.09,-0.49 -3.15,-3.91 -5.15,-5.29 0.27,-2.13 2.01,-5.11 -1.71,-4.35 l -0.47,-0.05 -0.43,-0.12 0,0 z","department-42":"m 397.37,318.49 c -1.6,0.83 -3.4,1.29 -4.64,2.21 -1.3,0.59 1.02,2.59 0.48,3.98 0.61,1.85 -0.41,4.23 1.11,6.23 -1.61,2.5 2.37,7.25 -2.15,7.3 -1.09,-0.11 -1.49,1.09 -2.88,0.34 -2.32,2.56 2.22,3.36 1.74,5.81 -1.98,1.61 -0.24,4.65 -2.31,6.15 1.69,0.49 1.3,2.13 2.33,2.91 2.23,1.34 1.14,4.92 3.25,6.83 1.78,1.97 5.01,2.91 6.17,5.68 -1.24,2.45 2.85,3.93 0.67,5.95 0.89,3.06 -5.47,3.2 -3.23,7.04 0.42,3.41 2.25,-3.4 4.17,-0.43 0.87,1.44 1.19,2.02 2.38,0.77 1.23,1.18 1.39,0.75 2.25,-0.33 1.05,-0.89 3.38,0.13 2.65,-1.8 2.25,-0.56 4.93,-0.17 6.2,1.72 1.74,-1.96 5.45,1.48 2.47,2.65 0.55,1.23 1.98,1.3 0.84,2.91 0.86,2.54 3.62,-1.67 4.48,1.3 1.58,2.36 4.9,0.89 6.79,-0.08 -1.25,-1.91 1.2,-3.4 2.26,-5.02 1.49,-1.32 5.89,-1.48 4.47,-4.32 -0.52,-1.74 0.97,-3.48 -0.58,-5.25 -0.48,-1.69 -3.61,1.7 -3.93,-1.3 0.42,-2.1 -0.24,-3.68 -1.93,-4.86 -1.43,0.06 -2.67,-1.02 -4.29,-0.14 -2.32,-0.62 -2.91,-2.86 -5.1,-4.24 -1.42,-1.8 -2.51,-3.8 -0.78,-6.03 1.82,-2.31 -3.43,-0.74 -1.14,-3.43 0.94,-1.31 1.04,-3.98 1.15,-5.42 -2.5,-0.01 -3.12,-2.67 -2.32,-4.33 -1.63,-1.26 -2.43,-3.07 -4.07,-4.21 0.9,-0.54 3.97,0.36 2.35,-1.72 -1.31,0.09 -3.3,-2.79 -0.85,-2.47 1.97,-1.74 0.65,-5.53 4.11,-6 0.97,-0.45 2.45,1.37 2.78,-0.77 -0.25,-1.57 -2.38,-2.12 -0.65,-3.5 -1.51,-1.51 -2.16,1.22 -2.41,1.83 -1.97,-0.74 -4.16,3.26 -5.16,1 1.12,-2.05 -1.54,-0.14 -2.23,-1.49 -1.1,1.9 -3.25,0.89 -4.63,-0.3 -2.08,0.61 -5.43,3.53 -6.14,-0.27 -1.61,-0.39 -4.74,-0.44 -2.93,-2.93 0.29,-0.63 0.34,-2.13 -0.72,-1.99 z","department-69":"m 433.73,316.51 c -1.23,0.46 -2.5,0.15 -2.78,2.07 -0.74,1.45 -2.37,-0.51 -2.67,-1.28 -0.69,1.49 -2.76,2.38 -3.71,0.45 -1.68,-1.33 -4.39,-0.82 -4.01,1.84 -0.71,1.65 0.63,2.41 1.38,3.48 -2.55,0.77 0.51,1.73 0.61,2.71 -0.41,1.66 -1.38,2.06 -2.7,1.09 -2.04,0.63 -3.43,2.17 -3.25,4.46 0.34,2.11 -3.89,1.45 -1.52,3.28 0.64,0.85 2.57,0.6 1.5,2.34 -0.59,0.49 -3.83,-0.49 -1.93,0.9 1.83,0.38 1.7,2.77 3.5,3.41 0.3,1.24 -1.23,2.13 0.17,3.34 0.85,1.23 3.47,0.4 1.96,2.6 -0.03,1.87 -0.27,3.49 -1.48,4.83 0.06,1.49 3.29,0.29 1.61,2.31 -1.06,1.85 -1.32,4.02 0.45,5.41 1.27,1.35 2.68,3.31 4.18,4.13 1.51,1.5 3.36,-0.41 4.88,1.05 1.7,-0.73 1.49,2.06 2.91,2.19 -1.19,1.71 0.21,5.2 2.42,3.21 1.24,-1.16 2.04,4.15 2.96,1.45 1.23,-1.41 3.83,-2.33 3.98,-4.32 -1.76,-0.7 -2.47,-2.54 -4.09,-3.51 1.84,-0.94 3.53,1.28 4.58,-0.77 1.51,-1.17 4.45,-0.14 5.27,-1.51 0.95,-0.25 2.74,0.97 2.03,-1.03 1.24,-1.85 2.79,-4.63 5.26,-4.54 0.24,-2.22 -3.33,-1.77 -3.23,-3.97 -1.59,-0.5 -1.14,-2.19 0.43,-1.77 0.7,-2.69 -4,-0.18 -5.55,-0.99 -1.61,0.21 -2.66,0.21 -2.4,-1.73 -0.63,-1.95 -1.32,-4.61 -3.64,-4.95 -0.96,0.68 -1.86,1.05 -1.38,-0.57 -0.83,-1.37 -2.55,-0.91 -3.49,-1.92 2.14,-2.03 -0.39,-5.26 0.95,-7.43 1.04,-0.99 -1.1,-2.32 0.59,-3.24 1.49,-1.45 2.32,-4.9 -0.84,-4.45 -2.61,-1.01 0.89,-5.07 -2.78,-5.24 -1.21,-1.33 2.19,-1.14 0.43,-2.68 -0.12,-0.26 -0.3,-0.58 -0.61,-0.66 z","department-43":"m 379.31,374.73 c -1.62,2.39 -4.9,1.8 -6.71,0.33 -0.7,1.72 -0.87,1.21 -1.91,0.1 -0.8,1.98 -3.58,1.56 -4.38,3.23 -1.25,1.09 -2.57,1.35 -4.33,1.17 0.74,1.5 -1.58,1.78 -0.04,2.79 -2.08,1.77 1.79,1.15 2.36,1.2 -0.13,1.97 3.13,-0.54 2.89,1.98 -0.29,1.8 0.97,2.96 2.14,3.73 -0.86,2.28 -0.05,5.34 2.48,5.9 2.93,0.43 -0.37,2.07 -1.36,0.74 -1.49,0.56 1.82,1.51 0.26,2.94 -1.01,2.64 2.59,2.31 2.97,4.1 -2.04,1.24 0.26,1.73 1.03,2.74 1.8,0.69 0.7,3.92 2.11,5.44 0.56,1.74 1.53,5.67 3.68,3.09 2.13,0.18 4,-0.58 3.52,-3.06 1.72,-1.57 4.47,0.99 3.25,2.73 2.03,-0.35 4.24,-0.91 4.56,1.81 1.6,0.42 1.42,3.2 3.32,1.95 -0.31,0.86 -0.01,2.7 1.4,1.48 3.08,-0.04 2.22,-4.19 4.35,-5.07 0.8,1.72 0.74,-0.65 2.16,-0.3 0.91,-0.43 0.22,-3.47 2.51,-2.52 2.14,-0.66 5.33,0.63 5.55,-2.64 1.54,-1.36 1.15,-4.48 3.81,-3.54 1.57,0.05 2.24,-1.12 0.99,-2.15 -1.14,-2.94 5.69,-1.67 3.23,-3.83 -1.6,-1.11 -0.01,-3.44 1.47,-3.61 -1.01,-0.84 -1.65,-2.84 0.52,-2.06 0.75,0.25 1.93,2.57 1.79,0.63 -0.57,-2.5 2.93,-4.77 1.26,-7.19 -1.2,-1.98 -2.64,-2.48 -4.48,-1.26 -2.08,-0.82 0.53,-3 -1.95,-3.68 1.6,-1.09 1.44,-3.36 -0.89,-3.47 -2.17,2.19 -2.9,-2.58 -5.24,-0.98 -1.45,-1.18 -2.23,0.2 -2.36,1.14 -1.72,-0.24 -2.79,0.8 -3.72,1.87 -0.74,-1.86 -1.9,-0.59 -2.28,0.4 -0.52,-2.16 -2.78,-4.05 -4.23,-1.53 -0.3,1.52 -1.03,1.38 -1.49,0.05 -2.13,0.67 -3.37,-3.95 -4.67,-1.3 0.12,2.86 -4.25,0.82 -5.13,-0.4 -0.84,1.48 -2.99,4.23 -4.08,1.09 -0.06,-2.97 -3.34,-1.73 -4.39,-4.01 z","department-07":"m 436.62,378.68 c -2.11,1.19 -5.05,1.82 -5.73,4.31 -0.61,0.74 -1.7,1.47 -0.63,2.83 -1.48,1.55 -5.39,0.21 -5.65,3.05 -0.4,2.17 -2.13,4.1 -1.51,6.11 -0.82,1.35 -2.2,-3.55 -3.34,-0.83 2.87,1.6 -1.37,1.64 -1.06,3.7 -0.07,1.01 2.58,2.11 0.3,2.78 -2.43,-0.04 -3.73,1.92 -2.22,3.92 -1.62,1.35 -4.39,-0.37 -4.36,2.53 -1.51,1.8 -1.89,5.12 -5.04,3.9 -1.64,0.68 -4.72,-0.35 -3.54,2.75 -1.69,0.44 -2.07,1.93 -3.57,0.7 -0.65,2.39 -1.67,4.38 -3.7,5.18 0.05,1.23 -0.23,2.66 0.56,3.58 -0.09,2.42 0.91,5.06 1.8,7.31 3.3,1.24 2.04,5.97 4.07,8.24 1.96,0.49 1.37,2.56 2.59,3.64 -1.74,0.94 0.2,3.57 -1,5.13 1.45,0.08 4.13,-2.2 4.71,0.49 2.27,-0.88 3.84,4.84 5.98,2.4 0.11,-2.69 3.06,-5.02 5.54,-4.01 -0.84,1.71 0.49,4.93 2.22,2.69 -1.12,-4.19 4.37,-2.87 5.2,-0.35 2.07,1.28 5.06,2.67 3.99,-1.18 -0.44,-2.49 0.5,-4.84 0.92,-7.23 2.57,-1.67 0.05,-4.72 1.41,-6.94 -1.34,-2.75 2.73,-3.36 2.63,-6.07 2.5,-3.08 -0.98,-6.81 0.47,-10.07 2,-1.59 2.83,-4.11 4.16,-6.22 -0.81,-2.28 2.55,-4.4 -0.11,-6.44 -1.37,-1.98 -0.41,-4.12 -0.17,-5.92 -1.82,-0.69 -0.96,-3.19 -2.25,-4.49 1.8,-2.26 -0.83,-5.08 0.05,-7.93 1.49,-3.08 -3.02,-4.17 -1.77,-7.12 l -0.36,-0.33 -0.59,-0.1 0,0 z","department-26":"m 448.07,380.12 c -2.89,1.17 -5.09,3.5 -8.19,2.69 -0.39,2.66 -1.05,6.79 0.49,9.42 -1.96,1.97 0.32,3.64 0.34,5.76 2.35,1.37 -0.99,4.81 1.33,6.93 2.06,2.38 -0.62,5.13 -0.81,7.77 -1.22,2.58 -4.32,4.41 -3.69,7.71 1.66,3.46 0.06,6.59 -1.3,9.7 -3.02,0.93 -0.83,4.24 -2.03,6.3 0.95,3.33 -2.55,6.12 -1.92,9.81 1.2,3.03 7.51,-0.99 7.1,4.18 0.14,2.04 0.67,4.67 2.58,1.79 2.97,-0.92 6.04,-2.27 9.06,-3.52 1.12,3.67 4.14,-0.81 5.13,-0.14 -0.85,1.68 -0.59,3.54 -0.5,5.19 1.36,1.14 3.35,1.14 4.16,-0.1 1.72,1.86 4.28,0.89 5.95,1.95 0.03,1.94 0.09,3.52 2.41,3.44 1.06,4.04 4.77,0.96 6.47,-0.43 -1.58,-2.47 1.9,-2.75 3,-1.1 1.64,-1.37 2.06,-2.86 1.41,-5.21 1.53,-2.36 -2.87,-0.24 -1.73,-2.96 -1.59,-0.67 -0.77,-1.18 -0.59,-2.32 -2.51,0.48 -4.35,-1.04 -6.35,-0.89 -1.23,-1.45 -2.87,-1.53 -2.12,-3.69 -1.62,-1.67 -0.01,-2.82 1.69,-1.61 2.12,-0.83 -1.87,-1.85 -0.65,-3.64 -0.28,-2.93 4.33,0.48 6.05,0.59 1.73,0.39 1.15,-2.66 3.01,-2.35 -1.71,-1.67 -3.84,-2.97 -1.6,-5.43 1.79,-1.45 -0.55,-5.71 2.99,-3.98 1.94,0.82 3.33,-0.86 4.9,-1.06 1.29,-0.88 2.08,-3.19 -0.35,-2.44 -2.24,0.57 -3.91,-2.09 -6.41,-1.58 -1.16,-1.43 -2.84,-3.52 -4.34,-3.81 0.14,1.78 -6.09,-0.53 -3.44,-2.33 -1.37,-2.79 0.85,-6.84 0.11,-10.1 0.96,-2.47 -1.42,-5.35 0.09,-7.37 -2.07,0.93 -4.59,4.84 -6.88,1.6 -1.84,0.62 -4.04,-0.31 -5.88,-1.61 -1.29,0.02 -2.1,2.02 -3.13,0.34 2.95,-1.62 2.73,-5.57 1.54,-8.29 2.1,-1.71 -0.25,-3.63 -2.12,-2.9 0.27,-1.74 0.99,-4.37 -1.59,-2.47 -1.31,0.06 -1.04,-2.86 -3.02,-2.37 -0.42,-0.45 -0.36,-1.52 -1.19,-1.46 z m -1.27,60.35 c 2.68,0.18 1.93,3.2 4.79,3.14 -1.88,1.51 -2.98,3.63 -4.06,5.91 -1.76,-1.35 -5.66,0.15 -4.33,-3.15 -1.66,-0.66 1.47,-2.81 1.37,-4.36 0.67,-0.62 1.73,-0.72 2.23,-1.54 z","department-84":"m 446.86,440.69 c -1.95,0.68 -2.59,2.23 -3.24,3.95 -1.54,1.08 0.24,1.84 -0.38,3.25 0.79,1.16 2.95,0.74 4.3,1.12 1.33,-1.76 1.41,-4.26 3.76,-4.92 -0.23,-0.92 -2.69,-0.73 -2.57,-2.42 -0.66,-0.27 -1.12,-0.97 -1.86,-0.99 z m -10.7,6.69 c -1.75,0.63 -4.36,-0.72 -3.75,2.23 -0.47,1.96 1.22,3.5 1.32,5.13 2.22,-0.26 1.8,3.29 1.6,4.89 -0.71,1.78 -0.16,4.41 1.97,3.57 1.39,1.79 2.8,3.83 3.94,5.76 0.11,1.52 -2.28,0.28 -1.54,2.26 -0.27,1.54 -4.74,2.54 -1.78,2.92 1.98,0.36 4.26,0.33 5.81,1.82 2.69,0.61 4.43,2.7 6.08,4.74 0.55,2.14 2.45,3.17 4.31,4.09 2.3,2.43 5.12,0.03 7.83,1.23 2.38,1.21 4.48,2.96 6.96,4.03 2.69,1.26 6.11,1.9 8.79,0.34 1.35,-1.61 3.7,-0.97 4.73,-3.09 0.97,-1.51 -1.94,-2.24 -1.96,-3.86 -1.56,-1.86 -3.42,-4.41 -6.24,-2.8 -2.07,0.95 -0.48,-2.95 0.61,-3.43 0.51,-1.33 1.55,-2.66 -0.1,-3.23 -0.29,-2.08 -4.3,-0.54 -3.06,-3.3 0.45,-2.01 1.86,-3.87 1.45,-6.01 -1.1,0.12 -2.63,0.07 -2.14,-1.74 0.53,-2.35 -2.66,-1.28 -2.71,-3.51 -1.05,-0.88 -3.35,-0.4 -2.48,-2.73 -0.01,-3.12 -4.03,-0.26 -5.3,-2.66 -1.51,-1.06 -0.98,1.74 -2.66,0.68 -2.01,-0.15 -3.06,-1.35 -2.27,-3.12 -1.69,-0.64 1.81,-3.73 -0.28,-2.95 -1.07,2.14 -3.56,1.91 -4.6,0.21 -2.41,0.78 -4.55,2.65 -7.11,2.79 -1.53,-0.33 -4,4.19 -3.94,0.55 -0.37,-2.16 -0.51,-5.06 -3.51,-4.81 z","department-13":"m 436.6,474.08 c -0.74,1.85 -4.74,2.73 -4.06,4.51 1.26,0.66 -1.41,1.72 -0.12,3.06 0.08,2.7 -2.74,5.11 -1.37,7.86 -2.28,-0.28 -6.4,-2.34 -7.04,1.21 -2.02,1.17 -2.34,4.33 0.25,4.07 -0.26,2.18 -2.99,1.15 -3.24,3.2 -2.53,0.88 -3.65,1.48 -5.33,3.13 -3.12,0.45 -3.32,4.69 0.25,3.69 2.78,0.47 5.55,1.05 8.35,0.35 2.37,-0.45 7.29,1.42 4.55,4.28 -0.6,3.55 5.03,2.05 7.33,2.58 1.71,0.43 5.71,0.01 2.7,-2.11 -3.88,-1.35 -2.85,-5.16 -3.05,-8.31 -0.04,-1.21 -2.55,-5.59 -0.42,-2.89 1.89,2.36 1,5.34 0.95,8.05 0.88,2.13 3.62,3.05 5.46,4.22 1.53,-0.81 -2.25,-2.45 0.5,-3.11 1.91,-1.46 4.03,-0.52 5.49,0.58 3.35,0.39 4.55,-4.15 1.3,-5.2 -0.68,-1.48 -0.16,-6.09 1.79,-3.06 2.23,-0.56 2.91,0.56 2.79,2.29 1.26,2.1 3.09,1.09 4.71,0.38 1.06,3.09 -3.48,5.94 -6.44,5.14 -4.78,-0.48 -3.49,6.19 0.68,5.18 2.9,-0.06 6.07,0.58 8.6,-1.26 3.09,-1.75 3.91,2.83 3.27,4.72 2.03,1.28 -2.35,4.61 1.58,4.55 2.59,-0.26 5.17,0.78 7.33,0.32 0.97,2.95 3.72,1.97 5.67,1.14 -0.33,-3.01 1.95,-4.41 4.07,-5.87 -0.58,-2.14 -2.28,-2.58 -3.96,-3.03 2.56,-1.22 -1.49,-6.49 2.6,-5.65 1.54,0.73 3.39,-0.95 1.08,-1.75 -1.32,-1.96 -3.23,-3.39 -1.84,-5.73 2.26,-2.81 -4.73,-2.76 -1.41,-4.42 -0.82,-3.37 2.37,-4.88 5.13,-5.19 1.46,-1.69 -2.03,-5.66 -3.21,-2.42 -1.87,0.81 -3.79,1.87 -5.79,2.74 -4.96,0.73 -9.29,-2.44 -13.26,-4.94 -3.21,-1.31 -6.53,0.84 -9.27,-1.96 -2.79,-0.81 -2.96,-3.66 -4.98,-5.35 -1.7,-2.34 -4.64,-3.03 -7.08,-4.31 -1.52,-0.14 -3,-0.57 -4.52,-0.71 z","department-83":"m 517.2,482.16 c -2.21,0.45 -4.51,0.15 -4.56,3.03 -1.71,2.89 -5.34,-0.75 -6.7,-2.47 -3.07,-2.54 -3.41,4.73 -6.6,3.29 -1.58,1.5 -2.96,3.5 -4.46,4.67 -1.25,-1.47 -1.71,-3.25 -3.55,-3.95 0.03,-1.86 -1.87,-1.86 -1.91,-0.09 -1.33,1.02 -2.66,0.95 -3.16,-0.75 -1.91,-1.9 -4.18,0.89 -2.09,2.04 0.53,1.23 1.97,1.94 0.53,3.38 -2.84,-0.21 -5.92,2 -4.84,5.1 -3.44,1.27 3.35,1.25 1.35,3.57 -0.22,1.94 -1.24,3.31 0.74,4.69 0.22,1.73 4.1,2.93 0.81,3.75 -2.63,-1.28 -3.72,1.11 -2.27,3.16 -1.33,1.63 -0.65,2.88 1.29,2.7 1.09,1.33 2.34,3.31 -0.22,3.83 -2.89,1.3 -2.33,4.54 -1.48,6.82 1.05,1.11 2.71,1.01 3.71,1.52 -0.45,1.28 3.17,1.21 0.61,2.02 -2.2,1.64 1.53,2.03 2.31,3.24 1.87,0.49 2.01,-2.69 4.02,-1.64 0.25,-1.17 -3.62,-2.32 -0.77,-2.94 1.5,-0.75 1.25,1.72 3.11,0.9 1.98,-0.44 2.88,1.82 4.97,0.72 2.49,0.17 1.79,3.18 -0.25,3.1 1.03,0.17 3.75,1.02 4.22,-0.22 -1.87,-1.01 -0.43,-5.47 2.18,-4.51 2.27,-1.02 4.3,0.74 5.47,2.2 2.95,0.7 -0.7,-3.95 2.56,-4.14 1.82,-1.17 4.32,-0.11 5.81,-1.82 1.19,-1.87 3.53,-0.69 3.91,0.87 1.83,-0.26 1.02,-2.97 3.25,-2.97 -1.94,-1.52 0.52,-2.56 0.71,-4.09 -0.88,-1.35 -6.14,0.84 -4.2,-1.29 1.98,-0.49 3.13,-1.3 3.41,-3.27 3.09,-0.38 1.58,-4.33 3.42,-5.76 2.02,1.51 4.49,0.53 6.29,-0.38 1.97,-1.45 2.07,-3.69 -0.21,-4.86 0.39,-1.48 -0.82,-2.76 0.73,-4.13 0.32,-1.33 0.43,-3.31 -1.68,-2.51 -2.08,-0.91 -4.86,-2.77 -4.6,-5.2 1.21,-2.45 -1.26,-3.59 -2.82,-4.44 -1.3,-0.4 -2.5,0.43 -2.84,-1.45 -0.36,-2.95 -3.06,-1.75 -4.46,-0.37 0.04,-0.84 -0.83,-2.43 -1.72,-1.38 z","department-06":"m 534.65,445.17 c -2.26,1.07 -5.06,2.58 -4.36,5.66 -3,-0.21 -3.04,3.43 -4.06,5.54 -1.08,2.46 0.95,4.86 2.25,6.92 -1.14,3.22 2.36,4.62 4.05,6.69 0.63,2.61 3.53,3.37 4.77,5.63 -2.57,2.29 -4.92,-3.17 -6.86,-0.03 -0.74,2.32 -3.13,1.4 -4.56,1.36 1.15,1.61 -2.67,2.88 0.34,3.69 1.19,1.89 -4.95,1.17 -2.32,3.78 0.53,1.35 2.49,-0.04 3.3,1.63 2.89,-0.16 1.89,3.58 2.03,5.2 1.45,1.97 3.65,3.89 6.12,3.69 1.22,2.02 -1.58,4.04 -0.48,6.02 -0.26,2.6 3.76,2.43 2.74,-0.52 1.75,-2.03 4.78,-1.82 7.05,-2.83 2.15,2.34 0.79,-2.94 1.42,-4.1 0.35,-2.64 3.85,-1.42 4.44,-3.92 1.43,-0.64 4.04,-1.22 4.41,0.38 0.69,-1.18 0.32,-2.51 2.45,-2.28 -0.13,-1.76 1.58,-4.07 3.07,-2.16 1.7,0.06 1.19,-2.66 3.34,-2.27 -0.27,-2.4 -3,-5.81 0.3,-7.3 1.54,-1.45 0.99,-4.2 3.51,-4.76 2.78,-1.39 1.89,-4.43 4.17,-6.12 1.59,-2.77 -3.27,-4.24 -1.5,-7.3 -1.21,-2.71 -2.61,1.55 -4.47,0.73 -2.22,0.84 -4.68,1.32 -6.76,2.38 -2.04,0.2 -3.62,-0.51 -4.81,-1.86 -2.43,0.52 -3.44,-1.96 -5.53,-2.49 -1.15,-2.34 -3.58,-0.83 -4.96,-2.82 -1.54,-1.59 -4.78,0.61 -4.95,-2.66 -1.4,-1.9 -2.37,-3.95 -3.93,-5.85 l -0.23,-0.02 -1.8e-4,10e-5 z","department-04":"m 536.03,425.47 c -1.91,1.96 -3.88,3.46 -6.49,4.44 -1.02,2.88 -4.75,3.12 -5.32,6.34 -1.11,1.83 -1.21,3.9 -4.02,3.07 -3.01,-0.06 -6.66,-0.3 -8.11,-3.08 -0.64,-1.8 -3.43,-1.98 -2.19,0.22 -0.26,3.25 -2.7,-0.14 -4.23,1.68 -1.44,0.61 2.06,5.8 -1.43,5.09 -2.1,-2.16 -2.71,-5.63 -6.09,-5.69 -0.87,3.33 -6.54,3.63 -7.12,7.81 -0.96,1.13 -2.01,2.66 -0.4,3.1 -0.61,1.4 0.72,5.52 -1.66,2.94 -0.44,-1.65 -2.49,-3.59 -2.83,-0.6 1.02,1.86 2.62,3.82 3.95,5.12 -2.91,0.83 -6.3,-2.29 -9.28,0.12 -0.78,0.38 -3.94,0.37 -2.37,1.8 0.52,0.59 -1.17,0.62 -1.27,-0.25 -1.21,-2.36 -3.58,-0.6 -2.43,1.22 -2.05,0.82 -5.12,3.55 -2.92,5.69 3.34,-0.23 0.15,4.71 -0.09,6.55 -0.21,2.32 3.26,0.85 3.55,3.17 2.24,1.52 -3.59,5.18 -1.33,6.48 2.81,-2.13 5.06,0.73 6.7,2.59 0.57,1.46 2.26,4.38 3.61,1.7 2.13,0.13 4.41,4.24 5.38,0.42 1.94,-1.62 1.55,2.48 3.59,2.29 0.43,1.7 2.31,4.04 2.93,1.23 2.03,-0.76 2.24,-3.96 4.52,-2.9 1.73,-1.32 3.93,-6.5 5.92,-2.58 1.76,2.61 6.67,4.01 6.46,-0.53 1.66,-0.48 3.88,-1.21 5.41,-0.9 0.99,2.9 3.19,-2.27 4.59,0.48 1.62,-0.3 5.25,-1.56 1.66,-2.44 0.5,-1.52 2.15,-2.44 0.07,-3.65 2.45,0.82 5.17,0.99 6.43,-1.88 1.98,-0.91 4.27,3.34 5.6,0.53 -2.39,-1.94 -3.94,-3.66 -5.54,-6.13 -1.97,-1.55 -3.7,-3.16 -3.01,-5.85 -1.63,-2.1 -3.46,-4.86 -1.89,-7.35 0.29,-2.57 2.02,-4.78 3.68,-5.75 -0.2,-4 5.64,-3.6 4.5,-7.78 -0.28,-2.01 3.78,-1.57 1.15,-3.33 -2.21,-1.59 -4,-5.51 -0.76,-7.08 1.56,-1.02 4.77,-6.03 1.11,-6.32 z","department-05":"m 505.98,394.66 c -0.92,0.25 -1.63,1.24 -1.1,2.16 0.19,0.48 0.58,1.51 -0.28,1.51 -1.03,0.5 -0.62,1.96 -1.08,2.79 -0.5,0.85 0.81,1.35 1.44,1.52 1.22,0.46 2.5,-0.16 3.7,-0.25 0.54,0.61 -0.39,1.36 0.2,1.99 0.46,0.55 -0.24,1.49 0.61,1.76 1.28,0.11 1.04,1.22 0.99,2.19 0.04,1.33 -0.36,2.63 -0.12,3.94 -0.53,0.79 -1.69,0.39 -2,-0.4 -0.51,-1.19 -2.09,-0.47 -2.63,0.32 -1,0.97 -2.33,-0.4 -3.46,0.21 -0.85,0.38 -1.73,-1.03 -2.42,-0.12 -0.98,1 -2.08,1.88 -3.19,2.74 -0.6,-0.52 -1.36,-2.29 -1.99,-0.92 -0.19,0.45 -0.47,0.63 -0.95,0.63 -0.5,0.26 -1.64,0.37 -1.59,1.05 0.28,0.44 1.46,0.83 1.02,1.47 -0.54,0.3 -1.13,0.65 -1.29,1.26 -0.7,-0.05 -1.3,0.89 -1.97,0.42 -0.72,-0.21 -1.09,0.98 -1.85,0.43 -0.58,0.09 -1.28,-0.82 -1.74,-0.36 0.25,1.1 -0.94,2.04 -0.76,3.1 0.52,0.18 0.81,0.66 0.78,1.23 -0.53,0.61 -1.46,0.99 -1.58,1.94 -0.18,0.9 -1.25,0.06 -1.79,0.32 -0.68,0.37 -1.24,1.41 -2.12,0.79 -0.93,-0.21 -2.04,-0.85 -2.95,-0.39 -0.57,0.89 0.83,2.18 -0.26,2.82 -0.65,0.74 -0.7,1.84 -1.37,2.59 -0.33,0.63 -0.72,1.79 0.31,1.98 1.01,0.26 1.61,1.36 2.24,2.13 -0.07,0.59 -1.06,0.18 -1.47,0.37 -0.6,0.27 -0.26,1.22 -0.74,1.67 -0.29,0.65 -1.01,0.59 -1.49,0.18 -0.57,-0.34 -1.27,-0.05 -1.74,-0.61 -0.9,-0.62 -2,-0.67 -3.03,-0.83 -0.44,-0.35 -1.26,-0.9 -0.84,0.18 0.34,0.85 -0.18,1.94 0.35,2.71 0.46,0.27 1.64,0.66 1.06,1.38 -0.5,0.81 -1.41,0.3 -2.05,-0.05 -0.52,-0.37 -1.25,0.09 -0.87,0.7 0.33,0.77 0.86,1.66 0.62,2.5 -0.66,0.38 0.12,0.97 0.62,0.79 0.61,0.08 0.48,1.09 1.17,1.15 0.27,0.47 0.79,0.78 1.25,0.32 0.66,-0.57 1.26,0.29 1.64,0.72 1.26,0.36 2.77,-0.21 3.93,0.31 -0.15,0.66 -1.33,1.39 -0.16,1.75 0.4,0.17 0.78,0.55 0.44,0.97 -0.13,0.75 0.67,1.6 1.38,1.06 0.44,-0.36 1.29,0.39 0.73,0.76 -0.45,0.57 -0.47,1.41 -0.01,1.94 -0.06,0.96 -0.14,2.01 0.32,2.89 0.74,-0.36 1.48,-0.84 2.32,-1.03 0.89,-0.54 2.04,-0.3 3.03,-0.47 1.36,0.7 2.9,1.36 4.48,1.28 0.82,-0.57 -0.52,-1.06 -0.97,-1.25 -0.83,-0.92 -1,-2.37 -2.18,-3.02 -0.89,-0.61 -0.47,-1.72 -0.01,-2.44 0.2,-0.82 1.38,-0.21 1.78,0.12 0.44,0.5 0.07,1.39 0.76,1.79 0.27,0.34 1.29,1.11 1.39,0.28 -0.46,-0.7 -0.4,-1.72 0.04,-2.4 0.24,-0.63 -0.28,-0.96 -0.8,-0.99 -0.4,-0.58 -0.19,-1.66 0.53,-1.93 1.11,-0.98 1.03,-2.64 1.93,-3.7 0.84,-0.83 2.18,-1.02 2.91,-1.96 0.3,-0.69 1.08,-1.23 1.8,-1.37 0.77,0.34 0.76,-0.99 0.72,-1.47 0.2,-0.8 1.42,-0.33 1.96,-0.19 0.77,0.29 1.87,0.6 1.76,1.64 -0.03,0.5 0.41,0.7 0.8,0.64 0.65,1.23 1.63,2.21 2.33,3.38 0.67,0.53 1.08,-0.73 1.28,-1.18 0.53,-1.39 -0.98,-2.61 -0.83,-3.89 0.95,-0.06 1.68,-0.79 2.53,-1.06 0.55,0.33 1.53,1.41 2.02,0.36 0.44,-0.73 0.48,-1.61 -0.08,-2.27 0.17,-0.42 0.83,-0.77 1.24,-0.86 0.91,1 1.94,1.96 2.46,3.23 0.51,0.3 1.22,-0.11 1.7,0.41 0.56,0.61 1.25,1.09 2.14,1 1.98,0.14 3.96,0.2 5.94,0.29 0.53,-0.84 0.08,-2.27 1.05,-2.94 1.09,-0.75 1.13,-2.18 1.48,-3.28 1.39,0.19 2.51,-0.88 3.23,-1.94 0.77,-0.23 0.49,-1.3 1.27,-1.53 0.82,-0.72 1.93,-0.86 2.92,-1.25 0.49,-0.42 0.51,-1.23 1.32,-1.26 0.83,-0.36 1.14,-1.4 1.93,-1.78 0.77,0.27 1.79,0.29 2.08,-0.66 0.66,-1.38 2.4,-1.81 3.71,-1.06 0.39,0.18 1.29,0.5 1.12,-0.27 0.09,-1.44 -0.99,-2.46 -1.92,-3.38 -0.16,-1.25 0.2,-2.81 -0.7,-3.82 0.26,-0.63 1.23,-1.27 0.5,-1.95 -0.48,-0.56 -0.7,-1.27 -1.5,-1.47 -0.9,-0.29 -1.99,-1.36 -2.93,-0.65 -1.03,0.93 -2.61,0.14 -3.63,-0.46 -1.39,-1.22 -3.06,-2.05 -4.52,-3.16 -0.14,-0.64 0.04,-1.36 -0.18,-2.01 0.26,-0.67 0.64,-1.39 0.32,-2.14 -0.46,-0.77 -0.27,-1.65 -0.34,-2.48 -0.67,-1.47 -2.82,-0.12 -3.68,-1.29 -0.42,-1.05 0.19,-2.49 -0.93,-3.24 -0.45,-0.58 -0.89,-1.29 -0.84,-2.02 -0.58,-0.55 -1.68,-0.52 -2.38,-0.21 -0.4,0.9 -1.61,1.62 -2.44,0.8 -0.83,-0.16 -1.61,0.86 -1.3,1.66 0.16,0.65 0.15,1.68 -0.74,1.69 -0.9,0.39 -1.54,-0.53 -2.43,-0.47 -0.85,-0.07 -1.72,-0.21 -2.49,-0.62 0.67,-1.13 -0.23,-2.74 -1.37,-3.11 -0.83,0.45 -1.99,0.92 -2.79,0.12 -0.24,-0.12 -0.29,-0.52 -0.63,-0.43 z","department-38":"m 464.21,344.5 c -2.79,1.9 -2.68,8.48 -7.27,6.99 -0.9,-2.78 -3.83,-2.24 -5.03,-0.76 -2.02,0.29 1.51,1.68 1.08,3.08 2.47,0.08 3.5,3.16 0.44,2.72 -1.73,1.6 -3.23,3.88 -3.85,5.57 -1.57,-1.3 -1.06,1.72 -2.92,0.29 -3.28,-0.47 -4.55,3.17 -7.48,1.48 -1.5,1.31 5.74,3.47 2.07,5.5 -2.26,2.06 -5.1,3.74 -4.23,6.93 0.77,2.57 -0.06,8.04 4.48,6.03 2.27,2 6.34,-5.1 8.45,-0.76 1.77,0.21 1.71,3.96 3.93,1.45 1.68,0.13 -1.09,4.61 1.72,3.03 1.9,0.92 2.02,2.4 0.5,3.24 1.61,2.88 0.73,6.17 -0.85,8.65 1.08,-0.16 3.1,-1.79 4.37,0.45 2.36,0.7 4.24,0.15 6.23,1.33 0.84,-0.27 3.02,-1.03 3.81,-2.77 2.64,0.63 -1.49,2.67 0.72,4.47 0.38,3.59 -0.09,7.56 -0.56,11.3 0.4,1.45 0.41,2.4 -0.01,3.62 1.24,0.79 4,2.16 3.74,0.13 2.61,1.83 4.3,5.05 7.54,4.72 2.17,2.94 5.3,0.26 5.21,-2.58 1.66,1.44 8.14,-0.42 5.75,-2.57 -0.07,-1 2.61,-2.26 3.54,-2.4 2.26,2.99 3.89,-3.83 6.67,-1.32 2.19,0.23 3.45,-0.22 5.31,-1.27 0.97,1.39 3.24,2.32 2.54,-0.45 1.1,-3.23 -1.77,-5.43 -1.86,-8.01 -3.37,1.84 -6.82,-1.82 -3.61,-4.41 -0.13,-1.84 0.52,-3.31 1.32,-4.86 -1.82,-0.13 -3.26,-1.51 -5.13,-0.74 1.43,-2.69 -1.8,-4.98 -0.71,-7.76 -0.38,-2.56 4.12,-3.93 2.03,-6.04 0.5,-3.14 -3.24,-5.89 -6.15,-5.13 -1.66,-1.14 -3.77,-5.23 -5.46,-1.87 -0.31,1.87 -0.63,3.21 -0.4,4.62 -2.15,1.23 -4.77,-3.87 -7.68,-2.52 -0.95,-2.94 -2.79,-6.19 -4.33,-9.02 -1.66,-2.41 -2.31,-5.84 -4.73,-7.23 -0.04,-3.77 -5.4,-5.53 -5.81,-9.3 0.88,-1.39 -2.2,-3.36 -3.39,-3.83 z","department-73":"m 486.16,340.96 c -0.45,0.45 0.31,1.19 0.03,1.77 -0.43,2.29 -1.49,4.41 -1.88,6.69 -0.26,1.38 -0.01,2.88 -0.3,4.22 -0.62,0.31 0.02,1.17 -0.58,1.57 -0.45,1.17 -1.58,0.73 -2.55,0.64 -0.84,0.07 0.16,1.14 -0.18,1.7 -0.39,0.69 -1.23,1.27 -0.9,2.19 0.16,0.81 -0.73,0.85 -1.28,0.92 -0.46,0.22 -0.52,0.84 -0.99,1.02 -0.1,0.57 -0.89,1.04 -0.26,1.63 0.76,1.32 2.36,2.45 2.11,4.11 0.23,0.33 0.74,0.34 0.74,0.83 0.84,0.69 0.84,1.99 1.51,2.8 0.86,0.69 -0.26,2.79 1.33,2.79 0.69,-0.42 1.75,-0.43 2.21,0.36 0.86,0.8 2.15,0.9 3.12,1.6 0.57,0.15 0.69,0.71 1.06,1.03 0.59,0.02 1.32,-1.15 0.42,-1.31 -0.57,-0.83 0.26,-1.71 0.62,-2.42 0.32,-0.63 -0.18,-1.37 -0.02,-1.93 0.76,-0.47 1.65,-0.69 2.47,-1.04 0.43,0.56 1.01,1.07 1.58,1.38 0.13,0.76 0.39,1.57 1.25,1.79 0.96,0.51 2.24,-0.49 3,0.51 0.5,0.17 1.21,-0.47 1.46,0.31 0.64,1.59 2.48,2.51 2.66,4.29 -0.29,0.15 -0.79,0.54 -0.21,0.73 0.85,0.23 0.12,1.35 0.11,1.91 -0.05,0.98 -1.42,0.76 -1.63,1.63 -0.67,0.52 -0.97,1.32 -0.71,2.16 0.28,0.8 -0.51,1.41 -0.41,2.16 0.41,0.87 0.74,1.73 1.41,2.45 0.62,1.01 -0.59,1.95 -0.5,2.93 0.52,0.56 1.11,-0.22 1.49,-0.5 0.92,-0.1 1.37,0.91 2.13,1.15 0.63,-0.3 1.62,-0.2 1.66,0.68 -0.1,1.41 1.8,2.18 2.81,1.25 0.65,-0.79 1.23,0.33 1.67,0.84 0.46,0.64 0.68,1.43 0.45,2.15 0.54,0.74 1.75,0.36 2.53,0.62 0.86,0.16 1.92,1 2.66,0.13 0.38,-0.92 -0.65,-2.23 0.57,-2.71 0.35,-0.45 0.85,-0.56 1.27,-0.15 0.94,0.49 1.73,-0.4 2.13,-1.14 0.91,-0.24 1.86,0.12 2.72,0.29 0.81,-0.21 1.62,-0.66 2.1,-1.32 0.99,-0.68 2.46,0.1 3.22,-1.02 0.35,-0.43 0.97,-0.89 1.45,-0.3 0.85,0.52 2.11,0.47 2.52,1.51 0.72,0.63 1.87,0.09 2.61,-0.25 0.41,-0.56 -0.74,-1.63 0.24,-1.82 0.89,-0.31 2.18,-0.09 2.35,-1.31 0.28,-0.94 0.93,-1.7 1.94,-1.85 1,-0.19 1.96,-0.56 2.92,-0.94 0.28,0.29 0.54,1.02 1.07,0.58 0.47,-0.87 0.96,-2.03 2.06,-2.12 0.86,-0.78 0.12,-2.12 -0.06,-3.06 -0.11,-0.72 -1,-1.93 0.07,-2.33 0.68,-0.07 0.41,-0.73 0.59,-1.12 0.98,-0.99 1.63,-2.36 1.9,-3.7 -0.59,-0.97 -1.87,-1.22 -2.71,-1.86 -0.94,-0.95 -0.87,-3.04 -2.54,-3.15 -0.56,-0.01 -0.92,-0.42 -0.89,-0.96 -0.58,-0.7 -1.85,-0.56 -2.18,-1.57 -0.64,-1.44 -0.23,-3.2 -1.06,-4.6 -0.34,-1.1 0.49,-2.08 0.76,-3.02 -0.69,-0.83 -1.62,-1.51 -2.76,-1.31 -0.88,0.14 -0.91,-0.82 -1.25,-1.33 -0.99,-0.62 -2.63,-0.33 -3.11,-1.66 -0.83,-0.95 -1.39,-2.07 -1.33,-3.37 -0.05,-0.49 -0.09,-1.83 -0.91,-1.34 -0.91,0.06 -1.72,0.7 -1.99,1.6 -0.42,0.52 -0.86,1.4 -1.45,1.52 -0.4,-0.17 -1.27,-0.31 -0.7,-0.87 0.23,-0.66 -0.51,-1.2 -0.28,-1.88 -0.34,-0.89 -0.91,-2.04 -1.95,-2.2 -0.89,-0.13 -2.19,0.76 -2.83,-0.15 -0.09,-0.52 -0.37,-0.96 -0.88,-1.06 -0.72,-0.81 -1.07,-2.03 -1.15,-3.07 0.63,0.06 1.62,-0.31 1.26,-1.11 -0.35,-1.05 -1.53,-1.04 -2.36,-1.47 -0.67,-0.01 -0.86,0.94 -1.52,1.08 -0.85,0.88 -1.48,2.09 -1.51,3.29 -0.72,0.95 -0.91,2.24 -1.97,2.95 -0.76,0.61 -1.69,1.28 -1.54,2.39 -0.21,0.67 -0.99,1.04 -1.01,1.82 -0.44,0.97 -0.54,2.37 -1.86,2.41 -1.14,0.38 -2.33,0.53 -3.53,0.54 -0.06,-0.45 0.01,-1.66 -0.76,-1.32 -0.31,0.13 -0.76,0.69 -1.03,0.56 -0.25,-0.91 0.24,-2.16 -0.62,-2.79 -0.14,-0.81 -1.14,-1.57 -1.94,-1.34 -0.21,0.5 -0.78,0.26 -1.03,-0.06 -0.76,0.04 -0.24,1.32 -0.76,1.53 -0.34,-0.65 -1.25,-0.37 -1.8,-0.73 -0.47,-0.07 -0.73,0.7 -1.2,0.25 -0.48,-0.36 -1.21,-0.4 -1.7,-0.51 0.01,-0.61 -0.44,-1.04 -0.93,-1.29 0.04,-0.57 0.55,-1.77 -0.49,-1.68 -0.47,-0.1 -0.19,-0.97 -0.81,-1.05 -0.66,-0.37 -1.22,0.91 -1.76,0.14 -0.38,-0.36 -0.12,-1.3 -0.92,-1.18 -1.02,-0.5 -0.45,-1.96 -0.7,-2.86 -0.23,-1.29 -0.31,-2.65 -0.65,-3.91 -0.34,-0.35 -0.97,-0.38 -1.43,-0.38 z", -"department-74":"m 522.73,306.41 c -1.97,0.51 -4.09,-0.11 -6.02,0.54 -1.69,0.88 -2.87,2.78 -4.92,2.88 -1.61,0.19 -3.71,0.06 -4.62,1.7 -1.07,1.16 -2.72,2.21 -2.73,3.97 0.1,0.69 1.48,0.71 0.93,1.55 -0.41,0.84 0.21,1.93 0.9,2.4 0.42,0.09 0.95,-0.58 1.26,0.01 0.37,0.53 0.48,1.32 -0.23,1.62 -1.53,1.19 -3.48,2.08 -4.62,3.7 0.15,0.96 -1.06,1.44 -1.7,1.89 -0.92,0.54 -2.12,0.67 -2.99,-0.02 -0.94,-0.11 -1.74,0.7 -2.72,0.57 -1.73,-0.1 -3.26,0.92 -4.93,1 -0.77,0.2 -1.52,0.85 -1.16,1.71 0.19,0.63 -0.32,1.15 -0.97,1 -0.99,0.19 -1.36,-0.93 -2.04,-1.36 -0.25,0.5 -0.16,1.27 -0.57,1.8 -0.32,1.76 -0.11,3.58 -0.18,5.37 -0.05,1.02 1.4,1.33 1.1,2.4 -0.08,0.89 -0.37,2.18 0.97,1.91 0.75,0.22 0.29,1.37 0.52,1.94 0.31,1.44 0.48,2.91 0.5,4.37 0.07,0.67 0.88,0.58 1.19,0.96 -0.06,0.61 0.65,1.43 1.18,0.8 0.34,-0.42 1.1,-0.12 1.48,0.06 -0.19,0.54 0.13,1.08 0.73,0.94 0.45,0.32 -0.03,1.12 0.02,1.58 0.26,0.43 0.87,0.53 0.99,1.06 0.58,0.39 1.43,1.09 2.13,0.73 0.22,-0.52 0.78,-0.22 1.09,0 0.59,0.21 1.53,0.05 1.32,-0.78 -0.01,-0.66 0.68,-0.27 0.9,0.03 0.57,0.28 0.97,-0.69 1.55,-0.21 0.84,0.25 1.11,1.08 1.58,1.67 0.61,0.22 0.16,1.19 0.32,1.69 -0.08,0.68 0.71,0.6 0.85,0.07 0.5,-0.09 1,0.52 0.86,1.04 0.4,0.69 1.5,0.24 2.16,0.27 0.76,-0.24 1.79,-0.22 2.32,-0.85 0.55,-0.82 0.59,-1.89 1.06,-2.69 0.59,-0.47 1.08,-1.17 0.58,-1.84 1.1,-1.12 2.6,-2.01 3.15,-3.59 0.44,-0.46 0.57,-1.04 0.46,-1.64 0.43,-1.24 1.14,-2.4 2.27,-3.1 0.24,-0.19 0.68,-1.23 1.02,-0.66 0.87,0.56 2.4,0.81 2.5,2.07 0.05,0.67 -0.39,0.98 -1.01,0.85 -0.65,0.38 0.05,1.31 0.13,1.86 0.25,0.92 1.4,1.05 1.58,2.03 0.48,0.87 1.65,0.01 2.41,0.12 0.73,-0.31 1.18,0.28 1.5,0.85 0.45,0.56 1.16,1.11 0.82,1.91 -0.09,0.58 0.7,0.95 0.24,1.52 -0.21,0.76 0.9,0.79 1.18,0.23 0.84,-0.71 0.9,-2.01 2.02,-2.43 1.02,-0.06 1.62,-1 1.61,-1.96 -0.09,-1.02 0.58,-2.66 1.85,-2.26 0.39,0.29 1.11,0.3 0.98,-0.35 0.01,-0.41 0.22,-0.99 0.72,-0.64 1.66,0.72 3.32,-0.42 4.67,-1.3 1.07,-1.02 1.17,-2.69 2.2,-3.72 0.24,-1.07 0.13,-2.38 -0.92,-2.98 -0.31,-0.29 0.4,-0.66 0.03,-1.04 -1.08,-1.72 -2.7,-3.09 -3.82,-4.78 -0.93,-0.47 -1.81,1.29 -2.7,0.56 -0.35,-0.84 0.72,-1.72 0.05,-2.53 0.03,-0.72 1.46,-1.61 0.49,-2.23 -0.76,-0.34 -1.61,-0.31 -2.36,-0.72 -0.84,-0.04 -2.06,-0.19 -2.06,-1.31 0.09,-1.22 0.81,-2.32 0.63,-3.59 0.03,-1.74 2.08,-2.69 2.14,-4.38 -0.61,-2.1 -2.81,-3.32 -3.41,-5.34 0.58,-0.82 1.83,-1.33 1.69,-2.56 0.1,-0.89 0.32,-2.26 -0.88,-2.5 -2.33,-0.82 -4.77,-1.84 -7.27,-1.85 z","department-71":"m 412,260.36 c -2.93,0.55 -4.26,2.21 -6.96,2.68 -1.28,2.48 2.3,4.5 -0.5,6.99 -1.43,0.66 -3.07,3.09 -0.49,1.44 1.9,1.91 -1.31,5.49 2.35,6.61 2.41,2.48 -3.47,2.49 -1.06,5.02 0.77,3.39 -3.9,1.03 -5.18,3.67 -2.25,1.4 -4.63,2.62 -7.04,3.38 -0.31,-4.58 -4.86,-2.18 -7.6,-2.64 0.33,3.18 3.53,4.95 4.3,8.11 0.37,1.27 1.28,3.31 0.8,5.05 2.56,1.6 5.5,0.03 6.06,3.56 2.3,-0.67 6.83,0.19 5.63,3.81 -1.65,2.24 1.1,6.27 -0.41,7.48 -1.83,-0.26 -2.1,1.92 -4,2.06 1.17,2.28 -1.61,6.17 2.72,5.49 0.93,1.98 2.84,2.96 4.81,1.08 2.24,-1.83 4.53,2.66 6.18,-0.34 0.99,0.81 3.97,-0.12 2.52,2.07 1.82,0.5 3.17,-1.98 5.29,-1.84 0.91,-1.94 0.34,-5.84 2.53,-7.3 2.38,-0.25 4.64,4.02 6.14,0.44 0.69,1.02 2.58,2.86 3.18,0.21 1.5,-2.57 5.41,0.79 2.63,2.19 4.35,0.26 -0.17,5.73 3.79,5.35 1.63,-2.32 1.8,-5.62 3.02,-8.28 1.07,-3.54 2,-7.12 3.47,-10.47 -0.24,-4.22 3.76,-4.44 6.12,-2.01 2.73,0.91 5.4,-3.24 7.43,-0.63 0.71,4.46 5.42,3.07 8.23,1.96 3.48,-0.33 -0.18,-2.98 -1.2,-3.64 -0.19,-2.06 -0.14,-4 2.12,-4.12 -1.13,-2.06 2.54,-2.7 0.55,-4.54 0.27,-1.18 -1.25,-2.07 -0.87,-3.37 -1.29,-1.52 -2.14,-2.53 -0.54,-4.28 -1.91,-0.7 -4.07,-3.41 -0.68,-3.56 1.47,-0.64 5.77,0.15 2.85,-1.99 -1.77,-0.79 -1.54,-3.02 -3.84,-2.16 -2.27,0.63 -1.51,-5.03 -4.1,-2.86 0.12,-2.06 -1.07,-4.73 -3.5,-2.61 -2.78,0.86 -4.3,2.07 -6.4,-0.46 -1.94,0.4 -2.39,2.11 -4.89,0.86 -2.61,0.33 -5.24,2.44 -8.14,3.19 -1.76,-0.3 -4.71,2.29 -4.23,-1.06 -3.18,-0.15 -5.08,-3.48 -5.63,-5.52 -2.23,0.19 -4.16,-1.65 -6.41,-2.36 0.94,-2.91 -1.62,-1.37 -2.5,-0.96 0.79,-4 -4.82,-1.4 -5.2,-5.1 -0.71,0.24 -0.8,-0.59 -1.34,-0.6 z","department-03":"m 355.26,283.59 c -2.47,0.46 -4.86,3.44 -6.02,4.72 -1.76,-0.99 -3.8,2.31 -4.59,-0.78 -1.76,0.08 -2.97,3.69 -5.04,3.94 1.97,2.84 -4.43,0.31 -1.55,2.39 0.4,1.42 -1.37,2.94 0.6,3.99 1.55,3.09 -3.65,5.08 -5.37,3.61 -2.24,1.35 -6.48,-0.24 -7.16,3.06 -1.54,1.23 -3.6,4.68 -1.43,6.74 2.23,0.25 1.54,1.18 0.45,2.24 0.46,1.75 3.06,2.36 3.77,1.35 1.79,0.78 0.58,3.48 2.71,2.33 2.32,1.7 3.03,4.85 4.13,7.52 1.59,1.1 1.36,3.94 4.21,3.81 2.2,-0.4 1.29,-4.32 4.06,-4.34 -0.38,-2.36 1.13,-2.81 2.64,-1.17 2.87,2.05 0.78,-4.7 4.25,-3.15 2.6,-0.56 4.31,1.53 2.01,3.27 -0.51,2.53 2.71,1.85 2.18,4.56 1.6,1.64 4.19,2.18 6.12,1.98 0.53,3.71 5.09,1.32 7.41,2.58 2.46,-0.35 4.25,2.07 6.4,-0.15 2.05,-0.87 3.81,1.48 3.14,3.62 2.97,-0.38 6.89,-1.86 7.42,2.51 1.3,0.31 3.13,3.55 3.29,0.55 1.79,-0.98 4.46,0.16 5.67,-2.24 -1.33,-3.25 -0.2,-6.45 -1.49,-9.65 1.17,-1.65 -1.28,-4.71 -0.7,-6.42 1.4,-0.12 2.34,-1.59 4.2,-1.58 1.27,-1.45 2.99,-2.22 4.25,-3.49 2.82,-0.46 -0.34,-5.16 1.28,-7.19 1.51,-3 -3.08,-4.88 -5.16,-3.65 -1.18,-1.3 -1.26,-3.58 -3.47,-2.38 -1.93,-1.04 -3.95,-1.45 -2.9,-4.14 -1.14,-2.8 -2.34,-5.73 -4.5,-8.23 0.48,-2.03 -3.61,-4.95 -2.1,-1.56 -0.34,1.45 -3.05,0.68 -1.66,2.91 -1.17,0.41 -2.72,0.17 -3.32,2.29 -3.21,0.75 -0.8,-5.19 -4.58,-3.84 -1.04,2.99 -3.56,1.08 -4.7,-0.26 -2.1,1.25 -4.73,3.83 -6.34,0.2 -2.17,-1.67 -4.84,-2.89 -5.84,-5.6 -0.73,-0.27 -1.51,-0.18 -2.26,-0.35 z","department-58":"m 361.05,231.75 c -1.61,0.98 -3.32,2.58 -5.23,1.22 -1.54,0.66 -5.16,0.31 -5.72,1.84 1.58,2.33 4.2,5.39 3.03,8.27 -0.46,2.34 -4.01,5.74 -0.25,7.04 1.92,1.64 3.66,3.16 3.28,5.91 2.2,3.19 1.4,7.61 2.45,10.69 2.84,1.44 0.59,4.96 1.6,7.25 -1.99,2.66 1.02,5.99 -1.24,8.7 -1.75,2.29 0.81,5.12 3.16,5.53 1.64,1.06 3.28,4.95 5.39,2.27 1.52,-1.93 3.16,-1.38 4.16,0.57 1.96,0.7 3.24,-3.41 4.93,-1.11 0.68,1.01 0.94,1.95 1.13,3.28 1.84,0.37 2.58,-2.94 4.39,-2.04 -0.61,-1.82 -0.49,-2.4 1.36,-2.38 -0.2,-1.17 -0.22,-3.61 1.45,-1.97 2.29,2.03 7.01,-1.91 8.02,2.31 1.41,2.29 3.54,-1.84 5.75,-1.47 1.68,-2.02 4.85,-2.71 6.51,-3.23 -0.22,-2.14 -1.12,-3.85 1.59,-4.65 -0.2,-2.28 -4.24,-3.86 -1.97,-6.79 0.18,-2.41 -4.07,0.3 -1.77,-2.02 2.77,-1.18 2.72,-4.62 1.41,-6.48 -0.21,-2.71 3.29,-1.57 3.61,-3.64 2.41,0.12 4.36,-0.55 4.66,-3.1 0.33,-2.07 -2.28,-4.7 -4.14,-3.18 -2.16,-1.91 1.5,-6.7 -2.23,-6.47 -2.06,-0.11 -3.88,3.63 -5.15,0.03 -0.32,-1.35 -0.05,-4.35 -2.03,-2.79 -1.29,0.05 -2.91,2.04 -2.96,-0.58 1.08,-0.8 1.65,-3.07 -0.35,-2.77 -1.09,1.35 -0.9,4.62 -3.13,2.61 -0.88,-1.42 -3.65,0.48 -4.06,-2.21 -1.01,-1.24 -3.05,-2.54 -4.54,-2.45 -1.62,0.35 -0.42,-3.16 -2.49,-3.09 -1.47,-0.17 -1.9,-4.94 -2.3,-1.85 0.35,2 -0.34,3.67 -2.39,2.1 -2.63,-1.51 -3.86,4.14 -5.82,1.03 -1.87,-1.04 -4.17,1.13 -5,-2 -2.26,0.34 -4.45,-1.48 -4.25,-4 -0.17,-0.32 -0.55,-0.4 -0.88,-0.38 z","department-89":"m 374.12,178.1 c -1.36,2.82 -5.36,0.91 -7.76,1.83 -2.91,0.12 -7.22,-0.23 -8.27,2.98 0.14,3.17 1.58,6.21 -2.22,8.02 -3.13,1.63 -1.03,2.94 1.17,4.04 2.28,2.02 1.91,5.48 4.92,6.98 0.09,2.23 1.57,5.13 -1.56,6.65 -2.34,1.36 -4.04,3.95 -2.14,6.31 -0.68,1.5 0.04,4.08 -2.76,4.29 -2.25,0.39 -7.34,0.64 -4.79,4.05 2.45,0.93 4.06,4.45 3.33,7.05 1.14,3.61 5.07,3.17 7.39,1.37 1.4,1.71 1.46,5.08 4.64,4.36 1.07,1.7 2.94,2.2 4.19,1.56 2.83,2.78 4.94,-2.42 8.04,-0.36 2.24,0.32 0.05,-5.91 2.11,-2.26 1.33,1.79 2.94,3.05 3.85,4.95 3.33,-1.09 4.42,4.4 7.1,3.73 1.63,0.4 3.4,2.47 3.61,-0.47 1.06,-2.78 3.75,-0.39 1.71,1.41 -0.27,3 5.9,-2.28 4.47,2.93 0.46,3.12 3.19,1.32 4.4,0.59 4.42,-0.6 -2.45,-5.06 1.49,-6.94 2.21,-1.57 -0.41,-5.47 2.78,-6.83 1.14,-2.73 3.9,-5.69 3.26,-8.58 1.88,-0.52 1.26,-1.92 0.64,-3.48 1.6,-1.09 4.66,-1.22 3.88,-4.34 0.07,-2.34 -0.26,-3.73 -2.7,-3.42 -3.53,-2.05 4.19,-4.69 -0.03,-5.12 -1.97,-0.1 -2.62,-5.1 -3.28,-1.27 -2.05,-2.67 -2.92,2.59 -5.45,0.23 -2.35,0.79 -5.27,0.01 -8.15,0.79 0.15,-1.59 0.88,-6.21 -1.65,-3.46 -2.36,-1.38 1.3,-2.55 -1.24,-3.58 -0.94,-2.75 -2.25,-5.79 -4.33,-7.09 0.87,-2.25 -1.27,-2.36 -1.7,-0.43 -3.07,1.65 -2.16,-4.29 -5.46,-2.45 0.07,-1.1 1.54,-2.74 1.12,-4.43 -0.2,-2.34 -3.48,-5.41 -5.2,-7.74 -2.07,-0.04 -3.97,0.46 -4.78,-1.75 -0.22,-0.05 -0.43,-0.1 -0.65,-0.14 z","department-77":"m 360.11,130.7 c -0.75,1.23 -0.27,2.29 -2.33,1.67 -1.38,-0.38 -1.84,2.1 -2.56,0.07 -2.14,0.21 -4.49,1.91 -6.24,0.1 -2.04,-1.53 -3.2,3.4 -5.16,0.88 -1.56,1.65 -2.68,-3.86 -4.86,-1.22 -1.42,0.6 -1.4,2.29 -1.08,2.9 -0.79,0.91 -3.3,2.12 -0.93,2.41 0.92,1.64 0.15,3.36 1.66,4.95 -0.21,1.86 -2.5,3.75 -0.77,5.03 -0.42,1.69 1.07,3.83 0.45,5.54 1.88,0.5 -0.47,2.18 -0.41,3.35 -1.82,0.99 1.36,3.93 -1.65,3.64 -0.82,0.84 0.31,2.38 -1.22,3.04 1.7,1.22 -0.11,2.87 -0.29,4.11 -0.83,2.76 -0.35,5.7 -0.38,8.61 1.13,0.77 2.32,2.24 0.22,2.19 -1.67,0.77 -3.86,1.83 -3.71,4.1 -3.26,-0.23 0.46,3.05 -0.39,4.73 1.93,0.89 5.35,1.9 4.16,4.93 0.05,1.63 -0.21,2.35 -1.8,2.26 -2.59,2.58 2.06,2.09 3.18,0.95 1.95,0.94 4.16,-0.38 5.89,1.16 1.74,-0.08 3.98,-1.65 3.26,-2.69 2.16,-0.61 3.3,-0.11 2.62,2.03 1.99,0.05 3.64,-2.23 5.85,-2.23 1.28,-2.5 4.18,-3.1 5.17,-5.95 -1.75,-1.86 -0.91,-4.39 0.11,-6.51 2.23,0.08 3.58,-0.87 5.81,-1.29 2.4,1.59 4.47,-0.91 6.89,0.03 1.85,0.05 2.21,-2.32 4.09,-1.22 1.02,-1.56 -1.94,-1.95 -0.46,-3.63 -1.01,-1.71 -0.67,-2.54 1.28,-3.16 -0.64,-1.19 -1.85,-3.14 0.59,-2.27 3.2,-0.16 -0.39,-3.09 2.44,-3.84 0.11,-1.36 2.11,-1.25 2.34,-2.32 -1.35,-1.35 -2.61,-1.35 -4.33,-0.87 -0.83,-1.72 0,-2.93 0.73,-4.28 -0.27,-1.41 0.18,-2.58 -1.57,-2.81 -0.08,-1.26 -2.46,0.08 -1.43,-1.87 0.29,-0.92 3.06,-1.11 0.77,-1.96 -2,-1.6 4.65,-0.07 2.85,-3.04 -0.62,0.26 -2.18,0.96 -1.62,-0.5 -2.19,-0.35 -3.93,-1.72 -3.63,-4.09 -1.91,1.44 -2.54,-0.3 -3.11,-1.76 -2.53,1.6 -2.02,-2.84 -4.2,-3.33 -1.26,-1.06 -2.94,-1.79 -1.15,-3.4 -0.57,-2.97 -1.82,-4.38 -5.07,-4.44 z","department-10":"m 415.76,157.34 c -2.6,0.51 -5.55,-0.05 -7.71,1.48 -2.64,-2.28 -2.21,2.93 -5.08,1.84 -1.93,0.67 -1.61,4.36 -4.3,3.88 -0.4,1.61 -1.36,1.64 -2.59,1.72 1.3,3.01 -1.42,4.79 -3.84,3.13 -2.09,-1.39 -6.82,1.14 -6.65,-2.55 -0.6,-0.93 -2.3,-0.55 -2.52,-2.29 -2.04,-2.28 -2.83,1.06 -4.5,1.77 -0.06,1.25 0.93,2.82 -1.41,3.08 -3.5,-1.29 1.33,2.83 -1.65,2.81 -1.9,0.54 0.78,2.64 -0.38,3.85 2.1,0.63 -0.62,5.56 2.52,3.51 3.16,-0.12 4.15,3.44 6.03,5.22 0.01,1.47 3.08,2.04 0.93,3.9 2.08,0.85 -3.12,4.07 0.15,3.27 2.29,-0.8 2.03,4.35 4.19,2.52 1.08,-0.14 0.3,-2.78 1.94,-1.13 0.93,0.76 -0.96,2.98 1.14,2.23 2.34,1.66 1.67,5.24 3.89,6.96 2.43,1.45 -2.11,1.84 0.59,3.02 0.73,-0.46 1.14,-2.22 1.92,-0.23 0.37,1.61 -1.44,4.62 1.62,3.35 1.95,0.01 2.99,-0.54 4.79,0.26 0.99,-3.03 2.57,1.82 4.01,-0.76 0.84,-1.92 1.99,-0.84 2.76,-0.15 -0.14,-1.03 0.29,-2.65 1.27,-1.4 -0.33,2.78 3.95,3.53 3.81,0.39 2.92,-0.59 5.93,0.14 8.85,-0.56 2.39,0.31 2.85,-0.77 1.49,-2.56 2.05,-2.2 4.43,-1.32 6.94,-0.84 2.63,-1.11 0.34,-3.51 -1.25,-4.11 2.37,-0.23 3.32,-3.91 6.03,-1.87 3.03,1.11 1.67,-2.97 2.47,-4.56 1.68,-1.76 -0.94,-2.47 -0.07,-3.99 1.1,-2.25 -0.53,-3.76 -1.25,-5.67 2.38,-2.25 -3.94,-1.43 -2.88,-4.17 -1.47,-0.37 -2.51,-0.25 -2.96,-1.8 0.24,-1.72 -4.18,-2.97 -1.75,-4.03 0.72,-2.19 1.43,-3.93 -1.16,-5.04 -2.33,-0.81 -3.68,3.05 -5.35,0.57 -2.15,0.43 -4.7,-0.92 -6.23,-2.52 -2.9,-1.25 -2.44,-3.78 -2.05,-6.39 -0.16,-1 -0.29,-2.51 -1.75,-2.14 z","department-51":"m 405.08,111.51 c -1.06,0.78 -0.74,4.64 -2.69,2.03 -2.26,-0.62 -3.69,-3.04 -5.85,-0.46 -0.76,1.47 -0.53,3.07 -2.6,1.59 -2.67,0.5 -5.66,1.55 -7.69,3.27 1.02,2.06 1.46,4.73 0.89,6.32 2.55,-0.42 1.18,3.01 3.85,2.11 0.48,4.28 -5.3,-0.05 -6.19,3.06 -0.39,1.65 2.79,4.09 -0.6,4.59 -2.26,3.23 5.49,0.01 3.06,3.78 -2.35,0.83 -2.21,3.44 -4.02,4.55 -0.04,2.3 -3.69,1.38 -3.38,4.24 -1.75,1.12 0.58,4.63 -2.54,3.99 -2.46,-0.16 -1.14,0.3 -0.32,1.22 0.08,0.89 -3.17,1.69 -1.26,2.59 2.53,0.21 3.88,3.9 1.46,5.7 0.25,2.2 1.1,2.12 2.94,1.45 1.92,0.52 2.98,4.27 5.46,4.81 -0.12,4.68 6.56,0.97 8.91,3.79 3.18,-0.68 -0.17,-4.93 3.46,-4.46 0.45,-2.04 3.42,-1.33 3.65,-3.97 0.75,-2.28 4.33,-0.39 4.38,-3.49 1.36,-0.34 2.79,1.39 3.81,-0.56 2.71,0.28 5.46,-1.6 7.64,0.42 0.89,2.81 -1.6,6.2 2.08,7.6 1.6,3.05 5.89,1.61 7.51,3.56 1.84,-1.76 4.32,-2.12 5.98,-0.45 1.91,-1.07 7.38,1.87 5.1,-2.02 -2.42,-2.79 6.05,-2.46 2.44,-5.4 -1.35,-0.11 -4.14,-0.27 -1.58,-1.69 1.66,-0.63 3.72,1.24 5.25,-0.9 2.3,1.31 5.6,-0.99 4.11,-3.45 -1.93,-1.13 -3.33,-3.27 -5.05,-4.35 0.2,-1.89 3.07,-2.43 1.04,-4.46 -0.24,-2.76 1.96,-3.93 4.51,-4.61 2.25,-1.35 -0.39,-2.44 -0.39,-3.09 2.85,-0.57 0.54,-4.33 -1.51,-2.09 2.09,-1.98 1.44,-5.68 -0.12,-8.2 -0.96,-1.63 -1.81,-3.48 0.73,-4.04 -0.24,-1.82 -2.4,-2.81 -3.5,-3.66 -2.15,0.23 -1.49,3.78 -3.82,1.54 -2.45,0 -5.77,-1.84 -7.92,0.23 -2.68,0.36 -2.07,-5.98 -5.47,-3.2 -2.64,0.89 -6.12,0.77 -7.24,-2.32 -2.8,0.56 -4.24,-2.36 -6.09,-4.01 -2.61,-1.4 -5.28,-1.58 -8.44,-1.57 z","department-02":"m 388.2,68.13 c -1.08,1.13 -2.82,3.24 -4.4,1.16 -2.84,-2.2 -4.67,3.68 -7.97,1.02 -2.67,-1.47 -4.82,2.26 -7.41,-0.08 -2.13,-0.29 -5.92,2.27 -2.52,2.96 -2.98,2.53 -3.74,6.36 -5.63,9.48 -1.75,0.96 2.24,2.4 -0.4,3.91 1.95,1.43 2.51,4.94 2.65,7.7 -1.5,0.24 -0.31,2.46 -1.01,3.2 2.8,2.14 0.67,5.53 0.21,7.42 1.3,1.39 -0.62,2.75 2.02,3.19 1.86,2.58 -4.01,-0.19 -2.57,2.99 0.21,2.78 -1.91,6.35 -4.84,5.03 -3.19,2.38 3.18,2.33 1.82,4.68 0.73,2 -0.93,3.6 1.68,4.15 1.16,1.34 2.5,-0.57 2.39,2.15 3.19,1.07 -5.03,3.79 0.04,3.92 2.54,0.03 3.91,4.01 2.15,5.73 2.04,1.28 3.84,3.72 5.3,5.32 1.97,-1.81 1.27,4.11 3.47,1.27 1.13,0.14 0.62,4.1 3.08,3.73 1.02,1.15 2.26,2.18 2.67,-0.16 1.3,-1.34 1.82,-3.4 3.99,-3.73 1.01,-2.49 2.46,-4.36 4.65,-6 0.1,-2.93 -6.07,0.28 -3.5,-3.33 4.06,-0.79 -1.61,-3.63 1.16,-5.63 1.74,-0.53 6.13,1.2 5.33,-1.72 -2.24,0.27 -1.72,-2.21 -3.92,-2.36 2.32,-2 -2.35,-5.73 0.53,-7.34 2.85,-0.42 5.37,-3.57 8.29,-1.65 -0.29,-1.73 3.19,-4.87 4.55,-2.85 1.43,0.76 4.63,3.46 4.24,0.06 0.75,-1.54 -0.52,-3.16 0.75,-4.21 -1.86,-2.09 0.18,-3.94 0.86,-5.41 -1.97,-0.87 0.95,-3.51 -1.67,-4.78 -1.57,-3.69 5.08,0.31 4.01,-3.96 1.21,-2.05 5.54,-3.68 5.14,-6.49 -2.5,-0.39 -0.05,-2.22 -0.82,-3.84 1.25,-2 2.5,-4.89 -0.05,-6.15 1.79,-3.26 -2.77,-4.61 -5.35,-3.57 -2.14,-1.09 -7,-0.34 -5.08,-4.21 -1.57,-0.94 -4.83,3.39 -5.36,0.08 -2.78,-0.3 -5.86,-1.9 -8.53,-1.67 z","department-59":"m 335.57,0.12 c -3.45,1.43 -6.99,2.74 -10.76,2.39 -2.72,1.29 -8.66,1.44 -9.11,3.85 2.44,2.79 3.25,6.62 4.77,9.94 0.43,4.77 5.56,3.66 8.58,4.42 2.32,1.45 -4.63,1.65 -1.51,3.98 2.44,0.67 -1.2,3.42 2.07,2.61 2.93,3.85 6.72,1.92 9.95,3.5 2.19,-0.65 4.1,-0.87 5.68,0.87 0.41,-1.85 2.1,-1.38 0.62,-3.01 2.05,-2.57 7.25,2.09 2.69,2.82 -1.83,1.68 0.07,3.54 -0.61,5.52 2.34,0.14 3.9,-1 3.93,1.59 2.5,-1.01 7,0.2 5.64,3.54 1.27,0.39 3.92,-0.75 2.32,1.89 -3.74,0.21 -4.27,4.12 -0.66,5.49 2.67,1.86 -0.52,2.17 0.31,4.28 2.66,0.03 5.42,1.44 5.6,3.59 -3.49,-0.01 -0.66,2 -1.8,3.32 -2.94,0.76 0.82,2.08 -1.93,3.52 1.19,2.22 -2.19,4.81 1.75,6.08 2.76,1.37 5.33,-1.11 8.08,0.5 2.78,-2.8 7.12,1.76 9.94,-1.66 1.88,-2.21 4.77,3.11 6.2,-0.72 3.06,-1.45 6.64,0.94 9.78,1.44 0.46,3.12 6.54,-3.53 4.81,1.34 0,2.28 5.16,2.43 7.07,2.12 1.13,-1.37 -0.83,-4.12 2.33,-4.63 2.68,-0.88 0.57,-5.07 -0.84,-5.54 -3.3,1 -0.12,-4.14 0.06,-5.58 2.39,-1.25 2.41,-3.76 -0.41,-4.14 -0.6,4.11 -2.68,-3.09 -5.06,-3.38 -1.96,-3.39 -6.66,2.37 -9.45,-1.06 -3.02,-1.09 -5.18,0.58 -6.36,2.66 -3.42,-1.36 -0.95,-6.36 -2.22,-9.19 -1.09,-3.5 -4.72,-3.12 -7.3,-3.15 1.15,-5.24 -5.66,2.5 -7.97,-1.03 -3.9,-1.63 -1.34,-6.5 -3.82,-9.41 1.83,-3.67 -3.12,-4.71 -3.84,-8.29 -2.91,-1.52 -7.12,1 -10.06,2.09 -0.33,4.97 -4.26,1.63 -6.9,0.96 -1.64,-3.04 -3.74,-6.42 -7.35,-5.98 -1.29,-2.74 -2.17,-6.28 -0.14,-8.73 -2.25,-2.77 -2.84,-5.71 -4.09,-8.81 z m 28.08,54.5 0.01,0.01 -0.01,-0.01 z","department-62":"m 313.33,5.46 c -4.94,0.63 -9.82,2.03 -14.3,4.19 -2.31,2.03 -4.44,4.39 -7.41,5.25 0.4,3 1.9,6.23 -0.01,9.07 -1.39,2.89 0.06,6.1 -0.08,9.15 0.12,1.92 1.85,2.89 0.02,4.03 0.23,3.04 -1.19,6.37 -0.33,9.17 2.74,1.63 4.65,4.95 7.93,2.3 3.81,-2.29 6.82,4.56 9.77,1.72 1.01,1.14 -1.99,2.68 0.88,2.9 2.1,1.36 5.3,1.26 4.69,4.15 0.88,1.54 2.94,0.71 3.92,1.37 1.81,-1.07 3.99,-1.33 5.74,-1.4 1.16,1.12 1.77,-0.42 1.57,-0.98 1.33,-0.36 1.77,3.47 2.74,0.75 1.51,-1.51 6.22,0.91 4.51,2.46 -2.54,0.07 -6.33,4.05 -3.27,5.63 1.73,2.15 1.55,-3.53 4.22,-2.43 1.09,-0.01 1.95,2.52 2.26,-0.06 2.83,-0.7 -0.14,2.46 2.59,2.02 1.28,-0.01 4.09,2 4.68,1.23 -1.22,-1.42 0.73,-3.47 2.15,-1.5 3.8,-0.04 -3.11,6.76 1.65,4.07 2.16,-2.39 3.64,-1.2 4.04,1.36 2.23,-1.54 4.16,-0.79 6.67,-1.69 1.7,0.68 3.25,0.84 2.92,-1.52 2.01,-0.93 -0.86,-3.26 1.69,-4.17 -3.08,-1.56 3.06,-1.88 0.19,-3.89 0.22,-1.46 4.13,-1.5 1.13,-2.69 -0.34,-2.78 -7.17,-0.62 -4.12,-4.27 0.8,-2.23 -5.36,-4.49 -3.06,-6.23 1.03,-0.79 5.01,-2.22 2.55,-3.36 -2.01,2.19 -1.83,-1.12 -1.83,-2.28 -1.69,-2.27 -3.83,-0.79 -5.87,-1.11 1.15,-3.86 -4.88,0.62 -3.97,-3.05 1.99,-1.08 -1.84,-2.64 0.61,-4.04 1.4,-1.06 3.51,-1.23 1.17,-2.9 -1.51,-1.43 -4.89,0 -2.23,1.47 -1.85,-0.59 -1.52,3.3 -3.1,0.89 -1.9,-1.78 -4.14,1.01 -6.2,-0.92 -1.66,1.28 -2.66,-1.12 -4.47,0.08 -1.69,-1.59 -4.29,-2.33 -5.63,-3.51 2,-1.35 -3.65,-3.85 0.56,-4.64 3.01,-2.03 -3.3,-1.35 -4.61,-1.78 -3.99,-1.02 -3.27,-5.59 -5.16,-8.44 -1.11,-2.34 -2,-6.31 -5.19,-6.38 z","department-08":"m 440.07,60.88 c -1.81,2.16 -4.2,3.74 -5.88,5.87 0.42,3.23 -0.62,6.85 -4.6,6.61 -2.61,1.4 -5.4,3.78 -8.53,2.23 -2.57,-0.31 -6.87,-3.07 -8.21,0.49 -1.09,2.27 2.57,2.05 1.26,4.47 -0.9,1.91 -2.03,4.96 -1.4,6.42 2.68,1.57 -1.58,4.47 -2.94,5.51 -2.03,1.01 -1.06,5.37 -4.36,3.7 -3.54,0.85 2.51,3.79 -0.29,5.51 1.51,0.87 0.58,2.56 -0.65,3.44 -0.53,1.71 1.98,3.37 -0.03,4.16 0.01,4.05 5.16,0.95 6.98,2.81 3.3,0.55 4.18,4.27 7.37,4.91 1.8,0.07 3.13,4.15 6,2.59 2.07,-0.07 4.96,-2.29 5.47,0.74 0.38,2.71 2.61,2.41 4.09,0.8 2.57,1.18 5.4,0.24 7.56,1.64 0.31,-2.7 3.11,-2.45 4.13,-0.68 1.4,-1.13 3.89,-1.64 4.64,-3.09 -2.15,-1.79 -0.62,-5.71 2.04,-5.88 0.24,-1.22 -1.21,-1.95 0.54,-2.89 0.24,-2.32 -1.77,-3.52 -2.04,-5.72 1.86,-0.63 0.83,-2.98 2.1,-3.97 -0.49,-2.87 2.16,-0.91 2.97,0.03 2.69,-1.68 3.87,3.39 6.05,0.41 0.28,-2.43 4.57,-1.6 3.3,-4.01 -0.97,-0.75 -4.08,1.55 -3.04,-1.15 1.75,-1.77 -2.34,-4.79 -3.97,-3 -1.63,-0.09 -2.52,-1.03 -3.35,-1.82 -2.04,-0.2 -1.16,-4.65 -4.28,-3.56 -2.09,-0.97 -3.75,-3.12 -6.22,-1.46 -1.91,0.12 -3.56,-0.3 -2.44,-2.42 -2.07,-2.68 2.55,-6.08 -1.42,-8.03 -4.13,-0.79 1.05,-4.77 -0.06,-7.24 0.2,-2.35 3.01,-3.4 2.16,-5.95 -1.43,-0.71 -2.14,0.48 -2.93,-1.47 z","department-55":"m 466.47,97.47 c -1.56,1.83 -3.96,2.91 -5.49,4.69 -1.73,-0.62 -3.36,-2.29 -5.13,-1.66 -3.57,-3.74 -2.07,3.57 -4.83,4.43 1.86,1.88 2.97,4.89 1.69,6.85 0.61,2.43 -4.88,3.04 -2.52,6.02 2.38,3.31 -6.19,2.92 -2.28,6.6 -4.21,1.78 0.99,5.9 0.55,8.83 -0.1,1.57 -1.24,3.24 0.94,2.92 1.75,1.64 -1.92,3.15 0.48,3.93 0.25,3.59 -6.19,2.07 -5.18,5.89 1.08,1.97 -0.23,3.47 -1.14,4.72 1.38,2.47 5.49,3.27 5.15,6.61 0.23,1.76 -1.52,5.98 0.78,6.29 1.9,-2.79 1.64,2.85 3.89,1.37 2.31,2.74 5.53,4.67 8.96,5.55 2.27,1.43 4.35,3.02 5.92,5.23 2.69,2.59 4.85,-1.27 7.77,-0.65 1.95,-0.75 1.99,-2.61 4.21,-1.43 3.14,0.06 4.5,-5.18 1.4,-6.29 -3.87,-2.46 6.35,-3.69 1.46,-4.42 -1.47,-2.21 0.74,-5.44 -1.65,-7.38 0.52,-3.01 3.49,-5.5 2.03,-8.71 1.74,-1.41 -2.37,-3.07 0.56,-4.22 1.59,-0.69 4.2,-1.75 1.55,-3.18 -1.32,-1.7 3.57,-5.15 -0.4,-5.57 1.51,-1.93 -0.24,-3.53 -1.91,-2.99 -2.09,-1.69 1.38,-6.16 -1.64,-5.8 -0.54,-2.63 -0.07,-4.79 1.7,-6.78 -2.19,-0.64 -1.63,-2.43 -1.84,-4.23 -1.39,-1.72 -2.89,-6.03 -5.8,-3.74 -2.4,-0.05 -3.98,1.51 -4.61,0.54 -0.96,-0.51 -0.02,-0.62 -1.25,-1.61 0.46,-1.47 -0.85,-2.06 -0.1,-2.7 -0.17,-2.17 1.28,-0.21 0.11,-1.81 -0.06,-2.69 -0.83,-5.88 -3.37,-7.28 z","department-54":"m 483.26,101.56 c -1.75,2.39 -6.72,-0.76 -7.03,2.38 -2.62,-1.44 -7.36,1.12 -6.17,4.43 0.74,4.88 5.26,0.58 8.1,1.48 2.96,1.01 3.57,5.58 4.1,7.38 3.12,1.31 -1.93,3.72 -0.52,5.95 -0.87,2.35 2.62,1.44 1.12,3.56 0.09,2.56 -0.17,4.4 2.68,4.39 0.95,1.44 -0.85,2.5 1.32,3.1 0.08,2.43 -2.65,4.77 0.06,6.73 -1.86,1.53 -5.42,2.68 -2.94,4.96 -0.32,3.14 0.42,6.53 -2.29,8.78 0.3,2.26 1.85,3.57 0.92,5.93 -0.21,2.42 4.1,2.54 0.74,3.73 -2.75,0.52 -2.79,3.37 -0.09,3.76 0.33,2.01 0.1,5.32 3,2.95 5.39,-1.2 1.3,5.69 5.29,7.31 -0.38,3.55 5.14,2.54 6.11,0.87 0.8,0.45 2.56,2.67 3.02,-0.32 0.4,-3.41 3.98,0.7 5.58,-2.34 2.07,-1.7 2.85,1.78 5.26,0.83 2.41,0.96 5.78,-1.97 8.72,-1.33 -0.11,-2.51 2.69,-4.44 3.49,-1.11 1.87,2.12 5.7,3.02 8.46,2.03 1.11,-2.51 3,0.55 4.43,-2.06 1.4,-3.3 8.67,-2.58 5.72,-7.33 -1.28,-1.26 -2.12,-2.52 -2.84,-3.74 -2.12,0.62 -3.12,-2.23 -5.19,-0.6 -3.43,-1.47 -6.2,-3.18 -9.79,-3.87 -0.04,-2.22 -3.9,-2.63 -5.43,-4.68 -2.97,-0.67 -5.52,-2.5 -8.38,-2.2 -1.35,-2.37 -4.49,-3.45 -2.73,-6.5 1.93,-3.82 -4.9,-3.21 -7.26,-3.68 -1.33,-1.55 -2.62,-2.04 -4.55,-3.04 0.53,-3.54 -7.57,-4.55 -4.54,-8.33 3.1,1.07 1.22,-3.19 3.24,-3.88 -1.85,-1.34 -2.22,-2.92 0.05,-3.88 0.24,-1.64 -0.87,-4.88 -1.53,-5.53 -2.45,-0.97 -0.9,-3.36 -2.63,-4.79 -0.94,-2.62 2.2,-6.94 -2.47,-7.44 -1.91,-1.02 -2.61,-3.63 -5,-3.91 z","department-57":"m 503.4,104.95 c -3.5,0.04 -5.26,4.42 -8.98,3.78 -1.89,-0.4 -2.66,-4.83 -4.84,-2.71 4.17,0.85 -0.69,5.81 2.03,8.08 0.95,1.12 1.47,1.12 0.16,1.85 2.72,1.47 3.97,5.18 2.78,8.12 -3.16,1.23 2.9,3.39 -0.76,4.28 0.68,2.17 0.05,3.22 -2.29,2.94 -2.22,3.61 4.41,3.78 4.47,6.79 0.32,2.5 4.34,1.92 4.61,4.09 2.63,0.22 7.9,-0.18 8.05,3.09 -1.51,2.09 -1.02,3.76 1.16,4.61 -0.07,2.41 2.71,3.1 4.16,2.64 2.31,1.86 5.93,1.31 7.61,4.01 3.25,1.89 6.08,3.97 9.68,5.11 1.62,1.34 4.4,1.49 5.37,1.07 1.15,1.63 4.32,0.61 3.99,3.06 2.04,2.55 6.14,5.26 8.81,1.93 1.69,-2.04 5.6,-6.38 2.03,-8.09 -0.63,-2.26 4.24,-5.88 0.71,-8.42 -2.28,-1.08 -5.5,-4.67 -6.48,-0.31 -1.32,2.17 -2.68,0.9 -2.94,-0.66 -3.5,-1.06 4.07,-2.79 -0.09,-3.01 -2.21,-1.11 -5.81,-2.3 -5.04,-4.57 1.13,0.06 2.3,-2.29 3.7,-2.54 0.74,-1.99 0.82,-7.28 3.45,-6.47 0.09,2.59 1.3,4.57 3.75,4.84 3.24,0.28 5.22,3.37 8.36,2.73 2.95,-1.6 5.64,0.34 8.22,0.72 1.73,-1.99 3.39,-5.75 3.26,-7.88 -3.15,-1.08 -5.79,-2.77 -6.37,-6.36 -2.47,-1.1 -4.98,-1.26 -6.78,1.45 -3.22,2.32 -7.72,1.44 -11.17,-0.38 -0.64,3.79 -3.96,0.62 -3.06,-1.79 -1.61,-2.56 -5.77,-3.52 -8.36,-2.33 2.56,4.39 -5.29,4.06 -5.55,1.2 0.78,-2.3 -2.24,-2.11 -2.29,-4.46 -1.24,-2.84 -6.04,-4.38 -3.87,-7.88 -2.52,-2.26 -3.82,-6.64 -8.27,-6.11 -4.17,1.53 -5.59,-3.04 -9.23,-2.45 z","department-67":"m 544.44,133.33 c -2.55,1.2 -1.86,5.34 -3.54,7.57 -2.79,-0.45 -3.98,5.32 -0.38,4.93 0.87,1.03 5.75,1.83 2.14,2.53 -1.78,1.5 1.91,2.4 0.8,3.44 3.07,0.38 2.8,-5.61 5.59,-2.68 1.27,0.5 2.75,1.06 3.36,2.31 3.21,1.88 -0.45,5.47 -1.04,7.67 0.4,1.75 3.37,1.12 1.47,2.94 -0.9,2.92 -2.34,6.34 -5.54,7.14 -1.52,-0.27 -6.22,0.31 -2.38,1.08 1.92,0.81 -2.32,1.02 0.26,2.27 -0.26,2.11 -1.22,5.21 -0.98,7.34 -1.59,2.69 3.49,1.95 4.06,2.53 1.12,2.38 5.28,1.06 5.74,4.01 2.04,-0.84 -0.91,2.57 1.9,1.72 3.01,0.58 6.32,2.58 6.2,5.56 1.67,1.12 3.39,4.4 5.2,1.29 0.87,-3.2 3.75,-5.3 4.22,-8.66 0.15,-2.7 3.74,-3.64 2.22,-6.76 -0.27,-3.01 1.17,-6.05 2.5,-8.7 1.39,-2.29 -0.7,-5.94 1.56,-8.31 1.96,-2.54 5.71,-3.61 6.25,-7.2 0.97,-1.38 2.5,-0.59 3.09,-2.39 3.71,-1.2 3.61,-5.01 5.11,-7.95 0.24,-2.03 5.28,-4.42 1.59,-4.91 -3.51,-0.14 -6.34,-2.15 -9.28,-3.81 -2.69,-1.53 -5.76,0.29 -8.43,-1.4 -2.54,1.19 -6.23,-0.86 -8.22,1.79 -0.69,2.41 -2.45,7.76 -5.69,4.83 -2.43,-2.51 -5.76,1.35 -8.43,-0.25 -1.12,-1.59 -3.01,-2.5 -4.57,-2.09 -2.06,-1.13 -5.18,-2.13 -4.56,-5.04 0.33,-0.23 0.21,-0.84 -0.21,-0.81 z","department-88":"m 543.7,170.72 c -3.31,1.38 -6.33,2.9 -8.64,5.73 -1.29,0.67 -1.97,-1.71 -3,0.67 -1.48,2.53 -4.46,-1.14 -6.53,-0.37 -3.07,0.39 -1.42,-5.29 -4.45,-2.86 -1.72,1.06 0.93,4.33 -2.07,2.2 -1.78,0.74 -4.05,0.76 -5.72,1.72 -1.57,1.83 -1.69,-1.56 -3.59,-0.23 -1.77,0.14 -2.17,-3.2 -3.48,-0.63 -1.05,2.66 -5.79,-1 -5.2,1.97 -0.89,2.75 -2.59,1.71 -3.28,0.37 -0.1,2.4 -3.59,0.58 -5.16,1.87 -1.7,-0.72 0.13,-3.65 -2.1,-3.15 -3.28,-1.76 1.05,-7.74 -3.76,-6.9 -1.91,1.57 -3.93,0.03 -4.94,2.56 -1.62,0.54 -3.6,-1.45 -4.31,0.83 -0.98,2.28 -4.98,-0.54 -5.76,2.63 -1.49,-1.12 -4.76,0.24 -4.44,1.84 2.72,-0.76 -1.5,4.16 1.48,2.83 2.58,-2.8 4.27,0.92 5.47,2.86 0.99,2.29 2.44,-0.84 3.66,1.62 0.19,1.46 -0.14,2.91 2.21,2.73 1.05,0.81 2.84,3.4 0.16,2.99 -1.16,2.1 -0.8,4.9 -2.74,6.18 0.01,1.72 3.18,0.08 3.76,2.45 2.71,0.96 3.73,3.61 3.02,6.15 1.1,2.31 3.31,-2.88 3.5,0.86 1.43,3.89 3.56,-4.88 4.18,-0.76 -1.87,1.59 0.22,2.12 0.99,0.26 2.44,-0.34 2.63,-4.83 6.01,-3.79 2.78,-2.08 1.94,3.16 3.04,3.81 1.67,1.1 3.1,2.11 4.88,0.16 2.8,0.02 6.14,-1.3 7.82,1.99 0.57,3.89 4.42,1.42 5.62,-0.82 2.89,-1.35 3.54,3.7 6.5,4.05 2.19,0.9 3.46,2.55 5.11,3.85 2.21,-0.74 5.19,-1.96 3.36,-4.73 1.56,-1.66 0.35,-4.44 1.89,-6.56 0.98,-1.7 3.7,-2.62 3.88,-5.25 1.52,-1.58 3,-3.43 1.6,-5.14 1.49,-2.96 3.07,-5.84 4.54,-8.75 0.95,-1.35 2.26,-2.99 0.28,-4.02 -1.87,1.29 -5.67,-0.97 -2.92,-2.78 -2.18,-1.78 1.85,-5.54 -0.21,-7.07 -0.57,-0.2 -0.01,-1.38 -0.66,-1.38 z","department-52":"m 446.82,158.96 c -1.69,0.91 -3.13,-0.45 -4.82,1.2 -1.12,-0.83 -4.57,-0.69 -3.54,0.9 2.8,-1.2 4.68,3.32 1.31,3.37 -2.26,0.28 -2.04,1.83 -1.08,2.97 1.74,4.14 -5.82,-1.2 -5.38,2.99 -0.5,1.16 -1.78,3.02 -1.22,3.88 2.37,0.94 2.16,4.62 5.26,4.46 -0.97,2.99 5.41,1.68 2.86,4.7 2.62,1.68 0.37,4.97 1.38,6.77 1.02,1.49 -1.35,3.52 -0.54,5.29 0.17,4.44 -5.3,-1.1 -6.39,2.93 -2.48,1.02 2.31,2.62 0.41,4.4 1.49,1.78 5.61,0.36 3.83,3.87 2.37,-0.59 4.42,1.86 1.79,3.34 0.65,2.75 2.75,-2.78 3.64,0.5 0.65,2.55 3.6,4.14 3.33,6.7 -1.31,0.89 -4.49,2.9 -1.32,2.84 1.47,1.51 -1.34,5.58 1.92,4.46 1.63,-2.16 2.42,0.63 2.94,1.7 1.79,1.42 3.81,1.4 4.82,-0.8 0.79,0.32 -0.13,2.53 1.75,2.49 0.96,1.39 3.18,1.14 1.74,3.15 0.89,2.65 3.78,-3.01 5.24,-0.13 1.75,-1.89 1.15,-6.06 4.57,-5.11 1.28,-1.4 3.49,1.3 4.33,-1.4 1.59,-1.92 1.63,2.72 3.95,1.22 2.18,-0.12 2.71,-1.17 2.09,-3.01 0.93,-1.34 1.22,-2.86 -0.38,-3.56 -0.59,-2.58 1.37,-2.98 3.06,-3.3 -0.71,-3.1 2.46,-1.42 3.57,-1.95 -0.16,-2.01 1.36,-3.53 2.99,-3.36 -0.29,-2.42 -2.17,-4.47 -4.19,-2.78 -1.26,-1.95 0.41,-5.52 -3.04,-6.35 -1,-1.34 -2.58,-2.41 -4.02,-2.13 -1.13,-1.43 1.6,-1.92 0.97,-3.42 1.1,-1.79 0.88,-4.33 2.89,-4.52 -0.46,-2.76 -4.86,-1.71 -3.68,-4.79 -1.34,-2.4 -3.06,0.93 -3.95,-2 -1.16,-2.97 -3.69,-4.38 -6.2,-2.11 -0.59,-1.91 1.12,-3.24 -1.32,-3.92 1.85,-0.41 3.47,-2.52 0.93,-3.26 -0.38,-1.87 -1.16,-2.02 -2.78,-2.58 -1.73,-3.16 -6.41,-1.82 -8.19,-4.99 -2.15,-0.46 -2.78,-2.81 -5.04,-3 -0.12,-2.21 -1.01,-1.61 -2.26,-0.66 -2.79,-0.35 1.41,-5.66 -2.22,-4.93 z","department-70":"m 499.88,202.89 c -2.63,0.3 -4.89,2.11 -5.97,4.12 -0.94,0.91 -3.97,2.32 -2.12,-0.03 0.13,-1.92 -1.88,-0.34 -1.76,0.64 -1.02,1.34 -0.98,3.88 -3.06,3.55 -0.55,1.66 -1.23,4.46 -3.43,2.67 -1.42,0.7 -1.13,3.58 -3.32,2.54 -2.26,2.15 1.83,3.96 -0.2,6.21 1.24,3.12 -4.32,4.77 -5.32,1.82 -0.58,-0.92 -2.73,2.87 -4.37,1.01 -1.22,1.14 -4.49,-0.07 -3.8,2.59 -2.11,1.09 0.1,3.94 1.06,1.41 2.21,-1.57 4.14,3.91 2.96,5.69 -0.66,2.07 -2.95,2.72 -4.23,3.24 1.21,1.06 -1.76,2.05 0.86,1.83 2.25,0.29 -0.16,6.1 3.34,4.24 1.79,2.16 -1.88,5.33 1.36,5.71 1.44,2.16 3.91,4.38 6.57,2.71 2.27,-0.86 4.59,0.16 6.71,-1.75 2.79,-1.14 5.72,-4.18 8.47,-2.76 2.5,-0.09 4.56,-1.97 5.85,-3.76 1.83,0.46 2.61,-0.36 2.86,-1.77 2.63,-0.46 5.27,-1.6 5.54,-4.7 2.29,-1.29 5.83,-3.32 7.88,-0.71 1.23,-0.95 5.65,1.5 4.64,-1.81 -0.18,-2.44 4.57,1.54 3.74,-2.01 -0.12,-2.68 3.06,0.48 4.42,0.6 2.85,1.79 2.94,-3.34 1.04,-4.6 1.68,-2.26 -0.76,-5 -0.83,-7.47 -0.79,-2.86 4.43,-4.21 1.79,-6.71 -2.08,-2.66 -6.24,-2.87 -7.71,-6.14 -2.5,-2.92 -3.93,3.02 -6.8,2.39 -1.62,-1.8 -2.57,-4.88 -5.66,-4.53 -2.96,-0.21 -6.08,3.12 -8.15,0.41 -2.4,-0.51 0.23,-4.03 -2.37,-4.63 z","department-21":"m 430.26,202.39 c -2.98,-0.36 -2.28,3.5 -2.89,4.09 -3.52,0.85 -7.72,-0.28 -10.91,1.13 0.12,1.91 0.16,3.7 -1.78,4.39 -1.43,2.57 2.23,2.59 2.78,2.96 0.78,2.82 0.56,7.26 -3.23,7.04 -0.11,2.16 1.99,3.62 -1,3.9 0.72,2.94 -2.41,6.52 -3.86,9.44 -2.44,2.06 0.03,6.34 -3.4,7.86 -0.01,1.52 1.54,3.57 2.08,4.44 2.08,-1.74 -0.71,3.97 0.05,5.35 0.76,2.06 4.84,0.48 4.74,3.88 -1.32,3.42 1.69,6.38 5.01,6.9 1.3,1.42 0.65,2.78 2.51,1.23 2.03,0.22 0.19,2.75 2.63,2.77 2.7,1.39 5.44,1.37 6.15,4.62 1.34,1.99 4.7,1.98 4.57,4.24 2.88,-1.34 6.42,-1.22 9.16,-3.33 2.31,-0.8 6.07,-0.86 8.14,-1.17 2.91,2.58 6.21,-1.12 9.25,-0.89 2.24,-0.61 1.63,-2.43 0.75,-3.34 1.62,-2.89 6.07,-2.65 6.78,-6.47 1.41,-2.73 2.01,-5.54 2.73,-8.48 0.14,-1.92 1.96,-2.74 -0.25,-3.51 0.43,-2.24 1.54,-5.31 -1.69,-5.06 -0.44,-1.89 -1.3,-4.9 -2.86,-4.55 0.22,-3.37 5.14,-1.91 4.96,-5.91 0.76,-2.96 -2.67,-7.08 -4.51,-2.82 -2.22,-0.25 -3.54,-1.43 -5.3,0.74 -2.39,1.02 -0.78,-3.81 -3.53,-3.94 -1.77,-1.18 -0.62,-3.19 -2.39,-0.9 -3.64,2.12 -4.58,-4.93 -7.28,-2.21 -2.89,-0.45 0.78,-4.91 -3.01,-5.07 0.9,-1.64 5.08,-3.23 1.85,-5.04 -1.35,-1.96 -2.46,-6.59 -4.91,-3.77 -2.57,-0.44 2.15,-3.15 -0.94,-3.86 -1.96,-0.39 -2.06,-0.68 -1.78,-2.38 -2.58,-1.59 -5.78,-1.16 -8.59,-2.28 l 0,0 z","department-25":"m 524.75,232.72 c 0.6,3.47 -5.06,1.11 -4.41,4.65 -1.59,0.18 -4.21,0.28 -5.1,0.07 -2.83,-2.93 -7.31,0.27 -8.34,3.45 -1.29,2.51 -4.23,1.18 -5.23,3.59 -1.44,0.48 -2.41,0.42 -2.71,1.78 -2.17,0.44 -3.6,3.16 -6.39,2.02 -3.22,-0.12 -5.72,2.6 -8.74,3.57 -3.03,0.32 -3.9,3.34 -1.23,5.03 3.1,1.51 4.18,4.87 1.57,7.47 0.1,1.6 -1.31,3.03 -1.29,4.53 1.26,1.41 2.75,-3.16 3.11,0.11 0.9,2.49 4.55,-0.29 4.63,2.13 3.8,0.81 1.81,4.9 4.19,7.22 0.91,2.91 5.17,1.46 6.56,4.25 3.53,2.93 0.14,6.33 -2.84,7.54 -1.4,1.89 0.42,3.62 -1.39,5.19 -0.75,2.81 3.69,5.73 3.76,1.72 2.39,-2.03 4.37,-4.58 7.12,-6.18 2.26,-1.76 5.45,-2.91 6.57,-5.72 -0.74,-2.93 1.48,-6 -0.08,-9.15 0.11,-4.19 6.86,-3.29 9.42,-5.9 2.72,-1.98 2.28,-6.41 5.92,-7.6 2.76,-2.22 4.53,-5.44 7.39,-7.56 -0.61,-3.67 3.46,-4.22 4.78,-6.73 -0.15,-3.82 -4.97,0.07 -7.07,-1.46 0.7,-1.9 3.21,-4.13 1.45,-6.71 -0.76,-1.48 -0.67,-2.19 0.61,-2.92 -0.66,-3.47 -5.22,-3.74 -7.78,-2.34 -1.29,-1.12 -3.19,-0.98 -4.5,-2.06 z","department-2B":"m 591.47,517.82 c -3.8,0.59 0.96,5.58 -2.34,7.11 0.41,2.37 -1.56,4.36 0.27,6.51 0.91,2.65 0.16,5.25 -1.21,7.52 -1.7,1.4 -2.28,-3.59 -4.88,-2.82 -2.72,-0.68 -5.78,0.73 -6.51,3.55 -0.96,3.57 -5.53,1.85 -7.86,3.52 -1.89,1.06 -3.87,1.71 -4.61,3.96 -1.27,0.02 -3.62,-0.97 -3.17,1.52 -0.83,1.46 -4.01,3 -1.97,4.89 -0.74,1.76 -0.34,3.49 -2.71,3.49 -0.21,1.44 -2.22,2.88 0.58,2.71 2.53,1.11 5.12,2.12 7.69,3.24 1.52,0.72 3.8,-1.59 3.24,1.35 1.14,3.16 4.05,4.22 6.73,6.16 3.36,0.28 1.41,5.5 4.55,6.47 1.71,1.96 0.79,6.36 4.83,5.7 0.18,2.3 0.59,4.8 0.39,7.09 3.14,0.81 -1.89,5.25 2.18,4.96 1.78,0.52 2.82,0.98 4.16,-0.94 3.62,-1.36 0.49,-5.59 2.73,-7.46 1.3,-1.69 2.64,-3.75 1.77,-5.45 1.89,-0.05 4.02,-2.43 3.98,-4.66 -3.67,0.56 1.98,-2.55 0.4,-4.61 0.47,-4.5 -0.6,-8.88 -1.01,-13.3 -0.14,-3.75 0.34,-7.67 -0.54,-11.31 -2.55,0.11 -3.67,-4.24 -3.35,-6.45 -0.43,-3.66 1.56,-7.1 1.67,-10.65 -0.63,-3.67 -1.07,-7.33 -1.55,-11 -0.76,-1.12 -2.26,-1.12 -3.47,-1.1 z","department-2A":"m 553.92,559.49 c -0.76,0.55 -0.1,3.85 1.13,1.96 1.53,-0.6 3.16,1.13 1.04,1.7 0.18,1.06 4.56,1.95 3.28,3.75 -1.7,0.83 -4.95,1.13 -5.71,2.43 1.47,0.55 1.4,3.03 1,3.92 1.78,0.17 -1.16,0.99 0.63,1.63 0.63,1.3 2.89,1.78 3.93,2.6 2.01,-0.69 1.72,2.93 3.31,3.71 -1.37,1.54 -4.97,1.78 -3.83,4.58 -1,1.17 -4.84,0.3 -2.28,2.46 0.58,1.07 -0.7,3.38 1.57,2.3 2.41,0.81 4.08,-2.02 6.12,-1.18 1.97,1.46 -0.22,3.37 0.14,5 -2.75,0 1.8,1.85 -1.02,2.54 -3.01,0.03 -0.83,3.83 -3.9,3.99 -1.68,0.23 1.57,0.7 1.54,1.65 1.76,-0.59 3.68,-1.62 3.39,1.11 1.89,0.2 4.59,0.62 6.1,1.72 -1.54,1.28 -2.78,3.54 -5.39,3.37 -1.08,2.57 -0.44,5.65 2.26,6.65 0.47,1.48 3.07,1.49 4.07,2.79 2.06,-0.18 4.37,2.72 5.98,1.13 0.61,-0.03 -0.33,2.68 1.6,1.9 1.78,0.68 -1.94,3.73 1.39,3.43 1.92,2.48 5.07,2.16 5.35,-1.31 -0.28,-1.01 -2.21,1.4 -1.26,-0.4 -1.13,-2.4 4.15,-2.95 2.21,-5.91 -0.37,-2.45 4.29,-3.07 3.59,-5.68 -1.11,-1.47 -3.9,2.07 -2.85,-0.95 0.15,-2.4 3.01,0.56 2.82,-1.99 2.59,-0.18 0.07,-3.36 2.35,-4.13 0.15,-3.28 0.23,-6.85 -0.14,-10.22 -1.57,-1.53 -3.07,3.01 -4.83,0.98 -2.75,0.63 -3.37,-1.87 -1.99,-3.78 0.22,-1.35 -2.56,-0.55 -1.08,-2.17 -0.85,-2.32 1.32,-7.41 -2.67,-6.39 -2.45,-0.98 -0.65,-4.44 -2.73,-5.65 -2.85,-1.24 -1.36,-6.19 -4.82,-6.53 -1.64,-1.96 -4.77,-2 -5.5,-4.65 -1.21,-1.02 -0.51,-3.66 -2.85,-2.55 -2.75,-0.46 -5.3,-1.82 -7.74,-2.91 -1.28,-0.57 -2.84,-0.72 -4.21,-0.9 z","department-66":"m 350.33,540.74 c -2.96,0.38 -4.31,2.8 -5.6,5.05 -3.53,0.71 -7.2,-0.41 -10.77,-0.57 -2.35,1.71 -6.82,-1.75 -7.77,1.56 0.2,2.13 1.85,4.41 0.81,6.44 -1.56,1.89 -4.34,1.3 -5.68,3.47 -1.35,1.08 -2.18,1.99 -3.65,0.52 -2.39,0.04 -5.76,-0.02 -7.25,1.69 -0.99,2.71 -4.23,1.36 -5.45,3.77 -3.15,-0.36 -6.54,2.28 -5.14,5.7 2.43,0.62 5.15,0.58 6.86,2.76 2.19,0.36 3.92,1.1 3.79,3.75 0.25,2.56 3.21,3.71 5.32,2.52 1.96,-1.04 2.2,-4.45 4.97,-3.96 2.58,-0.15 5.03,-1.38 7.33,0.7 1.62,1.14 4.07,1.03 4.94,3.03 1.26,1.86 4.32,3.14 5.35,0.56 1.73,0.75 6.82,2.34 4.14,-1.14 0.71,-2.52 4.05,-2.95 6.3,-2.62 1.56,-1.63 3.48,-3.18 5.81,-2.8 0.99,-2.12 3.1,-0.12 4.88,-0.88 1.63,1.07 2.93,3.67 5.54,2.51 3.2,-0.39 -1.16,-3.71 -1.44,-5.38 -2.92,-1.29 -2.81,-4.63 -3.06,-7.37 0.78,-2.2 -2.64,-2.22 -1.43,-4.12 2.29,1.97 1.16,-2.93 1.55,-4.24 0.36,-2.22 -0.89,-3.89 -3.17,-3.82 -1.26,-1.48 0.41,-4.01 -2.35,-4.33 -1.89,-0.44 -3.32,-1.87 -4.85,-2.81 z", -"department-01":"m 445.43,302.59 c -1.44,3.02 -1.75,6.16 -3.18,9.18 -0.78,3.16 -1.85,6.34 -2.91,9.5 -0.74,1.88 -1.31,3.79 -0.09,5.37 -0.73,2.05 -2.97,3.67 -1.95,5.9 -1.67,2.26 0.87,5.73 -1.18,7.83 1.88,0.01 3.46,1.61 3.99,2.62 2.16,-1.53 3.89,1.88 4.07,3.41 0.92,1.26 -0.03,3.77 2.46,2.77 2.89,0.46 5.98,-0.89 8.76,0.39 1.35,2.24 3.89,2.93 5.42,0.31 1.18,-1.7 1.66,-5.65 4.09,-5.27 2.02,1.24 3.75,2.88 3.08,4.98 1.95,2.32 3.67,4.97 5.93,6.73 1.33,1.23 0.17,0.8 -0.53,0.61 0.61,1.8 3.11,2.49 3.34,4.83 0.97,0.84 1.38,-1.89 2.87,-1.59 -0.3,-1.63 1.67,-2.68 0.77,-4.34 3.81,0.96 3.71,-3.34 3.75,-5.95 0.89,-3.44 1.98,-6.82 2.27,-10.31 -1.07,-2.3 -1.36,-4.85 -1.09,-7.47 0.3,-1.5 0.9,-3.58 2.27,-1.4 2.48,1.01 0.53,-3.51 3.59,-2.7 2.71,-0.13 3.55,-3.26 1.37,-4.78 1.32,-2.8 5.95,-1.73 6.82,-4.09 -1.66,-3.05 4.61,-7.07 -0.2,-9.19 -2.62,-2.47 -4.13,2.14 -6.1,3.38 -0.9,2.11 -2.5,3.05 -3.65,4.53 -1.99,2.56 -5.47,0.79 -8.11,1.25 0.84,-3.04 -2.73,-3.43 -3.76,-4.72 -2.02,1.65 -3.16,4.49 -6.19,4.68 -2.73,0.46 -1.81,-2.02 -1.56,-3.51 -1.42,0.56 -1.69,-0.36 -2.26,-1.49 -0.06,1.35 -0.96,2.99 -0.83,0.6 -1.4,-1.01 -1.59,-2.59 -1.58,-3.72 -1.32,-0.93 -3.93,-1.28 -2.29,-3.07 -1.76,-1.43 -5.48,-1.31 -5.42,-4.72 -2.13,-0.62 -4.08,0.9 -6.23,1.42 -1.93,-0.36 -3.28,-2.81 -5.2,-1.46 0.07,-0.1 -0.3,-0.68 -0.54,-0.51 z","department-39":"m 472.04,250.64 c -2.16,1.79 -1.36,5.28 -2.94,7.45 0.09,2.73 -2.31,4.73 -3.53,7.05 -3.03,-0.47 -5.35,3.74 -3.19,4.71 -2.06,0.47 -3.73,5.36 -0.52,4.7 1.33,0.76 0.69,4.17 3.48,3.21 1.68,-0.66 1.23,2.18 3.27,2.09 2.46,1.35 -0.2,2.67 -1.91,2.03 -2.06,-0.51 -4.46,1.94 -1.6,2.77 2.43,1.33 -1.33,3.03 1.08,4.08 0.89,2.1 1.19,3.82 2.13,6.05 -2.12,0.95 -0.43,3.73 -3.06,3.72 -1.86,2.41 0.74,4.14 2.3,5.69 -0.13,2.93 -6.18,0.76 -4.86,4.67 0.41,1.69 3.59,1.72 2.72,3.84 0.3,1.7 2.14,1.5 2.39,1.42 0.16,2.17 2.98,0.53 1.91,2.98 -0.9,3.13 3.87,1.82 4.85,0.12 1.46,-0.55 2.58,-4.59 4.24,-1.99 2.29,0.06 2.46,3.2 3.09,3.77 2.93,-0.04 7.08,0.91 8.5,-2.49 2.02,-1.97 3.8,-4.92 6.21,-7.02 2.27,-1.54 0.39,-4.74 2.54,-6.4 1.4,-1.49 3.11,-3.84 -0.06,-3.89 -2.06,-1.17 -3.31,-3.74 -0.87,-5.29 0.4,-1.53 -1.44,-3.09 0.76,-4.19 2.73,-1.36 6.13,-4.43 2.26,-6.76 -1.6,-2.02 -3.91,-2.65 -5.92,-3.04 -1.27,-2 -1.73,-3.98 -2.6,-5.89 -0.82,-0.25 1.22,-2.33 -1.1,-2.27 -1.84,-1.29 -4.2,-1.14 -5.91,-2.76 -0.62,-1.82 -0.09,-1.2 -1.26,-0.03 -2.05,2.08 -3.47,-2.98 -0.74,-2.02 0.76,-1.1 -0.4,-3.36 1.4,-4.52 2.37,-3.1 -2.64,-4.46 -3.59,-6.62 -0.37,-1.97 -2.06,-4.51 -3.97,-2.34 -2.56,0.88 -4.13,-1.12 -5.49,-2.82 z","department-68":"m 549.43,183.82 c -2.25,1 -2.94,3.73 -3.79,5.81 -0.9,2.15 -3.75,4.26 -2.11,6.74 -0.93,2.22 -2.92,4.25 -3.93,6.64 -2.43,1.18 -3.51,3.7 -3.19,6.38 0.13,1.69 -1.55,2.36 -0.44,3.95 0.77,2.64 -4.62,1.97 -2.6,4.52 2.13,1.91 5.37,1.9 7.52,3.96 0.67,1.81 1.6,4.32 0.06,6.09 -1.78,1.43 -0.08,4 1.85,2.88 1.83,0.98 2.47,3.66 3.32,5.16 -0.72,2.04 1.34,2.1 2.39,2.44 -0.32,1.38 -1.23,4 1.33,3.32 1.03,1.33 2.07,1.29 3.35,0.31 2.56,-0.08 5.85,0.35 7.17,-2.31 -0.73,-1.24 -0.96,-2.18 0.78,-1.43 2.66,0.8 0.35,-2.42 2.52,-2.38 0.82,-0.85 -1.99,-1.47 0.03,-2.05 1.88,-1.02 4.21,-2.78 2.05,-4.99 -1.7,-1.63 -3.7,-3.88 -1.43,-6.04 0.91,-2.16 -1.41,-4.57 0.56,-6.71 0.67,-2 0.44,-4 1.78,-5.83 -0.03,-2.09 3.45,-4.94 0.43,-6.95 -3.06,-1.46 0.88,-6.62 -2.19,-7 -1.65,-0.56 -1.53,-2.31 -3.25,-2.51 -0.17,-1.94 -0.33,-3.93 -2.69,-4.35 -2.09,-1.1 -4.78,-1.23 -5.71,-3.58 0.07,-2.15 -2.48,-1.52 -3.79,-2.06 z","department-90":"m 532.37,216.22 c -0.55,0.23 -0.49,0.97 -0.95,1.33 -0.62,0.8 -1.51,1.36 -1.95,2.3 -0.77,0.99 -0.8,2.48 -0.08,3.5 -0.03,0.67 0.48,1.24 0.41,1.93 -0.01,0.83 -0.07,1.76 0.62,2.36 0.29,0.29 0.48,0.66 0.1,0.97 -0.14,0.38 -0.57,0.43 -0.76,0.72 -0.05,0.5 0.53,0.78 0.56,1.29 0.18,0.47 0.52,0.85 0.75,1.28 0.26,0.15 0.87,0.53 0.4,0.81 -0.7,0.47 -0.05,1.72 0.76,1.5 0.78,0.02 1.57,-0.19 2.27,-0.46 0.8,0.18 1.42,0.82 1.45,1.64 0.04,0.86 1.41,0.54 1.43,1.42 0.01,0.47 0.26,1.11 -0.01,1.5 -0.5,0.35 -0.45,-0.64 -0.86,-0.74 -0.5,-0.2 -0.94,0.42 -0.64,0.85 0.2,0.34 -0.18,0.93 0.34,1.04 0.43,0.61 0.84,1.44 0.71,2.19 -0.36,0.5 0.42,0.64 0.75,0.45 0.83,-0.18 1.47,-0.8 2.26,-1.07 0.62,-0.6 -0.22,-1.42 -0.38,-2.05 -0.12,-0.36 -0.45,-1.06 0.17,-1.13 0.42,-0.08 0.81,-0.3 1.15,-0.48 0.96,0.2 1.82,0.91 2.86,0.71 1.1,-0.11 2.47,-0.62 2.45,-1.94 0.16,-1 -0.69,-1.62 -1.41,-2.13 -0.16,-0.46 -0.02,-1.09 -0.52,-1.4 -0.45,-0.55 -0.43,-1.71 -1.38,-1.73 -0.72,-0.12 -1.46,0.05 -1.95,0.59 -0.4,0.24 -0.3,-0.53 -0.6,-0.62 -0.31,-0.79 -0.34,-1.73 0.1,-2.47 0.16,-0.36 0.01,-1.1 0.63,-0.98 0.41,0.01 0.38,-0.37 0.4,-0.64 0.61,-1 -0.15,-2.14 -0.3,-3.13 0.23,-0.47 0.38,-1.05 -0.1,-1.44 -0.8,-1.1 -2.3,-1.18 -3.29,-2.06 -0.38,-0.36 -0.84,-0.58 -1.33,-0.6 -0.84,-0.67 -2.13,-0.38 -2.92,-1.15 -0.45,-0.63 -0.74,-1.4 -0.95,-2.13 -0.05,-0.04 -0.12,-0.05 -0.18,-0.04 z"}}}}),b}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/usa_states.js b/htdocs/public/high/plugins/jquery-mapael/maps/usa_states.js deleted file mode 100644 index 7161ecf4..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/usa_states.js +++ /dev/null @@ -1,148 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires jQuery and Mapael - * - * Map of USA by state - * - * @source http://the55.net/_11/sketch/us_map - */ -(function (factory) { - if (typeof exports === 'object') { - // CommonJS - module.exports = factory(require('jquery'), require('mapael')); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery', 'mapael'], factory); - } else { - // Browser globals - factory(jQuery, jQuery.mapael); - } -}(function ($, Mapael) { - - "use strict"; - - $.extend(true, Mapael, - { - maps :{ - usa_states : { - width : 959, - height : 593, - latLngToGrid: function(lat, lng, phi1, phi2, midLng, scale) { - var pi =Math.PI - , midLat = (phi1 + phi2) / 2 - , n, tmp1, tmp2, tmp3, x, y, p; - - n = (Math.sin(phi1 / 180 * pi) + Math.sin(phi2 / 180 * pi)) / 2; - tmp1 = Math.sqrt(Math.cos(phi1 / 180 * pi)) + 2 * n * Math.sin(phi1 / 180 * pi); - tmp2 = scale * Math.pow(tmp1 - 2 * n * Math.sin(midLat / 180 * pi),0.5) / n; - tmp3 = n * (lng - midLng); - p = scale * Math.pow(tmp1 - 2 * n * Math.sin(lat / 180 * pi),0.5) / n; - x = p * Math.sin(tmp3 / 180 * pi); - y = tmp2 - p * Math.cos(tmp3 / 180 * pi); - - return([x,y]); - }, - getCoords : function (lat, lon) { - var coords = {}, - xOffset, - yOffset, - scaleX, - scaleY, - phi1, - phi2, - midLng, - scale; - if(lat > 51) { // alaska - phi1= 15; - phi2= 105; - midLng = -134; - scale = 530; - coords = this.latLngToGrid(lat, lon, phi1, phi2, midLng, scale); - xOffset = 190; - yOffset = 543; - scaleX= 1; - scaleY= -1; - - } else if (lon < -140) { // hawaii - phi1= 0; - phi2= 26; - midLng = -166; - scale = 1280; - coords = this.latLngToGrid(lat, lon, phi1, phi2, midLng, scale); - xOffset = 115; - yOffset = 723; - scaleX= 1; - scaleY= -1; - } else { - xOffset = -17; - yOffset = -22; - scaleX = 10.05; - scaleY = 6.26; - - coords[0] = 50.0 + 124.03149777329222 * ((1.9694462586094064-(lat* Math.PI / 180)) * Math.sin(0.6010514667026994 * (lon + 96) * Math.PI / 180)); - coords[1] = 50.0 + 1.6155950752393982 * 124.03149777329222 * 0.02613325650382181 - 1.6155950752393982* 124.03149777329222 * (1.3236744353715044- (1.9694462586094064-(lat* Math.PI / 180)) * Math.cos(0.6010514667026994 * (lon + 96) * Math.PI / 180)); - } - return {x : (coords[0] * scaleX + xOffset), y : (coords[1] * scaleY + yOffset)}; - }, - elems : { - "HI" : "m 233.08751,519.30948 1.93993,-3.55655 2.26326,-0.32332 0.32332,0.8083 -2.1016,3.07157 -2.42491,0 z m 10.18466,-3.71821 6.14313,2.58657 2.10159,-0.32332 1.61661,-3.87987 -0.64664,-3.39488 -4.2032,-0.48498 -4.04153,1.77827 -0.96996,3.71821 z m 30.71563,10.023 3.7182,5.49647 2.42492,-0.32332 1.13163,-0.48498 1.45495,1.29329 3.71821,-0.16166 0.96997,-1.45495 -2.90991,-1.77827 -1.93993,-3.71822 -2.1016,-3.55654 -5.8198,2.9099 -0.64664,1.77828 z m 20.20765,8.89137 1.29329,-1.93994 4.68817,0.96996 0.64665,-0.48498 6.14312,0.64664 -0.32332,1.2933 -2.58658,1.45494 -4.36485,-0.32332 -5.49648,-1.6166 z m 5.33482,5.17315 1.93994,3.87987 3.07155,-1.13163 0.32333,-1.61662 -1.61661,-2.10159 -3.71821,-0.32332 0,1.29329 z m 6.95143,-1.13163 2.26326,-2.9099 4.68817,2.42492 4.36485,1.13163 4.36486,2.74824 0,1.93993 -3.55654,1.77828 -4.84985,0.96996 -2.42491,-1.45495 -4.84984,-6.62811 z m 16.65111,15.51947 1.61661,-1.29328 3.39489,1.61662 7.59807,3.55654 3.39489,2.10159 1.6166,2.42492 1.93994,4.36485 4.04153,2.58658 -0.32332,1.2933 -3.87987,3.23322 -4.20319,1.45495 -1.45495,-0.64664 -3.07157,1.77826 -2.42491,3.23323 -2.26326,2.9099 -1.77828,-0.16166 -3.55654,-2.58658 -0.32332,-4.52651 0.64664,-2.42492 -1.61661,-5.65814 -2.1016,-1.77828 -0.16166,-2.58658 2.26326,-0.96996 2.1016,-3.07156 0.48498,-0.96997 -1.61661,-1.77828 -0.32332,-2.1016 z", - "AK" : "m 158.07671,453.67502 -0.32332,85.35713 1.6166,0.96996 3.07157,0.16166 1.45494,-1.13162 2.58658,0 0.16167,2.9099 6.95143,6.78977 0.48499,2.58658 3.39488,-1.93994 0.64665,-0.16166 0.32332,-3.07156 1.45494,-1.61661 1.13164,-0.16166 1.93993,-1.45496 3.07156,2.1016 0.64665,2.90991 1.93993,1.13162 1.13163,2.42492 3.87988,1.77827 3.39488,5.98147 2.74823,3.87986 2.26326,2.74825 1.45496,3.7182 5.01149,1.77828 5.17317,2.10159 0.96996,4.36486 0.48498,3.07156 -0.96996,3.39489 -1.77828,2.26325 -1.61661,-0.8083 -1.45495,-3.07157 -2.74824,-1.45494 -1.77827,-1.13164 -0.80831,0.80831 1.45495,2.74825 0.16166,3.7182 -1.13163,0.48498 -1.93993,-1.93993 -2.10159,-1.29329 0.48498,1.61661 1.29328,1.77828 -0.8083,0.8083 c 0,0 -0.8083,-0.32332 -1.29328,-0.96997 -0.485,-0.64664 -2.1016,-3.39488 -2.1016,-3.39488 l -0.96997,-2.26326 c 0,0 -0.32332,1.29329 -0.96997,0.96996 -0.64665,-0.32332 -1.29329,-1.45494 -1.29329,-1.45494 l 1.77827,-1.93994 -1.45495,-1.45495 0,-5.0115 -0.8083,0 -0.8083,3.39488 -1.13164,0.485 -0.96996,-3.71822 -0.64665,-3.71821 -0.80831,-0.48498 0.32333,5.65815 0,1.13162 -1.45496,-1.29328 -3.55654,-5.98147 -2.1016,-0.48498 -0.64664,-3.71821 -1.61661,-2.9099 -1.61662,-1.13164 0,-2.26325 2.1016,-1.29329 -0.48498,-0.32332 -2.58658,0.64664 -3.39489,-2.42491 -2.58658,-2.90991 -4.84983,-2.58658 -4.04154,-2.58658 1.2933,-3.23322 0,-1.61661 -1.77828,1.61661 -2.9099,1.13163 -3.71821,-1.13163 -5.65815,-2.42491 -5.49647,0 -0.64664,0.48498 -6.46645,-3.87988 -2.1016,-0.32332 -2.74824,-5.8198 -3.55655,0.32332 -3.55655,1.45495 0.48499,4.52652 1.13162,-2.9099 0.96998,0.32332 -1.45496,4.36485 3.23322,-2.74824 0.64665,1.61661 -3.87987,4.36485 -1.29329,-0.32332 -0.48498,-1.93994 -1.29329,-0.8083 -1.29329,1.13163 -2.74824,-1.77827 -3.07157,2.1016 -1.77826,2.10159 -3.39489,2.1016 -4.68818,-0.16167 -0.48498,-2.10159 3.7182,-0.64665 0,-1.29328 -2.26326,-0.64666 0.96998,-2.42491 2.26325,-3.87987 0,-1.77827 0.16166,-0.80831 4.36486,-2.26326 0.96996,1.29329 2.74825,0 -1.29329,-2.58657 -3.71822,-0.32333 -5.01149,2.74824 -2.42492,3.39488 -1.77827,2.58659 -1.13163,2.26326 -4.20319,1.45494 -3.07157,2.58658 -0.323321,1.61662 2.263257,0.96997 0.808313,2.10158 -2.748249,3.23323 -6.466439,4.2032 -7.759747,4.20319 -2.101597,1.13162 -5.334818,1.13164 -5.334826,2.26325 1.778275,1.29329 -1.454954,1.45495 -0.484982,1.13163 -2.748238,-0.96997 -3.23322,0.16166 -0.808312,2.26326 -0.969963,0 0.323321,-2.42492 -3.556551,1.2933 -2.909899,0.96996 -3.394886,-1.29329 -2.909901,1.93993 -3.233224,0 -2.101597,1.2933 -1.616612,0.8083 -2.101595,-0.32332 -2.58658,-1.13163 -2.263257,0.64665 -0.969967,0.96996 -1.616613,-1.13162 0,-1.93994 3.071564,-1.29329 6.304787,0.64665 4.364853,-1.61662 2.101596,-2.10159 2.909902,-0.64665 1.778273,-0.80831 2.748241,0.16166 1.616612,1.2933 0.969963,-0.32332 2.263257,-2.74824 3.07157,-0.96998 3.39488,-0.64664 1.293294,-0.32332 0.646642,0.48498 0.808312,0 1.293284,-3.71821 4.041533,-1.45494 1.939936,-3.71821 2.263259,-4.52652 1.616615,-1.45495 0.323321,-2.58658 -1.616615,1.29329 -3.394893,0.64665 -0.646642,-2.42492 -1.293284,-0.32332 -0.969973,0.96996 -0.16166,2.90991 -1.454955,-0.16167 -1.454944,-5.8198 -1.293294,1.29328 -1.131624,-0.48498 -0.32332,-1.93993 -4.041533,0.16166 -2.101596,1.13163 -2.586578,-0.32332 1.454944,-1.45495 0.484981,-2.58658 -0.646641,-1.93994 1.454954,-0.96996 1.293284,-0.16166 -0.646642,-1.77828 0,-4.36485 -0.969963,-0.96997 -0.808312,1.45495 -6.143123,0 -1.454951,-1.29329 -0.646645,-3.87986 -2.101596,-3.55656 0,-0.96996 2.101596,-0.80831 0.161661,-2.1016 1.131628,-1.13162 -0.808305,-0.48498 -1.29329,0.48498 -1.131628,-2.74824 0.969967,-5.01151 4.526514,-3.23321 2.586575,-1.61662 1.939936,-3.7182 2.748249,-1.2933 2.586578,1.13164 0.323321,2.42492 2.424917,-0.32334 3.23322,-2.42491 1.616615,0.64665 0.969962,0.64664 1.616615,0 2.263259,-1.29329 0.808313,-4.36486 c 0,0 0.323321,-2.90989 0.969963,-3.39488 0.646642,-0.48498 0.969963,-0.96996 0.969963,-0.96996 l -1.131623,-1.93994 -2.58658,0.80831 -3.23323,0.8083 -1.939936,-0.48498 -3.556541,-1.77828 -5.011495,-0.16166 -3.556551,-3.7182 0.484981,-3.87987 0.646652,-2.42492 -2.101596,-1.77827 -1.939938,-3.71822 0.484983,-0.8083 6.789771,-0.48498 2.101596,0 0.969963,0.96996 0.646652,0 -0.16166,-1.61661 3.879862,-0.64664 2.586577,0.32332 1.454955,1.13163 -1.454955,2.1016 -0.484981,1.45494 2.748249,1.61662 5.011497,1.77827 1.778276,-0.96996 -2.263257,-4.36485 -0.969974,-3.23323 0.969974,-0.80831 -3.394891,-1.93993 -0.484983,-1.13164 0.484983,-1.6166 -0.808304,-3.87987 -2.909909,-4.68818 -2.424918,-4.20319 2.909909,-1.93994 3.233222,0 1.778276,0.64665 4.203192,-0.16166 3.718205,-3.55654 1.131633,-3.07157 3.718212,-2.42492 1.616604,0.96997 2.748239,-0.64665 3.718209,-2.1016 1.13164,-0.16166 0.96996,0.80832 4.52651,-0.16167 2.74824,-3.07156 1.13163,0 3.55655,2.42491 1.93993,2.1016 -0.48498,1.13163 0.64664,1.13163 1.61662,-1.61661 3.87987,0.32332 0.32332,3.7182 1.93994,1.45496 7.11309,0.64664 6.30479,4.20319 1.45494,-0.96996 5.17317,2.58658 2.10159,-0.64664 1.93994,-0.80832 4.84983,1.93994 4.36486,2.9099 z m -115.102797,28.93736 2.101596,5.33482 -0.161662,0.96997 -2.909902,-0.32333 -1.778273,-4.04153 -1.778273,-1.45494 -2.424919,0 -0.16166,-2.58659 1.778273,-2.42492 1.131629,2.42492 1.45495,1.45495 2.748241,0.64665 z m -2.58658,33.46387 3.718209,0.80831 3.718207,0.96996 0.808307,0.96998 -1.616612,3.7182 -3.071564,-0.16166 -3.394885,-3.55654 -0.161662,-2.74825 z m -20.692636,-14.06452 1.13163,2.58657 1.131628,1.61662 -1.131628,0.8083 -2.101597,-3.07156 0,-1.93993 0.969967,0 z m -13.7412027,73.07087 3.3948853,-2.26326 3.3948854,-0.96997 2.58658,0.32332 0.484983,1.61661 1.939935,0.48499 1.939934,-1.93993 -0.323322,-1.61661 2.748241,-0.64665 2.909902,2.58658 -1.131629,1.77827 -4.364852,1.13163 -2.748242,-0.48498 -3.718207,-1.13163 -4.3648533,1.45495 -1.616612,0.32332 -1.1316284,-0.64664 z m 48.9833487,-4.52651 1.616612,1.93993 2.101593,-1.61661 -1.454948,-1.2933 -2.263257,0.96998 z m 2.909902,3.07155 1.131624,-2.26325 2.101597,0.32332 -0.808303,1.93993 -2.424918,0 z m 23.602535,-1.93993 1.454954,1.77827 0.969974,-1.13162 -0.808313,-1.93994 -1.616615,1.29329 z m 8.72971,-12.44791 1.131633,5.8198 2.909899,0.80831 5.011495,-2.90991 4.364853,-2.58658 -1.6166,-2.42491 0.48498,-2.42492 -2.1016,1.29329 -2.909898,-0.80831 1.616605,-1.13162 1.939933,0.8083 3.87987,-1.77828 0.48499,-1.45494 -2.42492,-0.80831 0.8083,-1.93994 -2.74824,1.93994 -4.688172,3.55655 -4.849834,2.9099 -1.293294,1.13163 z m 42.35524,-19.88433 2.42492,-1.45495 -0.96997,-1.77828 -1.77827,0.96997 0.32332,2.26326 z", - "FL" : "m 759.8167,439.1428 2.26566,7.3186 3.7297,9.74226 5.33479,9.3763 3.71819,6.30476 4.84982,5.49646 4.04151,3.71819 1.6166,2.90989 -1.13162,1.29328 -0.8083,1.29328 2.90988,7.43639 2.90989,2.90988 2.58657,5.3348 3.55653,5.81978 4.52649,8.24468 1.29329,7.59804 0.48498,11.96288 0.64664,1.77826 -0.32332,3.39487 -2.42491,1.29329 0.32332,1.93992 -0.64664,1.93993 0.32332,2.4249 0.48498,1.93993 -2.74822,3.23321 -3.07155,1.45494 -3.87985,0.16166 -1.45495,1.61661 -2.4249,0.96996 -1.29329,-0.48498 -1.13162,-0.96996 -0.32332,-2.90989 -0.80831,-3.39487 -3.39487,-5.17314 -3.55653,-2.26324 -3.87985,-0.32332 -0.8083,1.29328 -3.07155,-4.36483 -0.64664,-3.55653 -2.58657,-4.04151 -1.77826,-1.13163 -1.61661,2.10159 -1.77826,-0.32332 -2.10159,-5.01148 -2.90989,-3.87985 -2.90989,-5.33479 -2.58656,-3.07155 -3.55653,-3.71819 2.10158,-2.42491 3.23321,-5.49646 -0.16166,-1.6166 -4.52649,-0.96996 -1.61661,0.64664 0.32333,0.64664 2.58656,0.96996 -1.45494,4.5265 -0.8083,0.48498 -1.77827,-4.04151 -1.29328,-4.84982 -0.32332,-2.74823 1.45494,-4.68815 0,-9.53797 -3.07155,-3.71819 -1.29328,-3.07155 -5.17314,-1.29328 -1.93992,-0.64664 -1.61661,-2.58657 -3.39487,-1.61661 -1.13162,-3.39487 -2.74823,-0.96996 -2.42491,-3.71819 -4.20317,-1.45494 -2.90989,-1.45495 -2.58656,0 -4.04152,0.80831 -0.16166,1.93992 0.80831,0.96996 -0.48499,1.13163 -3.07154,-0.16166 -3.71819,3.55653 -3.55654,1.93992 -3.87985,0 -3.23321,1.29329 -0.32332,-2.74823 -1.6166,-1.93993 -2.90989,-1.13162 -1.6166,-1.45495 -8.08303,-3.87985 -7.59804,-1.77826 -4.36483,0.64664 -5.98144,0.48498 -5.98144,2.10159 -3.47924,0.61296 -0.23792,-8.04975 -2.58657,-1.93992 -1.77827,-1.77827 0.32332,-3.07156 10.18462,-1.29328 25.5424,-2.90989 6.78975,-0.64664 5.436,0.28027 2.58657,3.87986 1.45494,1.45494 8.09816,0.51522 10.81975,-0.64664 21.51239,-1.29329 5.44572,-0.67437 5.10758,0.20451 0.42683,2.90989 2.233,0.8083 0.23494,-4.63 -1.52822,-4.17295 1.3084,-1.43983 5.55463,0.45475 5.17314,0.32332 z m 12.54541,132.40508 2.42492,-0.64664 1.29328,-0.24249 1.45496,-2.34409 2.34408,-1.61661 1.29329,0.48499 1.69744,0.32332 0.40415,1.05079 -3.4757,1.21246 -4.2032,1.45495 -2.34408,1.21246 -0.88914,-0.88914 z m 13.4987,-5.01149 1.21246,1.0508 2.74824,-2.10159 5.33481,-4.20319 3.7182,-3.87987 2.50575,-6.6281 0.96997,-1.69744 0.16166,-3.39488 -0.72748,0.48498 -0.96996,2.82907 -1.45496,4.60733 -3.23322,5.254 -4.36484,4.20318 -3.39488,1.93993 -2.50575,1.53578 z", - "NH" : "m 880.79902,142.42476 0.869,-1.0765 1.09022,-3.29102 -2.54308,-0.91347 -0.48499,-3.07156 -3.87985,-1.13162 -0.32332,-2.74824 -7.27475,-23.44082 -4.60142,-14.542988 -0.89708,-0.0051 -0.64664,1.616605 -0.64664,-0.484981 -0.96997,-0.969963 -1.45494,1.939925 -0.0485,5.032054 0.31165,5.667218 1.93992,2.74824 0,4.04152 -3.7182,5.06278 -2.58657,1.13164 0,1.13162 1.13163,1.77827 0,8.56802 -0.80831,9.21467 -0.16166,4.84982 0.96997,1.2933 -0.16166,4.52649 -0.48499,1.77828 0.96881,0.70922 16.78767,-4.42455 2.17487,-0.60245 1.84357,-2.77333 3.60523,-1.61312 z", - "MI" : "M581.61931,82.059006 L 583.4483,80.001402 L 585.62022,79.201221 L 590.99286,75.314624 L 593.27908,74.743065 L 593.73634,75.200319 L 588.59232,80.344339 L 585.27728,82.287628 L 583.21967,83.202124 L 581.61931,82.059006 z M 667.79369,114.18719 L 668.44033,116.69293 L 671.67355,116.85459 L 672.96684,115.64213 C 672.96684,115.64213 672.88601,114.18719 672.56269,114.02552 C 672.23936,113.86386 670.94608,112.16642 670.94608,112.16642 L 668.76366,112.40891 L 667.14704,112.57057 L 666.82372,113.7022 L 667.79369,114.18719 z M 567.49209,111.21318 L 568.20837,110.63278 L 570.9566,109.82447 L 574.51313,107.56123 L 574.51313,106.59126 L 575.15978,105.94462 L 581.14121,104.97466 L 583.56612,103.03473 L 587.93095,100.93315 L 588.09261,99.639864 L 590.03254,96.729975 L 591.8108,95.921673 L 593.10409,94.143408 L 595.36733,91.880161 L 599.73217,89.455254 L 604.42032,88.970273 L 605.55194,90.101896 L 605.22862,91.071859 L 601.51043,92.041822 L 600.05549,95.113371 L 597.79224,95.921673 L 597.30726,98.34658 L 594.88235,101.57979 L 594.55903,104.16636 L 595.36733,104.65134 L 596.3373,103.51972 L 599.89383,100.60983 L 601.18711,101.90311 L 603.45036,101.90311 L 606.68357,102.87307 L 608.13851,104.0047 L 609.59345,107.07625 L 612.34168,109.82447 L 616.22153,109.66281 L 617.67648,108.69285 L 619.29308,109.98613 L 620.90969,110.47112 L 622.20297,109.66281 L 623.33459,109.66281 L 624.9512,108.69285 L 628.99271,105.13632 L 632.38758,104.0047 L 639.01566,103.68138 L 643.54215,101.74145 L 646.12872,100.44817 L 647.58367,100.60983 L 647.58367,106.26794 L 648.06865,106.59126 L 650.97853,107.39957 L 652.91846,106.91458 L 659.06156,105.29798 L 660.19318,104.16636 L 661.64813,104.65134 L 661.64813,111.60274 L 664.88134,114.67429 L 666.17462,115.32093 L 667.4679,116.29089 L 666.17462,116.61421 L 665.36632,116.29089 L 661.64813,115.80591 L 659.54654,116.45255 L 657.28329,116.29089 L 654.05008,117.74584 L 652.27182,117.74584 L 646.45204,116.45255 L 641.27891,116.61421 L 639.33898,119.20078 L 632.38758,119.84742 L 629.96267,120.65572 L 628.83105,123.72727 L 627.53777,124.8589 L 627.05279,124.69724 L 625.59784,123.08063 L 621.07135,125.50554 L 620.42471,125.50554 L 619.29308,123.88893 L 618.48478,124.05059 L 616.54486,128.41543 L 615.57489,132.45694 L 612.39377,139.45774 L 611.21701,138.42347 L 609.84527,137.39215 L 607.90449,127.10413 L 604.36001,125.73408 L 602.30743,123.44785 L 590.18707,120.70437 L 587.3318,119.67473 L 579.10138,117.50199 L 571.21139,116.35887 L 567.49209,111.21318 z,M697.8,177.2L694.6,168.9L692.3,159.9L689.9,156.7L687.3,154.9L685.7,156L681.8,157.8L679.9,162.8L677.1,166.5L676,167.2L674.5,166.5 C 674.5,166.5 671.9,165.1 672.1,164.4 C 672.3,163.8 672.6,159.4 672.6,159.4L676,158.1L676.8,154.7L677.4,152.1L679.9,150.5L679.5,140.5L677.9,138.2L676.6,137.4L675.8,135.3L676.6,134.5L678.2,134.8L678.4,133.2L676,131L674.7,128.4L672.1,128.4L667.6,126.9L662.1,123.5L659.3,123.5L658.7,124.2L657.7,123.7L654.6,121.4L651.7,123.2L648.8,125.5L649.2,129L650.1,129.3L652.2,129.8L652.7,130.6L650.1,131.4L647.5,131.8L646.1,133.5L645.8,135.6L646.1,137.3L646.4,142.8L642.8,144.9L642.2,144.7L642.2,140.5L643.5,138.1L644.1,135.6L643.3,134.8L641.4,135.6L640.4,139.8L637.7,141L635.9,142.9L635.7,143.9L636.4,144.7L635.7,147.3L633.5,147.8L633.5,148.9L634.3,151.3L633.1,157.5L631.5,161.5L632.2,166.2L632.7,167.3L631.9,169.8L631.5,170.6L631.2,173.3L634.8,179.3L637.7,185.8L639.1,190.6L638.3,195.3L637.3,201.3L634.9,206.4L634.6,209.2L631.3,212.3L635.8,212.1L657.2,209.9L664.4,208.9L664.5,210.5L671.4,209.3L681.7,207.8L685.5,207.4L685.7,206.8L685.8,205.3L687.9,201.6L689.9,199.9L689.7,194.8L691.3,193.2L692.4,192.9L692.6,189.3L694.2,186.3L695.2,186.9L695.4,187.5L696.2,187.7L698.1,186.7L697.8,177.2z", - "VT" : "m 844.48416,154.05791 0.3167,-5.34563 -2.89071,-10.78417 -0.64664,-0.32332 -2.9099,-1.29329 0.8083,-2.90989 -0.8083,-2.10159 -2.70005,-4.63998 0.96997,-3.87986 -0.80831,-5.17315 -2.42491,-6.46644 -0.80557,-4.92251 26.41936,-6.73182 0.3087,5.52221 1.91626,2.74223 0,4.04152 -3.70715,5.05799 -2.58657,1.14267 -0.011,1.12057 1.30997,1.51912 -0.31093,8.09797 -0.60943,9.25886 -0.22795,5.55694 0.96996,1.29329 -0.16166,4.57069 -0.48498,1.68989 1.01418,0.72716 -7.43755,1.50671 -4.50174,0.72383 z", - "ME" : "m 922.83976,78.830719 1.93993,2.101586 2.26325,3.718191 0,1.939926 -2.10159,4.688153 -1.93993,0.646642 -3.39487,3.071549 -4.84981,5.496454 c 0,0 -0.64664,0 -1.29328,0 -0.64664,0 -0.96997,-2.101584 -0.96997,-2.101584 l -1.77826,0.16166 -0.96996,1.454944 -2.42491,1.45495 -0.96996,1.45494 1.6166,1.45494 -0.48498,0.64665 -0.48498,2.74822 -1.93993,-0.16166 0,-1.6166 -0.32332,-1.29329 -1.45494,0.32333 -1.77827,-3.23321 -2.10158,1.29328 1.29328,1.45494 0.32332,1.13163 -0.8083,1.29328 0.32332,3.07155 0.16166,1.6166 -1.6166,2.58657 -2.90989,0.48498 -0.32332,2.90989 -5.3348,3.07155 -1.29328,0.48498 -1.61661,-1.45494 -3.07155,3.55653 0.96997,3.23321 -1.45495,1.29328 -0.16166,4.36483 -1.12328,6.25936 -2.46225,-1.15595 -0.48499,-3.07156 -3.87985,-1.13163 -0.32332,-2.74824 -7.27475,-23.44082 -4.69858,-14.639742 1.42054,-0.118165 1.51379,0.409899 0,-2.586568 1.3083,-4.496456 2.58657,-4.688153 1.45495,-4.041512 -1.93993,-2.424907 0,-5.981437 0.8083,-0.969963 0.80831,-2.748228 -0.16166,-1.454944 -0.16167,-4.849814 1.77827,-4.849814 2.90989,-8.891326 2.10158,-4.203172 1.29329,0 1.29328,0.16166 0,1.131623 1.29329,2.263247 2.74822,0.646642 0.80831,-0.808303 0,-0.969962 4.04151,-2.909889 1.77826,-1.778265 1.45495,0.161661 5.98143,2.424907 1.93993,0.969962 9.05299,29.907187 5.98143,0 0.80831,1.939926 0.16166,4.849814 2.90988,2.263246 0.80831,0 0.16166,-0.484981 -0.48498,-1.131623 2.74822,-0.161661 z m -20.93175,30.147531 1.53578,-1.53578 1.37412,1.0508 0.56581,2.42492 -1.69744,0.88913 -1.77827,-2.82907 z m 6.70893,-5.90062 1.77827,1.8591 c 0,0 1.29329,0.0808 1.29329,-0.2425 0,-0.32332 0.24249,-2.02076 0.24249,-2.02076 l 0.88914,-0.8083 -0.80831,-1.77828 -2.02076,0.72748 -1.37412,2.26326 z", - "RI" : "m 874.07001,178.89536 -3.69579,-14.95599 6.26928,-1.84514 2.19113,1.92712 3.30649,4.32065 2.6879,4.40209 -2.99934,1.62479 -1.29328,-0.16166 -1.13162,1.77827 -2.42491,1.93992 -2.90986,0.96995 z", - "NY" : "m 830.37944,188.7456 -1.13163,-0.96996 -2.58658,-0.16166 -2.26324,-1.93992 -1.63061,-6.12913 -3.45846,0.0905 -2.44371,-2.7082 -19.38532,4.38194 -43.00178,8.72969 -7.52965,1.22799 -0.73816,-6.46834 1.4281,-1.12538 1.29328,-1.13162 0.96997,-1.61661 1.77826,-1.13162 1.93993,-1.77827 0.48498,-1.6166 2.10158,-2.74823 1.13163,-0.96996 -0.16166,-0.96997 -1.29329,-3.07154 -1.77826,-0.16166 -1.93993,-6.1431 2.90989,-1.77827 4.36483,-1.45494 4.04152,-1.29329 3.23321,-0.48498 6.30475,-0.16166 1.93993,1.29329 1.6166,0.16166 2.10159,-1.29329 2.58657,-1.13162 5.17313,-0.48498 2.10159,-1.77827 1.77826,-3.23321 1.61661,-1.93992 2.10158,0 1.93993,-1.13163 0.16166,-2.26324 -1.45494,-2.10159 -0.32332,-1.45494 1.13162,-2.10159 0,-1.45494 -1.77827,0 -1.77826,-0.8083 -0.8083,-1.13163 -0.16166,-2.58657 5.81977,-5.49645 0.64664,-0.8083 1.45495,-2.90989 2.90989,-4.5265 2.74823,-3.71819 2.10158,-2.4249 2.4151,-1.82561 3.08136,-1.24594 5.49645,-1.29329 3.23321,0.16166 4.5265,-1.45494 7.56519,-2.07117 0.51979,4.97967 2.42492,6.46644 0.8083,5.17315 -0.96996,3.87986 2.58657,4.5265 0.8083,2.10159 -0.8083,2.9099 2.9099,1.29328 0.64664,0.32332 3.07156,10.99294 -0.53629,5.05967 -0.48498,10.83127 0.8083,5.49647 0.8083,3.55654 1.45495,7.27474 0,8.08304 -1.13163,2.26325 1.83933,1.99279 0.79655,1.67842 -1.93992,1.77827 0.32332,1.29328 1.29328,-0.32332 1.45495,-1.29328 2.26324,-2.58657 1.13163,-0.64664 1.6166,0.64664 2.26325,0.16166 7.92136,-3.87985 2.90989,-2.74823 1.29328,-1.45494 4.20317,1.6166 -3.39487,3.55653 -3.87985,2.90989 -7.11306,5.33479 -2.58656,0.96997 -5.81978,1.93992 -4.04151,1.13163 -1.17474,-0.53293 -0.24402,-3.68853 0.48498,-2.74824 -0.16166,-2.10158 -2.81351,-1.699 -4.5265,-0.96997 -3.87986,-1.13162 -3.7182,-1.77828 z", - "PA" : "m 825.1237,224.69205 1.30842,-0.271 2.32953,-1.25325 1.21188,-2.48307 1.61661,-2.26325 3.23321,-3.07156 0,-0.8083 -2.42491,-1.6166 -3.55654,-2.42492 -0.96996,-2.58657 -2.74824,-0.32332 -0.16166,-1.13163 -0.8083,-2.74823 2.26326,-1.13162 0.16166,-2.42492 -1.2933,-1.29329 0.16166,-1.61661 1.93994,-3.07155 0,-3.07156 2.69763,-2.64588 -0.92028,-0.67498 -2.52408,-0.19291 -2.29449,-1.93992 -1.54992,-6.11606 -3.50458,0.10052 -2.45523,-2.70333 -18.09099,4.19777 -43.00178,8.72969 -8.89135,1.45494 -0.62067,-6.52139 -5.36253,5.06765 -1.29329,0.48498 -4.20229,3.00889 2.91076,19.13745 2.48166,9.72936 3.5718,19.26149 3.26931,-0.63768 11.94358,-1.50247 37.92663,-7.6652 14.87621,-2.82332 8.30035,-1.62236 0.26711,-0.23853 2.1016,-1.61662 2.10158,-0.68084 z", - "NJ" : "m 829.67942,188.46016 -2.32255,2.73427 0,3.07156 -1.93994,3.07155 -0.16166,1.61662 1.2933,1.29328 -0.16166,2.42492 -2.26326,1.13162 0.8083,2.74823 0.16166,1.13163 2.74824,0.32332 0.96996,2.58657 3.55654,2.42492 2.42491,1.6166 0,0.80831 -2.98321,2.69656 -1.61661,2.26324 -1.45495,2.74824 -2.26325,1.29328 -0.46245,1.60248 -0.2425,1.21246 -0.60923,2.60674 1.09227,2.24419 3.23321,2.90989 4.84981,2.26325 4.04151,0.64664 0.16166,1.45494 -0.8083,0.96996 0.32332,2.74823 0.8083,0 2.10159,-2.4249 0.8083,-4.84982 2.74823,-4.04151 3.07155,-6.46642 1.13162,-5.49645 -0.64664,-1.13163 -0.16166,-9.37631 -1.61661,-3.39486 -1.13162,0.8083 -2.74823,0.32332 -0.48498,-0.48498 1.13163,-0.96997 2.10158,-1.93992 0.0631,-1.09383 -0.38439,-3.43384 0.57337,-2.74824 -0.11747,-1.96901 -2.80754,-1.75035 -5.09214,-1.17576 -4.13744,-1.38163 -3.58563,-1.64569 z", - "DE" : "m 825.6261,228.2791 0.36831,-2.14689 0.37507,-1.69105 -1.623,0.39776 -1.61546,0.46756 -2.20626,1.7643 1.72012,5.04288 2.26326,5.65812 2.10158,9.69965 1.61662,6.30478 5.01148,-0.16166 6.14212,-1.18068 -2.26423,-7.38627 -0.96997,0.48498 -3.55653,-2.4249 -1.77826,-4.68816 -1.93993,-3.55653 -3.14712,-2.87031 -0.86416,-2.09812 0.36636,-1.61546 z", - "MD" : "m 839.79175,252.41476 -6.00855,1.20384 -5.1429,0.11746 -1.84356,-6.92233 -1.92481,-9.16932 -2.57262,-6.18845 -1.28838,-4.39833 -7.50602,1.62236 -14.87621,2.82332 -37.45143,7.5509 1.1313,5.01166 0.96996,5.65811 0.32332,-0.32332 2.1016,-2.4249 2.26324,-2.61766 2.42491,-0.61556 1.45496,-1.45495 1.77826,-2.58657 1.29328,0.64665 2.90989,-0.32333 2.58658,-2.10158 2.00689,-1.45327 1.84523,-0.48498 1.64435,1.12995 2.90989,1.45494 1.93992,1.77827 1.21246,1.53578 4.12235,1.69743 0,2.90989 5.49646,1.29329 1.14444,0.54198 1.4119,-2.02832 2.88197,1.97016 -1.27817,2.48193 -0.76527,3.98566 -1.77826,2.58657 0,2.10159 0.64664,1.77827 5.06395,1.35569 4.3111,-0.0617 3.07154,0.96997 2.10159,0.32332 0.96996,-2.10159 -1.45494,-2.10158 0,-1.77827 -2.42491,-2.10159 -2.10158,-5.49645 1.29328,-5.3348 -0.16166,-2.10158 -1.29328,-1.29329 c 0,0 1.45494,-1.6166 1.45494,-2.26324 0,-0.64665 0.48498,-2.10159 0.48498,-2.10159 l 1.93993,-1.29328 1.93992,-1.61661 0.48498,0.96997 -1.45494,1.6166 -1.29328,3.71819 0.32332,1.13162 1.77826,0.32332 0.48498,5.49646 -2.10158,0.96996 0.32332,3.55653 0.48498,-0.16166 1.13162,-1.93992 1.61661,1.77826 -1.61661,1.29329 -0.32332,3.39487 2.58657,3.39487 3.87985,0.48498 1.61661,-0.8083 3.23655,4.18293 1.35835,0.5363 6.65367,-2.79695 2.00758,-4.02387 -0.43596,-4.90798 z m -15.96958,9.02872 1.13162,2.50575 0.16166,1.77827 1.13163,1.8591 c 0,0 0.88914,-0.88914 0.88914,-1.21246 0,-0.32332 -0.72747,-3.07156 -0.72747,-3.07156 l -0.72748,-2.34409 -1.8591,0.48499 z", - "VA" : "m 831.63885,266.06892 -0.14391,-1.94703 6.45343,-2.54988 -0.77041,3.21784 -2.91995,3.77911 -0.41809,4.58582 0.46175,3.39044 -1.82797,4.97816 -2.16427,1.91614 -1.47034,-4.64081 0.44589,-5.44911 1.587,-4.18307 0.76687,-3.09761 z m 3.34019,28.30136 -58.17418,12.57543 -37.42697,5.27907 -6.67833,-0.37518 -2.58525,1.92638 -7.33913,0.22069 -8.38211,0.97767 -10.91496,1.61462 10.46943,-5.6112 -0.0131,-2.07493 1.52005,-2.14613 10.55378,-11.50143 3.94672,4.47746 3.78301,0.96398 2.54346,-1.14032 2.23722,-1.31116 2.53661,1.34352 3.91417,-1.42776 1.87673,-4.55634 2.60092,0.54002 2.85524,-2.13125 1.79927,0.4936 2.82721,-3.67657 0.34825,-2.08311 -0.96366,-1.27557 1.00277,-1.86663 5.27427,-12.27715 0.61677,-5.73508 1.22889,-0.52354 2.17853,2.44287 3.93586,-0.30117 1.92921,-7.57363 2.79399,-0.56086 1.04975,-2.74107 2.57982,-2.34688 2.77183,-5.69519 0.0849,-5.06755 9.82151,3.82282 c 0.68085,0.34042 0.83288,-5.04915 0.83288,-5.04915 l 3.65256,1.59833 0.0683,2.93816 5.78425,1.29949 2.13295,1.1762 1.65992,2.05569 -0.65455,3.64867 -1.94744,2.59098 0.10985,2.05907 0.58896,1.85291 4.97875,1.26843 4.45127,0.0399 3.06883,0.95864 1.94351,0.3093 0.71481,3.08846 3.19044,0.40253 0.86807,1.20002 -0.43949,4.69008 1.37473,1.10255 -0.47895,1.93039 1.22941,0.78977 -0.2218,1.3846 -2.69399,-0.0949 0.089,1.61552 2.28099,1.54287 0.12154,1.4119 1.77311,1.78538 0.49179,2.52413 -2.55304,1.38131 1.57222,1.4943 5.80102,-1.68583 3.60762,6.01193 z", - "WV" : "m 761.18551,238.96731 1.11201,4.94453 1.08344,6.03133 2.13029,-2.58034 2.26324,-3.07156 2.53838,-0.61555 1.45495,-1.45494 1.77827,-2.58657 1.44498,0.64664 2.90989,-0.32332 2.58658,-2.10159 2.00689,-1.45326 1.84523,-0.48499 1.30392,1.01647 3.64325,1.82163 1.93993,1.77827 1.37412,1.29328 -0.76172,5.55494 -5.83491,-2.54122 -4.24525,-1.62202 -0.10114,5.17843 -2.74764,5.53673 -2.53003,2.42666 -1.19209,2.74939 -2.64358,0.5001 -0.89784,3.60188 -1.04323,3.94967 -3.96824,0.34074 -2.32373,-2.43888 -1.07115,0.55941 -0.63268,5.4697 -1.35029,3.5345 -4.9584,10.95497 0.89669,1.1607 -0.20586,1.90854 -2.80869,3.88447 -1.8085,-0.54429 -2.96805,2.15974 -2.54238,-0.57221 -1.99923,4.55557 c 0,0 -3.25931,1.43022 -3.92291,1.36772 -0.16051,-0.0151 -2.4691,-1.2491 -2.4691,-1.2491 l -2.33652,1.37937 -2.4098,1.0444 -3.74469,-0.88912 -1.1214,-1.16828 -2.19222,-3.02336 -3.14259,-1.98812 -1.71157,-3.62324 -4.28488,-3.46819 -0.64665,-2.26325 -2.58657,-1.45495 -0.80831,-1.6166 -0.24249,-5.25398 2.18242,-0.0808 1.93994,-0.8083 0.16166,-2.74823 1.6166,-1.45495 0.16166,-5.01148 0.96996,-3.87986 1.29329,-0.64664 1.29328,1.13162 0.48499,1.77827 1.77827,-0.96997 0.48498,-1.6166 -1.13162,-1.77827 0,-2.42491 0.96996,-1.29329 2.26325,-3.39487 1.29328,-1.45494 2.1016,0.48498 2.26324,-1.61662 3.07155,-3.39487 2.26326,-3.87986 0.32332,-5.65811 0.48498,-5.01149 0,-4.68816 -1.13162,-3.07155 0.96996,-1.45496 1.28348,-1.29328 3.49125,19.82712 4.63101,-0.75115 12.42832,-1.79965 z", - "OH" : "m 735.32497,193.32832 -6.09354,4.05335 -3.87985,2.26325 -3.39487,3.71819 -4.04151,3.87985 -3.23321,0.8083 -2.90989,0.48498 -5.49646,2.58657 -2.10158,0.16166 -3.39487,-3.07155 -5.17314,0.64665 -2.58656,-1.45495 -2.38107,-1.35083 -4.89257,0.70341 -10.18462,1.61661 -11.20687,2.18473 1.29329,14.63028 1.77827,13.74117 2.58656,23.4408 0.56582,4.83117 4.12235,-0.12902 2.42491,-0.80831 3.3638,1.50314 2.07049,4.36483 5.13894,-0.0171 1.89174,2.1187 1.76117,-0.0653 2.53839,-1.34146 2.50417,0.3715 5.42128,0.48268 1.72697,-2.13268 2.34565,-1.29328 2.07049,-0.68085 0.64664,2.74824 1.77828,0.96996 3.47569,2.34407 2.18242,-0.0808 1.33312,-0.49248 0.18471,-2.76153 1.58536,-1.45496 0.0992,-4.79272 c 0,0 1.02396,-4.10906 1.02396,-4.10906 l 1.29927,-0.60128 1.32135,1.14774 0.53815,1.69702 1.71913,-1.03742 0.43898,-1.46075 -1.11669,-1.90306 0.0663,-2.31443 0.749,-1.07231 2.15276,-3.30648 1.05022,-1.54334 2.10159,0.48498 2.26325,-1.61661 3.07155,-3.39487 2.77149,-4.07873 0.32033,-5.05551 0.48498,-5.01149 -0.17678,-5.30688 -0.95484,-2.89478 0.35124,-1.18978 1.80439,-1.75011 -2.28879,-9.04733 -2.90989,-19.36177 z", - "IN" : "m 619.56954,299.97132 0.0653,-2.85858 0.48499,-4.52651 2.26324,-2.90988 1.77828,-3.87987 2.58656,-4.20317 -0.48498,-5.81979 -1.77826,-2.74823 -0.32332,-3.23321 0.8083,-5.49647 -0.48498,-6.95141 -1.2933,-16.00441 -1.29328,-15.35776 -0.97047,-11.72002 3.07106,0.88951 1.45495,0.96996 1.13162,-0.32332 2.10159,-1.93992 2.82957,-1.61699 5.0928,-0.16204 21.98587,-2.26326 5.57573,-0.53316 1.50314,15.95621 4.25135,36.84155 0.59846,5.7716 -0.3715,2.26325 1.22798,1.79537 0.0964,1.37255 -2.52129,1.59951 -3.53943,1.55131 -3.20213,0.55028 -0.59846,4.86693 -4.57469,3.31247 -2.79642,4.01044 0.32332,2.37673 -0.58134,1.5342 -3.32647,0 -1.58553,-1.6166 -2.49331,1.2622 -2.68296,1.50314 0.16167,3.05445 -1.19379,0.25803 -0.46788,-1.01814 -2.16688,-1.50314 -3.25032,1.34148 -1.55131,3.00625 -1.43784,-0.8083 -1.45495,-1.59951 -4.46434,0.48499 -5.59283,0.96996 -2.90989,1.55132 z", - "IL" : "m 619.54145,300.34244 0.0312,-3.22971 0.56739,-4.64596 2.33253,-2.91586 1.86665,-4.07576 2.23302,-3.99533 -0.3715,-5.2524 -2.00521,-3.54257 -0.0964,-3.34668 0.69483,-5.26951 -0.82541,-7.17837 -1.06634,-15.77745 -1.29328,-15.01734 -0.92228,-11.6392 -0.27251,-0.92139 -0.8083,-2.58657 -1.29328,-3.71819 -1.61661,-1.77827 -1.45494,-2.58656 -0.23357,-5.48896 -45.79643,2.59825 0.22862,2.37195 2.28623,0.68587 0.91448,1.14311 0.45725,1.82898 3.88658,3.42934 0.68588,2.28623 -0.68588,3.42934 -1.82898,3.65796 -0.68586,2.51484 -2.28623,1.82899 -1.82898,0.68587 -5.25832,1.37173 -0.68587,1.82898 -0.68587,2.05761 0.68587,1.37174 1.82898,1.60036 -0.22862,4.1152 -1.82899,1.60036 -0.68586,1.60036 0,2.74347 -1.82898,0.45724 -1.60036,1.14312 -0.22862,1.37174 0.22862,2.0576 -1.71467,1.31457 -1.0288,2.80064 0.45724,3.65795 2.28623,7.31593 7.31593,7.54455 5.48693,3.65796 -0.22862,4.34383 0.9145,1.37174 6.40143,0.45724 2.74347,1.37174 -0.68586,3.65796 -2.28623,5.94419 -0.68587,3.20072 2.28622,3.88658 6.40144,5.25832 4.57246,0.68587 2.05759,5.0297 2.05761,3.20071 -0.91449,2.97209 1.60036,4.11521 1.82898,2.05761 1.41403,-0.88069 0.90766,-2.07479 2.21308,-1.7472 2.13147,-0.6144 2.60253,1.1798 3.62699,1.3757 1.18895,-0.29823 0.19987,-2.25845 -1.2873,-2.41179 0.30422,-2.37672 1.8384,-1.34745 3.02254,-0.81029 1.2609,-0.45852 -0.61261,-1.38688 -0.79137,-2.35437 1.4326,-0.98096 1.15747,-3.21403 z", - "CT" : "m 874.06831,178.86288 -3.67743,-14.87881 -4.71882,0.92031 -21.22878,4.74309 1.00019,3.22567 1.45495,7.27474 0.17678,8.96692 -1.22002,2.17487 1.92079,1.93234 4.27153,-3.90564 3.55653,-3.23321 1.93992,-2.10159 0.80831,0.64664 2.74822,-1.45494 5.17314,-1.13162 7.79469,-3.17877 z", - "WI" : "m 615.06589,197.36866 -0.0667,-3.15742 -1.17911,-4.5265 -0.64664,-6.14309 -1.13162,-2.42491 0.96996,-3.07155 0.8083,-2.90989 1.45495,-2.58656 -0.64665,-3.39487 -0.64664,-3.55653 0.48498,-1.77827 1.93993,-2.42491 0.16166,-2.74823 -0.8083,-1.29328 0.64664,-2.58657 -0.45252,-4.17071 2.74823,-5.65811 2.90989,-6.78974 0.16166,-2.26325 -0.32332,-0.96996 -0.80831,0.48498 -4.20317,6.30476 -2.74823,4.04151 -1.93992,1.77827 -0.8083,2.26324 -1.95495,0.8083 -1.13162,1.93993 -1.45495,-0.32332 -0.16166,-1.77827 1.29329,-2.4249 2.10158,-4.68816 1.77827,-1.6166 0.99083,-2.35785 -2.56045,-1.90134 -1.97482,-10.36699 -3.54747,-1.34198 -1.94626,-2.30833 -12.12971,-2.72164 -2.87589,-1.01205 -8.21312,-2.16729 -7.91792,-1.15875 -3.76516,-5.13067 -0.7504,0.55401 -1.19791,-0.16166 -0.64665,-1.13162 -1.33401,0.29655 -1.13163,0.16166 -1.77826,0.96996 -0.96997,-0.64664 0.64665,-1.93993 1.93992,-3.07155 1.13162,-1.13162 -1.93992,-1.45494 -2.10159,0.8083 -2.90989,1.93992 -7.43638,3.23321 -2.90989,0.64664 -2.90988,-0.48498 -0.98173,-0.87825 -2.1167,2.83518 -0.22862,2.74347 0,8.45903 -1.14312,1.60037 -5.25832,3.88657 -2.28622,5.94419 0.45724,0.22862 2.51485,2.05761 0.68586,3.20072 -1.82898,3.20071 0,3.88659 0.45725,6.63005 2.97209,2.9721 3.42935,0 1.82898,3.20072 3.42933,0.45724 3.88659,5.71557 7.0873,4.11521 2.0576,2.74347 0.9145,7.43024 0.68586,3.31502 2.28623,1.60036 0.22862,1.37174 -2.0576,3.42933 0.22862,3.20073 2.51485,3.88658 2.51485,1.14311 2.97209,0.45724 1.34234,1.38012 45.29836,-2.66945 z", - "NC" : "m 834.98153,294.31554 2.085,4.91735 3.55653,6.46642 2.4249,2.42491 0.64664,2.26325 -2.4249,0.16166 0.8083,0.64664 -0.32332,4.20317 -2.58657,1.29328 -0.64664,2.10159 -1.29328,2.90989 -3.7182,1.6166 -2.4249,-0.32332 -1.45495,-0.16166 -1.6166,-1.29328 0.32332,1.29328 0,0.96997 1.93993,0 0.8083,1.29328 -1.93993,6.30476 4.20317,0 0.64665,1.6166 2.26324,-2.26324 1.29329,-0.48499 -1.93993,3.55653 -3.07155,4.84982 -1.29328,0 -1.13163,-0.48498 -2.74822,0.64664 -5.17314,2.42491 -6.46642,5.33479 -3.39487,4.68815 -1.93992,6.46642 -0.48498,2.42491 -4.68816,0.48498 -5.45313,1.33666 -9.94641,-8.20253 -12.60954,-7.59805 -2.90989,-0.80831 -12.60953,1.45495 -4.27646,0.75015 -1.6166,-3.23322 -2.97036,-2.1167 -16.48939,0.48498 -7.27474,0.8083 -9.05299,4.52651 -6.14311,2.58656 -21.17755,2.58658 0.50009,-4.05433 1.77827,-1.45494 2.74824,-0.64665 0.64664,-3.7182 4.20318,-2.74822 3.87985,-1.45496 4.20319,-3.55653 4.36483,-2.10159 0.64664,-3.07156 3.87986,-3.87985 0.64664,-0.16166 c 0,0 0,1.13163 0.80831,1.13163 0.8083,0 1.93993,0.32332 1.93993,0.32332 l 2.26325,-3.55654 2.10159,-0.64665 2.26324,0.32333 1.61662,-3.55653 2.90989,-2.58658 0.48498,-2.10159 0.1875,-3.64819 4.2765,-0.0225 7.19859,-0.85579 15.75723,-2.25243 15.13604,-2.08657 21.64048,-4.71935 19.98332,-4.25857 11.17694,-2.40581 5.04998,-1.15688 z m 4.27046,33.20657 2.58658,-2.50575 3.15238,-2.58658 1.53578,-0.64664 0.16166,-2.02076 -0.64664,-6.14312 -1.45495,-2.34408 -0.64665,-1.8591 0.72748,-0.2425 2.74824,5.49648 0.40415,4.44567 -0.16166,3.39489 -3.39488,1.53577 -2.82907,2.42492 -1.13162,1.21246 -1.0508,-0.16166 z", - "DC" : "m 805.81945,250.84384 -1.85828,-1.82417 -1.23263,-0.68629 1.44301,-2.02247 2.88909,1.9485 -1.24119,2.58443 z", - "MA" : "m 899.62349,173.25394 2.17192,-0.68588 0.45726,-1.71467 1.0288,0.11431 1.0288,2.28624 -1.25742,0.45724 -3.8866,0.11432 0.45724,-0.57156 z m -9.37354,0.80018 2.28622,-2.62917 1.60037,0 1.82899,1.48605 -2.40054,1.0288 -2.17192,1.0288 -1.14312,-0.91448 z m -34.79913,-21.98819 17.64687,-4.64068 2.26326,-0.64664 1.91408,-2.79571 3.73677,-1.66331 2.88924,4.41284 -2.42491,5.17314 -0.32332,1.45494 1.93993,2.58657 1.13162,-0.8083 1.77827,0 2.26324,2.58656 3.87986,5.98144 3.55653,0.48498 2.26324,-0.96996 1.77827,-1.77827 -0.80831,-2.74822 -2.10158,-1.61661 -1.45495,0.8083 -0.96996,-1.29328 0.48498,-0.48498 2.10159,-0.16166 1.77826,0.8083 1.93993,2.42491 0.96996,2.90989 0.32332,2.4249 -4.20317,1.45495 -3.87985,1.93992 -3.87985,4.5265 -1.93993,1.45494 0,-0.96996 2.42491,-1.45495 0.48498,-1.77826 -0.8083,-3.07155 -2.90989,1.45494 -0.8083,1.45495 0.48498,2.26324 -2.06633,1.00043 -2.7472,-4.52713 -3.39488,-4.36484 -2.0705,-1.81247 -6.53327,1.8762 -5.09233,1.05079 -20.67516,4.59221 -0.66776,-4.76785 0.64664,-10.58877 4.28927,-0.88914 6.78975,-1.2933 z", - "TN" : "m 696.67788,318.25411 -51.89309,5.01149 -15.75956,1.77826 -4.6212,0.51271 -3.86835,-0.0277 -0.22097,4.10083 -8.18538,0.26401 -6.95141,0.64664 -8.09083,-0.12386 -1.41378,7.07286 -1.69623,5.48005 -3.29317,2.75084 -1.34874,4.38106 -0.32332,2.58657 -4.04152,2.26324 1.45494,3.55654 -0.96996,4.36484 -0.96838,0.78965 108.15855,-10.40755 0.40327,-3.95494 1.81073,-1.49039 2.83415,-0.74945 0.67193,-3.71698 4.0986,-2.70496 4.04693,-1.49403 4.08358,-3.57033 4.43609,-2.02546 0.52126,-3.06735 4.0646,-3.98499 0.5508,-0.11417 c 0,0 0.0312,1.13162 0.83955,1.13162 0.8083,0 1.93993,0.35457 1.93993,0.35457 l 2.26325,-3.58779 2.07034,-0.64664 2.27511,0.29521 1.59831,-3.53286 2.95525,-2.64391 0.42168,-1.93911 0.30896,-3.71115 -2.14655,-0.19977 -2.60168,2.02833 -6.99331,0.0291 -18.35929,2.38682 -8.06109,1.9082 z", - "AR" : "m 593.82477,343.05296 -3.97988,0.7167 -5.11215,-0.63403 0.4207,-1.60207 2.97975,-2.56669 0.94338,-3.65625 -1.82898,-2.9721 -78.41757,2.51485 1.60036,6.85869 -1e-5,8.23042 1.37175,10.97399 0.22862,37.83693 2.28623,1.94329 2.97209,-1.37173 2.74348,1.14311 0.68034,6.5733 55.62126,-1.1406 1.14563,-2.09037 -0.28662,-3.54951 -1.82563,-2.9721 1.59869,-1.48521 -1.59869,-2.5115 0.6842,-2.50983 1.36839,-5.60543 2.51819,-2.06263 -0.68587,-2.28456 3.65797,-5.37179 2.74347,-1.36839 -0.11348,-1.49358 -0.34544,-1.82564 2.85695,-5.59873 2.40304,-1.25659 0.38413,-3.42763 1.77067,-1.2417 -3.14352,-0.48427 -1.34146,-4.01044 2.80408,-2.37671 0.55026,-2.0192 1.27948,-4.04661 1.06619,-3.25539 z", - "MO" : "m 558.44022,248.11316 -2.51987,-3.08725 -1.14312,-2.28623 -64.35723,2.40054 -2.28626,0.11431 1.25743,2.51485 -0.22862,2.28622 2.51484,3.88659 3.0864,4.11521 3.08641,2.74347 2.16123,0.22862 1.49673,0.9145 0,2.97209 -1.82897,1.60036 -0.45726,2.28622 2.05761,3.42935 2.51486,2.97209 2.51484,1.82898 1.37173,11.65975 0.31414,36.07221 0.22862,4.68675 0.45724,5.38351 22.43299,-0.86682 23.20603,-0.68587 20.80466,-0.80101 11.65474,-0.2303 2.1694,3.426 -0.68419,3.3075 -3.08725,2.40304 -0.57239,1.83734 5.37849,0.45726 3.89496,-0.68588 1.71718,-5.49363 0.65142,-5.85679 2.09803,-2.55516 2.59603,-1.48689 0.0514,-3.05024 1.01602,-1.93648 -1.69423,-2.54377 -1.33093,0.98426 -1.99262,-2.22724 -1.28503,-4.759 0.80101,-2.5182 -1.94413,-3.42766 -1.83064,-4.5758 -4.79941,-0.79934 -6.9688,-5.59875 -1.71886,-4.11353 0.79935,-3.20072 2.05927,-6.05767 0.45892,-2.86363 -1.94914,-1.03131 -6.85534,-0.79767 -1.02797,-1.71216 -0.1118,-4.23036 -5.48694,-3.43101 -6.97551,-7.7715 -2.28622,-7.31593 -0.23029,-4.22532 0.80101,-2.2879 z", - "GA" : "m 672.29229,355.5518 0,2.18242 0.16166,2.1016 0.64664,3.39487 3.39488,7.92137 2.42491,9.86131 1.45494,6.14311 1.61661,4.84981 1.45495,6.95141 2.10159,6.30477 2.58657,3.39488 0.48498,3.39487 1.93993,0.8083 0.16166,2.1016 -1.77827,4.84981 -0.48498,3.23322 -0.16166,1.93993 1.61661,4.36484 0.32332,5.3348 -0.80831,2.42491 0.64665,0.80831 1.45495,0.8083 0.2047,3.21809 2.23301,3.34953 2.25044,2.16205 7.92138,0.16166 10.81975,-0.64664 21.51239,-1.29328 5.44572,-0.67437 4.57725,0.0277 0.16166,2.90989 2.58657,0.8083 0.32332,-4.36484 -1.61661,-4.5265 1.13163,-1.6166 5.81978,0.8083 4.97741,0.31778 -0.77542,-6.29879 2.26324,-10.02295 1.45495,-4.20318 -0.48499,-2.58656 3.33441,-6.2443 -0.5103,-1.35168 -1.91341,0.70458 -2.58656,-1.2933 -0.64665,-2.10159 -1.29328,-3.55653 -2.26326,-2.10159 -2.58656,-0.64664 -1.61661,-4.84982 -2.92501,-6.335 -4.20317,-1.93993 -2.1016,-1.93993 -1.29329,-2.58657 -2.10158,-1.93993 -2.26325,-1.29329 -2.26325,-2.90989 -3.07155,-2.26324 -4.52651,-1.77828 -0.48498,-1.45494 -2.42491,-2.90989 -0.48498,-1.45495 -3.39488,-4.97048 -3.51987,0.0992 -3.75491,-2.35614 -1.41828,-1.29328 -0.32332,-1.77827 0.8708,-1.93992 2.22664,-1.11014 -0.63394,-2.09722 -41.86975,4.98893 z", - "SC" : "m 764.94328,408.16488 -1.77706,0.9695 -2.58657,-1.29329 -0.64664,-2.10159 -1.29328,-3.55653 -2.26326,-2.1016 -2.58657,-0.64664 -1.6166,-4.84981 -2.74824,-5.98145 -4.20317,-1.93994 -2.1016,-1.93992 -1.29328,-2.58657 -2.10159,-1.93994 -2.26325,-1.29328 -2.26325,-2.90989 -3.07155,-2.26324 -4.52651,-1.77828 -0.48498,-1.45494 -2.4249,-2.90989 -0.48499,-1.45496 -3.39488,-5.17313 -3.39487,0.16166 -4.04152,-2.42492 -1.29328,-1.29328 -0.32332,-1.77827 0.8083,-1.93992 2.26325,-0.96998 -0.51082,-2.28908 5.7681,-2.33657 9.1155,-4.589 7.77473,-0.80831 16.1144,-0.42248 2.63825,1.87743 1.6791,3.35822 4.30235,-0.60998 12.60953,-1.45496 2.90989,0.80831 12.60954,7.59806 10.10808,8.12168 -5.42117,5.45834 -2.58657,6.1431 -0.48498,6.30476 -1.6166,0.8083 -1.13163,2.74823 -2.4249,0.64664 -2.10159,3.55653 -2.74823,2.74823 -2.26324,3.39487 -1.61661,0.8083 -3.55653,3.39487 -2.90989,0.16166 0.96997,3.23321 -5.01148,5.49646 -2.10159,1.29328 z", - "KY" : "m 725.9944,295.2707 -2.29332,2.40168 -3.57819,3.99404 -4.92455,5.46467 -1.21577,1.71577 -0.0625,2.10158 -4.37986,2.16409 -5.65812,3.39488 -7.23187,1.79885 -51.86789,4.89886 -15.75956,1.77826 -4.6212,0.51271 -3.86835,-0.0277 -0.22695,4.22028 -8.17941,0.14456 -6.95141,0.64664 -7.98748,-0.0602 1.20778,-1.32008 2.49954,-1.54085 0.22863,-3.20073 0.91449,-1.82898 -1.60682,-2.5389 0.80183,-1.90681 2.26326,-1.77826 2.10158,-0.64665 2.74823,1.29329 3.55654,1.29328 1.13163,-0.32332 0.16166,-2.26325 -1.29329,-2.42491 0.32332,-2.26325 1.93993,-1.45494 2.58658,-0.64665 1.6166,-0.64664 -0.8083,-1.77827 -0.64664,-1.93993 1.50662,-0.9958 c 0.003,-0.0371 1.25396,-3.52229 1.23829,-3.65781 l 3.05322,-1.47868 5.31979,-0.96996 4.49404,-0.48498 1.39244,1.62743 1.52827,0.8708 1.59077,-3.10821 3.18708,-1.28262 2.20509,1.48403 0.41056,0.99904 1.17352,-0.26401 -0.16167,-2.95293 3.13087,-1.74919 2.14809,-1.07348 1.52936,1.66081 3.31815,-0.0442 0.58733,-1.57125 -0.36751,-2.26324 2.60053,-3.9985 4.77655,-3.4379 0.70595,-4.83586 2.92502,-0.45591 3.79146,-1.64568 2.44332,-1.70824 -0.19833,-1.56493 -1.14245,-1.45494 0.56582,-2.99491 4.18485,-0.1175 2.29991,-0.7458 3.34739,1.4291 2.05411,4.36484 5.13229,0.0108 2.05101,2.20819 1.61545,-0.1477 2.60169,-1.27817 5.23706,0.57337 2.57492,0.21751 1.68758,-2.05624 2.61795,-1.42588 1.88178,-0.7071 0.64664,2.83663 2.04343,1.05834 2.64276,2.08249 0.11747,5.67324 0.8083,1.57241 2.58972,1.55628 0.77164,2.29451 4.15989,3.43694 1.80531,3.62324 2.45655,1.65852 z", - "AL" : "m 631.30647,460.41572 -1.4906,-14.3215 -2.74824,-18.75264 0.16166,-14.06449 0.8083,-31.03885 -0.16166,-16.65106 0.16509,-6.41906 44.48448,-3.61945 -0.1478,2.18242 0.16166,2.1016 0.64665,3.39487 3.39488,7.92137 2.4249,9.86131 1.45495,6.14311 1.6166,4.84982 1.45496,6.95141 2.10158,6.30476 2.58657,3.39489 0.48498,3.39486 1.93994,0.80831 0.16166,2.10159 -1.77828,4.84982 -0.48498,3.23322 -0.16166,1.93992 1.61662,4.36485 0.32332,5.33479 -0.80832,2.42492 0.64666,0.8083 1.45494,0.8083 0.32814,2.88882 -5.59766,-0.35355 -6.78975,0.64665 -25.5424,2.90988 -10.41156,1.40677 -0.22138,2.8774 1.77827,1.77827 2.58657,1.93992 0.58086,7.93544 -5.54206,2.5729 -2.74822,-0.32332 2.74822,-1.93993 0,-0.96996 -3.07154,-5.98144 -2.26325,-0.64664 -1.45495,4.36483 -1.29328,2.74823 -0.64664,-0.16166 -2.74823,0 z", - "LA" : "m 607.96706,459.16125 -3.28461,-3.16614 1.00991,-5.50023 -0.66135,-0.89308 -9.26167,1.00656 -25.02832,0.45892 -0.68419,-2.39468 0.91281,-8.4557 3.31588,-5.94585 5.03136,-8.69102 -0.57407,-2.39802 1.25659,-0.68085 0.45893,-1.95249 -2.28624,-2.05593 -0.11179,-1.94245 -1.83066,-4.34551 -0.14705,-6.3386 -55.47379,0.92397 0.0286,9.57357 0.68587,9.37353 0.68587,3.88658 2.51485,4.11521 0.91449,5.02971 4.34383,5.48693 0.22862,3.20072 0.68587,0.68587 -0.68587,8.45904 -2.97209,5.02969 1.60036,2.05761 -0.68588,2.51484 -0.68586,7.31593 -1.37174,3.20071 0.12246,3.61645 4.68648,-1.52015 12.11335,0.20701 10.34627,3.55653 6.46642,1.13163 3.71819,-1.45495 3.23321,1.13163 3.23321,0.96996 0.8083,-2.10159 -3.23321,-1.13162 -2.58657,0.48498 -2.74823,-1.6166 c 0,0 0.16167,-1.29329 0.80831,-1.45495 0.64664,-0.16166 3.07155,-0.96996 3.07155,-0.96996 l 1.77826,1.45494 1.77827,-0.96996 3.23321,0.64664 1.45494,2.42491 0.32332,2.26325 4.52649,0.32332 1.77827,1.77826 -0.8083,1.61661 -1.29329,0.8083 1.61661,1.6166 8.40634,3.55653 3.55653,-1.29328 0.96997,-2.42491 2.58656,-0.64664 1.77827,-1.45494 1.29328,0.96996 0.8083,2.90989 -2.26324,0.8083 0.64664,0.64664 3.39487,-1.29328 2.26325,-3.39487 0.8083,-0.48498 -2.10159,-0.32332 0.8083,-1.61661 -0.16166,-1.45494 2.10159,-0.48498 1.13162,-1.29329 0.64664,0.8083 c 0,0 -0.16166,3.07155 0.64665,3.07155 0.8083,0 4.20317,0.64665 4.20317,0.64665 l 4.04151,1.93992 0.96996,1.45495 2.90989,0 1.13163,0.96996 2.26324,-3.07155 0,-1.45495 -1.29328,0 -3.39487,-2.74822 -5.81978,-0.80831 -3.23321,-2.26324 1.13163,-2.74823 2.26324,0.32332 0.16166,-0.64664 -1.77826,-0.96996 0,-0.48499 3.23321,0 1.77826,-3.07154 -1.29328,-1.93993 -0.32332,-2.74823 -1.45495,0.16166 -1.93992,2.10159 -0.64664,2.58657 -3.07155,-0.64665 -0.96997,-1.77826 1.77827,-1.93993 1.90333,-3.4456 -1.0611,-2.41227 -1.16564,-3.98133 z", - "MS" : "m 631.55882,459.34458 -0.25426,1.25615 -5.17314,0 -1.45494,-0.8083 -2.10159,-0.32332 -6.78974,1.93992 -1.77826,-0.8083 -2.58657,4.20317 -1.10254,0.77802 -1.12383,-2.48798 -1.14312,-3.88659 -3.42933,-3.20071 1.1431,-5.54455 -0.68586,-0.91449 -1.82898,0.22862 -7.91792,0.87337 -24.5465,0.37337 -0.76974,-2.22536 0.87337,-8.3768 3.11684,-5.67281 5.22707,-9.1449 -0.44574,-2.4326 1.23686,-0.65625 0.43587,-1.91947 -2.31748,-2.07898 -0.11512,-2.14148 -1.83572,-4.12109 -0.109,-5.96277 1.32753,-2.48097 -0.2233,-3.41575 -1.76949,-3.08259 1.52642,-1.48221 -1.57061,-2.49954 0.45725,-1.65221 1.5774,-6.52637 2.48595,-2.03635 -0.64167,-2.36697 3.65797,-5.30253 2.83186,-1.35642 -0.22097,-1.67516 -0.28813,-1.6811 2.87606,-5.56767 2.34572,-1.23151 0.15163,-0.89301 37.34348,-3.88117 0.18486,6.28333 0.16166,16.65106 -0.8083,31.03885 -0.16166,14.06449 2.74824,18.75264 1.48437,13.39529 z", - "IA" : "m 569.19154,199.5843 0.26438,2.7862 2.22372,0.57726 0.95394,1.22533 0.50001,1.85536 3.79284,3.35865 0.68587,2.3915 -0.67434,3.42447 -1.58231,3.23198 -0.79934,2.74179 -2.17275,1.60204 -1.71551,0.5724 -5.57902,1.8602 -1.39146,3.84869 0.72864,1.37174 1.84051,1.68259 -0.28293,4.03629 -1.76315,1.53786 -0.77141,1.64314 0.12722,2.77632 -1.88631,0.45724 -1.62545,1.10491 -0.27879,1.35263 0.27879,2.11492 -1.55102,1.11607 -2.47053,-3.13328 -1.26257,-2.44987 -65.73582,2.51485 -0.91803,0.16544 -2.0524,-4.51596 -0.22862,-6.63007 -1.60036,-4.11521 -0.68586,-5.25831 -2.28623,-3.65797 -0.91448,-4.80107 -2.74348,-7.54455 -1.14311,-5.37264 -1.37174,-2.17191 -1.60036,-2.74346 1.95398,-4.84383 1.37174,-5.71557 -2.74347,-2.05761 -0.45725,-2.74347 0.9145,-2.51485 1.71467,0 82.654,-1.26948 0.83426,4.18312 2.25218,1.56097 0.25671,1.42309 -2.02954,3.38931 0.19041,3.20552 2.51486,3.7982 2.52679,1.29362 3.07928,0.50305 0.65834,0.83236 z", - "MN" : "m 475.23781,128.82439 -0.45725,-8.45904 -1.82898,-7.31592 -1.82898,-13.488725 -0.45725,-9.830778 -1.82898,-3.429343 -1.60036,-5.029695 0,-10.28802 0.68586,-3.886587 -1.82093,-5.451667 30.13242,0.03527 0.32332,-8.244684 0.64664,-0.161661 2.26325,0.484982 1.93992,0.808302 0.8083,5.496456 1.45495,6.143098 1.6166,1.616605 4.84982,0 0.32332,1.454944 6.30476,0.323321 0,2.101586 4.84981,0 0.32332,-1.293284 1.13162,-1.131623 2.26325,-0.646642 1.29328,0.969963 2.90989,0 3.87985,2.586567 5.3348,2.424907 2.42491,0.484982 0.48498,-0.969963 1.45494,-0.484982 0.48498,2.909889 2.58657,1.293284 0.48498,-0.484982 1.29329,0.161661 0,2.101586 2.58656,0.969963 3.07155,0 1.61661,-0.808303 3.23321,-3.233209 2.58656,-0.484981 0.80831,1.778265 0.48498,1.293283 0.96996,0 0.96996,-0.808302 8.89133,-0.323321 1.77826,3.071549 0.64665,0 0.71361,-1.084279 4.43991,-0.370665 -0.6121,2.279459 -3.93872,1.837125 -9.24578,4.061128 -4.77474,2.006897 -3.07155,2.586568 -2.42491,3.55653 -2.26324,3.879851 -1.77827,0.808304 -4.52649,5.01147 -1.29329,0.16166 -4.32778,2.75712 -2.46288,3.20511 -0.22862,3.19139 0.0944,8.04335 -1.37604,1.68875 -5.08154,3.75997 -2.23008,5.98241 2.87175,2.23371 0.67989,3.22698 -1.85524,3.23893 0.17079,3.74802 0.36886,6.7304 3.02825,3.00199 3.329,0 1.89111,3.1326 3.37917,0.50327 3.85916,5.67147 7.08729,4.11675 2.14315,2.87512 0.67115,6.43951 -81.2115,1.14479 -0.33792,-35.67685 -0.45724,-2.97209 -4.11521,-3.42934 -1.14312,-1.82898 0,-1.60037 2.0576,-1.60035 1.37174,-1.37174 0.22863,-3.20072 z", - "OK" : "m 380.34313,320.82146 -16.68418,-1.27331 -0.88022,10.95243 20.46538,1.15688 32.05555,1.3036 -2.3346,24.41865 -0.45725,17.83257 0.22863,1.60036 4.34383,3.65796 2.0576,1.14311 0.68587,-0.22862 0.68587,-2.05761 1.37174,1.82899 2.0576,0 0,-1.37174 2.74347,1.37174 -0.45724,3.88658 4.11521,0.22862 2.51484,1.14312 4.11521,0.68587 2.51485,1.82898 2.28623,-2.0576 3.42934,0.68586 2.51485,3.42934 0.91448,0 0,2.28623 2.28623,0.68586 2.28622,-2.28622 1.82899,0.68586 2.51484,0 0.9145,2.51486 6.30107,2.07897 1.37174,-0.68586 1.82898,-4.11521 1.14311,0 1.14312,2.0576 4.11521,0.68587 3.65795,1.37174 2.9721,0.91449 1.82899,-0.91449 0.68586,-2.51485 4.34383,0 2.0576,0.91449 2.74347,-2.05761 1.14312,0 0.68587,1.60036 4.1152,0 1.60036,-2.0576 1.82899,0.45724 2.0576,2.51486 3.20071,1.82897 3.20073,0.9145 1.94108,1.11893 -0.3891,-37.21701 -1.37175,-10.97398 -0.16046,-8.87234 -1.43989,-6.53773 -0.7782,-7.17964 -0.0681,-3.81622 -12.13684,0.31874 -46.41004,-0.45724 -45.03891,-2.05762 -24.2912,-1.37173 z", - "TX" : "m 361.46423,330.57358 22.69079,1.08594 31.09269,1.14312 -2.33461,23.4558 -0.29676,18.15352 0.0681,2.08179 4.34383,3.81843 1.98665,1.44716 1.18421,-0.55969 0.37337,-1.81772 1.14032,1.80362 2.11164,0.0439 -0.003,-1.44709 1.66994,0.96727 1.1387,0.40887 -0.35927,3.96765 4.08819,0.0935 2.92532,1.19717 3.95474,0.52538 2.38138,2.07898 2.1241,-2.07617 3.72494,0.61491 2.22091,3.22494 1.07496,0.32096 -0.16047,1.96527 2.21361,0.79229 2.33015,-2.0548 2.13302,0.61492 2.22938,0.0355 0.93307,2.43544 6.32809,2.11445 1.59305,-0.76693 1.48947,-4.17771 0.34072,0 0.90649,0.0816 1.22905,2.06863 3.92988,0.66528 3.337,1.12288 3.42563,1.19597 1.84058,-0.975 0.71376,-2.51484 4.45322,0.0442 1.80874,0.93078 2.79925,-2.10651 1.10364,0.0442 0.85104,1.60507 4.05472,0 1.51887,-2.02862 1.86737,0.40724 1.94603,2.40328 3.52057,2.04415 2.85876,0.80981 1.51362,0.79984 2.4467,1.99732 3.04304,-1.32779 2.69109,1.13888 0.56381,6.10594 -0.0398,9.70217 0.68586,9.53401 0.70218,3.60511 2.67533,4.41986 0.89818,4.95073 4.21595,5.53802 0.19602,3.14494 0.74637,0.78584 -0.73007,8.38007 -2.8721,5.0065 1.53297,2.15287 -0.63008,2.33808 -0.66957,7.40432 -1.50432,3.338 0.29488,3.50235 -5.66488,1.58518 -9.86129,4.5265 -0.96996,1.93992 -2.58657,1.93993 -2.10158,1.45494 -1.29329,0.8083 -5.65811,5.3348 -2.74823,2.10159 -5.3348,3.2332 -5.65811,2.42491 -6.30476,3.39487 -1.77826,1.45495 -5.81978,3.55653 -3.39487,0.64664 -3.87985,5.49645 -4.04151,0.32333 -0.96997,1.93992 2.26325,1.93993 -1.45495,5.49645 -1.29328,4.5265 -1.13162,3.87985 -0.8083,4.52649 0.8083,2.42491 1.77826,6.9514 0.96997,6.14309 1.77826,2.74823 -0.96996,1.45495 -3.07155,1.93992 -5.65812,-3.87985 -5.49645,-1.13162 -1.29329,0.48498 -3.23321,-0.64664 -4.20317,-3.07155 -5.17313,-1.13162 -7.59805,-3.39487 -2.10158,-3.87986 -1.29329,-6.46641 -3.2332,-1.93993 -0.64665,-2.26325 0.64665,-0.64664 0.32332,-3.39487 -1.29329,-0.64664 -0.64664,-0.96996 1.29328,-4.36484 -1.6166,-2.26324 -3.23321,-1.29329 -3.39487,-4.36483 -3.55653,-6.62808 -4.20317,-2.58657 0.16166,-1.93992 -5.3348,-12.2862 -0.8083,-4.20317 -1.77826,-1.93992 -0.16166,-1.45495 -5.98144,-5.33479 -2.58657,-3.07155 0,-1.13163 -2.58657,-2.10158 -6.78974,-1.13163 -7.43638,-0.64664 -3.07155,-2.26324 -4.52649,1.77826 -3.55653,1.45495 -2.26325,3.2332 -0.96996,3.7182 -4.36483,6.14309 -2.42491,2.42491 -2.58657,-0.96996 -1.77826,-1.13163 -1.93993,-0.64664 -3.87985,-2.26324 0,-0.64665 -1.77826,-1.93992 -5.17314,-2.10159 -7.43638,-7.7597 -2.26325,-4.68815 0,-8.08303 -3.23321,-6.46642 -0.48498,-2.74822 -1.6166,-0.96997 -1.13163,-2.10158 -5.01147,-2.10159 -1.29328,-1.6166 -7.11307,-7.92137 -1.29328,-3.23321 -4.68816,-2.26325 -1.45495,-4.36487 -2.58659,-2.90987 -1.93991,-0.48496 -0.64923,-4.67764 8.00187,0.68589 29.03499,2.74345 29.03508,1.60036 2.23353,-19.46182 3.88655,-55.55502 1.60039,-18.74732 1.37174,0.0286 m 99.02935,229.66274 -0.56581,-7.11308 -2.74824,-7.19392 -0.56582,-7.03225 1.53578,-8.24471 3.31406,-6.87059 3.4757,-5.41565 3.1524,-3.55655 0.64664,0.2425 -4.769,6.6281 -4.36484,6.54728 -2.02077,6.62809 -0.32332,5.17316 0.88913,6.14312 2.58658,7.19392 0.48498,5.17314 0.16166,1.45496 -0.88913,0.24248 z", - "NM" : "m 288.15255,424.01315 -0.77541,-4.7481 8.64378,0.5254 30.17176,2.9459 27.26816,1.68989 2.21527,-18.70747 3.85736,-55.87597 1.73768,-19.38923 1.5717,0.12856 0.8254,-11.16339 -104.00445,-10.63595 -17.49735,120.43481 15.46067,1.98915 1.29328,-10.02295 29.23215,2.82935 z", - "KS" : "m 507.88059,324.38028 -12.61826,0.20443 -46.08909,-0.45723 -44.55748,-2.05763 -24.62974,-1.25741 3.89379,-64.59497 22.08346,0.67517 40.28913,0.8414 44.30124,0.98758 5.09563,0 2.1844,2.1624 2.01766,-0.0214 1.6403,1.01247 -0.0625,3.00923 -1.82898,1.72537 -0.33225,2.23217 1.84308,3.40233 2.95236,3.19506 2.32735,1.61446 1.30077,11.24082 0.18913,36.08573 z", - "NE" : "m 486.09787,240.70058 3.23061,7.01991 -0.12863,2.30252 3.45922,5.49388 2.71929,3.15234 -5.04948,0 -43.48256,-0.93868 -40.78686,-0.8903 -22.25222,-0.78387 1.07277,-21.32785 -32.31824,-2.92025 4.34383,-44.00986 15.54633,1.02881 20.11879,1.1431 17.83257,1.14312 23.77676,1.14311 10.74526,-0.45724 2.0576,2.28622 4.80108,2.9721 1.14311,0.91449 4.34383,-1.37174 3.88659,-0.45724 2.74347,-0.22863 1.82898,1.37174 4.05743,1.60036 2.97209,1.60036 0.45725,1.60036 0.91449,2.0576 1.82898,0 0.79798,0.0462 0.89423,4.68182 2.92026,8.46792 0.57253,3.75671 2.52349,3.77425 0.56959,5.11414 1.60724,4.24037 0.25234,6.47426 z", - "SD" : "m 476.44687,204.02465 -0.0474,-0.58087 -2.89571,-4.84544 1.86023,-4.71211 1.49273,-5.88654 -2.78187,-2.07971 -0.38516,-2.74346 0.7924,-2.55435 3.18851,0.0152 -0.12308,-5.00614 -0.3333,-30.17425 -0.61773,-3.76758 -4.07232,-3.33093 -0.98263,-1.67696 -0.0625,-1.60882 2.02212,-1.5294 1.53222,-1.66567 0.24496,-2.65679 -58.25709,-1.60035 -54.79921,-3.44909 -5.32527,63.69119 14.59027,0.9038 19.94985,1.20561 17.74305,0.92859 23.77676,1.30358 11.9827,-0.42464 1.9663,2.24518 5.19464,3.25335 0.76389,0.72275 4.54144,-1.45281 6.54054,-0.61491 1.6753,1.33627 4.20451,1.59613 2.94506,1.63583 0.39898,1.48381 1.03949,2.24088 2.23737,-0.20136 z", - "ND" : "m 475.30528,128.91846 -0.61491,-8.43367 -1.67695,-6.81592 -1.89149,-13.02422 -0.45724,-10.987026 -1.73946,-3.077142 -1.75661,-5.194396 0.0312,-10.44427 0.62336,-3.824087 -1.8341,-5.467761 -28.64225,-0.564027 -18.59095,-0.646642 -26.51232,-1.293284 -22.94634,-2.133869 -6.99324,67.176834 54.93224,3.34365 58.06901,1.38583 z", - "WY" : "m 360.37668,143.27587 -106.7426,-13.45706 -14.08348,88.45803 113.26461,13.58549 7.56147,-88.58646 z", - "MT" : "M 369.20952,56.969133 338.5352,54.1613 l -29.26055,-3.55653 -29.26054,-4.041512 -32.3321,-5.334795 -18.42929,-3.39487 -32.72365,-6.932736 -4.47902,21.347532 3.42934,7.544541 -1.37174,4.572452 1.82898,4.572451 3.20073,1.371739 4.62082,10.769453 2.6951,3.176523 0.45724,1.143118 3.42934,1.143118 0.45725,2.057593 -7.0873,17.603953 0,2.51485 2.51485,3.20071 0.91448,0 4.80107,-2.97209 0.68588,-1.14312 1.60036,0.68587 -0.22863,5.25832 2.74348,12.57425 2.97209,2.51484 0.91448,0.68587 1.82899,2.28622 -0.45725,3.42935 0.68587,3.42933 1.14312,0.9145 2.28622,-2.28623 2.74347,0 3.20072,1.60036 2.51485,-0.91449 4.11521,0 3.65795,1.60036 2.74348,-0.45725 0.45724,-2.9721 2.97209,-0.68586 1.37174,1.37174 0.45725,3.20071 1.42587,0.83464 1.88695,-11.03474 106.74567,13.42892 8.80221,-86.299157 z", - "CO" : "m 380.03242,320.96457 4.90324,-86.32496 -113.38856,-12.64396 -12.21382,87.93916 120.69914,11.02976 z", - "ID" : "m 148.47881,176.48395 8.77087,-35.22072 1.37174,-4.22952 2.51484,-5.94418 -1.25742,-2.28623 -2.51486,0.11431 -0.80017,-1.0288 0.45725,-1.14311 0.34292,-3.08641 4.45815,-5.48695 1.82898,-0.45724 1.14311,-1.14311 0.57156,-3.20072 0.91448,-0.68586 3.88659,-5.82988 3.88659,-4.34383 0.22862,-3.772268 -3.42934,-2.629163 -1.53555,-4.400983 13.62491,-63.341691 13.51759,2.528111 -4.40808,21.383013 3.56035,7.485352 -1.58111,4.66084 1.96985,4.641233 3.13822,1.255191 3.83534,9.556588 3.51269,4.437154 0.50725,1.143118 3.34095,1.143118 0.36885,2.097075 -6.97101,17.376092 -0.16518,2.56593 2.63112,3.3217 0.90508,-0.0489 4.91129,-3.0256 0.67742,-1.09497 1.56231,0.65886 -0.27844,5.35372 2.73925,12.58271 3.91783,3.17791 1.68118,2.16545 -0.71661,4.08386 1.06622,2.80741 1.06163,1.09128 2.47929,-2.35142 2.84816,0.0489 2.91925,1.3352 2.78002,-0.68193 3.79426,-0.16048 3.9789,1.60036 2.74348,-0.29676 0.49674,-3.03731 2.93259,-0.76483 1.26017,1.51591 0.44093,2.94496 1.42434,1.21321 -8.386,53.60866 c 0,0 -87.96599,-16.70061 -94.95939,-18.20435 z", - "UT" : "m 259.49836,310.10509 -83.74903,-11.87225 20.58761,-112.54135 46.78031,8.74514 -1.4848,10.63042 -2.31162,13.17266 7.80769,0.92837 16.40652,1.80479 8.21097,0.85564 -12.24765,88.27658 z", - "AZ" : "m 144.9112,382.62909 -2.62701,2.15833 -0.32332,1.45495 0.48498,0.96996 18.91427,10.66959 12.12454,7.59804 14.7111,8.56801 16.81269,10.02295 12.2862,2.42491 24.95116,2.70491 17.25561,-119.12707 -83.73563,-11.91725 -3.09239,16.41246 -1.60629,0.0153 -1.71467,2.62916 -2.51485,-0.11432 -1.25742,-2.74347 -2.74347,-0.34293 -0.9145,-1.14311 -0.91448,0 -0.9145,0.57156 -1.94329,1.0288 -0.1143,6.97298 -0.22864,1.71467 -0.57154,12.57424 -1.48605,2.17191 -0.57156,3.31503 2.74347,4.91539 1.25742,5.82988 0.80019,1.0288 1.0288,0.57156 -0.11432,2.28622 -1.60035,1.37173 -3.42934,1.71467 -1.94329,1.9433 -1.48605,3.65795 -0.57156,4.91539 -2.85778,2.74347 -2.0576,0.68587 0.13569,0.82988 -0.45725,1.71467 0.45725,0.80018 3.65796,0.57154 -0.57156,2.74348 -1.48605,2.17191 -3.77227,0.91449 z", - "NV" : "m 196.39273,185.57552 -23.63891,128.82275 -1.83224,0.34915 -1.57276,2.40618 -2.37294,0.0107 -1.47195,-2.74347 -2.61847,-0.37842 -0.77092,-1.10763 -1.03783,-0.054 -2.77837,1.64429 -0.31026,6.78548 -0.36209,5.77717 -0.34857,8.59281 -1.4471,2.08916 -2.43892,-1.07403 -69.079886,-104.20119 18.989116,-67.58491 93.0921,20.66601 z", - "OR" : "m 148.72184,175.53153 8.8497,-34.80151 1.05079,-4.22952 2.35437,-5.62323 -0.61551,-1.16288 -2.51486,-0.0462 -1.2816,-1.6707 0.45724,-1.46407 0.50341,-3.24688 4.45815,-5.48695 1.82898,-1.09915 1.14311,-1.14311 1.48604,-3.56563 4.04706,-5.6694 3.56563,-3.8624 0.22862,-3.451314 -3.26886,-2.468682 -1.78341,-4.642625 -12.66377,-3.61197 -15.08909,-3.54365 -15.43202,0.114306 -0.45724,-1.371729 -5.48695,2.057604 -4.45814,-0.571559 -2.40054,-1.600361 -1.25742,0.685875 -4.68676,-0.228632 -1.71467,-1.371729 -5.25832,-2.057604 -0.800182,0.114316 -4.34383,-1.486056 -1.943291,1.828983 -6.172812,-0.342927 -5.944183,-4.115209 0.685865,-0.80018 0.228621,-7.773173 -2.286225,-3.886577 -4.115208,-0.571559 -0.685865,-2.514847 -2.353932,-0.466565 -5.798525,2.058784 -2.263247,6.466418 -3.233209,10.022949 -3.23321,6.466419 -5.011474,14.064461 -6.466419,13.579473 -8.083023,12.60952 -1.939926,2.90989 -0.808302,8.568 0.386095,12.08023 112.578342,26.32133 z", - "WA" : "m 102.07324,7.6117734 4.36483,1.4549443 9.69963,2.7482283 8.568,1.939925 20.0459,5.658117 22.95579,5.658116 15.22312,3.207173 -13.63236,63.585811 -12.445,-3.525318 -15.50801,-3.570679 -15.22929,0.03324 -0.45557,-1.344699 -5.59922,2.179293 -4.59543,-0.736744 -2.14697,-1.584054 -1.31321,0.657976 -4.73566,-0.140243 -1.69836,-1.349633 -5.26304,-2.112303 -0.734971,0.146918 -4.389122,-1.524448 -1.893298,1.817379 -6.265906,-0.298733 -5.925698,-4.125702 0.778957,-0.932763 0.121223,-7.677452 -2.281999,-3.839701 -4.115208,-0.60704 -0.67741,-2.510616 -2.275512,-0.456932 -3.554948,1.230576 -2.263247,-3.219247 0.323321,-2.909889 2.748228,-0.323321 1.616605,-4.041511 -2.586568,-1.131624 0.161661,-3.718191 4.364833,-0.646641 -2.748228,-2.748228 -1.454945,-7.113061 0.646642,-2.909888 0,-7.921363 -1.778265,-3.23321 2.263247,-9.376307 2.101586,0.484981 2.424907,2.909889 2.748228,2.586567 3.233209,1.939926 4.526493,2.101586 3.071551,0.646642 2.909889,1.454944 3.394873,0.969963 2.263246,-0.16166 0,-2.424908 1.293284,-1.131623 2.101582,-1.293284 0.32333,1.131624 0.32332,1.778265 -2.263251,0.484981 -0.323321,2.101586 1.778262,1.454945 1.13163,2.424907 0.64664,1.939925 1.45494,-0.16166 0.16166,-1.293284 -0.96996,-1.293284 -0.48498,-3.233209 0.8083,-1.778265 -0.64664,-1.454944 0,-2.263247 1.77827,-3.55653 -1.13163,-2.586568 -2.42491,-4.8498139 0.32333,-0.8083023 1.13162,-0.8083024 z m -9.456692,5.9789646 2.020764,-0.16166 0.484982,1.374119 1.535779,-1.616615 2.344082,0 0.808303,1.535779 -1.53578,1.69744 0.646652,0.808313 -0.727477,2.020761 -1.374119,0.404146 c 0,0 -0.889138,0.08084 -0.889138,-0.242485 0,-0.323321 1.454955,-2.586578 1.454955,-2.586578 l -1.69744,-0.565817 -0.323321,1.454954 -0.727478,0.646642 -1.535782,-2.263257 -0.484982,-2.505742 z", - "CA" : "m 144.69443,382.19813 3.94008,-0.48862 1.48604,-2.01144 0.54454,-2.94109 -3.55152,-0.59012 -0.51417,-0.66822 0.4775,-2.03231 -0.15928,-0.58967 1.92257,-0.61959 3.04278,-2.83268 0.58156,-4.9951 1.3799,-3.40211 1.94329,-2.16626 3.51887,-1.58967 1.65439,-1.60483 0.0687,-2.10884 -0.99333,-0.58001 -1.02315,-1.07273 -1.15522,-5.84845 -2.6852,-4.83009 0.56581,-3.505 -2.41958,-1.02931 -69.061322,-104.1784 18.902112,-67.60149 -67.079863,-15.69796 -1.506896,4.73324 -0.161661,7.43638 -5.173135,11.80121 -3.071548,2.58657 -0.323321,1.13162 -1.778266,0.80831 -1.454944,4.20317 -0.808302,3.23321 2.748228,4.20317 1.616605,4.20317 1.131623,3.55653 -0.323321,6.46642 -1.778265,3.07155 -0.646642,5.81978 -0.969963,3.71819 1.778265,3.87985 2.748228,4.52649 2.263247,4.84982 1.293283,4.04151 -0.32332,3.23321 -0.323321,0.48498 0,2.10158 5.658116,6.30476 -0.484981,2.42491 -0.646642,2.26325 -0.646642,1.93992 0.16166,8.24469 2.101586,3.71819 1.939926,2.58656 2.748228,0.48499 0.969963,2.74822 -1.131623,3.55653 -2.101587,1.61661 -1.131623,0 -0.808302,3.87985 0.484981,2.90989 3.23321,4.36483 1.616604,5.3348 1.454944,4.68815 1.293284,3.07155 3.39487,5.81978 1.454944,2.58656 0.484982,2.90989 1.616604,0.96996 0,2.42491 -0.808302,1.93993 -1.778265,7.11306 -0.484982,1.93992 2.424908,2.74823 4.203172,0.48498 4.526493,1.77827 3.879851,2.10158 2.909889,0 2.909888,3.07155 2.586567,4.84982 1.131624,2.26324 3.879851,2.10159 4.849814,0.8083 1.454944,2.10159 0.646642,3.23321 -1.454944,0.64664 0.323321,0.96996 3.233211,0.8083 2.748228,0.16167 3.159889,-1.68685 3.879854,4.20317 0.808302,2.26325 2.586572,4.20317 0.32332,3.23321 0,9.37631 0.48498,1.77826 10.02295,1.45495 19.72257,2.74822 13.84504,1.3497 z m -88.135212,-43.71668 1.293288,1.53578 -0.16166,1.29329 -3.233221,-0.0808 -0.565814,-1.21246 -0.646644,-1.45495 3.314051,-0.0808 z m 1.939932,0 1.212458,-0.64664 3.556543,2.10159 3.07156,1.21245 -0.889136,0.64666 -4.526509,-0.2425 -1.61661,-1.61661 -0.808306,-1.45495 z m 20.692614,19.80348 1.778265,2.34408 0.808313,0.96997 1.535779,0.56581 0.565807,-1.45495 -0.969963,-1.77827 -2.667403,-2.02076 -1.050798,0.16166 0,1.21246 z m -1.454955,8.64886 1.778276,3.15239 1.212458,1.93994 -1.454954,0.24248 -1.293284,-1.21245 c 0,0 -0.727477,-1.45495 -0.727477,-1.85911 0,-0.40414 0,-2.18242 0,-2.18242 l 0.484981,-0.0808 z" - } - } - } - } - ); - - return Mapael; - -})); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/usa_states.min.js b/htdocs/public/high/plugins/jquery-mapael/maps/usa_states.min.js deleted file mode 100644 index 871268e8..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/usa_states.min.js +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires jQuery and Mapael - * - * Map of USA by state - * - * @source http://the55.net/_11/sketch/us_map - */ -!function(a){"object"==typeof exports?module.exports=a(require("jquery"),require("mapael")):"function"==typeof define&&define.amd?define(["jquery","mapael"],a):a(jQuery,jQuery.mapael)}(function(a,b){"use strict";return a.extend(!0,b,{maps:{usa_states:{width:959,height:593,latLngToGrid:function(a,b,c,d,e,f){var g,h,i,j,k,l,m,n=Math.PI,o=(c+d)/2;return g=(Math.sin(c/180*n)+Math.sin(d/180*n))/2,h=Math.sqrt(Math.cos(c/180*n))+2*g*Math.sin(c/180*n),i=f*Math.pow(h-2*g*Math.sin(o/180*n),.5)/g,j=g*(b-e),m=f*Math.pow(h-2*g*Math.sin(a/180*n),.5)/g,k=m*Math.sin(j/180*n),l=i-m*Math.cos(j/180*n),[k,l]},getCoords:function(a,b){var c,d,e,f,g,h,i,j,k={};return a>51?(g=15,h=105,i=-134,j=530,k=this.latLngToGrid(a,b,g,h,i,j),c=190,d=543,e=1,f=-1):-140>b?(g=0,h=26,i=-166,j=1280,k=this.latLngToGrid(a,b,g,h,i,j),c=115,d=723,e=1,f=-1):(c=-17,d=-22,e=10.05,f=6.26,k[0]=50+124.03149777329222*((1.9694462586094064-a*Math.PI/180)*Math.sin(.6010514667026994*(b+96)*Math.PI/180)),k[1]=55.23670416287796-200.38467697709729*(1.3236744353715044-(1.9694462586094064-a*Math.PI/180)*Math.cos(.6010514667026994*(b+96)*Math.PI/180))),{x:k[0]*e+c,y:k[1]*f+d}},elems:{HI:"m 233.08751,519.30948 1.93993,-3.55655 2.26326,-0.32332 0.32332,0.8083 -2.1016,3.07157 -2.42491,0 z m 10.18466,-3.71821 6.14313,2.58657 2.10159,-0.32332 1.61661,-3.87987 -0.64664,-3.39488 -4.2032,-0.48498 -4.04153,1.77827 -0.96996,3.71821 z m 30.71563,10.023 3.7182,5.49647 2.42492,-0.32332 1.13163,-0.48498 1.45495,1.29329 3.71821,-0.16166 0.96997,-1.45495 -2.90991,-1.77827 -1.93993,-3.71822 -2.1016,-3.55654 -5.8198,2.9099 -0.64664,1.77828 z m 20.20765,8.89137 1.29329,-1.93994 4.68817,0.96996 0.64665,-0.48498 6.14312,0.64664 -0.32332,1.2933 -2.58658,1.45494 -4.36485,-0.32332 -5.49648,-1.6166 z m 5.33482,5.17315 1.93994,3.87987 3.07155,-1.13163 0.32333,-1.61662 -1.61661,-2.10159 -3.71821,-0.32332 0,1.29329 z m 6.95143,-1.13163 2.26326,-2.9099 4.68817,2.42492 4.36485,1.13163 4.36486,2.74824 0,1.93993 -3.55654,1.77828 -4.84985,0.96996 -2.42491,-1.45495 -4.84984,-6.62811 z m 16.65111,15.51947 1.61661,-1.29328 3.39489,1.61662 7.59807,3.55654 3.39489,2.10159 1.6166,2.42492 1.93994,4.36485 4.04153,2.58658 -0.32332,1.2933 -3.87987,3.23322 -4.20319,1.45495 -1.45495,-0.64664 -3.07157,1.77826 -2.42491,3.23323 -2.26326,2.9099 -1.77828,-0.16166 -3.55654,-2.58658 -0.32332,-4.52651 0.64664,-2.42492 -1.61661,-5.65814 -2.1016,-1.77828 -0.16166,-2.58658 2.26326,-0.96996 2.1016,-3.07156 0.48498,-0.96997 -1.61661,-1.77828 -0.32332,-2.1016 z",AK:"m 158.07671,453.67502 -0.32332,85.35713 1.6166,0.96996 3.07157,0.16166 1.45494,-1.13162 2.58658,0 0.16167,2.9099 6.95143,6.78977 0.48499,2.58658 3.39488,-1.93994 0.64665,-0.16166 0.32332,-3.07156 1.45494,-1.61661 1.13164,-0.16166 1.93993,-1.45496 3.07156,2.1016 0.64665,2.90991 1.93993,1.13162 1.13163,2.42492 3.87988,1.77827 3.39488,5.98147 2.74823,3.87986 2.26326,2.74825 1.45496,3.7182 5.01149,1.77828 5.17317,2.10159 0.96996,4.36486 0.48498,3.07156 -0.96996,3.39489 -1.77828,2.26325 -1.61661,-0.8083 -1.45495,-3.07157 -2.74824,-1.45494 -1.77827,-1.13164 -0.80831,0.80831 1.45495,2.74825 0.16166,3.7182 -1.13163,0.48498 -1.93993,-1.93993 -2.10159,-1.29329 0.48498,1.61661 1.29328,1.77828 -0.8083,0.8083 c 0,0 -0.8083,-0.32332 -1.29328,-0.96997 -0.485,-0.64664 -2.1016,-3.39488 -2.1016,-3.39488 l -0.96997,-2.26326 c 0,0 -0.32332,1.29329 -0.96997,0.96996 -0.64665,-0.32332 -1.29329,-1.45494 -1.29329,-1.45494 l 1.77827,-1.93994 -1.45495,-1.45495 0,-5.0115 -0.8083,0 -0.8083,3.39488 -1.13164,0.485 -0.96996,-3.71822 -0.64665,-3.71821 -0.80831,-0.48498 0.32333,5.65815 0,1.13162 -1.45496,-1.29328 -3.55654,-5.98147 -2.1016,-0.48498 -0.64664,-3.71821 -1.61661,-2.9099 -1.61662,-1.13164 0,-2.26325 2.1016,-1.29329 -0.48498,-0.32332 -2.58658,0.64664 -3.39489,-2.42491 -2.58658,-2.90991 -4.84983,-2.58658 -4.04154,-2.58658 1.2933,-3.23322 0,-1.61661 -1.77828,1.61661 -2.9099,1.13163 -3.71821,-1.13163 -5.65815,-2.42491 -5.49647,0 -0.64664,0.48498 -6.46645,-3.87988 -2.1016,-0.32332 -2.74824,-5.8198 -3.55655,0.32332 -3.55655,1.45495 0.48499,4.52652 1.13162,-2.9099 0.96998,0.32332 -1.45496,4.36485 3.23322,-2.74824 0.64665,1.61661 -3.87987,4.36485 -1.29329,-0.32332 -0.48498,-1.93994 -1.29329,-0.8083 -1.29329,1.13163 -2.74824,-1.77827 -3.07157,2.1016 -1.77826,2.10159 -3.39489,2.1016 -4.68818,-0.16167 -0.48498,-2.10159 3.7182,-0.64665 0,-1.29328 -2.26326,-0.64666 0.96998,-2.42491 2.26325,-3.87987 0,-1.77827 0.16166,-0.80831 4.36486,-2.26326 0.96996,1.29329 2.74825,0 -1.29329,-2.58657 -3.71822,-0.32333 -5.01149,2.74824 -2.42492,3.39488 -1.77827,2.58659 -1.13163,2.26326 -4.20319,1.45494 -3.07157,2.58658 -0.323321,1.61662 2.263257,0.96997 0.808313,2.10158 -2.748249,3.23323 -6.466439,4.2032 -7.759747,4.20319 -2.101597,1.13162 -5.334818,1.13164 -5.334826,2.26325 1.778275,1.29329 -1.454954,1.45495 -0.484982,1.13163 -2.748238,-0.96997 -3.23322,0.16166 -0.808312,2.26326 -0.969963,0 0.323321,-2.42492 -3.556551,1.2933 -2.909899,0.96996 -3.394886,-1.29329 -2.909901,1.93993 -3.233224,0 -2.101597,1.2933 -1.616612,0.8083 -2.101595,-0.32332 -2.58658,-1.13163 -2.263257,0.64665 -0.969967,0.96996 -1.616613,-1.13162 0,-1.93994 3.071564,-1.29329 6.304787,0.64665 4.364853,-1.61662 2.101596,-2.10159 2.909902,-0.64665 1.778273,-0.80831 2.748241,0.16166 1.616612,1.2933 0.969963,-0.32332 2.263257,-2.74824 3.07157,-0.96998 3.39488,-0.64664 1.293294,-0.32332 0.646642,0.48498 0.808312,0 1.293284,-3.71821 4.041533,-1.45494 1.939936,-3.71821 2.263259,-4.52652 1.616615,-1.45495 0.323321,-2.58658 -1.616615,1.29329 -3.394893,0.64665 -0.646642,-2.42492 -1.293284,-0.32332 -0.969973,0.96996 -0.16166,2.90991 -1.454955,-0.16167 -1.454944,-5.8198 -1.293294,1.29328 -1.131624,-0.48498 -0.32332,-1.93993 -4.041533,0.16166 -2.101596,1.13163 -2.586578,-0.32332 1.454944,-1.45495 0.484981,-2.58658 -0.646641,-1.93994 1.454954,-0.96996 1.293284,-0.16166 -0.646642,-1.77828 0,-4.36485 -0.969963,-0.96997 -0.808312,1.45495 -6.143123,0 -1.454951,-1.29329 -0.646645,-3.87986 -2.101596,-3.55656 0,-0.96996 2.101596,-0.80831 0.161661,-2.1016 1.131628,-1.13162 -0.808305,-0.48498 -1.29329,0.48498 -1.131628,-2.74824 0.969967,-5.01151 4.526514,-3.23321 2.586575,-1.61662 1.939936,-3.7182 2.748249,-1.2933 2.586578,1.13164 0.323321,2.42492 2.424917,-0.32334 3.23322,-2.42491 1.616615,0.64665 0.969962,0.64664 1.616615,0 2.263259,-1.29329 0.808313,-4.36486 c 0,0 0.323321,-2.90989 0.969963,-3.39488 0.646642,-0.48498 0.969963,-0.96996 0.969963,-0.96996 l -1.131623,-1.93994 -2.58658,0.80831 -3.23323,0.8083 -1.939936,-0.48498 -3.556541,-1.77828 -5.011495,-0.16166 -3.556551,-3.7182 0.484981,-3.87987 0.646652,-2.42492 -2.101596,-1.77827 -1.939938,-3.71822 0.484983,-0.8083 6.789771,-0.48498 2.101596,0 0.969963,0.96996 0.646652,0 -0.16166,-1.61661 3.879862,-0.64664 2.586577,0.32332 1.454955,1.13163 -1.454955,2.1016 -0.484981,1.45494 2.748249,1.61662 5.011497,1.77827 1.778276,-0.96996 -2.263257,-4.36485 -0.969974,-3.23323 0.969974,-0.80831 -3.394891,-1.93993 -0.484983,-1.13164 0.484983,-1.6166 -0.808304,-3.87987 -2.909909,-4.68818 -2.424918,-4.20319 2.909909,-1.93994 3.233222,0 1.778276,0.64665 4.203192,-0.16166 3.718205,-3.55654 1.131633,-3.07157 3.718212,-2.42492 1.616604,0.96997 2.748239,-0.64665 3.718209,-2.1016 1.13164,-0.16166 0.96996,0.80832 4.52651,-0.16167 2.74824,-3.07156 1.13163,0 3.55655,2.42491 1.93993,2.1016 -0.48498,1.13163 0.64664,1.13163 1.61662,-1.61661 3.87987,0.32332 0.32332,3.7182 1.93994,1.45496 7.11309,0.64664 6.30479,4.20319 1.45494,-0.96996 5.17317,2.58658 2.10159,-0.64664 1.93994,-0.80832 4.84983,1.93994 4.36486,2.9099 z m -115.102797,28.93736 2.101596,5.33482 -0.161662,0.96997 -2.909902,-0.32333 -1.778273,-4.04153 -1.778273,-1.45494 -2.424919,0 -0.16166,-2.58659 1.778273,-2.42492 1.131629,2.42492 1.45495,1.45495 2.748241,0.64665 z m -2.58658,33.46387 3.718209,0.80831 3.718207,0.96996 0.808307,0.96998 -1.616612,3.7182 -3.071564,-0.16166 -3.394885,-3.55654 -0.161662,-2.74825 z m -20.692636,-14.06452 1.13163,2.58657 1.131628,1.61662 -1.131628,0.8083 -2.101597,-3.07156 0,-1.93993 0.969967,0 z m -13.7412027,73.07087 3.3948853,-2.26326 3.3948854,-0.96997 2.58658,0.32332 0.484983,1.61661 1.939935,0.48499 1.939934,-1.93993 -0.323322,-1.61661 2.748241,-0.64665 2.909902,2.58658 -1.131629,1.77827 -4.364852,1.13163 -2.748242,-0.48498 -3.718207,-1.13163 -4.3648533,1.45495 -1.616612,0.32332 -1.1316284,-0.64664 z m 48.9833487,-4.52651 1.616612,1.93993 2.101593,-1.61661 -1.454948,-1.2933 -2.263257,0.96998 z m 2.909902,3.07155 1.131624,-2.26325 2.101597,0.32332 -0.808303,1.93993 -2.424918,0 z m 23.602535,-1.93993 1.454954,1.77827 0.969974,-1.13162 -0.808313,-1.93994 -1.616615,1.29329 z m 8.72971,-12.44791 1.131633,5.8198 2.909899,0.80831 5.011495,-2.90991 4.364853,-2.58658 -1.6166,-2.42491 0.48498,-2.42492 -2.1016,1.29329 -2.909898,-0.80831 1.616605,-1.13162 1.939933,0.8083 3.87987,-1.77828 0.48499,-1.45494 -2.42492,-0.80831 0.8083,-1.93994 -2.74824,1.93994 -4.688172,3.55655 -4.849834,2.9099 -1.293294,1.13163 z m 42.35524,-19.88433 2.42492,-1.45495 -0.96997,-1.77828 -1.77827,0.96997 0.32332,2.26326 z",FL:"m 759.8167,439.1428 2.26566,7.3186 3.7297,9.74226 5.33479,9.3763 3.71819,6.30476 4.84982,5.49646 4.04151,3.71819 1.6166,2.90989 -1.13162,1.29328 -0.8083,1.29328 2.90988,7.43639 2.90989,2.90988 2.58657,5.3348 3.55653,5.81978 4.52649,8.24468 1.29329,7.59804 0.48498,11.96288 0.64664,1.77826 -0.32332,3.39487 -2.42491,1.29329 0.32332,1.93992 -0.64664,1.93993 0.32332,2.4249 0.48498,1.93993 -2.74822,3.23321 -3.07155,1.45494 -3.87985,0.16166 -1.45495,1.61661 -2.4249,0.96996 -1.29329,-0.48498 -1.13162,-0.96996 -0.32332,-2.90989 -0.80831,-3.39487 -3.39487,-5.17314 -3.55653,-2.26324 -3.87985,-0.32332 -0.8083,1.29328 -3.07155,-4.36483 -0.64664,-3.55653 -2.58657,-4.04151 -1.77826,-1.13163 -1.61661,2.10159 -1.77826,-0.32332 -2.10159,-5.01148 -2.90989,-3.87985 -2.90989,-5.33479 -2.58656,-3.07155 -3.55653,-3.71819 2.10158,-2.42491 3.23321,-5.49646 -0.16166,-1.6166 -4.52649,-0.96996 -1.61661,0.64664 0.32333,0.64664 2.58656,0.96996 -1.45494,4.5265 -0.8083,0.48498 -1.77827,-4.04151 -1.29328,-4.84982 -0.32332,-2.74823 1.45494,-4.68815 0,-9.53797 -3.07155,-3.71819 -1.29328,-3.07155 -5.17314,-1.29328 -1.93992,-0.64664 -1.61661,-2.58657 -3.39487,-1.61661 -1.13162,-3.39487 -2.74823,-0.96996 -2.42491,-3.71819 -4.20317,-1.45494 -2.90989,-1.45495 -2.58656,0 -4.04152,0.80831 -0.16166,1.93992 0.80831,0.96996 -0.48499,1.13163 -3.07154,-0.16166 -3.71819,3.55653 -3.55654,1.93992 -3.87985,0 -3.23321,1.29329 -0.32332,-2.74823 -1.6166,-1.93993 -2.90989,-1.13162 -1.6166,-1.45495 -8.08303,-3.87985 -7.59804,-1.77826 -4.36483,0.64664 -5.98144,0.48498 -5.98144,2.10159 -3.47924,0.61296 -0.23792,-8.04975 -2.58657,-1.93992 -1.77827,-1.77827 0.32332,-3.07156 10.18462,-1.29328 25.5424,-2.90989 6.78975,-0.64664 5.436,0.28027 2.58657,3.87986 1.45494,1.45494 8.09816,0.51522 10.81975,-0.64664 21.51239,-1.29329 5.44572,-0.67437 5.10758,0.20451 0.42683,2.90989 2.233,0.8083 0.23494,-4.63 -1.52822,-4.17295 1.3084,-1.43983 5.55463,0.45475 5.17314,0.32332 z m 12.54541,132.40508 2.42492,-0.64664 1.29328,-0.24249 1.45496,-2.34409 2.34408,-1.61661 1.29329,0.48499 1.69744,0.32332 0.40415,1.05079 -3.4757,1.21246 -4.2032,1.45495 -2.34408,1.21246 -0.88914,-0.88914 z m 13.4987,-5.01149 1.21246,1.0508 2.74824,-2.10159 5.33481,-4.20319 3.7182,-3.87987 2.50575,-6.6281 0.96997,-1.69744 0.16166,-3.39488 -0.72748,0.48498 -0.96996,2.82907 -1.45496,4.60733 -3.23322,5.254 -4.36484,4.20318 -3.39488,1.93993 -2.50575,1.53578 z",NH:"m 880.79902,142.42476 0.869,-1.0765 1.09022,-3.29102 -2.54308,-0.91347 -0.48499,-3.07156 -3.87985,-1.13162 -0.32332,-2.74824 -7.27475,-23.44082 -4.60142,-14.542988 -0.89708,-0.0051 -0.64664,1.616605 -0.64664,-0.484981 -0.96997,-0.969963 -1.45494,1.939925 -0.0485,5.032054 0.31165,5.667218 1.93992,2.74824 0,4.04152 -3.7182,5.06278 -2.58657,1.13164 0,1.13162 1.13163,1.77827 0,8.56802 -0.80831,9.21467 -0.16166,4.84982 0.96997,1.2933 -0.16166,4.52649 -0.48499,1.77828 0.96881,0.70922 16.78767,-4.42455 2.17487,-0.60245 1.84357,-2.77333 3.60523,-1.61312 z",MI:"M581.61931,82.059006 L 583.4483,80.001402 L 585.62022,79.201221 L 590.99286,75.314624 L 593.27908,74.743065 L 593.73634,75.200319 L 588.59232,80.344339 L 585.27728,82.287628 L 583.21967,83.202124 L 581.61931,82.059006 z M 667.79369,114.18719 L 668.44033,116.69293 L 671.67355,116.85459 L 672.96684,115.64213 C 672.96684,115.64213 672.88601,114.18719 672.56269,114.02552 C 672.23936,113.86386 670.94608,112.16642 670.94608,112.16642 L 668.76366,112.40891 L 667.14704,112.57057 L 666.82372,113.7022 L 667.79369,114.18719 z M 567.49209,111.21318 L 568.20837,110.63278 L 570.9566,109.82447 L 574.51313,107.56123 L 574.51313,106.59126 L 575.15978,105.94462 L 581.14121,104.97466 L 583.56612,103.03473 L 587.93095,100.93315 L 588.09261,99.639864 L 590.03254,96.729975 L 591.8108,95.921673 L 593.10409,94.143408 L 595.36733,91.880161 L 599.73217,89.455254 L 604.42032,88.970273 L 605.55194,90.101896 L 605.22862,91.071859 L 601.51043,92.041822 L 600.05549,95.113371 L 597.79224,95.921673 L 597.30726,98.34658 L 594.88235,101.57979 L 594.55903,104.16636 L 595.36733,104.65134 L 596.3373,103.51972 L 599.89383,100.60983 L 601.18711,101.90311 L 603.45036,101.90311 L 606.68357,102.87307 L 608.13851,104.0047 L 609.59345,107.07625 L 612.34168,109.82447 L 616.22153,109.66281 L 617.67648,108.69285 L 619.29308,109.98613 L 620.90969,110.47112 L 622.20297,109.66281 L 623.33459,109.66281 L 624.9512,108.69285 L 628.99271,105.13632 L 632.38758,104.0047 L 639.01566,103.68138 L 643.54215,101.74145 L 646.12872,100.44817 L 647.58367,100.60983 L 647.58367,106.26794 L 648.06865,106.59126 L 650.97853,107.39957 L 652.91846,106.91458 L 659.06156,105.29798 L 660.19318,104.16636 L 661.64813,104.65134 L 661.64813,111.60274 L 664.88134,114.67429 L 666.17462,115.32093 L 667.4679,116.29089 L 666.17462,116.61421 L 665.36632,116.29089 L 661.64813,115.80591 L 659.54654,116.45255 L 657.28329,116.29089 L 654.05008,117.74584 L 652.27182,117.74584 L 646.45204,116.45255 L 641.27891,116.61421 L 639.33898,119.20078 L 632.38758,119.84742 L 629.96267,120.65572 L 628.83105,123.72727 L 627.53777,124.8589 L 627.05279,124.69724 L 625.59784,123.08063 L 621.07135,125.50554 L 620.42471,125.50554 L 619.29308,123.88893 L 618.48478,124.05059 L 616.54486,128.41543 L 615.57489,132.45694 L 612.39377,139.45774 L 611.21701,138.42347 L 609.84527,137.39215 L 607.90449,127.10413 L 604.36001,125.73408 L 602.30743,123.44785 L 590.18707,120.70437 L 587.3318,119.67473 L 579.10138,117.50199 L 571.21139,116.35887 L 567.49209,111.21318 z,M697.8,177.2L694.6,168.9L692.3,159.9L689.9,156.7L687.3,154.9L685.7,156L681.8,157.8L679.9,162.8L677.1,166.5L676,167.2L674.5,166.5 C 674.5,166.5 671.9,165.1 672.1,164.4 C 672.3,163.8 672.6,159.4 672.6,159.4L676,158.1L676.8,154.7L677.4,152.1L679.9,150.5L679.5,140.5L677.9,138.2L676.6,137.4L675.8,135.3L676.6,134.5L678.2,134.8L678.4,133.2L676,131L674.7,128.4L672.1,128.4L667.6,126.9L662.1,123.5L659.3,123.5L658.7,124.2L657.7,123.7L654.6,121.4L651.7,123.2L648.8,125.5L649.2,129L650.1,129.3L652.2,129.8L652.7,130.6L650.1,131.4L647.5,131.8L646.1,133.5L645.8,135.6L646.1,137.3L646.4,142.8L642.8,144.9L642.2,144.7L642.2,140.5L643.5,138.1L644.1,135.6L643.3,134.8L641.4,135.6L640.4,139.8L637.7,141L635.9,142.9L635.7,143.9L636.4,144.7L635.7,147.3L633.5,147.8L633.5,148.9L634.3,151.3L633.1,157.5L631.5,161.5L632.2,166.2L632.7,167.3L631.9,169.8L631.5,170.6L631.2,173.3L634.8,179.3L637.7,185.8L639.1,190.6L638.3,195.3L637.3,201.3L634.9,206.4L634.6,209.2L631.3,212.3L635.8,212.1L657.2,209.9L664.4,208.9L664.5,210.5L671.4,209.3L681.7,207.8L685.5,207.4L685.7,206.8L685.8,205.3L687.9,201.6L689.9,199.9L689.7,194.8L691.3,193.2L692.4,192.9L692.6,189.3L694.2,186.3L695.2,186.9L695.4,187.5L696.2,187.7L698.1,186.7L697.8,177.2z",VT:"m 844.48416,154.05791 0.3167,-5.34563 -2.89071,-10.78417 -0.64664,-0.32332 -2.9099,-1.29329 0.8083,-2.90989 -0.8083,-2.10159 -2.70005,-4.63998 0.96997,-3.87986 -0.80831,-5.17315 -2.42491,-6.46644 -0.80557,-4.92251 26.41936,-6.73182 0.3087,5.52221 1.91626,2.74223 0,4.04152 -3.70715,5.05799 -2.58657,1.14267 -0.011,1.12057 1.30997,1.51912 -0.31093,8.09797 -0.60943,9.25886 -0.22795,5.55694 0.96996,1.29329 -0.16166,4.57069 -0.48498,1.68989 1.01418,0.72716 -7.43755,1.50671 -4.50174,0.72383 z",ME:"m 922.83976,78.830719 1.93993,2.101586 2.26325,3.718191 0,1.939926 -2.10159,4.688153 -1.93993,0.646642 -3.39487,3.071549 -4.84981,5.496454 c 0,0 -0.64664,0 -1.29328,0 -0.64664,0 -0.96997,-2.101584 -0.96997,-2.101584 l -1.77826,0.16166 -0.96996,1.454944 -2.42491,1.45495 -0.96996,1.45494 1.6166,1.45494 -0.48498,0.64665 -0.48498,2.74822 -1.93993,-0.16166 0,-1.6166 -0.32332,-1.29329 -1.45494,0.32333 -1.77827,-3.23321 -2.10158,1.29328 1.29328,1.45494 0.32332,1.13163 -0.8083,1.29328 0.32332,3.07155 0.16166,1.6166 -1.6166,2.58657 -2.90989,0.48498 -0.32332,2.90989 -5.3348,3.07155 -1.29328,0.48498 -1.61661,-1.45494 -3.07155,3.55653 0.96997,3.23321 -1.45495,1.29328 -0.16166,4.36483 -1.12328,6.25936 -2.46225,-1.15595 -0.48499,-3.07156 -3.87985,-1.13163 -0.32332,-2.74824 -7.27475,-23.44082 -4.69858,-14.639742 1.42054,-0.118165 1.51379,0.409899 0,-2.586568 1.3083,-4.496456 2.58657,-4.688153 1.45495,-4.041512 -1.93993,-2.424907 0,-5.981437 0.8083,-0.969963 0.80831,-2.748228 -0.16166,-1.454944 -0.16167,-4.849814 1.77827,-4.849814 2.90989,-8.891326 2.10158,-4.203172 1.29329,0 1.29328,0.16166 0,1.131623 1.29329,2.263247 2.74822,0.646642 0.80831,-0.808303 0,-0.969962 4.04151,-2.909889 1.77826,-1.778265 1.45495,0.161661 5.98143,2.424907 1.93993,0.969962 9.05299,29.907187 5.98143,0 0.80831,1.939926 0.16166,4.849814 2.90988,2.263246 0.80831,0 0.16166,-0.484981 -0.48498,-1.131623 2.74822,-0.161661 z m -20.93175,30.147531 1.53578,-1.53578 1.37412,1.0508 0.56581,2.42492 -1.69744,0.88913 -1.77827,-2.82907 z m 6.70893,-5.90062 1.77827,1.8591 c 0,0 1.29329,0.0808 1.29329,-0.2425 0,-0.32332 0.24249,-2.02076 0.24249,-2.02076 l 0.88914,-0.8083 -0.80831,-1.77828 -2.02076,0.72748 -1.37412,2.26326 z",RI:"m 874.07001,178.89536 -3.69579,-14.95599 6.26928,-1.84514 2.19113,1.92712 3.30649,4.32065 2.6879,4.40209 -2.99934,1.62479 -1.29328,-0.16166 -1.13162,1.77827 -2.42491,1.93992 -2.90986,0.96995 z",NY:"m 830.37944,188.7456 -1.13163,-0.96996 -2.58658,-0.16166 -2.26324,-1.93992 -1.63061,-6.12913 -3.45846,0.0905 -2.44371,-2.7082 -19.38532,4.38194 -43.00178,8.72969 -7.52965,1.22799 -0.73816,-6.46834 1.4281,-1.12538 1.29328,-1.13162 0.96997,-1.61661 1.77826,-1.13162 1.93993,-1.77827 0.48498,-1.6166 2.10158,-2.74823 1.13163,-0.96996 -0.16166,-0.96997 -1.29329,-3.07154 -1.77826,-0.16166 -1.93993,-6.1431 2.90989,-1.77827 4.36483,-1.45494 4.04152,-1.29329 3.23321,-0.48498 6.30475,-0.16166 1.93993,1.29329 1.6166,0.16166 2.10159,-1.29329 2.58657,-1.13162 5.17313,-0.48498 2.10159,-1.77827 1.77826,-3.23321 1.61661,-1.93992 2.10158,0 1.93993,-1.13163 0.16166,-2.26324 -1.45494,-2.10159 -0.32332,-1.45494 1.13162,-2.10159 0,-1.45494 -1.77827,0 -1.77826,-0.8083 -0.8083,-1.13163 -0.16166,-2.58657 5.81977,-5.49645 0.64664,-0.8083 1.45495,-2.90989 2.90989,-4.5265 2.74823,-3.71819 2.10158,-2.4249 2.4151,-1.82561 3.08136,-1.24594 5.49645,-1.29329 3.23321,0.16166 4.5265,-1.45494 7.56519,-2.07117 0.51979,4.97967 2.42492,6.46644 0.8083,5.17315 -0.96996,3.87986 2.58657,4.5265 0.8083,2.10159 -0.8083,2.9099 2.9099,1.29328 0.64664,0.32332 3.07156,10.99294 -0.53629,5.05967 -0.48498,10.83127 0.8083,5.49647 0.8083,3.55654 1.45495,7.27474 0,8.08304 -1.13163,2.26325 1.83933,1.99279 0.79655,1.67842 -1.93992,1.77827 0.32332,1.29328 1.29328,-0.32332 1.45495,-1.29328 2.26324,-2.58657 1.13163,-0.64664 1.6166,0.64664 2.26325,0.16166 7.92136,-3.87985 2.90989,-2.74823 1.29328,-1.45494 4.20317,1.6166 -3.39487,3.55653 -3.87985,2.90989 -7.11306,5.33479 -2.58656,0.96997 -5.81978,1.93992 -4.04151,1.13163 -1.17474,-0.53293 -0.24402,-3.68853 0.48498,-2.74824 -0.16166,-2.10158 -2.81351,-1.699 -4.5265,-0.96997 -3.87986,-1.13162 -3.7182,-1.77828 z",PA:"m 825.1237,224.69205 1.30842,-0.271 2.32953,-1.25325 1.21188,-2.48307 1.61661,-2.26325 3.23321,-3.07156 0,-0.8083 -2.42491,-1.6166 -3.55654,-2.42492 -0.96996,-2.58657 -2.74824,-0.32332 -0.16166,-1.13163 -0.8083,-2.74823 2.26326,-1.13162 0.16166,-2.42492 -1.2933,-1.29329 0.16166,-1.61661 1.93994,-3.07155 0,-3.07156 2.69763,-2.64588 -0.92028,-0.67498 -2.52408,-0.19291 -2.29449,-1.93992 -1.54992,-6.11606 -3.50458,0.10052 -2.45523,-2.70333 -18.09099,4.19777 -43.00178,8.72969 -8.89135,1.45494 -0.62067,-6.52139 -5.36253,5.06765 -1.29329,0.48498 -4.20229,3.00889 2.91076,19.13745 2.48166,9.72936 3.5718,19.26149 3.26931,-0.63768 11.94358,-1.50247 37.92663,-7.6652 14.87621,-2.82332 8.30035,-1.62236 0.26711,-0.23853 2.1016,-1.61662 2.10158,-0.68084 z",NJ:"m 829.67942,188.46016 -2.32255,2.73427 0,3.07156 -1.93994,3.07155 -0.16166,1.61662 1.2933,1.29328 -0.16166,2.42492 -2.26326,1.13162 0.8083,2.74823 0.16166,1.13163 2.74824,0.32332 0.96996,2.58657 3.55654,2.42492 2.42491,1.6166 0,0.80831 -2.98321,2.69656 -1.61661,2.26324 -1.45495,2.74824 -2.26325,1.29328 -0.46245,1.60248 -0.2425,1.21246 -0.60923,2.60674 1.09227,2.24419 3.23321,2.90989 4.84981,2.26325 4.04151,0.64664 0.16166,1.45494 -0.8083,0.96996 0.32332,2.74823 0.8083,0 2.10159,-2.4249 0.8083,-4.84982 2.74823,-4.04151 3.07155,-6.46642 1.13162,-5.49645 -0.64664,-1.13163 -0.16166,-9.37631 -1.61661,-3.39486 -1.13162,0.8083 -2.74823,0.32332 -0.48498,-0.48498 1.13163,-0.96997 2.10158,-1.93992 0.0631,-1.09383 -0.38439,-3.43384 0.57337,-2.74824 -0.11747,-1.96901 -2.80754,-1.75035 -5.09214,-1.17576 -4.13744,-1.38163 -3.58563,-1.64569 z",DE:"m 825.6261,228.2791 0.36831,-2.14689 0.37507,-1.69105 -1.623,0.39776 -1.61546,0.46756 -2.20626,1.7643 1.72012,5.04288 2.26326,5.65812 2.10158,9.69965 1.61662,6.30478 5.01148,-0.16166 6.14212,-1.18068 -2.26423,-7.38627 -0.96997,0.48498 -3.55653,-2.4249 -1.77826,-4.68816 -1.93993,-3.55653 -3.14712,-2.87031 -0.86416,-2.09812 0.36636,-1.61546 z",MD:"m 839.79175,252.41476 -6.00855,1.20384 -5.1429,0.11746 -1.84356,-6.92233 -1.92481,-9.16932 -2.57262,-6.18845 -1.28838,-4.39833 -7.50602,1.62236 -14.87621,2.82332 -37.45143,7.5509 1.1313,5.01166 0.96996,5.65811 0.32332,-0.32332 2.1016,-2.4249 2.26324,-2.61766 2.42491,-0.61556 1.45496,-1.45495 1.77826,-2.58657 1.29328,0.64665 2.90989,-0.32333 2.58658,-2.10158 2.00689,-1.45327 1.84523,-0.48498 1.64435,1.12995 2.90989,1.45494 1.93992,1.77827 1.21246,1.53578 4.12235,1.69743 0,2.90989 5.49646,1.29329 1.14444,0.54198 1.4119,-2.02832 2.88197,1.97016 -1.27817,2.48193 -0.76527,3.98566 -1.77826,2.58657 0,2.10159 0.64664,1.77827 5.06395,1.35569 4.3111,-0.0617 3.07154,0.96997 2.10159,0.32332 0.96996,-2.10159 -1.45494,-2.10158 0,-1.77827 -2.42491,-2.10159 -2.10158,-5.49645 1.29328,-5.3348 -0.16166,-2.10158 -1.29328,-1.29329 c 0,0 1.45494,-1.6166 1.45494,-2.26324 0,-0.64665 0.48498,-2.10159 0.48498,-2.10159 l 1.93993,-1.29328 1.93992,-1.61661 0.48498,0.96997 -1.45494,1.6166 -1.29328,3.71819 0.32332,1.13162 1.77826,0.32332 0.48498,5.49646 -2.10158,0.96996 0.32332,3.55653 0.48498,-0.16166 1.13162,-1.93992 1.61661,1.77826 -1.61661,1.29329 -0.32332,3.39487 2.58657,3.39487 3.87985,0.48498 1.61661,-0.8083 3.23655,4.18293 1.35835,0.5363 6.65367,-2.79695 2.00758,-4.02387 -0.43596,-4.90798 z m -15.96958,9.02872 1.13162,2.50575 0.16166,1.77827 1.13163,1.8591 c 0,0 0.88914,-0.88914 0.88914,-1.21246 0,-0.32332 -0.72747,-3.07156 -0.72747,-3.07156 l -0.72748,-2.34409 -1.8591,0.48499 z",VA:"m 831.63885,266.06892 -0.14391,-1.94703 6.45343,-2.54988 -0.77041,3.21784 -2.91995,3.77911 -0.41809,4.58582 0.46175,3.39044 -1.82797,4.97816 -2.16427,1.91614 -1.47034,-4.64081 0.44589,-5.44911 1.587,-4.18307 0.76687,-3.09761 z m 3.34019,28.30136 -58.17418,12.57543 -37.42697,5.27907 -6.67833,-0.37518 -2.58525,1.92638 -7.33913,0.22069 -8.38211,0.97767 -10.91496,1.61462 10.46943,-5.6112 -0.0131,-2.07493 1.52005,-2.14613 10.55378,-11.50143 3.94672,4.47746 3.78301,0.96398 2.54346,-1.14032 2.23722,-1.31116 2.53661,1.34352 3.91417,-1.42776 1.87673,-4.55634 2.60092,0.54002 2.85524,-2.13125 1.79927,0.4936 2.82721,-3.67657 0.34825,-2.08311 -0.96366,-1.27557 1.00277,-1.86663 5.27427,-12.27715 0.61677,-5.73508 1.22889,-0.52354 2.17853,2.44287 3.93586,-0.30117 1.92921,-7.57363 2.79399,-0.56086 1.04975,-2.74107 2.57982,-2.34688 2.77183,-5.69519 0.0849,-5.06755 9.82151,3.82282 c 0.68085,0.34042 0.83288,-5.04915 0.83288,-5.04915 l 3.65256,1.59833 0.0683,2.93816 5.78425,1.29949 2.13295,1.1762 1.65992,2.05569 -0.65455,3.64867 -1.94744,2.59098 0.10985,2.05907 0.58896,1.85291 4.97875,1.26843 4.45127,0.0399 3.06883,0.95864 1.94351,0.3093 0.71481,3.08846 3.19044,0.40253 0.86807,1.20002 -0.43949,4.69008 1.37473,1.10255 -0.47895,1.93039 1.22941,0.78977 -0.2218,1.3846 -2.69399,-0.0949 0.089,1.61552 2.28099,1.54287 0.12154,1.4119 1.77311,1.78538 0.49179,2.52413 -2.55304,1.38131 1.57222,1.4943 5.80102,-1.68583 3.60762,6.01193 z",WV:"m 761.18551,238.96731 1.11201,4.94453 1.08344,6.03133 2.13029,-2.58034 2.26324,-3.07156 2.53838,-0.61555 1.45495,-1.45494 1.77827,-2.58657 1.44498,0.64664 2.90989,-0.32332 2.58658,-2.10159 2.00689,-1.45326 1.84523,-0.48499 1.30392,1.01647 3.64325,1.82163 1.93993,1.77827 1.37412,1.29328 -0.76172,5.55494 -5.83491,-2.54122 -4.24525,-1.62202 -0.10114,5.17843 -2.74764,5.53673 -2.53003,2.42666 -1.19209,2.74939 -2.64358,0.5001 -0.89784,3.60188 -1.04323,3.94967 -3.96824,0.34074 -2.32373,-2.43888 -1.07115,0.55941 -0.63268,5.4697 -1.35029,3.5345 -4.9584,10.95497 0.89669,1.1607 -0.20586,1.90854 -2.80869,3.88447 -1.8085,-0.54429 -2.96805,2.15974 -2.54238,-0.57221 -1.99923,4.55557 c 0,0 -3.25931,1.43022 -3.92291,1.36772 -0.16051,-0.0151 -2.4691,-1.2491 -2.4691,-1.2491 l -2.33652,1.37937 -2.4098,1.0444 -3.74469,-0.88912 -1.1214,-1.16828 -2.19222,-3.02336 -3.14259,-1.98812 -1.71157,-3.62324 -4.28488,-3.46819 -0.64665,-2.26325 -2.58657,-1.45495 -0.80831,-1.6166 -0.24249,-5.25398 2.18242,-0.0808 1.93994,-0.8083 0.16166,-2.74823 1.6166,-1.45495 0.16166,-5.01148 0.96996,-3.87986 1.29329,-0.64664 1.29328,1.13162 0.48499,1.77827 1.77827,-0.96997 0.48498,-1.6166 -1.13162,-1.77827 0,-2.42491 0.96996,-1.29329 2.26325,-3.39487 1.29328,-1.45494 2.1016,0.48498 2.26324,-1.61662 3.07155,-3.39487 2.26326,-3.87986 0.32332,-5.65811 0.48498,-5.01149 0,-4.68816 -1.13162,-3.07155 0.96996,-1.45496 1.28348,-1.29328 3.49125,19.82712 4.63101,-0.75115 12.42832,-1.79965 z",OH:"m 735.32497,193.32832 -6.09354,4.05335 -3.87985,2.26325 -3.39487,3.71819 -4.04151,3.87985 -3.23321,0.8083 -2.90989,0.48498 -5.49646,2.58657 -2.10158,0.16166 -3.39487,-3.07155 -5.17314,0.64665 -2.58656,-1.45495 -2.38107,-1.35083 -4.89257,0.70341 -10.18462,1.61661 -11.20687,2.18473 1.29329,14.63028 1.77827,13.74117 2.58656,23.4408 0.56582,4.83117 4.12235,-0.12902 2.42491,-0.80831 3.3638,1.50314 2.07049,4.36483 5.13894,-0.0171 1.89174,2.1187 1.76117,-0.0653 2.53839,-1.34146 2.50417,0.3715 5.42128,0.48268 1.72697,-2.13268 2.34565,-1.29328 2.07049,-0.68085 0.64664,2.74824 1.77828,0.96996 3.47569,2.34407 2.18242,-0.0808 1.33312,-0.49248 0.18471,-2.76153 1.58536,-1.45496 0.0992,-4.79272 c 0,0 1.02396,-4.10906 1.02396,-4.10906 l 1.29927,-0.60128 1.32135,1.14774 0.53815,1.69702 1.71913,-1.03742 0.43898,-1.46075 -1.11669,-1.90306 0.0663,-2.31443 0.749,-1.07231 2.15276,-3.30648 1.05022,-1.54334 2.10159,0.48498 2.26325,-1.61661 3.07155,-3.39487 2.77149,-4.07873 0.32033,-5.05551 0.48498,-5.01149 -0.17678,-5.30688 -0.95484,-2.89478 0.35124,-1.18978 1.80439,-1.75011 -2.28879,-9.04733 -2.90989,-19.36177 z",IN:"m 619.56954,299.97132 0.0653,-2.85858 0.48499,-4.52651 2.26324,-2.90988 1.77828,-3.87987 2.58656,-4.20317 -0.48498,-5.81979 -1.77826,-2.74823 -0.32332,-3.23321 0.8083,-5.49647 -0.48498,-6.95141 -1.2933,-16.00441 -1.29328,-15.35776 -0.97047,-11.72002 3.07106,0.88951 1.45495,0.96996 1.13162,-0.32332 2.10159,-1.93992 2.82957,-1.61699 5.0928,-0.16204 21.98587,-2.26326 5.57573,-0.53316 1.50314,15.95621 4.25135,36.84155 0.59846,5.7716 -0.3715,2.26325 1.22798,1.79537 0.0964,1.37255 -2.52129,1.59951 -3.53943,1.55131 -3.20213,0.55028 -0.59846,4.86693 -4.57469,3.31247 -2.79642,4.01044 0.32332,2.37673 -0.58134,1.5342 -3.32647,0 -1.58553,-1.6166 -2.49331,1.2622 -2.68296,1.50314 0.16167,3.05445 -1.19379,0.25803 -0.46788,-1.01814 -2.16688,-1.50314 -3.25032,1.34148 -1.55131,3.00625 -1.43784,-0.8083 -1.45495,-1.59951 -4.46434,0.48499 -5.59283,0.96996 -2.90989,1.55132 z",IL:"m 619.54145,300.34244 0.0312,-3.22971 0.56739,-4.64596 2.33253,-2.91586 1.86665,-4.07576 2.23302,-3.99533 -0.3715,-5.2524 -2.00521,-3.54257 -0.0964,-3.34668 0.69483,-5.26951 -0.82541,-7.17837 -1.06634,-15.77745 -1.29328,-15.01734 -0.92228,-11.6392 -0.27251,-0.92139 -0.8083,-2.58657 -1.29328,-3.71819 -1.61661,-1.77827 -1.45494,-2.58656 -0.23357,-5.48896 -45.79643,2.59825 0.22862,2.37195 2.28623,0.68587 0.91448,1.14311 0.45725,1.82898 3.88658,3.42934 0.68588,2.28623 -0.68588,3.42934 -1.82898,3.65796 -0.68586,2.51484 -2.28623,1.82899 -1.82898,0.68587 -5.25832,1.37173 -0.68587,1.82898 -0.68587,2.05761 0.68587,1.37174 1.82898,1.60036 -0.22862,4.1152 -1.82899,1.60036 -0.68586,1.60036 0,2.74347 -1.82898,0.45724 -1.60036,1.14312 -0.22862,1.37174 0.22862,2.0576 -1.71467,1.31457 -1.0288,2.80064 0.45724,3.65795 2.28623,7.31593 7.31593,7.54455 5.48693,3.65796 -0.22862,4.34383 0.9145,1.37174 6.40143,0.45724 2.74347,1.37174 -0.68586,3.65796 -2.28623,5.94419 -0.68587,3.20072 2.28622,3.88658 6.40144,5.25832 4.57246,0.68587 2.05759,5.0297 2.05761,3.20071 -0.91449,2.97209 1.60036,4.11521 1.82898,2.05761 1.41403,-0.88069 0.90766,-2.07479 2.21308,-1.7472 2.13147,-0.6144 2.60253,1.1798 3.62699,1.3757 1.18895,-0.29823 0.19987,-2.25845 -1.2873,-2.41179 0.30422,-2.37672 1.8384,-1.34745 3.02254,-0.81029 1.2609,-0.45852 -0.61261,-1.38688 -0.79137,-2.35437 1.4326,-0.98096 1.15747,-3.21403 z",CT:"m 874.06831,178.86288 -3.67743,-14.87881 -4.71882,0.92031 -21.22878,4.74309 1.00019,3.22567 1.45495,7.27474 0.17678,8.96692 -1.22002,2.17487 1.92079,1.93234 4.27153,-3.90564 3.55653,-3.23321 1.93992,-2.10159 0.80831,0.64664 2.74822,-1.45494 5.17314,-1.13162 7.79469,-3.17877 z",WI:"m 615.06589,197.36866 -0.0667,-3.15742 -1.17911,-4.5265 -0.64664,-6.14309 -1.13162,-2.42491 0.96996,-3.07155 0.8083,-2.90989 1.45495,-2.58656 -0.64665,-3.39487 -0.64664,-3.55653 0.48498,-1.77827 1.93993,-2.42491 0.16166,-2.74823 -0.8083,-1.29328 0.64664,-2.58657 -0.45252,-4.17071 2.74823,-5.65811 2.90989,-6.78974 0.16166,-2.26325 -0.32332,-0.96996 -0.80831,0.48498 -4.20317,6.30476 -2.74823,4.04151 -1.93992,1.77827 -0.8083,2.26324 -1.95495,0.8083 -1.13162,1.93993 -1.45495,-0.32332 -0.16166,-1.77827 1.29329,-2.4249 2.10158,-4.68816 1.77827,-1.6166 0.99083,-2.35785 -2.56045,-1.90134 -1.97482,-10.36699 -3.54747,-1.34198 -1.94626,-2.30833 -12.12971,-2.72164 -2.87589,-1.01205 -8.21312,-2.16729 -7.91792,-1.15875 -3.76516,-5.13067 -0.7504,0.55401 -1.19791,-0.16166 -0.64665,-1.13162 -1.33401,0.29655 -1.13163,0.16166 -1.77826,0.96996 -0.96997,-0.64664 0.64665,-1.93993 1.93992,-3.07155 1.13162,-1.13162 -1.93992,-1.45494 -2.10159,0.8083 -2.90989,1.93992 -7.43638,3.23321 -2.90989,0.64664 -2.90988,-0.48498 -0.98173,-0.87825 -2.1167,2.83518 -0.22862,2.74347 0,8.45903 -1.14312,1.60037 -5.25832,3.88657 -2.28622,5.94419 0.45724,0.22862 2.51485,2.05761 0.68586,3.20072 -1.82898,3.20071 0,3.88659 0.45725,6.63005 2.97209,2.9721 3.42935,0 1.82898,3.20072 3.42933,0.45724 3.88659,5.71557 7.0873,4.11521 2.0576,2.74347 0.9145,7.43024 0.68586,3.31502 2.28623,1.60036 0.22862,1.37174 -2.0576,3.42933 0.22862,3.20073 2.51485,3.88658 2.51485,1.14311 2.97209,0.45724 1.34234,1.38012 45.29836,-2.66945 z",NC:"m 834.98153,294.31554 2.085,4.91735 3.55653,6.46642 2.4249,2.42491 0.64664,2.26325 -2.4249,0.16166 0.8083,0.64664 -0.32332,4.20317 -2.58657,1.29328 -0.64664,2.10159 -1.29328,2.90989 -3.7182,1.6166 -2.4249,-0.32332 -1.45495,-0.16166 -1.6166,-1.29328 0.32332,1.29328 0,0.96997 1.93993,0 0.8083,1.29328 -1.93993,6.30476 4.20317,0 0.64665,1.6166 2.26324,-2.26324 1.29329,-0.48499 -1.93993,3.55653 -3.07155,4.84982 -1.29328,0 -1.13163,-0.48498 -2.74822,0.64664 -5.17314,2.42491 -6.46642,5.33479 -3.39487,4.68815 -1.93992,6.46642 -0.48498,2.42491 -4.68816,0.48498 -5.45313,1.33666 -9.94641,-8.20253 -12.60954,-7.59805 -2.90989,-0.80831 -12.60953,1.45495 -4.27646,0.75015 -1.6166,-3.23322 -2.97036,-2.1167 -16.48939,0.48498 -7.27474,0.8083 -9.05299,4.52651 -6.14311,2.58656 -21.17755,2.58658 0.50009,-4.05433 1.77827,-1.45494 2.74824,-0.64665 0.64664,-3.7182 4.20318,-2.74822 3.87985,-1.45496 4.20319,-3.55653 4.36483,-2.10159 0.64664,-3.07156 3.87986,-3.87985 0.64664,-0.16166 c 0,0 0,1.13163 0.80831,1.13163 0.8083,0 1.93993,0.32332 1.93993,0.32332 l 2.26325,-3.55654 2.10159,-0.64665 2.26324,0.32333 1.61662,-3.55653 2.90989,-2.58658 0.48498,-2.10159 0.1875,-3.64819 4.2765,-0.0225 7.19859,-0.85579 15.75723,-2.25243 15.13604,-2.08657 21.64048,-4.71935 19.98332,-4.25857 11.17694,-2.40581 5.04998,-1.15688 z m 4.27046,33.20657 2.58658,-2.50575 3.15238,-2.58658 1.53578,-0.64664 0.16166,-2.02076 -0.64664,-6.14312 -1.45495,-2.34408 -0.64665,-1.8591 0.72748,-0.2425 2.74824,5.49648 0.40415,4.44567 -0.16166,3.39489 -3.39488,1.53577 -2.82907,2.42492 -1.13162,1.21246 -1.0508,-0.16166 z", -DC:"m 805.81945,250.84384 -1.85828,-1.82417 -1.23263,-0.68629 1.44301,-2.02247 2.88909,1.9485 -1.24119,2.58443 z",MA:"m 899.62349,173.25394 2.17192,-0.68588 0.45726,-1.71467 1.0288,0.11431 1.0288,2.28624 -1.25742,0.45724 -3.8866,0.11432 0.45724,-0.57156 z m -9.37354,0.80018 2.28622,-2.62917 1.60037,0 1.82899,1.48605 -2.40054,1.0288 -2.17192,1.0288 -1.14312,-0.91448 z m -34.79913,-21.98819 17.64687,-4.64068 2.26326,-0.64664 1.91408,-2.79571 3.73677,-1.66331 2.88924,4.41284 -2.42491,5.17314 -0.32332,1.45494 1.93993,2.58657 1.13162,-0.8083 1.77827,0 2.26324,2.58656 3.87986,5.98144 3.55653,0.48498 2.26324,-0.96996 1.77827,-1.77827 -0.80831,-2.74822 -2.10158,-1.61661 -1.45495,0.8083 -0.96996,-1.29328 0.48498,-0.48498 2.10159,-0.16166 1.77826,0.8083 1.93993,2.42491 0.96996,2.90989 0.32332,2.4249 -4.20317,1.45495 -3.87985,1.93992 -3.87985,4.5265 -1.93993,1.45494 0,-0.96996 2.42491,-1.45495 0.48498,-1.77826 -0.8083,-3.07155 -2.90989,1.45494 -0.8083,1.45495 0.48498,2.26324 -2.06633,1.00043 -2.7472,-4.52713 -3.39488,-4.36484 -2.0705,-1.81247 -6.53327,1.8762 -5.09233,1.05079 -20.67516,4.59221 -0.66776,-4.76785 0.64664,-10.58877 4.28927,-0.88914 6.78975,-1.2933 z",TN:"m 696.67788,318.25411 -51.89309,5.01149 -15.75956,1.77826 -4.6212,0.51271 -3.86835,-0.0277 -0.22097,4.10083 -8.18538,0.26401 -6.95141,0.64664 -8.09083,-0.12386 -1.41378,7.07286 -1.69623,5.48005 -3.29317,2.75084 -1.34874,4.38106 -0.32332,2.58657 -4.04152,2.26324 1.45494,3.55654 -0.96996,4.36484 -0.96838,0.78965 108.15855,-10.40755 0.40327,-3.95494 1.81073,-1.49039 2.83415,-0.74945 0.67193,-3.71698 4.0986,-2.70496 4.04693,-1.49403 4.08358,-3.57033 4.43609,-2.02546 0.52126,-3.06735 4.0646,-3.98499 0.5508,-0.11417 c 0,0 0.0312,1.13162 0.83955,1.13162 0.8083,0 1.93993,0.35457 1.93993,0.35457 l 2.26325,-3.58779 2.07034,-0.64664 2.27511,0.29521 1.59831,-3.53286 2.95525,-2.64391 0.42168,-1.93911 0.30896,-3.71115 -2.14655,-0.19977 -2.60168,2.02833 -6.99331,0.0291 -18.35929,2.38682 -8.06109,1.9082 z",AR:"m 593.82477,343.05296 -3.97988,0.7167 -5.11215,-0.63403 0.4207,-1.60207 2.97975,-2.56669 0.94338,-3.65625 -1.82898,-2.9721 -78.41757,2.51485 1.60036,6.85869 -1e-5,8.23042 1.37175,10.97399 0.22862,37.83693 2.28623,1.94329 2.97209,-1.37173 2.74348,1.14311 0.68034,6.5733 55.62126,-1.1406 1.14563,-2.09037 -0.28662,-3.54951 -1.82563,-2.9721 1.59869,-1.48521 -1.59869,-2.5115 0.6842,-2.50983 1.36839,-5.60543 2.51819,-2.06263 -0.68587,-2.28456 3.65797,-5.37179 2.74347,-1.36839 -0.11348,-1.49358 -0.34544,-1.82564 2.85695,-5.59873 2.40304,-1.25659 0.38413,-3.42763 1.77067,-1.2417 -3.14352,-0.48427 -1.34146,-4.01044 2.80408,-2.37671 0.55026,-2.0192 1.27948,-4.04661 1.06619,-3.25539 z",MO:"m 558.44022,248.11316 -2.51987,-3.08725 -1.14312,-2.28623 -64.35723,2.40054 -2.28626,0.11431 1.25743,2.51485 -0.22862,2.28622 2.51484,3.88659 3.0864,4.11521 3.08641,2.74347 2.16123,0.22862 1.49673,0.9145 0,2.97209 -1.82897,1.60036 -0.45726,2.28622 2.05761,3.42935 2.51486,2.97209 2.51484,1.82898 1.37173,11.65975 0.31414,36.07221 0.22862,4.68675 0.45724,5.38351 22.43299,-0.86682 23.20603,-0.68587 20.80466,-0.80101 11.65474,-0.2303 2.1694,3.426 -0.68419,3.3075 -3.08725,2.40304 -0.57239,1.83734 5.37849,0.45726 3.89496,-0.68588 1.71718,-5.49363 0.65142,-5.85679 2.09803,-2.55516 2.59603,-1.48689 0.0514,-3.05024 1.01602,-1.93648 -1.69423,-2.54377 -1.33093,0.98426 -1.99262,-2.22724 -1.28503,-4.759 0.80101,-2.5182 -1.94413,-3.42766 -1.83064,-4.5758 -4.79941,-0.79934 -6.9688,-5.59875 -1.71886,-4.11353 0.79935,-3.20072 2.05927,-6.05767 0.45892,-2.86363 -1.94914,-1.03131 -6.85534,-0.79767 -1.02797,-1.71216 -0.1118,-4.23036 -5.48694,-3.43101 -6.97551,-7.7715 -2.28622,-7.31593 -0.23029,-4.22532 0.80101,-2.2879 z",GA:"m 672.29229,355.5518 0,2.18242 0.16166,2.1016 0.64664,3.39487 3.39488,7.92137 2.42491,9.86131 1.45494,6.14311 1.61661,4.84981 1.45495,6.95141 2.10159,6.30477 2.58657,3.39488 0.48498,3.39487 1.93993,0.8083 0.16166,2.1016 -1.77827,4.84981 -0.48498,3.23322 -0.16166,1.93993 1.61661,4.36484 0.32332,5.3348 -0.80831,2.42491 0.64665,0.80831 1.45495,0.8083 0.2047,3.21809 2.23301,3.34953 2.25044,2.16205 7.92138,0.16166 10.81975,-0.64664 21.51239,-1.29328 5.44572,-0.67437 4.57725,0.0277 0.16166,2.90989 2.58657,0.8083 0.32332,-4.36484 -1.61661,-4.5265 1.13163,-1.6166 5.81978,0.8083 4.97741,0.31778 -0.77542,-6.29879 2.26324,-10.02295 1.45495,-4.20318 -0.48499,-2.58656 3.33441,-6.2443 -0.5103,-1.35168 -1.91341,0.70458 -2.58656,-1.2933 -0.64665,-2.10159 -1.29328,-3.55653 -2.26326,-2.10159 -2.58656,-0.64664 -1.61661,-4.84982 -2.92501,-6.335 -4.20317,-1.93993 -2.1016,-1.93993 -1.29329,-2.58657 -2.10158,-1.93993 -2.26325,-1.29329 -2.26325,-2.90989 -3.07155,-2.26324 -4.52651,-1.77828 -0.48498,-1.45494 -2.42491,-2.90989 -0.48498,-1.45495 -3.39488,-4.97048 -3.51987,0.0992 -3.75491,-2.35614 -1.41828,-1.29328 -0.32332,-1.77827 0.8708,-1.93992 2.22664,-1.11014 -0.63394,-2.09722 -41.86975,4.98893 z",SC:"m 764.94328,408.16488 -1.77706,0.9695 -2.58657,-1.29329 -0.64664,-2.10159 -1.29328,-3.55653 -2.26326,-2.1016 -2.58657,-0.64664 -1.6166,-4.84981 -2.74824,-5.98145 -4.20317,-1.93994 -2.1016,-1.93992 -1.29328,-2.58657 -2.10159,-1.93994 -2.26325,-1.29328 -2.26325,-2.90989 -3.07155,-2.26324 -4.52651,-1.77828 -0.48498,-1.45494 -2.4249,-2.90989 -0.48499,-1.45496 -3.39488,-5.17313 -3.39487,0.16166 -4.04152,-2.42492 -1.29328,-1.29328 -0.32332,-1.77827 0.8083,-1.93992 2.26325,-0.96998 -0.51082,-2.28908 5.7681,-2.33657 9.1155,-4.589 7.77473,-0.80831 16.1144,-0.42248 2.63825,1.87743 1.6791,3.35822 4.30235,-0.60998 12.60953,-1.45496 2.90989,0.80831 12.60954,7.59806 10.10808,8.12168 -5.42117,5.45834 -2.58657,6.1431 -0.48498,6.30476 -1.6166,0.8083 -1.13163,2.74823 -2.4249,0.64664 -2.10159,3.55653 -2.74823,2.74823 -2.26324,3.39487 -1.61661,0.8083 -3.55653,3.39487 -2.90989,0.16166 0.96997,3.23321 -5.01148,5.49646 -2.10159,1.29328 z",KY:"m 725.9944,295.2707 -2.29332,2.40168 -3.57819,3.99404 -4.92455,5.46467 -1.21577,1.71577 -0.0625,2.10158 -4.37986,2.16409 -5.65812,3.39488 -7.23187,1.79885 -51.86789,4.89886 -15.75956,1.77826 -4.6212,0.51271 -3.86835,-0.0277 -0.22695,4.22028 -8.17941,0.14456 -6.95141,0.64664 -7.98748,-0.0602 1.20778,-1.32008 2.49954,-1.54085 0.22863,-3.20073 0.91449,-1.82898 -1.60682,-2.5389 0.80183,-1.90681 2.26326,-1.77826 2.10158,-0.64665 2.74823,1.29329 3.55654,1.29328 1.13163,-0.32332 0.16166,-2.26325 -1.29329,-2.42491 0.32332,-2.26325 1.93993,-1.45494 2.58658,-0.64665 1.6166,-0.64664 -0.8083,-1.77827 -0.64664,-1.93993 1.50662,-0.9958 c 0.003,-0.0371 1.25396,-3.52229 1.23829,-3.65781 l 3.05322,-1.47868 5.31979,-0.96996 4.49404,-0.48498 1.39244,1.62743 1.52827,0.8708 1.59077,-3.10821 3.18708,-1.28262 2.20509,1.48403 0.41056,0.99904 1.17352,-0.26401 -0.16167,-2.95293 3.13087,-1.74919 2.14809,-1.07348 1.52936,1.66081 3.31815,-0.0442 0.58733,-1.57125 -0.36751,-2.26324 2.60053,-3.9985 4.77655,-3.4379 0.70595,-4.83586 2.92502,-0.45591 3.79146,-1.64568 2.44332,-1.70824 -0.19833,-1.56493 -1.14245,-1.45494 0.56582,-2.99491 4.18485,-0.1175 2.29991,-0.7458 3.34739,1.4291 2.05411,4.36484 5.13229,0.0108 2.05101,2.20819 1.61545,-0.1477 2.60169,-1.27817 5.23706,0.57337 2.57492,0.21751 1.68758,-2.05624 2.61795,-1.42588 1.88178,-0.7071 0.64664,2.83663 2.04343,1.05834 2.64276,2.08249 0.11747,5.67324 0.8083,1.57241 2.58972,1.55628 0.77164,2.29451 4.15989,3.43694 1.80531,3.62324 2.45655,1.65852 z",AL:"m 631.30647,460.41572 -1.4906,-14.3215 -2.74824,-18.75264 0.16166,-14.06449 0.8083,-31.03885 -0.16166,-16.65106 0.16509,-6.41906 44.48448,-3.61945 -0.1478,2.18242 0.16166,2.1016 0.64665,3.39487 3.39488,7.92137 2.4249,9.86131 1.45495,6.14311 1.6166,4.84982 1.45496,6.95141 2.10158,6.30476 2.58657,3.39489 0.48498,3.39486 1.93994,0.80831 0.16166,2.10159 -1.77828,4.84982 -0.48498,3.23322 -0.16166,1.93992 1.61662,4.36485 0.32332,5.33479 -0.80832,2.42492 0.64666,0.8083 1.45494,0.8083 0.32814,2.88882 -5.59766,-0.35355 -6.78975,0.64665 -25.5424,2.90988 -10.41156,1.40677 -0.22138,2.8774 1.77827,1.77827 2.58657,1.93992 0.58086,7.93544 -5.54206,2.5729 -2.74822,-0.32332 2.74822,-1.93993 0,-0.96996 -3.07154,-5.98144 -2.26325,-0.64664 -1.45495,4.36483 -1.29328,2.74823 -0.64664,-0.16166 -2.74823,0 z",LA:"m 607.96706,459.16125 -3.28461,-3.16614 1.00991,-5.50023 -0.66135,-0.89308 -9.26167,1.00656 -25.02832,0.45892 -0.68419,-2.39468 0.91281,-8.4557 3.31588,-5.94585 5.03136,-8.69102 -0.57407,-2.39802 1.25659,-0.68085 0.45893,-1.95249 -2.28624,-2.05593 -0.11179,-1.94245 -1.83066,-4.34551 -0.14705,-6.3386 -55.47379,0.92397 0.0286,9.57357 0.68587,9.37353 0.68587,3.88658 2.51485,4.11521 0.91449,5.02971 4.34383,5.48693 0.22862,3.20072 0.68587,0.68587 -0.68587,8.45904 -2.97209,5.02969 1.60036,2.05761 -0.68588,2.51484 -0.68586,7.31593 -1.37174,3.20071 0.12246,3.61645 4.68648,-1.52015 12.11335,0.20701 10.34627,3.55653 6.46642,1.13163 3.71819,-1.45495 3.23321,1.13163 3.23321,0.96996 0.8083,-2.10159 -3.23321,-1.13162 -2.58657,0.48498 -2.74823,-1.6166 c 0,0 0.16167,-1.29329 0.80831,-1.45495 0.64664,-0.16166 3.07155,-0.96996 3.07155,-0.96996 l 1.77826,1.45494 1.77827,-0.96996 3.23321,0.64664 1.45494,2.42491 0.32332,2.26325 4.52649,0.32332 1.77827,1.77826 -0.8083,1.61661 -1.29329,0.8083 1.61661,1.6166 8.40634,3.55653 3.55653,-1.29328 0.96997,-2.42491 2.58656,-0.64664 1.77827,-1.45494 1.29328,0.96996 0.8083,2.90989 -2.26324,0.8083 0.64664,0.64664 3.39487,-1.29328 2.26325,-3.39487 0.8083,-0.48498 -2.10159,-0.32332 0.8083,-1.61661 -0.16166,-1.45494 2.10159,-0.48498 1.13162,-1.29329 0.64664,0.8083 c 0,0 -0.16166,3.07155 0.64665,3.07155 0.8083,0 4.20317,0.64665 4.20317,0.64665 l 4.04151,1.93992 0.96996,1.45495 2.90989,0 1.13163,0.96996 2.26324,-3.07155 0,-1.45495 -1.29328,0 -3.39487,-2.74822 -5.81978,-0.80831 -3.23321,-2.26324 1.13163,-2.74823 2.26324,0.32332 0.16166,-0.64664 -1.77826,-0.96996 0,-0.48499 3.23321,0 1.77826,-3.07154 -1.29328,-1.93993 -0.32332,-2.74823 -1.45495,0.16166 -1.93992,2.10159 -0.64664,2.58657 -3.07155,-0.64665 -0.96997,-1.77826 1.77827,-1.93993 1.90333,-3.4456 -1.0611,-2.41227 -1.16564,-3.98133 z",MS:"m 631.55882,459.34458 -0.25426,1.25615 -5.17314,0 -1.45494,-0.8083 -2.10159,-0.32332 -6.78974,1.93992 -1.77826,-0.8083 -2.58657,4.20317 -1.10254,0.77802 -1.12383,-2.48798 -1.14312,-3.88659 -3.42933,-3.20071 1.1431,-5.54455 -0.68586,-0.91449 -1.82898,0.22862 -7.91792,0.87337 -24.5465,0.37337 -0.76974,-2.22536 0.87337,-8.3768 3.11684,-5.67281 5.22707,-9.1449 -0.44574,-2.4326 1.23686,-0.65625 0.43587,-1.91947 -2.31748,-2.07898 -0.11512,-2.14148 -1.83572,-4.12109 -0.109,-5.96277 1.32753,-2.48097 -0.2233,-3.41575 -1.76949,-3.08259 1.52642,-1.48221 -1.57061,-2.49954 0.45725,-1.65221 1.5774,-6.52637 2.48595,-2.03635 -0.64167,-2.36697 3.65797,-5.30253 2.83186,-1.35642 -0.22097,-1.67516 -0.28813,-1.6811 2.87606,-5.56767 2.34572,-1.23151 0.15163,-0.89301 37.34348,-3.88117 0.18486,6.28333 0.16166,16.65106 -0.8083,31.03885 -0.16166,14.06449 2.74824,18.75264 1.48437,13.39529 z",IA:"m 569.19154,199.5843 0.26438,2.7862 2.22372,0.57726 0.95394,1.22533 0.50001,1.85536 3.79284,3.35865 0.68587,2.3915 -0.67434,3.42447 -1.58231,3.23198 -0.79934,2.74179 -2.17275,1.60204 -1.71551,0.5724 -5.57902,1.8602 -1.39146,3.84869 0.72864,1.37174 1.84051,1.68259 -0.28293,4.03629 -1.76315,1.53786 -0.77141,1.64314 0.12722,2.77632 -1.88631,0.45724 -1.62545,1.10491 -0.27879,1.35263 0.27879,2.11492 -1.55102,1.11607 -2.47053,-3.13328 -1.26257,-2.44987 -65.73582,2.51485 -0.91803,0.16544 -2.0524,-4.51596 -0.22862,-6.63007 -1.60036,-4.11521 -0.68586,-5.25831 -2.28623,-3.65797 -0.91448,-4.80107 -2.74348,-7.54455 -1.14311,-5.37264 -1.37174,-2.17191 -1.60036,-2.74346 1.95398,-4.84383 1.37174,-5.71557 -2.74347,-2.05761 -0.45725,-2.74347 0.9145,-2.51485 1.71467,0 82.654,-1.26948 0.83426,4.18312 2.25218,1.56097 0.25671,1.42309 -2.02954,3.38931 0.19041,3.20552 2.51486,3.7982 2.52679,1.29362 3.07928,0.50305 0.65834,0.83236 z",MN:"m 475.23781,128.82439 -0.45725,-8.45904 -1.82898,-7.31592 -1.82898,-13.488725 -0.45725,-9.830778 -1.82898,-3.429343 -1.60036,-5.029695 0,-10.28802 0.68586,-3.886587 -1.82093,-5.451667 30.13242,0.03527 0.32332,-8.244684 0.64664,-0.161661 2.26325,0.484982 1.93992,0.808302 0.8083,5.496456 1.45495,6.143098 1.6166,1.616605 4.84982,0 0.32332,1.454944 6.30476,0.323321 0,2.101586 4.84981,0 0.32332,-1.293284 1.13162,-1.131623 2.26325,-0.646642 1.29328,0.969963 2.90989,0 3.87985,2.586567 5.3348,2.424907 2.42491,0.484982 0.48498,-0.969963 1.45494,-0.484982 0.48498,2.909889 2.58657,1.293284 0.48498,-0.484982 1.29329,0.161661 0,2.101586 2.58656,0.969963 3.07155,0 1.61661,-0.808303 3.23321,-3.233209 2.58656,-0.484981 0.80831,1.778265 0.48498,1.293283 0.96996,0 0.96996,-0.808302 8.89133,-0.323321 1.77826,3.071549 0.64665,0 0.71361,-1.084279 4.43991,-0.370665 -0.6121,2.279459 -3.93872,1.837125 -9.24578,4.061128 -4.77474,2.006897 -3.07155,2.586568 -2.42491,3.55653 -2.26324,3.879851 -1.77827,0.808304 -4.52649,5.01147 -1.29329,0.16166 -4.32778,2.75712 -2.46288,3.20511 -0.22862,3.19139 0.0944,8.04335 -1.37604,1.68875 -5.08154,3.75997 -2.23008,5.98241 2.87175,2.23371 0.67989,3.22698 -1.85524,3.23893 0.17079,3.74802 0.36886,6.7304 3.02825,3.00199 3.329,0 1.89111,3.1326 3.37917,0.50327 3.85916,5.67147 7.08729,4.11675 2.14315,2.87512 0.67115,6.43951 -81.2115,1.14479 -0.33792,-35.67685 -0.45724,-2.97209 -4.11521,-3.42934 -1.14312,-1.82898 0,-1.60037 2.0576,-1.60035 1.37174,-1.37174 0.22863,-3.20072 z",OK:"m 380.34313,320.82146 -16.68418,-1.27331 -0.88022,10.95243 20.46538,1.15688 32.05555,1.3036 -2.3346,24.41865 -0.45725,17.83257 0.22863,1.60036 4.34383,3.65796 2.0576,1.14311 0.68587,-0.22862 0.68587,-2.05761 1.37174,1.82899 2.0576,0 0,-1.37174 2.74347,1.37174 -0.45724,3.88658 4.11521,0.22862 2.51484,1.14312 4.11521,0.68587 2.51485,1.82898 2.28623,-2.0576 3.42934,0.68586 2.51485,3.42934 0.91448,0 0,2.28623 2.28623,0.68586 2.28622,-2.28622 1.82899,0.68586 2.51484,0 0.9145,2.51486 6.30107,2.07897 1.37174,-0.68586 1.82898,-4.11521 1.14311,0 1.14312,2.0576 4.11521,0.68587 3.65795,1.37174 2.9721,0.91449 1.82899,-0.91449 0.68586,-2.51485 4.34383,0 2.0576,0.91449 2.74347,-2.05761 1.14312,0 0.68587,1.60036 4.1152,0 1.60036,-2.0576 1.82899,0.45724 2.0576,2.51486 3.20071,1.82897 3.20073,0.9145 1.94108,1.11893 -0.3891,-37.21701 -1.37175,-10.97398 -0.16046,-8.87234 -1.43989,-6.53773 -0.7782,-7.17964 -0.0681,-3.81622 -12.13684,0.31874 -46.41004,-0.45724 -45.03891,-2.05762 -24.2912,-1.37173 z",TX:"m 361.46423,330.57358 22.69079,1.08594 31.09269,1.14312 -2.33461,23.4558 -0.29676,18.15352 0.0681,2.08179 4.34383,3.81843 1.98665,1.44716 1.18421,-0.55969 0.37337,-1.81772 1.14032,1.80362 2.11164,0.0439 -0.003,-1.44709 1.66994,0.96727 1.1387,0.40887 -0.35927,3.96765 4.08819,0.0935 2.92532,1.19717 3.95474,0.52538 2.38138,2.07898 2.1241,-2.07617 3.72494,0.61491 2.22091,3.22494 1.07496,0.32096 -0.16047,1.96527 2.21361,0.79229 2.33015,-2.0548 2.13302,0.61492 2.22938,0.0355 0.93307,2.43544 6.32809,2.11445 1.59305,-0.76693 1.48947,-4.17771 0.34072,0 0.90649,0.0816 1.22905,2.06863 3.92988,0.66528 3.337,1.12288 3.42563,1.19597 1.84058,-0.975 0.71376,-2.51484 4.45322,0.0442 1.80874,0.93078 2.79925,-2.10651 1.10364,0.0442 0.85104,1.60507 4.05472,0 1.51887,-2.02862 1.86737,0.40724 1.94603,2.40328 3.52057,2.04415 2.85876,0.80981 1.51362,0.79984 2.4467,1.99732 3.04304,-1.32779 2.69109,1.13888 0.56381,6.10594 -0.0398,9.70217 0.68586,9.53401 0.70218,3.60511 2.67533,4.41986 0.89818,4.95073 4.21595,5.53802 0.19602,3.14494 0.74637,0.78584 -0.73007,8.38007 -2.8721,5.0065 1.53297,2.15287 -0.63008,2.33808 -0.66957,7.40432 -1.50432,3.338 0.29488,3.50235 -5.66488,1.58518 -9.86129,4.5265 -0.96996,1.93992 -2.58657,1.93993 -2.10158,1.45494 -1.29329,0.8083 -5.65811,5.3348 -2.74823,2.10159 -5.3348,3.2332 -5.65811,2.42491 -6.30476,3.39487 -1.77826,1.45495 -5.81978,3.55653 -3.39487,0.64664 -3.87985,5.49645 -4.04151,0.32333 -0.96997,1.93992 2.26325,1.93993 -1.45495,5.49645 -1.29328,4.5265 -1.13162,3.87985 -0.8083,4.52649 0.8083,2.42491 1.77826,6.9514 0.96997,6.14309 1.77826,2.74823 -0.96996,1.45495 -3.07155,1.93992 -5.65812,-3.87985 -5.49645,-1.13162 -1.29329,0.48498 -3.23321,-0.64664 -4.20317,-3.07155 -5.17313,-1.13162 -7.59805,-3.39487 -2.10158,-3.87986 -1.29329,-6.46641 -3.2332,-1.93993 -0.64665,-2.26325 0.64665,-0.64664 0.32332,-3.39487 -1.29329,-0.64664 -0.64664,-0.96996 1.29328,-4.36484 -1.6166,-2.26324 -3.23321,-1.29329 -3.39487,-4.36483 -3.55653,-6.62808 -4.20317,-2.58657 0.16166,-1.93992 -5.3348,-12.2862 -0.8083,-4.20317 -1.77826,-1.93992 -0.16166,-1.45495 -5.98144,-5.33479 -2.58657,-3.07155 0,-1.13163 -2.58657,-2.10158 -6.78974,-1.13163 -7.43638,-0.64664 -3.07155,-2.26324 -4.52649,1.77826 -3.55653,1.45495 -2.26325,3.2332 -0.96996,3.7182 -4.36483,6.14309 -2.42491,2.42491 -2.58657,-0.96996 -1.77826,-1.13163 -1.93993,-0.64664 -3.87985,-2.26324 0,-0.64665 -1.77826,-1.93992 -5.17314,-2.10159 -7.43638,-7.7597 -2.26325,-4.68815 0,-8.08303 -3.23321,-6.46642 -0.48498,-2.74822 -1.6166,-0.96997 -1.13163,-2.10158 -5.01147,-2.10159 -1.29328,-1.6166 -7.11307,-7.92137 -1.29328,-3.23321 -4.68816,-2.26325 -1.45495,-4.36487 -2.58659,-2.90987 -1.93991,-0.48496 -0.64923,-4.67764 8.00187,0.68589 29.03499,2.74345 29.03508,1.60036 2.23353,-19.46182 3.88655,-55.55502 1.60039,-18.74732 1.37174,0.0286 m 99.02935,229.66274 -0.56581,-7.11308 -2.74824,-7.19392 -0.56582,-7.03225 1.53578,-8.24471 3.31406,-6.87059 3.4757,-5.41565 3.1524,-3.55655 0.64664,0.2425 -4.769,6.6281 -4.36484,6.54728 -2.02077,6.62809 -0.32332,5.17316 0.88913,6.14312 2.58658,7.19392 0.48498,5.17314 0.16166,1.45496 -0.88913,0.24248 z",NM:"m 288.15255,424.01315 -0.77541,-4.7481 8.64378,0.5254 30.17176,2.9459 27.26816,1.68989 2.21527,-18.70747 3.85736,-55.87597 1.73768,-19.38923 1.5717,0.12856 0.8254,-11.16339 -104.00445,-10.63595 -17.49735,120.43481 15.46067,1.98915 1.29328,-10.02295 29.23215,2.82935 z",KS:"m 507.88059,324.38028 -12.61826,0.20443 -46.08909,-0.45723 -44.55748,-2.05763 -24.62974,-1.25741 3.89379,-64.59497 22.08346,0.67517 40.28913,0.8414 44.30124,0.98758 5.09563,0 2.1844,2.1624 2.01766,-0.0214 1.6403,1.01247 -0.0625,3.00923 -1.82898,1.72537 -0.33225,2.23217 1.84308,3.40233 2.95236,3.19506 2.32735,1.61446 1.30077,11.24082 0.18913,36.08573 z",NE:"m 486.09787,240.70058 3.23061,7.01991 -0.12863,2.30252 3.45922,5.49388 2.71929,3.15234 -5.04948,0 -43.48256,-0.93868 -40.78686,-0.8903 -22.25222,-0.78387 1.07277,-21.32785 -32.31824,-2.92025 4.34383,-44.00986 15.54633,1.02881 20.11879,1.1431 17.83257,1.14312 23.77676,1.14311 10.74526,-0.45724 2.0576,2.28622 4.80108,2.9721 1.14311,0.91449 4.34383,-1.37174 3.88659,-0.45724 2.74347,-0.22863 1.82898,1.37174 4.05743,1.60036 2.97209,1.60036 0.45725,1.60036 0.91449,2.0576 1.82898,0 0.79798,0.0462 0.89423,4.68182 2.92026,8.46792 0.57253,3.75671 2.52349,3.77425 0.56959,5.11414 1.60724,4.24037 0.25234,6.47426 z",SD:"m 476.44687,204.02465 -0.0474,-0.58087 -2.89571,-4.84544 1.86023,-4.71211 1.49273,-5.88654 -2.78187,-2.07971 -0.38516,-2.74346 0.7924,-2.55435 3.18851,0.0152 -0.12308,-5.00614 -0.3333,-30.17425 -0.61773,-3.76758 -4.07232,-3.33093 -0.98263,-1.67696 -0.0625,-1.60882 2.02212,-1.5294 1.53222,-1.66567 0.24496,-2.65679 -58.25709,-1.60035 -54.79921,-3.44909 -5.32527,63.69119 14.59027,0.9038 19.94985,1.20561 17.74305,0.92859 23.77676,1.30358 11.9827,-0.42464 1.9663,2.24518 5.19464,3.25335 0.76389,0.72275 4.54144,-1.45281 6.54054,-0.61491 1.6753,1.33627 4.20451,1.59613 2.94506,1.63583 0.39898,1.48381 1.03949,2.24088 2.23737,-0.20136 z",ND:"m 475.30528,128.91846 -0.61491,-8.43367 -1.67695,-6.81592 -1.89149,-13.02422 -0.45724,-10.987026 -1.73946,-3.077142 -1.75661,-5.194396 0.0312,-10.44427 0.62336,-3.824087 -1.8341,-5.467761 -28.64225,-0.564027 -18.59095,-0.646642 -26.51232,-1.293284 -22.94634,-2.133869 -6.99324,67.176834 54.93224,3.34365 58.06901,1.38583 z",WY:"m 360.37668,143.27587 -106.7426,-13.45706 -14.08348,88.45803 113.26461,13.58549 7.56147,-88.58646 z",MT:"M 369.20952,56.969133 338.5352,54.1613 l -29.26055,-3.55653 -29.26054,-4.041512 -32.3321,-5.334795 -18.42929,-3.39487 -32.72365,-6.932736 -4.47902,21.347532 3.42934,7.544541 -1.37174,4.572452 1.82898,4.572451 3.20073,1.371739 4.62082,10.769453 2.6951,3.176523 0.45724,1.143118 3.42934,1.143118 0.45725,2.057593 -7.0873,17.603953 0,2.51485 2.51485,3.20071 0.91448,0 4.80107,-2.97209 0.68588,-1.14312 1.60036,0.68587 -0.22863,5.25832 2.74348,12.57425 2.97209,2.51484 0.91448,0.68587 1.82899,2.28622 -0.45725,3.42935 0.68587,3.42933 1.14312,0.9145 2.28622,-2.28623 2.74347,0 3.20072,1.60036 2.51485,-0.91449 4.11521,0 3.65795,1.60036 2.74348,-0.45725 0.45724,-2.9721 2.97209,-0.68586 1.37174,1.37174 0.45725,3.20071 1.42587,0.83464 1.88695,-11.03474 106.74567,13.42892 8.80221,-86.299157 z",CO:"m 380.03242,320.96457 4.90324,-86.32496 -113.38856,-12.64396 -12.21382,87.93916 120.69914,11.02976 z",ID:"m 148.47881,176.48395 8.77087,-35.22072 1.37174,-4.22952 2.51484,-5.94418 -1.25742,-2.28623 -2.51486,0.11431 -0.80017,-1.0288 0.45725,-1.14311 0.34292,-3.08641 4.45815,-5.48695 1.82898,-0.45724 1.14311,-1.14311 0.57156,-3.20072 0.91448,-0.68586 3.88659,-5.82988 3.88659,-4.34383 0.22862,-3.772268 -3.42934,-2.629163 -1.53555,-4.400983 13.62491,-63.341691 13.51759,2.528111 -4.40808,21.383013 3.56035,7.485352 -1.58111,4.66084 1.96985,4.641233 3.13822,1.255191 3.83534,9.556588 3.51269,4.437154 0.50725,1.143118 3.34095,1.143118 0.36885,2.097075 -6.97101,17.376092 -0.16518,2.56593 2.63112,3.3217 0.90508,-0.0489 4.91129,-3.0256 0.67742,-1.09497 1.56231,0.65886 -0.27844,5.35372 2.73925,12.58271 3.91783,3.17791 1.68118,2.16545 -0.71661,4.08386 1.06622,2.80741 1.06163,1.09128 2.47929,-2.35142 2.84816,0.0489 2.91925,1.3352 2.78002,-0.68193 3.79426,-0.16048 3.9789,1.60036 2.74348,-0.29676 0.49674,-3.03731 2.93259,-0.76483 1.26017,1.51591 0.44093,2.94496 1.42434,1.21321 -8.386,53.60866 c 0,0 -87.96599,-16.70061 -94.95939,-18.20435 z",UT:"m 259.49836,310.10509 -83.74903,-11.87225 20.58761,-112.54135 46.78031,8.74514 -1.4848,10.63042 -2.31162,13.17266 7.80769,0.92837 16.40652,1.80479 8.21097,0.85564 -12.24765,88.27658 z",AZ:"m 144.9112,382.62909 -2.62701,2.15833 -0.32332,1.45495 0.48498,0.96996 18.91427,10.66959 12.12454,7.59804 14.7111,8.56801 16.81269,10.02295 12.2862,2.42491 24.95116,2.70491 17.25561,-119.12707 -83.73563,-11.91725 -3.09239,16.41246 -1.60629,0.0153 -1.71467,2.62916 -2.51485,-0.11432 -1.25742,-2.74347 -2.74347,-0.34293 -0.9145,-1.14311 -0.91448,0 -0.9145,0.57156 -1.94329,1.0288 -0.1143,6.97298 -0.22864,1.71467 -0.57154,12.57424 -1.48605,2.17191 -0.57156,3.31503 2.74347,4.91539 1.25742,5.82988 0.80019,1.0288 1.0288,0.57156 -0.11432,2.28622 -1.60035,1.37173 -3.42934,1.71467 -1.94329,1.9433 -1.48605,3.65795 -0.57156,4.91539 -2.85778,2.74347 -2.0576,0.68587 0.13569,0.82988 -0.45725,1.71467 0.45725,0.80018 3.65796,0.57154 -0.57156,2.74348 -1.48605,2.17191 -3.77227,0.91449 z",NV:"m 196.39273,185.57552 -23.63891,128.82275 -1.83224,0.34915 -1.57276,2.40618 -2.37294,0.0107 -1.47195,-2.74347 -2.61847,-0.37842 -0.77092,-1.10763 -1.03783,-0.054 -2.77837,1.64429 -0.31026,6.78548 -0.36209,5.77717 -0.34857,8.59281 -1.4471,2.08916 -2.43892,-1.07403 -69.079886,-104.20119 18.989116,-67.58491 93.0921,20.66601 z",OR:"m 148.72184,175.53153 8.8497,-34.80151 1.05079,-4.22952 2.35437,-5.62323 -0.61551,-1.16288 -2.51486,-0.0462 -1.2816,-1.6707 0.45724,-1.46407 0.50341,-3.24688 4.45815,-5.48695 1.82898,-1.09915 1.14311,-1.14311 1.48604,-3.56563 4.04706,-5.6694 3.56563,-3.8624 0.22862,-3.451314 -3.26886,-2.468682 -1.78341,-4.642625 -12.66377,-3.61197 -15.08909,-3.54365 -15.43202,0.114306 -0.45724,-1.371729 -5.48695,2.057604 -4.45814,-0.571559 -2.40054,-1.600361 -1.25742,0.685875 -4.68676,-0.228632 -1.71467,-1.371729 -5.25832,-2.057604 -0.800182,0.114316 -4.34383,-1.486056 -1.943291,1.828983 -6.172812,-0.342927 -5.944183,-4.115209 0.685865,-0.80018 0.228621,-7.773173 -2.286225,-3.886577 -4.115208,-0.571559 -0.685865,-2.514847 -2.353932,-0.466565 -5.798525,2.058784 -2.263247,6.466418 -3.233209,10.022949 -3.23321,6.466419 -5.011474,14.064461 -6.466419,13.579473 -8.083023,12.60952 -1.939926,2.90989 -0.808302,8.568 0.386095,12.08023 112.578342,26.32133 z",WA:"m 102.07324,7.6117734 4.36483,1.4549443 9.69963,2.7482283 8.568,1.939925 20.0459,5.658117 22.95579,5.658116 15.22312,3.207173 -13.63236,63.585811 -12.445,-3.525318 -15.50801,-3.570679 -15.22929,0.03324 -0.45557,-1.344699 -5.59922,2.179293 -4.59543,-0.736744 -2.14697,-1.584054 -1.31321,0.657976 -4.73566,-0.140243 -1.69836,-1.349633 -5.26304,-2.112303 -0.734971,0.146918 -4.389122,-1.524448 -1.893298,1.817379 -6.265906,-0.298733 -5.925698,-4.125702 0.778957,-0.932763 0.121223,-7.677452 -2.281999,-3.839701 -4.115208,-0.60704 -0.67741,-2.510616 -2.275512,-0.456932 -3.554948,1.230576 -2.263247,-3.219247 0.323321,-2.909889 2.748228,-0.323321 1.616605,-4.041511 -2.586568,-1.131624 0.161661,-3.718191 4.364833,-0.646641 -2.748228,-2.748228 -1.454945,-7.113061 0.646642,-2.909888 0,-7.921363 -1.778265,-3.23321 2.263247,-9.376307 2.101586,0.484981 2.424907,2.909889 2.748228,2.586567 3.233209,1.939926 4.526493,2.101586 3.071551,0.646642 2.909889,1.454944 3.394873,0.969963 2.263246,-0.16166 0,-2.424908 1.293284,-1.131623 2.101582,-1.293284 0.32333,1.131624 0.32332,1.778265 -2.263251,0.484981 -0.323321,2.101586 1.778262,1.454945 1.13163,2.424907 0.64664,1.939925 1.45494,-0.16166 0.16166,-1.293284 -0.96996,-1.293284 -0.48498,-3.233209 0.8083,-1.778265 -0.64664,-1.454944 0,-2.263247 1.77827,-3.55653 -1.13163,-2.586568 -2.42491,-4.8498139 0.32333,-0.8083023 1.13162,-0.8083024 z m -9.456692,5.9789646 2.020764,-0.16166 0.484982,1.374119 1.535779,-1.616615 2.344082,0 0.808303,1.535779 -1.53578,1.69744 0.646652,0.808313 -0.727477,2.020761 -1.374119,0.404146 c 0,0 -0.889138,0.08084 -0.889138,-0.242485 0,-0.323321 1.454955,-2.586578 1.454955,-2.586578 l -1.69744,-0.565817 -0.323321,1.454954 -0.727478,0.646642 -1.535782,-2.263257 -0.484982,-2.505742 z",CA:"m 144.69443,382.19813 3.94008,-0.48862 1.48604,-2.01144 0.54454,-2.94109 -3.55152,-0.59012 -0.51417,-0.66822 0.4775,-2.03231 -0.15928,-0.58967 1.92257,-0.61959 3.04278,-2.83268 0.58156,-4.9951 1.3799,-3.40211 1.94329,-2.16626 3.51887,-1.58967 1.65439,-1.60483 0.0687,-2.10884 -0.99333,-0.58001 -1.02315,-1.07273 -1.15522,-5.84845 -2.6852,-4.83009 0.56581,-3.505 -2.41958,-1.02931 -69.061322,-104.1784 18.902112,-67.60149 -67.079863,-15.69796 -1.506896,4.73324 -0.161661,7.43638 -5.173135,11.80121 -3.071548,2.58657 -0.323321,1.13162 -1.778266,0.80831 -1.454944,4.20317 -0.808302,3.23321 2.748228,4.20317 1.616605,4.20317 1.131623,3.55653 -0.323321,6.46642 -1.778265,3.07155 -0.646642,5.81978 -0.969963,3.71819 1.778265,3.87985 2.748228,4.52649 2.263247,4.84982 1.293283,4.04151 -0.32332,3.23321 -0.323321,0.48498 0,2.10158 5.658116,6.30476 -0.484981,2.42491 -0.646642,2.26325 -0.646642,1.93992 0.16166,8.24469 2.101586,3.71819 1.939926,2.58656 2.748228,0.48499 0.969963,2.74822 -1.131623,3.55653 -2.101587,1.61661 -1.131623,0 -0.808302,3.87985 0.484981,2.90989 3.23321,4.36483 1.616604,5.3348 1.454944,4.68815 1.293284,3.07155 3.39487,5.81978 1.454944,2.58656 0.484982,2.90989 1.616604,0.96996 0,2.42491 -0.808302,1.93993 -1.778265,7.11306 -0.484982,1.93992 2.424908,2.74823 4.203172,0.48498 4.526493,1.77827 3.879851,2.10158 2.909889,0 2.909888,3.07155 2.586567,4.84982 1.131624,2.26324 3.879851,2.10159 4.849814,0.8083 1.454944,2.10159 0.646642,3.23321 -1.454944,0.64664 0.323321,0.96996 3.233211,0.8083 2.748228,0.16167 3.159889,-1.68685 3.879854,4.20317 0.808302,2.26325 2.586572,4.20317 0.32332,3.23321 0,9.37631 0.48498,1.77826 10.02295,1.45495 19.72257,2.74822 13.84504,1.3497 z m -88.135212,-43.71668 1.293288,1.53578 -0.16166,1.29329 -3.233221,-0.0808 -0.565814,-1.21246 -0.646644,-1.45495 3.314051,-0.0808 z m 1.939932,0 1.212458,-0.64664 3.556543,2.10159 3.07156,1.21245 -0.889136,0.64666 -4.526509,-0.2425 -1.61661,-1.61661 -0.808306,-1.45495 z m 20.692614,19.80348 1.778265,2.34408 0.808313,0.96997 1.535779,0.56581 0.565807,-1.45495 -0.969963,-1.77827 -2.667403,-2.02076 -1.050798,0.16166 0,1.21246 z m -1.454955,8.64886 1.778276,3.15239 1.212458,1.93994 -1.454954,0.24248 -1.293284,-1.21245 c 0,0 -0.727477,-1.45495 -0.727477,-1.85911 0,-0.40414 0,-2.18242 0,-2.18242 l 0.484981,-0.0808 z"}}}}),b}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries.js b/htdocs/public/high/plugins/jquery-mapael/maps/world_countries.js deleted file mode 100644 index 222326c9..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries.js +++ /dev/null @@ -1,229 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires jQuery and Mapael - * - * Map of World by country - * - * @source http://backspace.com/mapapp/javascript_world/ - */ - -(function (factory) { - if (typeof exports === 'object') { - // CommonJS - module.exports = factory(require('jquery'), require('mapael')); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery', 'mapael'], factory); - } else { - // Browser globals - factory(jQuery, jQuery.mapael); - } -}(function ($, Mapael) { - - "use strict"; - - $.extend(true, Mapael, - { - maps : { - world_countries : { - width : 1000, - height : 400, - getCoords : function (lat, lon) { - var xfactor = 2.752; - var xoffset = 473.75; - var x = (lon * xfactor) + xoffset; - - var yfactor = -2.753; - var yoffset = 231; - var y = (lat * yfactor) + yoffset; - - return {x : x, y : y}; - }, - 'elems': { - "AE" : "M615.622,164.177l0.582,0.000l0.000,0.580l2.324,-0.289l2.326,0.000l1.455,0.000l2.033,-1.743l2.034,-1.743l1.745,-1.742l0.583,0.871l0.291,2.324l-1.456,0.000l-0.289,1.742l0.581,0.291l-1.163,0.580l0.000,1.161l-0.873,1.162l0.000,1.162l-0.580,0.580l-8.430,-1.452l-0.872,-2.613l0.291,0.871z", - "AF" : "M642.364,132.815l2.617,1.162l2.034,-0.291l0.581,-1.452l2.325,-0.291l1.454,-0.870l0.583,-2.323l2.326,-0.291l0.580,-1.162l1.164,0.871l0.871,0.000l1.453,0.000l2.035,0.582l0.871,0.290l2.036,-0.872l0.872,0.582l0.872,-1.162l1.745,0.000l0.289,-0.291l0.290,-1.161l1.455,-1.161l1.454,0.871l-0.291,0.871l0.581,0.000l0.000,2.323l0.873,0.872l1.161,-0.581l1.162,-0.291l1.744,-1.162l1.745,0.290l2.909,0.000l0.580,0.582l-1.743,0.290l-1.454,0.581l-2.907,0.291l-3.197,0.580l-1.454,1.161l0.581,1.162l0.289,1.452l-1.450,1.161l0.289,1.162l-0.872,0.871l-2.616,0.000l1.161,1.743l-1.742,0.580l-1.162,1.743l0.000,1.743l-0.875,0.580l-1.160,0.000l-2.036,0.290l-0.292,0.581l-2.034,0.000l-1.452,1.742l-0.291,2.323l-3.488,1.161l-2.035,-0.289l-0.581,0.580l-1.455,-0.291l-2.907,0.291l-4.649,-1.452l2.615,-2.323l-0.289,-1.742l-2.036,-0.581l-0.290,-1.743l-0.873,-2.032l1.163,-1.742l-1.163,-0.291l0.873,-2.032l-1.161,3.485z", - "AL" : "M530.451,115.973l-0.289,0.871l0.289,1.161l1.165,0.581l0.000,0.872l-0.873,0.291l-0.292,0.869l-1.160,1.453l-0.583,-0.291l0.000,-0.580l-1.454,-0.871l-0.292,-1.452l0.292,-1.742l0.292,-0.872l-0.584,-0.580l0.000,-0.872l1.163,-1.162l0.292,0.291l0.582,0.000l0.581,0.581l0.582,0.290l-0.289,-1.162z", - "AM" : "M593.82,118.005l3.780,-0.580l0.581,0.870l0.871,0.291l-0.289,0.872l1.452,0.871l-0.871,0.871l1.163,0.871l1.162,0.290l0.000,2.032l-0.873,0.000l-1.163,-1.451l0.000,-0.581l-1.160,0.000l-0.873,-0.581l-0.582,0.000l-1.162,-0.871l-2.036,-0.580l0.292,-1.452l0.292,0.872z", - "AO" : "M518.825,247.227l0.582,2.032l0.871,1.453l0.581,0.87l0.874,1.452h2.033l0.873-0.581l1.452,0.581l0.582-0.871l0.581-1.451l1.744-0.291v-0.29h1.452l-0.289,0.871h3.488v1.742l0.579,1.161l-0.579,1.453l0.29,1.74l0.873,1.162v3.195l0.581-0.292h1.162l1.745-0.29h1.161l0.291,0.871l-0.291,1.452l0.583,1.161l-0.292,1.161v0.873h-5.524l-0.289,8.711l2.034,2.322l1.745,1.744l-5.232,1.161l-6.396-0.582l-2.033-1.161h-11.047l-0.581,0.291l-1.745-1.161l-1.743-0.292l-1.455,0.581l-1.452,0.581l-0.29-1.742l0.581-2.612l0.871-2.324v-1.161l0.874-2.613l0.871-1.163l1.452-1.742l0.873-1.16l0.292-2.033v-1.451l-0.874-1.162l-0.871-1.742l-0.581-1.452v-0.581l0.872-1.161l-0.872-2.613l-0.291-1.742l-1.455-1.741l0.292-0.582l1.163-0.581l0.581,0.291l1.162-0.581L518.825,247.227zM508.071,246.646l-0.874,0.291l-0.581-2.031l1.163-1.163l0.87-0.581l0.874,0.871l-0.874,0.58l-0.578,0.872V246.646z", - "AR" : "M293.546,382.836h-2.616l-1.454-0.87h-1.745h-2.907v-6.389l1.163,1.45l1.163,2.033l3.779,1.744l3.778,0.58L293.546,382.836zM295,291.656l1.452,2.033l1.163-2.323l3.198,0.29l0.291,0.581l5.232,4.356l2.326,0.29l3.198,2.033l2.906,1.161l0.291,1.162l-2.617,4.354l2.617,0.58l3.197,0.581l2.326-0.581l2.326-2.032l0.582-2.322l1.163-0.58l1.454,1.45v2.324l-2.325,1.45l-1.745,1.163l-3.198,2.612l-3.779,3.777l-0.582,2.321l-0.872,2.613l0.291,2.905l-0.872,0.58v1.741l-0.29,1.452l3.487,2.323l-0.291,2.033l1.745,1.161l-0.291,1.162l-2.616,3.773l-4.07,1.455l-5.522,0.579l-2.907-0.29l0.582,1.451l-0.582,2.033l0.291,1.452l-1.454,0.871l-2.907,0.58l-2.616-1.161l-1.163,0.871l0.583,2.613l1.744,0.872l1.452-0.872l0.873,1.453l-2.617,0.87l-2.035,1.743l-0.582,2.613l-0.58,1.451h-2.617l-2.035,1.451l-0.873,2.033l2.617,2.032l2.615,0.582l-0.872,2.613l-3.197,1.452l-1.744,3.194l-2.616,1.161l-1.163,1.163l0.872,2.902l2.035,1.742l-1.163-0.291l-2.617-0.29l-6.685-0.58l-1.163-1.453v-2.03h-1.744l-0.873-0.873l-0.291-2.904l2.035-1.161l0.873-1.741l-0.292-1.453l1.455-2.323l0.872-3.775l-0.291-1.451l1.452-0.58l-0.29-1.162l-1.454-0.289l0.873-1.162l-1.162-1.162l-0.582-3.194l1.164-0.581l-0.582-3.193l0.582-2.904l0.872-2.613l1.453-0.87l-0.581-2.615l-0.292-2.613l2.326-1.742l-0.29-2.323l1.744-2.613v-2.613l-0.873-0.58l-1.163-4.646l1.744-2.904l-0.291-2.612l0.872-2.614l2.035-2.324l1.744-1.741l-0.872-1.163l0.582-0.87v-4.646l2.907-1.451l1.163-2.613l-0.291-0.872l2.034-2.324L295,291.656z", - "AT" : "M520.57,98.549l-0.292,1.162l-1.453,0.000l0.582,0.581l-1.164,1.742l-0.291,0.580l-2.616,0.000l-1.162,0.582l-2.326,-0.291l-4.069,-0.580l-0.582,-0.872l-2.615,0.292l-0.291,0.580l-1.746,-0.291l-1.452,0.000l-1.162,-0.581l0.289,-0.581l0.000,-0.580l0.873,-0.291l1.452,0.871l0.292,-0.871l2.326,0.291l2.034,-0.581l1.452,0.000l0.584,0.581l0.290,-0.291l-0.290,-1.742l0.872,-0.580l1.162,-1.162l2.035,0.871l1.453,-1.162l0.871,0.000l2.326,0.581l1.163,0.000l1.455,0.581l-0.292,0.291l-0.292,-0.870z", - "AU" : "M874.039,343.054l2.616,0.871l1.454-0.29l2.325-0.581l1.453,0.291l0.291,3.193l-0.87,0.872l-0.293,2.321l-1.162-0.579l-1.744,1.741h-0.582l-1.743-0.289l-1.745-2.324l-0.289-1.742l-1.744-2.323l0.29-1.451L874.039,343.054zM868.806,268.715l1.163,2.324l1.744-1.163l0.873,1.163l1.452,1.161l-0.289,1.161l0.58,2.324l0.291,1.45l0.873,0.29l0.579,2.323l-0.289,1.453l0.871,1.741l3.198,1.453l1.744,1.451l2.034,1.161l-0.582,0.581l1.745,1.742l0.87,2.904l1.165-0.581l1.163,1.452l0.581-0.581l0.579,2.904l2.036,1.742l1.163,1.161l2.034,2.033l0.873,2.322v1.452v1.742l1.163,2.323v2.323l-0.582,1.452l-0.581,2.323v1.742l-0.582,2.033l-1.162,2.322l-2.034,1.453l-1.163,2.031l-0.872,1.453l-0.872,2.322l-0.871,1.451l-0.873,2.033l-0.292,1.743v0.87l-1.452,1.163h-3.198l-2.326,1.159l-1.452,1.163l-1.454,1.161l-2.325-1.45l-1.743-0.293l0.289-1.45l-1.452,0.58l-2.325,1.744l-2.326-0.581l-1.743-0.582h-1.454l-2.616-0.871l-1.744-1.743l-0.582-2.032l-0.58-1.452l-1.456-1.162l-2.614-0.29l0.873-1.161l-0.581-2.033l-1.455,1.744l-2.326,0.579l1.455-1.452l0.292-1.74l1.161-1.453l-0.291-2.032l-2.324,2.612l-1.745,0.873l-0.873,2.03l-2.323-1.161l0.29-1.452l-1.744-1.741l-1.455-1.161l0.583-0.581l-3.779-1.743h-1.744l-2.616-1.45l-4.942,0.29l-3.778,0.871l-2.907,1.162l-2.615-0.292l-2.908,1.451l-2.616,0.581l-0.289,1.452l-1.163,1.161h-2.325l-1.744,0.291l-2.325-0.581l-2.036,0.29l-2.034,0.291l-1.455,1.452l-0.871-0.291l-1.452,0.871l-1.163,0.873h-2.036h-2.034l-2.906-1.744l-1.452-0.58v-1.742l1.452-0.291l0.581-0.58l-0.29-1.161l0.58-1.743l-0.29-1.741l-1.454-2.614l-0.579-1.742v-1.452l-0.873-1.743l-0.29-0.87l-1.163-1.162l-0.292-2.033l-1.454-2.323l-0.579-1.161l1.163,1.161l-0.874-2.321l1.455,0.58l0.873,1.161v-1.451l-1.454-2.033l-0.292-0.87l-0.582-0.872l0.29-1.742l0.584-0.581l0.289-1.451l-0.289-1.453l1.162-2.032l0.292,2.032l1.161-1.743l2.034-1.159l1.454-1.162l2.034-0.872l1.454-0.29l0.581,0.29l2.325-0.871l1.455-0.29l0.579-0.58l0.582-0.291h1.744l2.616-0.871l1.745-1.161l0.579-1.452l1.744-1.452v-1.162v-1.45l2.036-2.324l1.163,2.324l1.163-0.292l-0.871-1.45l0.871-1.453l1.163,0.871l0.289-2.322l1.454-1.162l0.58-1.162l1.454-0.58v-0.581l1.163,0.291l0.291-0.872l1.163-0.291l1.163-0.289l2.034,1.161l1.743,1.742h1.453l1.744,0.291l-0.581-1.742l1.454-2.032l1.163-0.873l-0.291-0.581l1.162-1.452l1.744-1.161l1.165,0.291l2.323-0.291v-1.452l-2.034-0.87l1.453-0.58l2.035,0.869l1.453,1.163l2.326,0.581l0.581-0.29l1.744,0.87l1.744-0.87l0.871,0.29l0.872-0.581l1.164,1.451l-0.873,1.453l-0.872,1.16h-0.873l0.292,1.162l-0.873,1.452l-1.163,1.161l0.292,0.872l2.325,1.452l2.034,0.87l1.454,0.871l2.034,1.742h0.581l1.452,0.582l0.582,0.87l2.617,1.161l1.745-1.161l0.581-1.452l0.581-1.161l0.29-1.452l0.873-2.322l-0.291-1.161v-0.872l-0.291-1.452l0.291-2.322l0.581-0.29l-0.29-1.163l0.581-1.451l0.582-1.452v-0.872l1.163-0.869l0.58,1.45l0.291,1.743l0.581,0.291l0.291,1.16l0.871,1.163l0.292,1.74L868.806,268.715z", - "AZ" : "M597.6,121.78l0.873,0.581h1.16v0.581l1.163,1.451l-2.033-0.29l-1.163-1.453l-0.582-0.871H597.6zM604.285,117.715h1.165l0.29-0.581l1.744-1.162l1.452,1.452l1.453,2.033h1.165l0.87,0.871h-2.325l-0.292,2.322l-0.579,0.873l-0.873,0.58v1.452l-0.582,0.291l-1.743-1.453l0.871-1.451l-0.871-0.871l-0.872,0.291l-3.488,2.032v-2.032l-1.162-0.291l-1.163-0.871l0.871-0.871l-1.452-0.871l0.289-0.871l-0.871-0.291l-0.581-0.871l0.581-0.29l2.034,0.581l1.454,0.29l0.582-0.29l-1.455-1.453l0.582-0.29h0.873L604.285,117.715z", - "BA" : "M526.091,107.552l0.871,0.000l-0.581,1.161l1.455,1.162l-0.582,1.161l-0.581,0.291l-0.582,0.290l-0.872,0.581l-0.291,1.451l-2.614,-1.161l-0.874,-1.161l-1.162,-0.581l-1.163,-0.871l-0.579,-0.872l-1.454,-1.451l0.581,-0.872l1.162,0.581l0.582,-0.581l1.163,0.000l2.325,0.291l2.033,0.000l-1.163,-0.581z", - "BD" : "M728.989,170.275l-0.292,2.033l-0.871,-0.291l0.291,2.033l-0.872,-1.452l-0.292,-1.452l-0.290,-1.162l-1.163,-1.742l-2.615,0.000l0.289,1.161l-0.873,1.453l-1.161,-0.581l-0.581,0.581l-0.582,-0.292l-1.164,-0.289l-0.290,-2.324l-1.160,-2.032l0.579,-1.742l-1.744,-0.582l0.582,-1.160l1.743,-0.873l-2.034,-1.451l1.163,-2.032l2.034,1.451l1.454,0.000l0.291,2.032l2.616,0.291l2.327,0.000l1.743,0.291l-1.454,2.324l-1.163,0.289l-0.872,1.452l1.454,1.452l0.581,-1.742l0.872,0.000l-1.454,-4.356z", - "BE" : "M482.78,89.837l2.034,0.000l2.617,-0.580l1.745,1.451l1.452,0.582l-0.290,1.742l-0.583,0.291l-0.290,1.451l-2.615,-1.161l-1.162,0.000l-2.036,-1.162l-1.163,-1.161l-1.452,0.000l-0.293,-0.872l-2.036,0.581z", - "BF" : "M465.919,204.54l-1.744,-0.872l-1.452,0.291l-0.872,0.581l-1.164,-0.581l-0.579,-0.871l-1.165,-0.582l-0.290,-1.741l0.873,-1.161l0.000,-0.871l2.034,-2.324l0.291,-1.742l0.872,-0.871l1.452,0.581l1.163,-0.581l0.291,-0.872l2.035,-1.161l0.582,-0.871l2.617,-1.162l1.452,-0.290l0.582,0.581l2.035,0.000l-0.292,1.161l0.292,1.162l1.453,2.033l0.291,1.161l3.198,0.581l-0.291,2.032l-0.583,0.872l-1.161,0.290l-0.584,1.162l-0.870,0.290l-2.616,0.000l-1.163,-0.290l-0.872,0.290l-1.163,0.000l-4.942,0.000l0.000,1.452l-0.290,-2.323z", - "BG" : "M536.265,109.294l0.581,1.162l1.164,-0.291l2.035,0.581l4.071,0.000l1.452,-0.581l3.196,-0.581l2.035,0.872l1.454,0.290l-1.163,1.161l-1.163,2.033l0.872,1.452l-2.324,-0.290l-2.907,0.871l0.000,1.452l-2.326,0.000l-2.034,-0.872l-2.326,0.872l-2.036,-0.290l0.000,-1.743l-1.452,-0.871l0.290,-0.292l-0.290,-0.289l0.580,-0.871l1.164,-0.871l-1.454,-1.162l-0.290,-1.161l-0.871,0.581z", - "BI" : "M554.579,243.451l-0.290,-3.484l-0.583,-1.161l1.743,0.290l0.874,-1.743l1.454,0.291l0.000,0.871l0.582,0.871l0.000,0.872l-0.582,0.580l-1.163,1.454l-0.872,0.870l1.163,-0.289z", - "BJ" : "M481.037,213.833l-2.037,0.290l-0.872,-2.033l0.290,-6.388l-0.579,-0.289l-0.291,-1.454l-0.872,-0.871l-0.873,-0.871l0.582,-1.452l0.870,-0.290l0.584,-1.162l1.161,-0.290l0.583,-0.872l1.161,-0.871l0.874,0.000l2.034,1.453l0.000,1.160l0.580,1.453l-0.580,1.160l0.291,0.873l-1.454,1.452l-0.582,0.871l-0.581,1.743l0.000,1.741l0.289,-4.647z", - "BN" : "M787.998,218.479l1.163,-0.872l2.324,-1.741l0.000,1.451l-0.291,1.743l-1.163,0.000l-0.580,0.870l1.453,1.451z", - "BO" : "M300.812,291.656l-3.197,-0.290l-1.163,2.323l-1.452,-2.033l-3.781,-0.582l-2.033,2.324l-2.036,0.582l-1.163,-4.065l-1.453,-2.906l0.872,-2.612l-1.453,-1.163l-0.291,-2.031l-1.454,-2.033l1.745,-2.904l-1.163,-2.324l0.582,-0.869l-0.582,-0.872l1.163,-1.452l0.000,-2.323l0.290,-2.033l0.582,-0.873l-2.326,-4.355l2.035,0.000l1.163,0.000l0.872,-0.870l2.326,-0.872l1.453,-1.162l3.487,-0.580l-0.289,2.031l0.289,1.163l0.000,1.743l2.909,2.612l3.196,0.290l0.872,1.162l2.035,0.581l1.163,0.872l1.744,0.000l1.453,0.580l0.000,1.743l0.582,0.871l0.000,1.162l-0.582,0.000l0.872,3.195l5.233,0.000l-0.291,1.740l0.291,0.873l1.453,0.871l0.872,1.742l-0.581,2.032l-0.873,1.453l0.291,1.451l-0.872,0.580l0.000,-0.871l-2.615,-1.451l-2.616,0.000l-4.652,0.871l-1.453,2.324l0.000,1.451l-1.163,3.485l0.291,0.581z", - "BR" : "M315.056,314.017l3.778,-3.777l3.198,-2.613l1.745,-1.163l2.325,-1.450l0.000,-2.324l-1.454,-1.450l-1.162,0.580l0.580,-1.742l0.292,-1.454l0.000,-1.741l-1.163,-0.290l-0.872,0.290l-1.163,0.000l-0.290,-1.162l-0.291,-2.613l-0.291,-0.581l-2.035,-0.871l-1.163,0.581l-2.907,-0.581l0.291,-3.776l-0.872,-1.452l0.872,-0.580l-0.291,-1.451l0.873,-1.453l0.581,-2.032l-0.872,-1.742l-1.453,-0.871l-0.291,-0.873l0.291,-1.740l-5.233,0.000l-0.872,-3.195l0.582,0.000l0.000,-1.162l-0.582,-0.871l0.000,-1.743l-1.453,-0.580l-1.744,0.000l-1.163,-0.872l-2.035,-0.581l-0.872,-1.162l-3.196,-0.290l-2.909,-2.612l0.000,-1.743l-0.289,-1.163l0.289,-2.031l-3.487,0.580l-1.453,1.162l-2.326,0.872l-0.872,0.870l-1.163,0.000l-2.035,0.000l-1.744,0.292l-1.163,-0.292l0.292,-4.066l-2.326,1.453l-2.616,0.000l-0.872,-1.453l-1.744,0.000l0.581,-1.451l-1.744,-1.451l-1.163,-2.614l0.872,-0.581l0.000,-1.162l1.744,-0.581l-0.290,-1.451l0.581,-1.162l0.291,-1.161l3.198,-2.034l2.033,-0.289l0.583,-0.580l2.324,0.290l1.163,-7.551l0.291,-1.161l-0.582,-1.743l-1.162,-0.871l0.000,-2.033l1.453,-0.581l0.582,0.290l0.291,-0.871l-1.745,-0.290l0.000,-1.742l5.233,0.000l0.871,-0.871l0.873,0.871l0.582,1.452l0.581,-0.290l1.452,1.451l2.036,-0.289l0.580,-0.582l2.036,-0.870l1.162,-0.291l0.291,-1.162l2.035,-0.871l-0.291,-0.581l-2.324,-0.289l-0.292,-1.744l0.000,-1.741l-1.163,-0.872l0.582,0.000l2.034,0.290l2.326,0.582l0.581,-0.582l2.035,-0.580l3.198,-0.871l0.872,-1.162l-0.291,-0.580l1.453,-0.291l0.582,0.582l-0.290,1.451l0.872,0.290l0.580,1.161l-0.580,1.162l-0.582,2.324l0.582,1.451l0.291,1.162l1.743,1.162l1.454,0.290l0.290,-0.581l0.872,0.000l1.163,-0.581l0.871,-0.871l1.454,0.290l0.872,0.000l1.454,0.291l0.290,-0.581l-0.581,-0.581l0.291,-0.870l1.163,0.289l1.162,-0.289l1.745,0.581l1.161,0.581l0.873,-0.873l0.582,0.292l0.290,0.581l1.453,0.000l0.872,-1.162l0.872,-2.034l1.745,-2.323l0.872,-0.290l0.581,1.452l1.744,4.936l1.453,0.291l0.000,2.032l-2.034,2.323l0.872,0.872l4.942,0.290l0.000,2.904l2.034,-2.033l3.489,1.163l4.650,1.741l1.163,1.453l-0.290,1.451l3.197,-0.872l5.232,1.453l4.070,0.000l4.069,2.322l3.780,3.196l2.034,0.582l2.326,0.289l0.872,0.870l1.162,3.485l0.291,1.452l-1.162,4.646l-1.163,1.742l-4.070,3.775l-1.744,3.194l-2.035,2.323l-0.581,0.290l-0.873,2.034l0.291,4.936l-0.872,4.357l-0.290,1.742l-0.873,1.162l-0.581,3.774l-2.615,3.483l-0.583,2.906l-2.034,1.161l-0.872,1.453l-2.907,0.000l-4.360,1.160l-1.745,1.162l-3.197,0.871l-3.198,2.324l-2.325,2.613l-0.581,2.032l0.581,1.452l-0.581,2.904l-0.581,1.163l-2.035,1.742l-2.907,4.645l-2.325,2.323l-2.036,1.162l-1.162,2.615l-1.744,1.740l-0.872,-1.740l1.163,-1.164l-1.454,-2.032l-2.325,-1.451l-2.907,-1.743l-0.872,0.000l-2.907,-2.033l1.744,-0.292z", - "BS" : "M260.408,165.628h-0.872l-0.581-1.452l-1.163-0.871l0.872-1.743l0.581,0.291l1.164,2.033V165.628zM259.536,157.788l-2.907,0.581l-0.291-1.162l1.454-0.29l1.744,0.29V157.788zM261.86,157.788l-0.58,2.032l-0.583-0.29l0.291-1.451l-1.453-1.162v-0.291L261.86,157.788z", - "BT" : "M726.082,154.594l1.163,0.871l0.000,1.742l-2.326,0.000l-2.326,-0.290l-1.744,0.581l-2.615,-1.162l0.000,-0.581l1.743,-2.033l1.454,-0.580l2.035,0.580l1.453,0.000l-1.163,-0.872z", - "BW" : "M544.405,281.784l0.582,0.580l0.870,1.742l2.907,2.903l1.455,0.292l0.000,0.870l0.580,1.744l2.326,0.579l1.745,1.162l-4.071,2.033l-2.324,2.032l-0.871,1.742l-0.874,1.161l-1.452,0.293l-0.584,1.161l-0.289,0.870l-1.744,0.582l-2.327,0.000l-1.162,-0.872l-1.162,-0.290l-1.454,0.580l-0.582,1.453l-1.452,0.870l-1.164,1.162l-2.033,0.290l-0.582,-0.872l0.289,-1.741l-1.741,-2.613l-0.874,-0.580l0.000,-7.843l2.908,-0.289l0.000,-9.582l2.033,-0.291l4.361,-0.871l0.871,1.162l1.744,-1.162l0.874,0.000l1.743,-0.582l0.291,0.291l-1.163,-2.034z", - "BY" : "M538.301,82.579l2.907,0.000l2.908,-0.872l0.578,-1.452l2.326,-1.162l-0.290,-1.160l1.745,-0.291l2.906,-1.162l2.908,0.581l0.290,0.872l1.454,-0.291l2.615,0.581l0.289,1.161l-0.578,0.871l1.743,1.743l1.163,0.581l-0.292,0.290l2.036,0.580l0.872,0.872l-1.163,0.580l-2.326,-0.290l-0.581,0.290l0.871,0.872l0.583,2.033l-2.328,0.000l-0.870,0.580l-0.290,1.451l-0.873,-0.289l-2.615,0.000l-0.583,-0.581l-1.162,0.581l-1.163,-0.291l-2.036,-0.290l-3.196,-0.581l-2.615,-0.291l-2.035,0.291l-1.746,0.581l-1.163,0.000l0.000,-1.161l-0.871,-1.162l1.453,-0.582l0.000,-1.161l-0.582,-0.870l0.289,1.452z", - "BZ" : "M228.433,181.89l0.000,-0.290l0.290,-0.290l0.582,0.580l0.872,-1.742l0.580,0.000l0.000,0.290l0.581,0.000l-0.289,0.872l-0.292,1.162l0.292,0.289l-0.292,1.162l0.000,0.291l-0.290,1.161l-0.582,0.872l-0.291,0.000l-0.581,0.870l-0.872,0.000l0.292,-2.903l0.000,2.324z", - "CA" : "M298.487,102.905l2.035,0.291h2.617l-1.454,1.162l-0.872,0.29l-3.488-1.162l-0.873-1.161l1.163-0.872L298.487,102.905zM303.719,95.937h-1.454l-3.488-0.872l-2.616-1.162l0.872-0.291l3.779,0.581l2.616,1.162L303.719,95.937zM133.669,97.679l-1.163,0.291l-4.651-1.162l-0.872-1.162l-2.324-0.871l-0.582-0.871l-2.907-0.581l-0.872-1.452V91.29l2.907,0.581l1.744,0.58l2.617,0.291l0.872,0.872l1.454,1.162l2.615,1.162L133.669,97.679zM319.125,91.581l-1.744,2.323l1.744-0.871l2.035,0.581l-1.163,0.871l2.617,0.873l1.163-0.582l2.906,0.871l-0.872,1.742l1.744-0.291l0.292,1.452l0.872,1.742l-1.164,2.323h-1.162l-1.744-0.29l0.582-2.323l-0.872-0.29l-3.198,2.323h-1.453l1.744-1.452l-2.617-0.581h-2.907h-5.232l-0.58-0.872l1.744-0.871l-1.164-0.871l2.326-1.451l2.906-4.356l1.745-1.743l2.325-0.87h1.163l-0.582,0.87L319.125,91.581zM108.38,82.289l2.616-0.291l-0.58,3.195l2.324,2.323h-1.163l-1.744-1.453l-0.871-1.161l-1.454-0.871l-0.582-1.162l0.291-0.871L108.38,82.289zM255.466,59.928l-0.872,1.453l-1.453-0.291l-0.582-0.58v-0.291l1.163-0.872h1.163L255.466,59.928zM248.198,58.477l-3.197,1.451h-1.744l-0.581-0.581l2.034-1.452h3.779L248.198,58.477zM239.478,50.346l0.291,1.161l1.454-0.29l1.744,0.581l2.906,1.162l3.198,0.871l0.29,1.162l2.035-0.29l1.745,0.871l-2.326,0.872l-4.361-0.581l-1.453-1.161l-2.617,1.452l-4.069,1.451l-0.872-1.742l-3.779,0.291l2.325-1.162l0.291-2.323l1.163-2.613L239.478,50.346zM265.058,46.28l-3.198,0.291l-0.58-1.453l1.162-1.451l2.326-0.581l2.326,0.871v1.161l-0.291,0.292L265.058,46.28zM210.41,40.763l-1.744,1.162l-3.488-0.872l-2.325,0.291l-3.779-1.162l2.325-0.872l2.035-1.162l2.907,0.581l1.744,0.581l0.581,0.581L210.41,40.763zM224.653,39.891v2.614l3.488-2.032l3.197,1.742l-0.581,2.033l2.616,2.032l2.907-2.032l2.035-2.324v-3.195l4.069,0.292l4.07,0.29l3.488,1.452l0.291,1.452l-2.035,1.452l1.744,1.451l-0.291,1.162l-5.231,2.033l-3.779,0.291l-2.907-0.581l-0.872,1.161l-2.617,2.323l-0.872,1.453l-3.196,1.743l-3.78,0.29l-2.325,1.162l-0.292,1.741l-3.197,0.291l-3.198,2.324l-2.907,2.904l-1.162,2.323l-0.292,3.194l4.07,0.291l1.454,2.614l1.163,2.033l3.779-0.582l5.232,1.453l2.616,0.871l2.035,1.452l3.489,0.582l2.907,1.162l4.651,0.29l2.906,0.291l-0.581,2.323l0.872,2.614l2.035,3.194l4.07,2.613l2.326-0.871l1.452-2.903l-1.452-4.357l-2.035-1.452l4.36-1.162l3.197-2.033l1.455-1.742l-0.292-2.032l-1.744-2.324L257.5,69.22l3.489-2.904l-1.162-2.323l-1.163-4.355l2.034-0.582l4.651,0.582l2.907,0.29l2.326-0.581l2.616,0.872l3.198,1.451l0.872,1.162l4.941,0.291v2.323l0.872,3.484l2.616,0.291l1.745,1.742l4.07-1.742l2.616-2.904l1.744-1.161l2.325,2.323l3.488,3.484l3.198,3.195l-1.163,1.742l3.487,1.742l2.616,1.451l4.36,0.872l1.744,0.871l1.163,2.324l2.035,0.29l1.163,0.872l0.291,3.194l-2.035,1.161l-2.035,0.872l-4.65,0.871l-3.198,2.323l-4.942,0.582l-5.814-0.582h-4.07h-2.906l-2.326,2.033l-3.488,1.162l-3.779,3.775l-3.197,2.613l2.325-0.58l4.36-3.486l5.814-2.322l4.069-0.291l2.326,1.162l-2.616,2.032l0.872,2.905l0.872,2.032l3.779,1.452l4.361-0.581l2.906-2.903l0.292,2.032l1.744,0.871l-3.489,1.742l-6.104,1.743l-2.616,1.161l-3.198,2.033l-2.034-0.291l-0.29-2.323l4.94-2.324h-4.36l-3.197,0.291l-1.744-1.452v-3.775l-1.163-0.87l-2.035,0.581l-0.872-0.581l-2.035,2.032l-0.873,2.033l-0.872,1.162l-1.162,0.58h-0.872l-0.292,0.871h-5.232h-4.07l-1.163,0.581l-2.907,1.743l-0.291,0.29l-0.872,1.162h-2.616h-2.616l-1.454,0.291l0.582,0.581l0.291,0.871l-0.291,0.291l-3.488,1.453l-2.907,0.29l-3.197,1.452h-0.581l-0.872-0.29l-0.292-0.581v-0.29l0.581-0.873l1.163-1.451l0.872-1.742l-0.58-2.323l-0.583-2.613l-2.906-1.162l0.581-0.581l-0.581-0.29h-0.581l-0.583-0.291l-0.29-0.871l-0.583,0.291h-0.58v-0.291l-0.582-0.291l-0.291-0.58l-2.035-0.871l-2.326-0.872l-2.616-1.162l-2.617-1.161l-2.326,0.87h-0.872l-3.488-0.581l-2.325,0.291l-2.616-0.871l-2.907-0.291l-1.744-0.291l-0.871-0.581l-0.582-1.452h-0.873v1.161h-5.813h-9.302h-9.302h-8.43h-8.138h-8.14h-8.43h-2.616h-8.139h-7.849h-0.582l-5.231-2.613l-2.036-1.452l-4.941-0.871l-1.454-2.614l0.291-1.742l-3.488-1.161l-0.291-2.033l-3.488-2.033v-1.452l1.454-1.452v-1.743l-4.65-1.742l-2.908-2.903l-1.744-2.033l-2.616-1.162l-1.744-1.162l-1.454-1.451l-2.616,0.871L95.3,68.93l-2.326-1.741l-2.035-1.162l-2.616-0.872h-2.616V49.475V39.311l5.232,0.581l4.069,1.453h2.907l2.616-0.871l3.198-0.871l4.07,0.29l4.069-1.162l4.651-0.87l1.744,1.162l2.035-0.581l0.872-1.452l1.744,0.29l4.651,2.613l3.778-1.742l0.292,2.033l3.487-0.581l0.872-0.872l3.487,0.292l4.071,1.161l6.395,0.871l3.779,0.582l2.907-0.291l3.488,1.452l-3.779,1.453l4.94,0.581l7.559-0.291l2.325-0.581l2.906,1.742l2.908-1.451l-2.616-1.162l1.744-0.871l3.196-0.291l2.326-0.29l2.035,0.871l2.907,1.452l3.197-0.291l4.65,1.162l4.361-0.291h4.07l-0.291-1.742l2.326-0.581l4.36,1.162v2.614l1.744-2.324h2.035l1.454-2.614l-3.198-1.742l-3.196-1.162l0.291-2.903l3.198-2.033l3.778,0.29l2.617,1.453l3.779,2.904l-2.326,1.451L224.653,39.891zM159.54,29.728l-1.453,1.453l6.104-0.871l3.779,1.451l3.197-1.451l2.617,0.871l2.035,2.613l1.454-1.161l-1.745-2.615l2.327-0.581l2.615,0.581l3.198,1.162l1.744,2.613l0.872,2.033l4.651,1.162l4.941,1.452l-0.29,1.162l-4.651,0.29l1.744,0.872l-0.873,1.162l-4.941-0.581l-4.651-0.581h-3.198l-5.231,1.162l-6.977,0.291l-4.941,0.29l-1.454-1.452l-3.778-0.58l-2.617,0.29l-3.198-2.323l1.744-0.291l4.36-0.29h3.778l3.488-0.291l-5.233-0.871l-5.813,0.291h-4.069l-1.454-1.162l6.396-0.871h-4.07l-4.941-0.872l2.325-2.033l2.036-1.162l7.267-1.452L159.54,29.728zM185.993,29.147l-2.326,1.742l-4.361-2.032l1.163-0.291h3.488L185.993,29.147zM263.604,30.018l0.291,0.582h-2.907h-2.906l-3.197,0.29l-0.582-0.29l-3.198-1.452l0.291-0.872l1.163-0.291l6.396,0.291L263.604,30.018zM235.409,29.728l2.325,1.743l2.326-2.323l6.977-0.872l4.941,2.614l-0.582,2.033l5.523-0.871l2.616-1.162l6.104,1.451l3.78,1.162l0.29,1.162l5.233-0.581l2.906,1.742l6.687,1.162l2.326,1.161l2.616,2.614l-5.233,1.162l6.687,1.742l4.359,0.582l3.779,2.613l4.36,0.29l-0.872,1.743l-4.651,3.194l-3.488-1.162l-4.36-2.613l-3.488,0.291l-0.291,1.742l2.907,1.452l3.778,1.452l0.872,0.581l2.036,2.904l-1.164,1.743l-3.488-0.582l-6.685-2.323l3.779,2.323l2.906,1.743l0.292,0.871l-7.268-0.871l-6.104-1.743l-3.198-1.161l0.872-0.871l-4.07-1.451l-4.07-1.453v0.871l-7.848,0.582L257.5,53.25l1.745-2.033h5.232l5.814-0.291l-1.163-0.871l1.163-1.452l3.488-2.613l-0.872-1.162l-0.873-1.162l-4.36-1.162l-5.522-1.161l1.743-0.581l-2.907-1.742h-2.325l-2.326-1.162l-1.453,0.87l-4.942,0.292l-9.883-0.581l-5.814-0.581l-4.651-0.582l-2.325-0.871l2.908-1.451h-3.78l-0.872-2.615l2.036-2.613l2.906-0.87l6.977-0.872L235.409,29.728zM197.62,27.985l3.198,0.582l4.942-0.582l0.582,0.872l-2.617,1.452l4.361,1.162l-0.582,2.323l-4.361,1.162l-2.907-0.291l-1.744-0.871l-6.976-2.323l0.29-0.871l5.523,0.29l-3.196-1.742L197.62,27.985zM217.096,30.89l-2.907,2.033h-3.197l-1.454-2.613v-1.452l1.454-1.162l2.616-0.581h5.814l5.232,0.871l-4.069,2.324L217.096,30.89zM142.099,34.665l-7.267,1.162l-1.453-1.162l-6.396-1.452l1.455-1.162l1.743-2.033l2.326-1.742l-2.615-1.742l9.301-0.29l4.07,0.581h6.976l2.616,0.871l2.907,1.162l-3.488,0.87l-6.686,1.743l-3.488,2.032V34.665zM216.224,24.792l-1.744,1.162l-3.778-0.291l-3.489-0.871l1.453-1.162l4.07-0.58l2.326,0.871L216.224,24.792zM202.562,19.855l2.035,1.452l0.291,1.452l-1.454,2.033l-4.36,0.291l-2.908-0.582v-1.452h-4.65v-2.033h2.906l4.07-0.871l4.07,0.291V19.855zM175.819,21.307l1.163,1.162l2.324-0.582l2.907,0.291l0.582,1.161l-1.745,1.453l-9.301,0.291l-6.977,1.162h-4.07l-0.291-0.873l5.523-1.16l-12.208,0.29l-4.07-0.29l3.779-2.904l2.616-0.581l7.848,0.871l4.942,1.453l4.651,0.29l-3.779-2.613l2.326-0.871l2.907,0.29L175.819,21.307zM213.026,18.984l3.198,0.872h5.523l2.326,0.871l-0.582,1.161l2.906,0.582l1.744,0.58h3.779l4.069,0.29l4.361-0.58l5.522-0.29l4.651,0.29l2.907,0.871l0.582,1.162l-1.744,0.871l-4.07,0.582l-3.488-0.291l-7.848,0.291h-5.813l-4.36-0.291l-7.268-0.871l-0.872-1.453l-0.582-1.451l-2.617-1.162l-5.814-0.291l-3.196-0.871l1.163-1.162L213.026,18.984zM154.018,17.532l-0.582,2.033l-2.035,0.871l-2.616,0.29l-4.941,1.161l-4.65,0.291l-3.488-0.582l4.651-2.032l5.523-1.742h4.36L154.018,17.532zM215.351,17.823h-1.163l-5.231-0.291l-0.582-0.581h5.522l1.744,0.581L215.351,17.823zM170.586,17.243l-5.232,0.87l-4.071-0.87l2.326-0.873l3.779-0.29l4.07,0.29L170.586,17.243zM172.04,14.919l-3.488,0.291H163.9v-0.291l2.907-0.872l1.453,0.29L172.04,14.919zM210.12,16.37l-4.07,0.581l-2.326-0.87l-1.163-0.871l-0.291-1.162h3.488l1.744,0.29l3.198,0.872L210.12,16.37zM198.201,15.499l1.163,1.162l-4.361-0.291l-4.65-0.871h-6.104l2.616-0.871l-3.198-0.581l-0.291-1.162l5.524,0.291l7.266,1.161L198.201,15.499zM234.246,12.015l3.198,0.871l-3.779,0.582l-4.942,2.322h-4.942l-5.813-0.291l-2.907-1.162v-0.87l2.325-0.872h-4.941l-3.198-0.872l-1.744-1.162l2.034-1.161l1.744-0.871l2.907-0.291l-1.163-0.581l6.395-0.29l3.489,1.452l4.651,0.871l4.36,0.29L234.246,12.015zM285.116,2.432l7.558,0.29l5.813,0.291l4.942,0.58v0.873l-6.685,1.161l-6.687,0.581l-2.616,0.582h6.104L287.15,8.53l-4.651,0.581l-4.651,2.324l-5.813,0.58l-1.744,0.581l-8.139,0.291l3.778,0.291l-2.035,0.58l2.326,1.162l-2.616,1.162l-4.36,0.581l-1.162,1.162l-3.779,0.871l0.291,0.581h4.65v0.581l-7.267,1.741l-7.268-0.871l-7.848,0.291l-4.361-0.291h-4.941l-0.581-1.452l5.231-0.581l-1.454-2.033h1.744l7.268,1.162l-3.779-1.742l-4.36-0.582l2.326-1.162l4.651-0.581l0.872-0.871l-3.779-1.162l-1.163-1.451h7.558l2.034,0.29l4.361-0.87l-6.105-0.291h-9.883L227.85,8.53l-2.325-1.162l-3.197-0.581l-0.582-1.162l4.07-0.291l3.197-0.29l5.232-0.291l4.07-1.162l3.488,0.291l2.906,0.582l2.327-1.453l3.487-0.291l4.942-0.29l8.429-0.291l1.454,0.291l7.849-0.291h6.104L285.116,2.432z", - "CD" : "M558.648,221.382l-0.289,3.196l1.162,0.289l-0.873,0.871l-0.871,0.872l-1.163,1.451l-0.581,1.161l-0.291,2.324l-0.582,0.871l0.000,2.324l-0.871,0.580l0.000,1.742l-0.290,0.290l-0.293,1.453l0.583,1.161l0.290,3.484l0.581,2.324l-0.290,1.452l0.290,1.742l1.744,1.452l1.455,3.485l-1.163,-0.290l-3.490,0.581l-0.873,0.290l-0.873,1.742l0.873,1.161l-0.580,3.195l-0.293,2.904l0.584,0.291l2.035,1.160l0.581,-0.581l0.289,2.904l-2.033,0.000l-1.163,-1.451l-0.872,-1.162l-2.325,-0.291l-0.581,-1.452l-1.745,0.873l-2.036,-0.291l-0.871,-1.452l-1.743,-0.291l-1.454,0.291l0.000,-0.872l-1.164,-0.290l-1.161,0.000l-1.745,0.290l-1.162,0.000l-0.581,0.292l0.000,-3.196l-0.873,-1.162l-0.290,-1.740l0.579,-1.453l-0.579,-1.161l0.000,-1.743l-3.488,0.000l0.289,-0.871l-1.452,0.000l0.000,0.290l-1.745,0.291l-0.581,1.452l-0.582,0.871l-1.452,-0.581l-0.873,0.581l-2.033,0.000l-0.874,-1.452l-0.581,-0.871l-0.871,-1.453l-0.582,-2.032l-8.140,-0.290l-1.162,0.581l-0.581,-0.291l-1.163,0.581l-0.582,-0.871l0.874,-0.291l0.000,-1.161l0.578,-0.872l0.874,-0.580l0.871,0.291l0.873,-0.873l1.452,0.000l0.292,0.582l0.871,0.580l1.744,-1.741l1.456,-1.454l0.870,-0.870l-0.289,-2.033l1.162,-2.903l1.453,-1.162l1.746,-1.452l0.290,-0.871l0.000,-1.162l0.581,-0.871l-0.292,-1.451l0.292,-2.614l0.579,-1.451l0.874,-1.744l0.291,-1.452l0.289,-2.032l0.874,-1.452l1.452,-0.870l2.326,0.870l1.745,1.162l2.033,0.290l2.036,0.580l0.871,-1.742l0.291,-0.290l1.454,0.290l2.907,-1.160l1.163,0.579l0.871,-0.290l0.291,-0.580l1.163,-0.291l2.034,0.291l1.744,0.000l0.873,-0.291l1.743,2.323l1.161,0.291l0.873,-0.291l1.166,0.000l1.450,-0.581l0.874,1.162l-2.325,-2.032z", - "CF" : "M515.918,210.638l2.325,-0.290l0.293,-0.871l0.579,0.291l0.582,0.580l3.488,-1.162l1.163,-1.161l1.454,-0.872l-0.292,-0.870l0.871,-0.291l2.618,0.291l2.617,-1.452l2.034,-2.905l1.452,-1.161l1.744,-0.581l0.292,1.162l1.452,1.742l0.000,1.162l-0.289,1.163l0.000,0.870l0.871,0.870l2.327,1.162l1.452,1.162l0.000,0.871l1.743,1.452l1.163,1.161l0.873,1.743l2.034,0.871l0.292,0.871l-0.873,0.291l-1.744,0.000l-2.034,-0.291l-1.163,0.291l-0.291,0.580l-0.871,0.290l-1.163,-0.579l-2.907,1.160l-1.454,-0.290l-0.291,0.290l-0.871,1.742l-2.036,-0.580l-2.033,-0.290l-1.745,-1.162l-2.326,-0.870l-1.452,0.870l-0.874,1.452l-0.289,2.032l-1.744,-0.290l-2.036,-0.290l-1.452,1.451l-1.455,2.325l-0.289,-0.581l-0.292,-1.453l-1.163,-0.872l-1.161,-1.452l0.000,-0.870l-1.454,-1.452l0.289,-0.870l-0.289,-1.162l0.289,-2.033l0.581,-0.581l-1.455,2.614z", - "CG" : "M509.523,244.033l-0.874,-0.871l-0.870,0.581l-1.163,1.163l-2.325,-2.906l2.035,-1.742l-0.872,-1.743l0.872,-0.580l1.745,-0.291l0.289,-1.451l1.454,1.451l2.616,0.000l0.581,-1.162l0.582,-1.741l-0.291,-2.324l-1.454,-1.452l1.163,-3.194l-0.581,-0.580l-2.036,0.000l-0.871,-1.162l0.291,-1.451l3.488,0.289l2.034,0.581l2.327,0.871l0.289,-1.741l1.455,-2.325l1.452,-1.451l2.036,0.290l1.744,0.290l-0.291,1.452l-0.874,1.744l-0.579,1.451l-0.292,2.614l0.292,1.451l-0.581,0.871l0.000,1.162l-0.290,0.871l-1.746,1.452l-1.453,1.162l-1.162,2.903l0.289,2.033l-0.870,0.870l-1.456,1.454l-1.744,1.741l-0.871,-0.580l-0.292,-0.582l-1.452,0.000l-0.873,0.873l0.871,0.291z", - "CH" : "M500.22,100.292l0.000,0.580l-0.289,0.581l1.162,0.581l1.452,0.000l-0.289,1.162l-1.163,0.290l-2.034,-0.290l-0.583,1.161l-1.453,0.000l-0.291,-0.290l-1.744,0.871l-1.160,0.000l-1.165,-0.581l-0.871,-1.161l-1.454,0.580l0.000,-1.451l2.034,-1.453l0.000,-0.580l1.163,0.291l0.873,-0.582l2.324,0.000l0.582,-0.580l-2.906,-0.871z", - "CI" : "M465.919,217.317l-1.162,0.000l-2.034,-0.580l-1.744,0.000l-3.197,0.580l-2.036,0.581l-2.615,1.162l-0.582,0.000l0.289,-2.323l0.293,-0.291l-0.293,-1.162l-1.162,-1.161l-0.871,-0.290l-0.582,-0.581l0.582,-1.452l-0.291,-1.162l0.000,-0.870l0.581,0.000l0.000,-1.162l-0.290,-0.581l0.290,-0.290l1.162,-0.290l-0.871,-2.323l-0.581,-1.163l0.290,-0.871l0.581,-0.290l0.292,-0.292l0.870,0.582l2.037,0.000l0.582,-0.871l0.581,0.000l0.582,-0.291l0.579,1.162l0.583,-0.290l1.161,-0.292l1.165,0.582l0.579,0.871l1.164,0.581l0.872,-0.581l1.452,-0.291l1.744,0.872l0.874,3.775l-1.164,2.323l-0.872,3.195l1.162,2.323l0.000,-1.161z", - "CL" : "M284.825,375.578v6.389h2.907h1.745l-0.872,1.162l-2.326,0.87l-1.454-0.291l-1.744-0.289l-1.744-0.582l-2.907-0.58l-3.487-1.451l-2.907-1.453l-3.779-3.193l2.326,0.58l3.778,2.033l3.78,0.87l1.453-1.16l0.872-2.033l2.326-1.162L284.825,375.578zM285.987,289.915l1.163,4.065l2.035-0.582l0.291,0.872l-1.163,2.613l-2.907,1.451v4.646l-0.582,0.87l0.872,1.163l-1.744,1.741l-2.035,2.324l-0.872,2.614l0.291,2.612l-1.744,2.904l1.163,4.646l0.873,0.58v2.613l-1.744,2.613l0.29,2.323l-2.326,1.742l0.292,2.613l0.581,2.615l-1.453,0.87l-0.872,2.613l-0.582,2.904l0.582,3.193l-1.164,0.581l0.582,3.194l1.162,1.162l-0.873,1.162l1.454,0.289l0.29,1.162l-1.452,0.58l0.291,1.451l-0.872,3.775l-1.455,2.323l0.292,1.453l-0.873,1.741l-2.035,1.161l0.291,2.904l0.873,0.873h1.744v2.03l1.163,1.453l6.685,0.58l2.617,0.29h-2.617l-1.163,0.581l-2.616,1.162l-0.291,2.612h-1.162l-3.198-0.87l-3.198-2.032l-3.488-1.453l-0.872-1.74l0.872-1.744l-1.454-1.742l-0.291-4.646l1.163-2.614l2.907-2.323l-4.07-0.581l2.617-2.612l0.872-4.357l2.907,0.873l1.453-5.808l-1.744-0.581l-0.872,3.484l-1.744-0.582l0.872-3.773l0.872-5.228l1.454-1.742l-0.872-2.905l-0.291-2.902l1.163-0.29l1.744-4.356l1.744-4.356l1.162-4.064l-0.581-4.065l0.872-2.323l-0.292-3.485l1.744-3.192l0.292-5.518l0.872-5.519l0.871-6.388v-4.356l-0.582-3.774l1.163-0.872l0.872-1.45l1.454,2.032l0.291,2.031l1.454,1.163l-0.872,2.612L285.987,289.915z", - "CM" : "M509.814,224.578l-0.291,0.000l-1.744,0.289l-1.744,-0.289l-1.163,0.000l-4.652,0.000l0.582,-2.034l-1.163,-1.742l-1.163,-0.582l-0.581,-1.160l-0.872,-0.581l0.000,-0.581l0.872,-2.032l1.164,-2.614l0.872,0.000l1.743,-1.743l0.871,0.000l1.746,1.161l1.744,-0.870l0.291,-1.162l0.580,-1.161l0.581,-1.452l1.455,-1.161l0.581,-1.742l0.582,-0.582l0.289,-1.452l0.873,-1.742l2.326,-2.323l0.000,-0.872l0.289,-0.580l-1.163,-0.871l0.292,-0.871l0.582,-0.291l1.162,1.742l0.292,1.743l-0.292,2.032l1.453,2.324l-1.453,0.000l-0.581,0.289l-1.455,-0.289l-0.579,1.161l1.742,1.743l1.165,0.581l0.289,1.161l0.872,1.743l-0.290,0.870l-1.455,2.614l-0.581,0.581l-0.289,2.033l0.289,1.162l-0.289,0.870l1.454,1.452l0.000,0.870l1.161,1.452l1.163,0.872l0.292,1.453l0.289,0.581l-0.289,1.741l-2.327,-0.871l-2.034,-0.581l3.488,0.289z", - "CN" : "M777.533,179.567l-2.325,1.451l-2.326-0.871v-2.323l1.163-1.453l3.196-0.581h1.455l0.581,0.872l-1.163,1.451L777.533,179.567zM825.204,94.194l4.651,0.871l3.488,1.742l0.871,2.614h4.361l2.325-0.872l4.651-0.871l-1.454,2.323l-1.163,1.162l-0.871,2.904l-2.034,2.613l-3.198-0.291l-2.325,0.871l0.581,2.324l-0.29,3.194l-1.454,0.291v1.161l-1.744-1.451l-1.163,1.451l-4.067,1.162l0.289,1.453h-2.325l-1.452-0.872l-1.745,2.032l-3.198,1.453l-2.033,1.742l-3.781,0.871l-2.033,1.162l-3.197,0.871l1.452-1.453l-0.58-1.16l2.325-1.742l-1.455-1.453l-2.324,1.162l-3.197,1.742l-1.745,1.742l-2.615,0.291l-1.452,1.16l1.452,1.743l2.326,0.581v1.162l2.325,0.872l2.906-2.033l2.616,1.162h1.744l0.289,1.452l-3.777,0.871l-1.454,1.452l-2.615,1.453l-1.453,1.742l3.196,1.742l0.872,2.614l1.743,2.613l1.745,2.033v2.033l-1.745,0.581l0.873,1.453l1.455,0.87l-0.292,2.324l-0.873,2.323h-1.452l-2.034,3.194l-2.326,3.484l-2.327,3.195l-3.778,2.613l-4.069,2.323l-2.905,0.291l-1.744,1.162l-0.873-0.871l-1.743,1.452l-3.779,1.451l-2.906,0.291l-0.872,2.904l-1.454,0.29l-0.873-2.033l0.584-1.162l-3.488-0.872l-1.455,0.581l-2.615-0.87l-1.454-0.873l0.581-1.742l-2.615-0.581l-1.452-0.871l-2.328,1.451l-2.615,0.291h-2.034l-1.454,0.58l-1.453,0.582l0.29,2.903h-1.455l-0.289-0.581v-1.161l-2.034,0.87l-1.163-0.581l-2.035-1.162l0.872-2.033l-1.743-0.581l-0.873-2.613l-2.905,0.58l0.29-3.484l2.615-2.323l0.291-2.033l-0.291-2.323l-1.161-0.581l-0.873-1.452h-1.455l-3.194-0.291l1.161-1.161l-1.455-1.743l-2.034,1.162l-2.033-0.581l-3.198,1.742l-2.615,2.033l-2.326,0.29l-1.162-0.872h-1.453l-2.035-0.58l-1.454,0.58l-1.743,2.033l-0.292-2.033l-1.744,0.582L713,154.013l-2.906-0.581l-2.326-1.162l-2.034-0.581l-1.162-1.452l-1.454-0.291l-2.615-1.742l-2.326-0.871l-1.162,0.581l-3.781-2.033l-2.615-1.742l-0.873-2.904l2.036,0.291v-1.453l-1.163-1.161l0.293-2.324l-2.908-3.194l-4.361-1.161l-0.87-2.033l-2.036-1.451l-0.58-0.582l-0.292-1.742v-1.161l-1.743-0.582l-0.874,0.291l-0.579-2.324l0.579-0.871l-0.289-0.581l2.615-1.162l2.036-0.58l2.906,0.291l0.871-1.744l3.489-0.29l1.162-1.162l4.362-1.451l0.289-0.581l-0.289-1.743l2.033-0.581l-2.617-4.646l5.524-1.162l1.452-0.58l2.034-4.938l5.232,0.873l1.744-1.162v-2.904l2.328-0.291l2.033-1.742l1.163-0.29l0.581,2.032l2.326,1.452l4.067,0.872l1.746,2.323l-0.873,3.194l0.873,1.162l3.197,0.582l3.778,0.29l3.488,1.742l1.743,0.291l1.163,2.613l1.455,1.453h3.196l5.522,0.58l3.78-0.291l2.615,0.291l4.069,1.743h3.489l1.162,0.871l3.197-1.451l4.361-0.873l4.359-0.29l3.198-0.871l1.745-1.452l2.033-0.871l-0.581-0.872l-0.873-1.161l1.454-1.742l1.745,0.29l2.614,0.581l2.908-1.452l4.069-1.162l2.034-1.742l2.035-0.872l4.07-0.29l2.034,0.29l0.291-1.162l-2.325-1.741l-2.326-0.872l-2.036,0.872l-2.904-0.291l-1.455,0.291l-0.581-1.162l1.744-2.613l1.453-2.324l3.197,1.162l4.068-1.742v-1.162l2.328-2.903l1.452-0.872v-1.452l-1.452-0.871l2.325-1.162l3.486-0.58h3.491l4.067,0.58l2.617,1.162l1.744,2.903l0.871,1.161l0.874,1.453L825.204,94.194z", - "CO" : "M266.221,231.256l-1.163,-0.582l-1.163,-0.870l-0.871,0.290l-2.326,-0.290l-0.582,-1.161l-0.580,0.000l-2.907,-1.452l-0.291,-0.872l1.162,-0.290l-0.290,-1.451l0.582,-0.873l1.452,-0.289l1.164,-1.744l1.161,-1.452l-1.161,-0.580l0.580,-1.452l-0.580,-2.613l0.580,-0.580l-0.580,-2.325l-1.164,-1.451l0.582,-1.451l0.872,0.289l0.582,-0.871l-0.872,-1.741l0.290,-0.292l1.454,0.000l2.034,-2.031l1.163,-0.291l0.000,-0.872l0.581,-2.322l1.744,-1.162l1.745,0.000l0.000,-0.582l2.325,0.291l2.035,-1.451l1.163,-0.582l1.454,-1.451l0.872,0.290l0.580,0.581l-0.290,0.871l-2.035,0.581l-0.581,1.452l-1.163,0.580l-0.581,1.162l-0.582,2.033l-0.581,1.452l1.453,0.290l0.291,1.161l0.580,0.582l0.292,1.161l-0.292,1.161l0.000,0.581l0.583,0.000l0.872,1.162l3.488,-0.291l1.453,0.291l2.035,2.323l1.163,-0.290l2.034,0.290l1.454,-0.290l0.872,0.290l-0.291,1.452l-0.872,0.871l0.000,2.033l0.581,2.033l0.582,0.580l0.291,0.580l-1.454,1.453l0.872,0.580l0.873,1.162l0.872,2.614l-0.581,0.290l-0.582,-1.452l-0.873,-0.871l-0.871,0.871l-5.233,0.000l0.000,1.742l1.745,0.290l-0.291,0.871l-0.582,-0.290l-1.453,0.581l0.000,2.033l1.162,0.871l0.582,1.743l-0.291,1.161l-1.163,7.551l-1.452,-1.454l-0.582,-0.290l1.744,-2.613l-2.326,-1.452l-1.452,0.290l-1.164,-0.579l-1.453,0.870l-2.035,-0.291l-1.744,-2.903l-1.163,-0.870l-0.872,-1.163l-1.744,-1.452l0.872,-0.291z", - "CR" : "M245.292,208.315l-1.453,-0.580l-0.582,-0.582l0.291,-0.580l0.000,-0.581l-0.872,-0.579l-0.872,-0.582l-1.163,-0.291l0.000,-0.872l-0.872,-0.580l0.291,0.871l-0.582,0.581l-0.581,-0.581l-0.872,-0.291l-0.291,-0.580l0.000,-0.871l0.291,-0.871l-0.872,-0.291l0.581,-0.580l0.581,-0.291l1.745,0.581l0.581,-0.290l0.871,0.290l0.583,0.581l0.872,0.000l0.581,-0.581l0.580,1.452l1.164,1.162l1.162,1.161l-0.872,0.291l0.000,1.161l0.583,0.291l-0.583,0.581l0.291,0.289l-0.291,0.582l0.290,-0.580z", - "CU" : "M247.326,167.081l2.326,0.290l2.326,0.000l2.325,0.871l1.163,1.161l2.616,-0.290l0.873,0.581l2.325,1.743l1.744,1.161l0.871,0.000l1.744,0.581l-0.290,0.871l2.035,0.000l2.325,1.161l-0.581,0.581l-1.744,0.291l-1.745,0.290l-2.035,-0.290l-3.778,0.290l1.743,-1.452l-1.161,-0.871l-1.744,0.000l-0.872,-0.871l-0.582,-1.742l-1.744,0.289l-2.616,-0.870l-0.582,-0.581l-3.779,-0.291l-0.872,-0.581l0.872,-0.580l-2.616,-0.290l-2.034,1.451l-1.163,0.000l-0.292,0.580l-1.452,0.292l-1.163,0.000l1.454,-0.872l0.581,-1.161l1.453,-0.581l1.163,-0.581l2.325,-0.290l-0.581,0.290z", - "CY" : "M567.37,134.557l0.000,0.291l-2.909,1.161l-1.162,-0.581l-0.874,-1.161l1.456,0.000l0.580,0.290l0.582,-0.290l0.582,0.000l0.290,0.290l0.581,0.000l0.581,0.000l-0.293,0.000z", - "CZ" : "M520.57,97.388l-1.455,-0.581l-1.163,0.000l-2.326,-0.581l-0.871,0.000l-1.453,1.162l-2.035,-0.871l-1.744,-1.161l-1.163,-0.582l-0.289,-1.161l-0.584,-0.872l2.036,-0.580l0.871,-0.871l2.036,-0.291l0.581,-0.581l0.871,0.290l1.165,-0.290l1.453,0.872l2.036,0.291l-0.293,0.580l1.454,0.580l0.581,-0.580l1.746,0.290l0.290,0.872l2.034,0.290l1.454,1.161l-0.874,0.000l-0.580,0.582l-0.582,0.000l-0.292,0.581l-0.289,0.289l-0.290,0.291l-0.871,0.290l-1.165,0.000l0.289,-0.581z", - "DE" : "M501.093,79.674l0.000,1.161l2.906,0.582l0.000,0.872l2.617,-0.291l1.744,-0.872l2.907,1.163l1.452,0.870l0.583,1.452l-0.872,0.581l1.163,1.162l0.581,1.452l-0.292,0.870l1.165,1.742l-1.165,0.290l-0.871,-0.290l-0.581,0.581l-2.036,0.291l-0.871,0.871l-2.036,0.580l0.584,0.872l0.289,1.161l1.163,0.582l1.744,1.161l-1.162,1.162l-0.872,0.580l0.290,1.742l-0.290,0.291l-0.584,-0.581l-1.452,0.000l-2.034,0.581l-2.326,-0.291l-0.292,0.871l-1.452,-0.871l-0.873,0.291l-2.906,-0.871l-0.582,0.580l-2.324,0.000l0.290,-2.032l1.455,-1.743l-4.070,-0.580l-1.166,-0.581l0.000,-1.452l-0.579,-0.581l0.290,-1.742l-0.290,-2.904l1.454,0.000l0.871,-1.162l0.581,-2.323l-0.581,-1.161l0.581,-0.581l2.327,0.000l0.582,0.581l1.742,-1.451l-0.581,-0.872l0.000,-1.743l2.035,0.581l-1.744,0.581z", - "DJ" : "M592.368,196.119l0.581,0.871l0.000,1.161l-1.453,0.582l1.161,0.580l-1.161,1.452l-0.583,-0.290l-0.581,0.000l-1.743,0.000l0.000,-0.871l0.000,-0.581l0.871,-1.452l0.872,-1.162l1.164,0.291l-0.872,0.581z", - "DK" : "M508.649,77.933l-1.743,2.323l-2.615-1.452l-0.582-1.162l4.07-0.872L508.649,77.933zM503.708,75.609l-0.581,1.162l-0.871-0.291l-2.036,2.033l0.873,1.161l-1.744,0.582l-2.035-0.582l-1.161-1.451v-2.904l0.289-0.581l0.872-0.871h2.325l1.163-0.871l2.035-0.871v1.453l-0.872,0.87l0.291,0.871L503.708,75.609z", - "DO" : "M276.396,176.664l0.290,-0.291l2.034,0.000l1.744,0.580l0.872,0.000l0.291,0.872l1.454,0.000l0.000,0.871l1.162,0.000l1.454,1.162l-0.872,1.161l-1.453,-0.871l-1.164,0.290l-0.872,-0.290l-0.581,0.581l-1.163,0.290l-0.290,-0.871l-0.873,0.581l-1.161,1.743l-0.872,-0.291l0.000,-0.871l0.000,-0.872l-0.582,-0.580l0.582,-0.582l0.290,-1.161l0.290,1.451z", - "DZ" : "M506.906,166.5l-9.592,5.226l-7.849,5.227l-4.070,1.453l-2.906,0.000l0.000,-1.742l-1.452,-0.291l-1.454,-0.872l-0.873,-1.161l-9.301,-6.098l-9.301,-6.098l-10.176,-6.679l0.000,-0.291l0.000,-0.290l0.000,-3.194l4.361,-2.032l2.906,-0.581l2.036,-0.581l1.162,-1.452l3.197,-1.162l0.000,-2.032l1.744,-0.291l1.162,-0.870l3.782,-0.582l0.289,-0.871l-0.582,-0.580l-0.871,-2.905l-0.291,-1.742l-1.163,-1.742l2.907,-1.452l2.907,-0.581l1.744,-1.161l2.617,-0.872l4.650,-0.289l4.651,-0.291l1.162,0.291l2.615,-1.162l2.911,0.000l1.160,0.871l2.035,-0.290l-0.581,1.451l0.290,2.614l-0.579,2.323l-1.745,1.451l0.290,2.034l2.325,1.742l0.000,0.581l1.745,1.162l1.163,4.936l0.871,2.322l0.000,1.453l-0.291,2.033l0.000,1.451l-0.291,1.452l0.291,1.743l-1.162,1.161l1.744,2.033l0.000,1.162l1.163,1.451l1.163,-0.580l2.035,1.451l-1.452,-1.743z", - "EC" : "M252.85,240.258l1.453,-2.033l-0.581,-1.162l-1.163,1.162l-1.744,-1.162l0.581,-0.581l-0.291,-2.613l0.873,-0.580l0.581,-1.454l0.872,-2.031l0.000,-0.872l1.454,-0.581l1.744,-1.160l2.907,1.452l0.580,0.000l0.582,1.161l2.326,0.290l0.871,-0.290l1.163,0.870l1.163,0.582l0.581,2.324l-0.872,1.741l-3.198,2.904l-3.196,0.871l-1.744,2.613l-0.582,1.742l-1.454,1.162l-1.162,-1.451l-1.163,-0.290l-1.163,0.290l0.000,-1.162l0.873,-0.582l0.291,1.160z", - "EE" : "M540.626,72.125l0.291,-1.743l-0.872,0.290l-1.744,-0.870l-0.291,-1.743l3.489,-0.581l3.488,-0.582l2.906,0.582l2.906,0.000l0.291,0.291l-1.745,1.742l0.582,2.614l-1.163,0.871l-2.034,0.000l-2.614,-1.162l-1.165,-0.290l2.325,-0.581z", - "EG" : "M569.987,149.947l-0.874,0.872l-0.581,2.323l-0.873,1.162l-0.582,0.580l-0.870,-0.871l-1.164,-1.161l-2.034,-4.066l-0.291,0.291l1.163,2.903l1.744,2.904l2.034,4.065l0.873,1.743l0.871,1.452l2.618,2.904l-0.584,0.580l0.000,1.743l3.198,2.613l0.581,0.580l-10.755,0.000l-10.755,0.000l-11.045,0.000l0.000,-10.162l0.000,-9.873l-0.871,-2.324l0.579,-1.451l-0.289,-1.162l0.871,-1.452l3.779,0.000l2.615,0.581l2.615,0.871l1.456,0.580l2.033,-0.870l1.165,-0.872l2.323,-0.290l2.036,0.290l0.872,1.452l0.580,-0.870l2.036,0.580l2.327,0.290l1.161,-0.870l-2.038,-4.935z", - "ER" : "M590.332,196.409l-0.872,-0.871l-1.162,-1.452l-1.163,-1.162l-0.871,-0.870l-2.326,-1.162l-1.744,0.000l-0.873,-0.580l-1.453,0.870l-1.743,-1.452l-0.873,2.033l-3.198,-0.581l-0.290,-0.870l1.161,-4.065l0.291,-2.033l0.874,-0.873l2.035,-0.289l1.454,-1.742l1.452,3.193l0.871,2.614l1.454,1.452l3.779,2.613l1.454,1.453l1.453,1.742l0.871,0.871l1.455,0.871l-0.872,0.581l1.164,0.291z", - "ES" : "M448.769,115.683l0.292,-1.743l-1.163,-1.452l3.778,-1.742l3.489,0.290l3.778,0.000l2.908,0.581l2.324,-0.290l4.362,0.290l1.163,0.871l4.940,1.452l1.163,-0.580l2.907,1.161l3.197,-0.292l0.292,1.454l-2.616,2.032l-3.489,0.580l-0.291,0.872l-1.744,1.451l-1.162,2.324l1.162,1.451l-1.453,1.162l-0.581,1.742l-2.325,0.581l-1.744,2.323l-3.489,0.000l-2.616,0.000l-1.743,0.872l-1.165,1.161l-1.452,-0.291l-0.871,-0.870l-0.874,-1.742l-2.615,-0.291l0.000,-1.162l0.871,-0.871l0.291,-0.871l-0.873,-0.581l0.873,-2.032l-1.162,-1.452l1.162,-0.291l0.000,-1.451l0.582,-0.291l0.000,-2.033l1.163,-0.870l-0.581,-1.452l-1.746,0.000l-0.291,0.290l-1.744,0.000l-0.581,-1.162l-1.163,0.291l1.163,-0.581z", - "ET" : "M578.125,189.73l1.743,1.452l1.453,-0.870l0.873,0.580l1.744,0.000l2.326,1.162l0.871,0.870l1.163,1.162l1.162,1.452l0.872,0.871l-0.872,1.162l-0.871,1.452l0.000,0.581l0.000,0.871l1.743,0.000l0.581,0.000l0.583,0.290l-0.583,1.161l1.163,1.453l0.873,1.452l1.163,0.871l9.010,3.194l2.328,0.000l-7.850,8.421l-3.780,0.000l-2.324,2.033l-1.744,0.000l-0.874,0.870l-1.743,0.000l-1.161,-0.870l-2.618,1.162l-0.581,1.160l-2.036,-0.290l-0.580,-0.290l-0.580,0.000l-0.874,0.000l-3.489,-2.323l-2.033,0.000l-0.873,-0.871l0.000,-1.742l-1.452,-0.290l-1.455,-3.196l-1.454,-0.580l-0.290,-1.161l-1.452,-1.161l-1.746,-0.291l0.872,-1.452l1.455,0.000l0.582,-0.872l0.000,-2.613l0.579,-2.903l1.454,-0.582l0.292,-1.162l1.163,-2.322l1.743,-1.162l0.872,-2.904l0.581,-2.323l3.198,0.581l-0.873,2.033z", - "FI" : "M552.544,41.053l-0.584,2.033l4.363,1.743l-2.617,2.032l3.198,3.194l-1.744,2.324l2.325,2.033l-1.162,1.742l4.069,2.032l-0.871,1.161l-2.617,1.742l-5.814,3.485l-4.941,0.291l-4.941,0.871l-4.362,0.580l-1.744,-1.451l-2.615,-0.871l0.581,-2.614l-1.452,-2.613l1.452,-1.453l2.616,-1.742l6.106,-3.193l2.033,-0.582l-0.289,-1.160l-4.072,-1.162l-0.872,-1.162l0.000,-4.065l-4.361,-2.033l-3.486,-1.452l1.453,-0.581l3.198,1.452l3.488,0.000l2.908,0.581l2.615,-1.162l1.452,-2.032l4.362,-1.162l3.487,1.162l1.162,-2.032z", - "FJ" : "M964.732,278.588l0.873,0.871l-0.292,1.452l-1.744,0.291l-1.452-0.291l-0.292-1.162l0.873-0.87l1.455,0.291L964.732,278.588zM969.382,276.557l-1.741,0.579l-2.036,0.582l-0.292-1.161l1.455-0.291l0.873-0.291l1.741-0.871h-0.01h0.58l-0.29,1.162l-0.29,0.291H969.382z", - "FK" : "M305.173,373.544l3.488,-1.741l2.326,0.870l1.744,-1.161l2.034,1.161l-0.872,0.871l-3.778,0.872l-1.164,-0.872l-2.325,1.162l1.453,1.162z", - "FR" : "M329.008,223.997l-0.873,1.162h-1.453l-0.29-0.581l-0.582-0.292l-0.872,0.873l-1.162-0.581l0.581-1.162l0.291-1.162l0.582-1.161l-1.164-1.742l-0.289-1.743l1.453-2.612l0.872,0.289l2.034,0.872l2.907,2.323l0.582,1.161l-1.744,2.323L329.008,223.997zM500.22,115.102l-1.161,2.033l-1.164-0.582l-0.581-1.742l0.581-1.162l1.744-0.871L500.22,115.102zM483.652,92.451l2.036,1.162h1.162l2.615,1.162l0.581,0.291h0.871l1.165,0.581l4.07,0.58l-1.455,1.744l-0.29,2.032l-0.873,0.581l-1.163-0.291v0.581l-2.033,1.453v1.452l1.453-0.581l0.871,1.162l-0.291,0.871l0.872,1.162l-0.872,0.871l0.582,2.033l1.454,0.291l-0.291,1.162l-2.325,1.452l-5.523-0.581l-4.069,0.872l-0.292,1.741l-3.196,0.292l-2.907-1.162l-1.163,0.58l-4.94-1.452l-1.163-0.872l1.452-1.742l0.582-5.517l-2.907-2.905l-2.034-1.451l-4.36-0.872v-2.033l3.488-0.581l4.651,0.581l-0.872-2.903l2.615,1.162l6.396-2.324l0.87-2.324l2.325-0.29l0.293,0.872h1.452L483.652,92.451z", - "GA" : "M504.291,242l-2.908,-2.904l-1.744,-2.322l-1.744,-2.905l0.291,-0.871l0.582,-0.871l0.581,-2.033l0.582,-2.033l0.871,0.000l4.070,0.000l0.000,-3.483l1.163,0.000l1.744,0.289l1.744,-0.289l0.291,0.000l-0.291,1.451l0.871,1.162l2.036,0.000l0.581,0.580l-1.163,3.194l1.454,1.452l0.291,2.324l-0.582,1.741l-0.581,1.162l-2.616,0.000l-1.454,-1.451l-0.289,1.451l-1.745,0.291l-0.872,0.580l0.872,1.743l2.035,-1.742z", - "GB" : "M458.072,80.835l-1.452,2.033l-2.036-0.58h-1.745l0.582-1.453l-0.582-1.451l2.326-0.291L458.072,80.835zM465.629,69.802l-3.198,2.903l2.907-0.289h2.907l-0.582,2.032l-2.615,2.613h2.907l0.29,0.291l2.325,3.484l2.035,0.291l1.745,3.195l0.581,1.161l3.486,0.291l-0.29,2.033l-1.452,0.58l1.163,1.452l-2.617,1.453h-3.488l-4.94,0.871l-1.164-0.581l-1.744,1.161l-2.616-0.291l-2.034,1.162l-1.453-0.581l4.069-2.904l2.616-0.581l-4.359-0.581l-0.873-0.872l2.906-0.871l-1.454-1.451l0.582-2.033l4.069,0.291l0.291-1.452l-1.744-1.743l-3.488-0.58l-0.582-0.871l0.872-1.162l-0.872-0.581l-1.452,1.162V76.19l-1.454-1.453l0.873-2.904l2.326-2.032h2.033H465.629z", - "GE" : "M588.298,116.844l0.291,-1.161l-0.582,-2.034l-1.743,-0.871l-1.455,-0.580l-1.162,-0.581l0.581,-0.581l2.325,0.581l3.779,0.581l3.780,1.162l0.581,0.580l1.745,-0.580l2.614,0.580l0.581,1.162l1.745,0.871l-0.582,0.290l1.455,1.452l-0.582,0.290l-1.454,-0.290l-2.034,-0.580l-0.581,0.290l-3.780,0.580l-2.615,-1.452l2.907,-0.291z", - "GH" : "M476.676,214.704l-4.361,1.452l-1.452,1.161l-2.617,0.581l-2.327,-0.581l0.000,-1.161l-1.162,-2.323l0.872,-3.195l1.164,-2.323l-0.874,-3.775l-0.290,-2.323l0.000,-1.452l4.942,0.000l1.163,0.000l0.872,-0.290l1.163,0.290l0.000,0.872l0.871,1.161l0.000,2.033l0.292,2.322l0.871,0.872l-0.581,2.613l0.000,1.162l0.872,1.742l-0.582,-1.162z", - "GL" : "M344.996,3.593l9.302,-1.451l9.593,0.000l3.488,-0.871l9.883,-0.291l21.800,0.291l17.442,2.322l-5.232,0.872l-10.465,0.290l-14.824,0.291l1.453,0.289l9.593,-0.289l8.429,0.871l5.232,-0.582l2.326,0.872l-2.907,1.452l6.977,-0.871l13.370,-1.162l8.139,0.581l1.455,1.162l-11.047,2.032l-1.743,0.580l-8.721,0.581l6.395,0.000l-3.196,2.033l-2.326,1.742l0.290,3.195l3.198,1.742l-4.361,0.000l-4.361,0.872l4.943,1.451l0.581,2.323l-2.908,0.291l3.781,2.323l-6.106,0.291l2.906,1.160l-0.871,0.872l-3.780,0.581l-3.777,0.000l3.488,1.742l0.000,1.161l-5.522,-1.161l-1.455,0.871l3.778,0.582l3.488,1.741l1.163,2.324l-4.940,0.580l-2.034,-1.162l-3.489,-1.742l0.871,2.033l-3.197,1.452l7.267,0.000l3.780,0.290l-7.269,2.324l-7.557,2.322l-7.848,0.872l-3.198,0.000l-2.907,0.871l-3.779,2.903l-5.814,2.034l-2.034,0.290l-3.489,0.581l-4.069,0.580l-2.326,1.742l0.000,2.034l-1.453,1.742l-4.360,2.033l0.872,2.323l-1.162,2.323l-1.454,2.613l-3.779,0.000l-4.069,-2.033l-5.524,0.000l-2.615,-1.742l-2.036,-2.614l-4.650,-3.484l-1.454,-1.742l-0.291,-2.324l-3.778,-2.613l0.872,-2.033l-1.744,-0.871l2.617,-3.194l4.359,-1.162l0.872,-1.161l0.582,-2.034l-3.198,0.873l-1.454,0.289l-2.325,0.582l-3.488,-0.871l0.000,-2.034l0.871,-1.452l2.617,0.000l5.523,0.872l-4.651,-1.742l-2.325,-1.162l-2.907,0.581l-2.326,-0.872l3.198,-2.322l-1.744,-1.162l-2.035,-2.033l-3.489,-2.904l-3.488,-0.871l0.000,-1.162l-7.266,-1.742l-5.814,0.000l-7.558,0.000l-6.685,0.290l-3.199,-0.870l-4.649,-1.743l7.266,-0.871l5.523,-0.291l-11.917,-0.580l-6.105,-1.162l0.291,-1.161l10.464,-1.162l10.173,-1.452l0.872,-0.871l-7.266,-1.162l2.326,-1.161l9.592,-1.742l4.070,-0.290l-1.163,-1.162l6.395,-0.872l8.429,-0.289l8.430,0.000l3.199,0.580l7.266,-1.453l6.395,1.162l4.070,0.291l5.523,0.871l-6.395,-1.451l-0.290,1.453z", - "GM" : "M427.549,194.667l0.291,-1.162l2.909,0.000l0.581,-0.581l0.871,0.000l1.163,0.581l0.873,0.000l0.870,-0.581l0.582,0.872l-1.163,0.581l-1.162,0.000l-1.163,-0.581l-1.163,0.581l-0.582,0.000l-0.580,0.581l2.327,0.291z", - "GN" : "M450.514,209.768l-0.871,0.000l-0.582,1.161l-0.581,0.000l-0.582,-0.581l0.290,-1.162l-1.162,-1.741l-0.872,0.290l-0.581,0.000l-0.581,0.290l0.000,-1.161l-0.582,-0.581l0.000,-0.870l-0.581,-1.163l-0.582,-0.871l-2.326,0.000l-0.581,0.580l-0.871,0.000l-0.292,0.581l-0.289,0.582l-1.455,1.451l-1.453,-1.742l-0.873,-1.163l-0.870,-0.289l-0.582,-0.581l-0.291,-1.161l-0.582,-0.582l-0.581,-0.580l1.163,-1.162l0.873,0.000l0.581,-0.580l0.582,0.000l0.580,-0.291l-0.291,-0.871l0.291,-0.291l0.000,-0.871l1.453,0.000l2.036,0.581l0.581,0.000l0.000,-0.290l1.744,0.290l0.289,-0.290l0.293,1.162l0.290,0.000l0.581,-0.582l0.582,0.291l0.871,0.580l1.165,0.291l0.579,-0.580l0.873,-0.582l0.871,-0.290l0.581,0.000l0.582,0.581l0.292,0.871l1.162,1.162l-0.582,0.580l-0.291,1.162l0.582,-0.291l0.581,0.291l-0.290,0.871l0.871,0.581l-0.581,0.290l-0.290,0.871l0.581,1.163l0.871,2.323l-1.162,0.290l-0.290,0.290l0.290,0.581l0.000,1.162l0.581,0.000z", - "GQ" : "M499.931,228.061l-0.582,-0.290l0.871,-3.193l4.652,0.000l0.000,3.483l-4.070,0.000l0.871,0.000z", - "GR" : "M538.882,132.815l1.744,0.871l2.034-0.29l2.033,0.29v0.582l1.455-0.291l-0.292,0.581l-4.067,0.291v-0.291l-3.199-0.581L538.882,132.815zM547.02,116.553l-0.871,1.742l-0.581,0.291h-1.745l-1.454-0.291l-3.196,0.872l1.744,1.451l-1.454,0.291h-1.452l-1.454-1.16l-0.582,0.58l0.582,1.452l1.454,1.453l-0.872,0.58l1.452,1.162l1.455,0.871v1.452l-2.617-0.581l0.873,1.452l-1.745,0.291l0.872,2.323h-1.744l-2.326-1.161l-0.871-2.324l-0.581-1.742l-1.163-1.162l-1.452-1.742v-0.58l1.16-1.453l0.292-0.87l0.873-0.291v-0.871l1.742-0.291l1.164-0.58h1.452l0.582-0.291l0.29-0.29l2.036,0.29l2.325-0.872l2.034,0.872h2.326v-1.452L547.02,116.553z", - "GT" : "M225.816,193.215l-1.453,-0.580l-1.744,0.000l-1.163,-0.581l-1.454,-1.162l0.000,-0.871l0.291,-0.581l-0.291,-0.580l1.164,-2.033l3.487,0.000l0.292,-0.871l-0.582,-0.291l-0.291,-0.581l-1.162,-0.581l-0.872,-0.870l1.163,0.000l0.000,-1.743l2.615,0.000l2.617,0.000l0.000,2.324l-0.292,2.903l0.872,0.000l0.872,0.581l0.292,-0.291l0.872,0.291l-1.455,1.162l-1.161,0.580l-0.292,0.581l0.292,0.581l-0.583,0.580l-0.581,0.291l0.000,0.290l-0.580,0.291l-0.873,0.581l0.000,-0.580z", - "GW" : "M432.201,200.475l-1.452,-1.162l-1.164,0.000l-0.582,-0.871l0.000,-0.291l-0.871,-0.580l-0.292,-0.581l1.453,-0.581l0.874,0.000l0.871,-0.290l4.942,0.290l0.000,0.871l-0.291,0.291l0.291,0.871l-0.580,0.291l-0.582,0.000l-0.581,0.580l-0.873,0.000l1.163,-1.162z", - "GY" : "M309.243,208.025l1.744,0.871l1.744,1.742l0.000,1.452l1.162,0.000l1.453,1.452l1.163,0.873l-0.582,2.613l-1.453,0.579l0.000,0.872l-0.581,1.161l1.453,2.032l0.872,0.000l0.291,1.744l1.744,2.322l-0.872,0.000l-1.454,-0.290l-0.871,0.871l-1.163,0.581l-0.872,0.000l-0.290,0.581l-1.454,-0.290l-1.743,-1.162l-0.291,-1.162l-0.582,-1.451l0.582,-2.324l0.580,-1.162l-0.580,-1.161l-0.872,-0.290l0.290,-1.451l-0.582,-0.582l-1.453,0.291l-2.035,-2.322l0.873,-0.582l0.000,-1.163l1.743,-0.580l0.582,-0.581l-0.872,-0.871l0.290,-1.161l-2.036,1.452z", - "HN" : "M233.374,195.248l-0.291,-0.871l-0.872,-0.291l0.000,-1.162l-0.291,-0.289l-0.582,0.000l-1.161,0.289l0.000,-0.289l-0.872,-0.581l-0.582,-0.581l-0.873,-0.291l0.583,-0.580l-0.292,-0.581l0.292,-0.581l1.161,-0.580l1.455,-1.162l0.289,0.000l0.582,-0.291l0.581,0.000l0.291,0.000l0.582,0.000l1.163,0.291l1.162,-0.291l0.873,-0.290l0.581,-0.290l0.872,0.290l0.581,0.000l0.582,0.000l0.581,-0.290l1.454,0.580l0.289,0.000l0.872,0.582l0.873,0.580l0.871,0.291l0.873,0.870l-1.162,0.000l-0.291,0.291l-0.872,0.291l-0.872,0.000l-0.581,0.290l-0.582,0.000l-0.290,-0.290l-0.291,0.000l-0.291,0.580l-0.291,0.000l0.000,0.581l-1.163,0.871l-0.581,0.291l-0.291,0.289l-0.581,-0.580l-0.581,0.871l-0.582,-0.291l-0.871,0.291l0.290,1.162l-0.581,0.000l-0.291,0.871l0.872,0.000z", - "HR" : "M525.51,104.647l0.871,1.163l0.873,0.870l-1.163,0.872l-1.163,-0.581l-2.033,0.000l-2.325,-0.291l-1.163,0.000l-0.582,0.581l-1.162,-0.581l-0.581,0.872l1.454,1.451l0.579,0.872l1.163,0.871l1.162,0.581l0.874,1.161l2.614,1.161l-0.289,0.580l-2.615,-1.160l-1.746,-0.871l-2.326,-0.871l-2.326,-2.033l0.582,-0.291l-1.453,-1.162l0.000,-0.870l-1.744,-0.291l-0.871,1.161l-0.873,-1.161l0.292,-0.870l1.743,0.000l0.580,-0.291l0.873,0.291l1.163,0.000l0.000,-0.582l0.871,-0.290l0.293,-1.162l2.325,-0.580l0.871,0.290l2.036,1.161l2.325,0.581l-0.871,0.581z", - "HT" : "M272.326,176.083l1.744,0.290l2.326,0.291l0.290,1.451l-0.290,1.161l-0.582,0.582l0.582,0.580l0.000,0.872l-1.745,-0.581l-1.453,0.290l-1.744,-0.290l-1.163,0.581l-1.454,-0.872l0.291,-0.871l2.326,0.291l2.325,0.290l0.872,-0.581l-1.163,-1.161l0.000,-1.161l-1.744,-0.292l-0.582,0.870z", - "HU" : "M518.243,102.034l1.164,-1.742l-0.582,-0.581l1.453,0.000l0.292,-1.162l1.454,0.872l0.871,0.290l2.324,-0.581l0.291,-0.291l1.163,-0.290l1.163,-0.290l0.289,0.000l1.455,-0.290l0.582,-0.581l0.870,-0.291l2.908,0.872l0.582,-0.290l1.452,0.870l0.291,0.581l-1.743,0.581l-1.164,2.034l-1.742,1.741l-2.325,0.581l-1.455,0.000l-2.326,0.580l-0.871,0.581l-2.325,-0.581l-2.036,-1.161l-0.871,-0.290l-0.582,-1.162l0.582,0.000z", - "ID" : "M806.019,259.132h-1.163l-3.488-2.033l2.326-0.289l1.454,0.58l1.162,0.871L806.019,259.132zM816.193,258.842l-2.323,0.581l-0.292-0.291l0.292-0.871l1.16-1.742l2.617-1.16l0.29,0.58l0.29,0.871L816.193,258.842zM798.17,253.326l1.163,0.58l1.745-0.29l0.581,1.161l-3.198,0.582l-1.745,0.58l-1.743-0.291l1.162-1.451h1.455L798.17,253.326zM812.123,253.326l-0.579,1.451l-4.072,0.871l-3.486-0.58v-0.871l2.034-0.581l1.745,0.871l1.743-0.29L812.123,253.326zM772.881,249.55l5.232,0.29l0.582-1.161l4.94,1.452l1.163,1.742l4.07,0.58l3.487,1.452l-3.196,1.162l-3.199-1.162h-2.325h-2.907l-2.615-0.58l-3.199-1.162l-2.033-0.29l-1.163,0.29l-4.942-0.871l-0.58-1.452h-2.325l1.745-2.613h3.488l2.033,1.163l1.162,0.289L772.881,249.55zM844.679,248.098l-1.452,1.742l-0.292-2.032l0.583-0.871l0.58-1.162l0.581,0.871V248.098zM824.043,240.548l-1.163,0.87l-1.745-0.58l-0.581-1.162h2.907L824.043,240.548zM833.053,239.386l0.871,2.032l-2.325-0.87l-2.324-0.29h-1.454h-2.034l0.582-1.452l3.486-0.291L833.053,239.386zM842.935,234.16l0.874,4.355l2.906,1.743l2.325-2.905l3.199-1.741h2.323l2.326,0.87l2.033,1.162l2.909,0.581v8.712l0.29,9.002l-2.615-2.323l-2.91-0.29l-0.578,0.58l-3.489,0.291l1.161-2.323l1.744-0.871l-0.579-2.904l-1.454-2.323l-5.233-2.324l-2.323-0.289l-4.069-2.613L840.901,242l-1.162,0.292l-0.581-1.163v-1.161l-2.034-1.161l2.906-1.162h2.034l-0.289-0.581h-4.072l-1.161-1.742l-2.327-0.58l-1.161-1.161l3.778-0.872l1.455-0.872l4.359,1.162L842.935,234.16zM818.518,226.9l-2.325,2.904l-2.034,0.58l-2.615-0.58h-4.651l-2.325,0.58l-0.292,2.033l2.326,2.323l1.454-1.161l5.23-0.872l-0.29,1.161l-1.162-0.289l-1.163,1.451l-2.326,1.162l2.615,3.483l-0.581,0.872l2.326,3.194v1.742l-1.452,0.872l-0.874-0.872l1.165-2.323l-2.617,1.162l-0.871-0.873l0.579-0.869l-2.033-1.743l0.291-2.613l-2.036,0.871l0.292,3.195v3.773l-1.744,0.581l-1.165-0.871l0.874-2.613l-0.291-2.613h-1.162l-0.871-2.033l1.161-1.741l0.289-2.033l1.455-4.356l0.581-0.871l2.326-2.032l2.033,0.58l3.488,0.582l3.199-0.292l2.615-2.032L818.518,226.9zM828.111,227.771l-0.29,2.323h-1.452l-0.292,1.452l1.162,1.451l-0.87,0.291l-1.165-1.742l-0.871-3.485l0.581-2.032l0.873-1.162l0.29,1.452l1.744,0.291L828.111,227.771zM798.17,226.029l3.197,2.322l-3.197,0.292l-1.162,2.031l0.292,2.614l-2.618,1.742v2.613L793.52,242l-0.581-0.871l-2.908,1.163l-1.161-1.743l-2.034-0.29l-1.163-0.872l-3.488,1.162l-0.871-1.452l-1.744,0.29l-2.328-0.29l-0.581-3.775l-1.163-0.871l-1.452-2.322l-0.292-2.323l0.292-2.613l1.452-1.743l0.584,1.743l2.033,1.741l1.744-0.581h1.744l1.453-1.16l1.454-0.291l2.615,0.581l2.036-0.581l1.452-3.774l1.163-0.872l0.871-3.193h3.198l2.325,0.58l-1.454,2.323l2.036,2.614L798.17,226.029zM765.034,246.937l-2.907,0.29l-2.325-2.321l-3.779-2.324l-1.162-1.743l-2.033-2.323l-1.165-2.033l-2.325-3.774l-2.326-2.323l-0.871-2.323l-0.873-2.032l-2.615-1.743l-1.454-2.322l-2.034-1.743l-2.908-2.903l-0.289-1.451h1.745l4.358,0.58l2.618,2.614l2.033,2.032l1.453,1.161l2.615,2.905h2.908l2.325,2.032l1.454,2.322l2.033,1.161l-0.871,2.323l1.454,0.871h0.872l0.581,2.033l0.873,1.451l2.034,0.291l1.452,1.742l-0.871,3.485V246.937z", - "IE" : "M456.62,82.869l0.579,2.032l-2.034,2.323l-4.942,1.743l-3.779,-0.581l2.036,-2.904l-1.454,-2.613l3.779,-2.323l2.033,-1.162l0.582,1.451l-0.582,1.454l1.745,0.000l-2.037,-0.580z", - "IL" : "M572.021,140.946l-0.293,0.870l-1.163,-0.289l-0.578,1.743l0.871,0.289l-0.871,0.581l0.000,0.581l1.160,-0.291l0.000,0.872l-1.160,4.645l-2.038,-4.935l0.873,-0.872l0.581,-1.451l0.584,-2.033l0.289,-0.582l0.289,0.000l0.872,0.000l0.291,-0.580l0.582,0.000l0.000,1.162l-0.289,0.290l0.000,0.000z", - "IN" : "M688.002,133.396l2.909,3.194l-0.293,2.324l1.163,1.160l0.000,1.453l-2.036,-0.291l0.873,2.904l2.615,1.742l3.781,2.034l-1.745,1.161l-1.163,2.613l2.908,1.162l2.614,1.161l3.490,1.742l3.779,0.291l1.453,1.452l2.325,0.290l3.197,0.581l2.326,0.000l0.291,-1.162l-0.291,-1.742l0.000,-1.161l1.744,-0.582l0.292,2.033l0.000,0.581l2.615,1.162l1.744,-0.581l2.326,0.290l2.326,0.000l0.000,-1.742l-1.163,-0.871l2.326,-0.290l2.615,-2.033l3.198,-1.742l2.033,0.580l2.035,-1.162l1.455,1.743l-1.161,1.162l3.194,0.290l0.000,1.162l-0.871,0.580l0.291,1.452l-2.034,-0.290l-3.489,1.742l0.000,1.742l-1.453,2.323l-0.292,1.162l-1.163,2.322l-2.033,-0.580l-0.290,2.904l-0.583,0.872l0.291,1.161l-1.162,0.581l-1.454,-4.356l-0.872,0.000l-0.581,1.742l-1.454,-1.452l0.872,-1.452l1.163,-0.289l1.454,-2.324l-1.743,-0.291l-2.327,0.000l-2.616,-0.291l-0.291,-2.032l-1.454,0.000l-2.034,-1.451l-1.163,2.032l2.034,1.451l-1.743,0.873l-0.582,1.160l1.744,0.582l-0.579,1.742l1.160,2.032l0.290,2.324l-0.290,1.162l-2.034,-0.291l-3.197,0.580l0.000,2.033l-1.455,1.742l-4.069,1.744l-2.904,3.484l-2.038,1.743l-2.906,1.742l0.000,1.161l-1.163,0.581l-2.615,1.161l-1.162,0.000l-0.874,2.323l0.582,3.484l0.000,2.324l-1.163,2.614l0.000,4.644l-1.454,0.000l-1.160,2.325l0.870,0.871l-2.615,0.581l-0.874,2.032l-1.163,0.581l-2.615,-2.323l-1.163,-4.067l-1.162,-2.613l-0.874,-1.451l-1.452,-2.613l-0.581,-3.485l-0.581,-1.742l-2.618,-3.775l-1.161,-5.227l-0.584,-3.485l0.000,-3.194l-0.581,-2.613l-4.068,1.451l-2.035,-0.290l-3.488,-3.194l1.454,-1.162l-0.873,-0.871l-3.198,-2.323l1.745,-2.033l6.106,0.000l-0.583,-2.324l-1.455,-1.451l-0.579,-2.032l-1.745,-1.162l3.197,-2.904l3.199,0.291l2.904,-2.904l1.745,-2.904l2.618,-2.614l0.000,-2.032l2.325,-1.743l-2.325,-1.161l-0.874,-2.032l-1.160,-2.324l1.453,-1.162l4.069,0.581l3.196,-0.290l-2.617,2.323z", - "IQ" : "M598.763,131.943l1.744,0.872l0.289,1.742l-1.452,0.871l-0.581,2.033l2.033,2.613l3.200,1.453l1.454,2.323l-0.292,1.742l0.872,0.000l0.000,1.742l1.454,1.452l-1.744,-0.290l-1.744,-0.291l-2.037,2.614l-5.230,0.000l-7.561,-5.517l-4.067,-2.032l-3.488,-0.873l-1.163,-3.193l6.103,-2.904l1.163,-3.195l-0.292,-2.032l1.454,-0.872l1.454,-1.742l1.164,-0.291l3.197,0.291l0.873,0.872l1.452,-0.581l-1.745,-3.193z", - "IR" : "M622.309,128.75l2.323,-0.582l2.036,-1.742l1.745,0.291l1.162,-0.581l2.034,0.290l2.907,1.452l2.325,0.290l3.200,2.324l2.034,0.000l0.289,2.323l-1.161,3.485l-0.873,2.032l1.163,0.291l-1.163,1.742l0.873,2.032l0.290,1.743l2.036,0.581l0.289,1.742l-2.615,2.323l1.453,1.452l1.162,1.742l2.617,1.162l0.000,2.613l1.453,0.291l0.290,1.452l-4.070,1.162l-1.161,3.193l-4.943,-0.580l-3.197,-0.871l-2.906,-0.291l-1.454,-3.194l-1.163,-0.581l-2.034,0.581l-2.908,1.162l-3.196,-0.872l-2.907,-2.033l-2.617,-0.870l-1.745,-2.614l-2.034,-3.774l-1.744,0.580l-1.744,-0.871l-0.871,1.161l-1.454,-1.452l0.000,-1.742l-0.872,0.000l0.292,-1.742l-1.454,-2.323l-3.200,-1.453l-2.033,-2.613l0.581,-2.033l1.452,-0.871l-0.289,-1.742l-1.744,-0.872l-1.745,-3.193l-1.452,-2.324l0.579,-0.871l-0.870,-2.904l1.743,-0.871l0.582,0.871l1.163,1.453l2.033,0.289l0.873,0.000l3.489,-2.032l0.872,-0.290l0.871,0.871l-0.871,1.451l1.743,1.453l0.582,-0.291l0.873,2.033l2.615,0.580l1.744,1.453l4.069,0.291l4.360,-0.581l-0.293,0.581z", - "IS" : "M433.944,48.313l-0.870,1.742l3.196,1.742l-3.488,2.033l-8.138,2.033l-2.326,0.581l-3.488,-0.581l-7.849,-0.871l2.906,-1.162l-6.103,-1.451l4.940,-0.291l0.000,-0.871l-5.811,-0.580l1.744,-2.033l4.067,-0.291l4.362,1.742l4.360,-1.451l3.198,0.871l4.649,-1.452l-4.651,-0.290z", - "IT" : "M516.5,125.846l-0.873,2.033l0.292,0.872l-0.582,1.451l-2.034-0.871l-1.454-0.291l-3.777-1.451l0.289-1.452l3.199,0.29l2.904-0.29L516.5,125.846zM499.059,117.715l1.743,1.742l-0.291,3.775l-1.452-0.291l-1.164,0.871l-0.872-0.58l-0.291-3.195l-0.579-1.742l1.452,0.291L499.059,117.715zM507.779,102.325l4.069,0.581l-0.289,1.452l0.581,1.161l-2.326-0.291l-2.035,0.872v1.452l-0.292,0.871l0.873,1.162l2.615,1.452l1.455,2.324l2.906,2.323h2.326l0.58,0.58l-0.872,0.582l2.617,0.871l2.036,0.871l2.324,1.451l0.291,0.581l-0.581,0.873l-1.455-1.453l-2.325-0.289l-1.163,1.742l2.036,1.16l-0.581,1.453h-0.873l-1.745,2.323l-0.87,0.291v-0.871l0.289-1.453l0.872-0.58l-1.161-1.742l-0.873-1.162l-1.161-0.58l-0.873-1.162l-1.744-0.29l-1.163-1.162l-2.034-0.291l-2.036-1.162l-2.615-1.741l-1.744-1.743l-0.872-2.614l-1.454-0.29l-2.325-0.872l-1.163,0.291l-1.743,1.162l-1.163,0.291l0.291-1.162l-1.454-0.291l-0.582-2.033l0.872-0.871l-0.872-1.162l0.291-0.871l1.165,0.581h1.16l1.744-0.871l0.291,0.29h1.453l0.583-1.162l2.034,0.29l1.163-0.29l0.289-1.162l1.745,0.291l0.291-0.58l2.615-0.292L507.779,102.325z", - "JM" : "M260.116,180.148l2.036,0.290l1.452,0.581l0.291,0.871l-1.743,0.000l-0.872,0.291l-1.454,-0.291l-1.744,-1.161l0.290,-0.581l1.164,-0.290l-0.580,-0.290z", - "JO" : "M571.728,141.816l0.293,-0.870l3.195,1.161l5.234,-2.903l1.163,3.193l-0.582,0.582l-5.522,1.451l2.905,2.614l-0.872,0.581l-0.581,0.871l-2.036,0.290l-0.581,1.161l-1.161,0.582l-3.196,-0.291l0.000,-0.291l1.160,-4.645l0.000,-0.872l0.581,-0.871l0.000,1.743z", - "JP" : "M844.39,137.17l0.289,0.871l-1.452,1.742l-1.163-1.161l-1.454,0.871l-0.58,1.452l-2.035-0.581l0.292-1.452l1.452-1.743l1.452,0.291l1.165-1.161L844.39,137.17zM861.832,128.75l-1.165,2.323l0.584,1.162l-1.455,2.033l-3.488,1.452h-4.94l-3.78,3.195l-1.742-1.162l-0.292-2.033l-4.651,0.582l-3.488,1.451h-3.198l2.909,2.032l-1.745,4.646l-1.743,1.162l-1.454-1.162l0.582-2.323l-1.745-0.871l-1.163-1.742l2.617-0.871l1.452-1.742l2.907-1.453l2.035-2.033l5.523-0.581l2.907,0.291l2.904-4.646l1.746,1.162l4.07-2.614l1.452-1.161l1.744-3.484l-0.292-2.904l1.164-1.742l2.906-0.581l1.454,3.774v2.324l-2.615,2.613V128.75zM869.969,109.584l1.744,0.58l2.036-1.162l0.58,2.904l-4.068,0.871l-2.326,2.613l-4.36-1.742l-1.453,2.904h-3.199l-0.29-2.613l1.454-2.033l2.906-0.291l0.873-3.775l0.581-2.032l3.488,2.613L869.969,109.584z", - "KE" : "M586.553,233.289l1.745,2.323l-2.034,1.162l-0.582,1.161l-1.163,0.000l-0.291,2.032l-0.872,1.161l-0.581,1.744l-1.162,0.871l-3.780,-2.615l-0.291,-1.742l-9.883,-5.517l-0.582,-0.289l0.000,-2.906l0.872,-1.161l1.164,-1.742l1.163,-2.033l-1.163,-3.194l-0.291,-1.452l-1.452,-1.742l1.743,-1.743l1.745,-1.741l1.452,0.290l0.000,1.742l0.873,0.871l2.033,0.000l3.489,2.323l0.874,0.000l0.580,0.000l0.580,0.290l2.036,0.290l0.581,-1.160l2.618,-1.162l1.161,0.870l1.743,0.000l-2.325,3.196l0.000,-9.873z", - "KG" : "M669.108,114.811l0.581,-1.162l1.745,-0.580l4.649,0.871l0.292,-1.452l1.745,-0.581l3.779,1.162l1.161,-0.291l4.361,0.000l4.068,0.291l1.455,0.871l1.744,0.581l-0.289,0.581l-4.362,1.451l-1.162,1.162l-3.490,0.290l-0.871,1.744l-2.906,-0.291l-2.036,0.580l-2.615,1.162l0.289,0.580l-0.579,0.871l-5.233,0.291l-3.488,-0.871l-2.908,0.290l0.291,-1.743l2.906,0.582l0.873,-0.871l2.326,0.289l3.488,-2.032l-3.199,-1.451l-2.034,0.580l-2.035,-0.871l2.326,-1.742l0.872,0.291z", - "KH" : "M758.638,201.637l-1.162,-1.453l-1.454,-2.613l-0.580,-3.485l1.741,-2.323l3.781,-0.581l2.326,0.581l2.326,0.872l1.160,-1.743l2.617,0.871l0.581,2.033l-0.289,3.194l-4.651,2.033l1.162,1.742l-2.906,0.290l-2.326,1.162l2.326,0.580z", - "KO" : "M531.032,115.392l-0.289,0.581l-0.292,0.000l-0.289,-1.162l-0.582,-0.290l-0.581,-0.581l0.581,-0.871l0.582,0.000l0.289,-0.871l0.581,-0.291l0.293,0.291l0.581,0.290l0.290,0.581l0.583,0.000l0.579,0.580l0.292,0.000l-0.292,0.580l-0.290,0.292l0.000,0.290l-0.581,0.000l1.455,-0.581z", - "KP" : "M833.343,114.229l0.292,0.582l-0.872,0.000l-1.164,0.872l-0.872,0.870l0.000,2.033l-1.452,0.581l-0.291,0.582l-1.163,0.580l-1.744,0.580l-1.163,0.582l-0.292,1.451l-0.289,0.291l1.163,0.290l1.452,1.161l-0.290,0.871l-1.162,0.000l-2.035,0.291l-0.874,1.161l-1.452,0.000l-1.454,-0.290l-0.289,0.290l-0.874,0.290l0.000,-0.580l-0.581,0.000l-0.871,-0.581l0.871,-1.161l0.581,-0.291l-0.291,-0.580l0.583,-1.453l0.000,-0.580l-1.744,-0.291l-1.162,-0.580l2.033,-1.742l3.198,-1.453l1.745,-2.032l1.453,0.871l2.325,0.000l-0.289,-1.452l4.067,-1.163l1.163,-1.451l-1.744,-1.451z", - "KR" : "M826.948,124.684l2.617,3.194l0.582,2.034l0.000,2.903l-1.163,1.742l-2.326,0.582l-2.325,0.870l-2.326,0.291l-0.292,-1.452l0.292,-2.033l-1.163,-2.903l2.036,-0.291l-1.745,-2.614l1.452,0.000l0.874,-1.161l2.035,-0.291l1.162,0.000l-0.290,0.871z", - "KW" : "M605.74,148.496l0.581,1.162l-0.291,0.580l0.871,2.323l-1.743,0.000l-0.873,-1.452l-2.326,-0.290l2.037,-2.614l-1.744,-0.291z", - "KZ" : "M669.108,114.811l-1.454,0.291l-3.779,2.033l-1.163,2.032l-1.163,0.000l-0.580,-1.452l-3.489,0.000l-0.581,-2.323l-1.453,0.000l0.290,-2.614l-3.196,-2.032l-4.944,0.290l-3.196,0.291l-2.618,-2.614l-2.324,-0.872l-4.071,-2.031l-0.580,-0.291l-6.976,1.742l0.000,10.164l-1.455,0.000l-1.744,-2.033l-2.034,-0.871l-3.199,0.581l-1.160,0.871l0.000,-0.581l0.582,-1.163l-0.582,-0.869l-3.197,-1.162l-1.165,-2.323l-1.453,-0.581l-0.291,-1.161l2.909,0.289l0.000,-2.032l2.324,-0.290l2.326,0.290l0.581,-2.614l-0.581,-1.742l-2.616,0.291l-2.326,-0.872l-3.196,1.452l-2.618,0.581l-1.452,-0.581l0.289,-1.452l-1.743,-1.742l-2.034,0.000l-2.327,-1.742l1.453,-2.323l-0.580,-0.290l2.036,-3.195l2.906,1.742l0.289,-2.032l5.814,-3.195l4.362,0.000l5.812,2.032l3.489,1.163l2.906,-1.163l4.360,-0.290l3.488,1.453l0.871,-0.872l3.781,0.291l0.581,-1.453l-4.362,-1.742l2.618,-1.451l-0.581,-0.582l2.617,-0.870l-2.036,-1.743l1.454,-1.160l10.172,-0.872l1.454,-0.582l6.976,-1.161l2.326,-1.161l4.942,0.580l0.872,2.905l2.906,-0.581l3.488,0.872l-0.290,1.451l2.618,0.000l6.974,-2.614l-0.871,0.872l3.488,2.033l6.104,6.968l1.453,-1.451l3.780,1.742l4.070,-0.872l1.455,0.581l1.160,1.452l2.034,0.581l1.163,1.162l3.488,-0.291l1.455,1.743l-2.034,1.742l-2.328,0.291l0.000,2.904l-1.744,1.162l-5.232,-0.873l-2.034,4.938l-1.453,0.580l-5.524,1.162l2.617,4.646l-2.033,0.580l0.289,1.743l-1.744,-0.581l-1.455,-0.871l-4.068,-0.291l-4.361,0.000l-1.161,0.291l-3.779,-1.162l-1.745,0.581l-0.292,1.452l-4.649,-0.871l-1.745,0.580l0.581,-1.162z", - "LA" : "M763.29,191.763l0.872,-1.451l0.291,-2.323l-2.327,-2.324l0.000,-2.613l-2.325,-2.323l-2.036,0.000l-0.582,0.871l-1.452,0.000l-0.871,-0.581l-2.907,1.742l0.000,-2.323l0.579,-2.904l-1.743,-0.289l-0.290,-1.744l-1.163,-0.580l0.581,-1.162l2.326,-1.742l0.289,0.581l1.455,0.000l-0.290,-2.904l1.453,-0.581l1.454,2.324l1.161,2.322l3.488,0.000l1.165,2.614l-1.747,0.580l-0.870,0.872l3.197,1.742l2.325,3.194l1.745,2.614l2.036,1.742l0.870,2.032l-0.581,2.614l-2.617,-0.871l-1.160,1.743l2.326,0.872z", - "LB" : "M572.31,139.494l-0.582,0.000l-0.291,0.580l-0.872,0.000l0.872,-2.323l1.454,-2.032l1.163,0.000l0.581,1.162l-1.452,1.161l0.873,-1.452z", - "LK" : "M699.047,210.348l-0.579,2.904l-1.165,0.581l-2.323,0.582l-1.455,-2.034l-0.292,-4.066l1.166,-4.356l2.033,1.454l1.162,2.032l-1.453,-2.903z", - "LR" : "M452.549,219.06l-0.873,0.000l-2.615,-1.453l-2.617,-2.032l-2.324,-1.452l-1.744,-1.742l0.580,-0.872l0.000,-0.871l1.454,-1.452l1.163,-1.451l0.581,0.000l0.872,-0.290l1.162,1.741l-0.290,1.162l0.582,0.581l0.581,0.000l0.582,-1.161l0.871,0.000l0.000,0.870l0.291,1.162l-0.582,1.452l0.582,0.581l0.871,0.290l1.162,1.161l0.293,1.162l-0.293,0.291l0.289,-2.323z", - "LS" : "M553.416,310.531l1.163,0.872l-0.873,1.451l-0.581,0.871l-1.454,0.292l-0.581,0.869l-0.871,0.291l-2.036,-2.032l1.454,-1.742l1.453,-1.163l1.163,-0.579l-1.163,-0.870z", - "LT" : "M536.265,81.417l-0.291,-0.582l0.582,-0.870l-1.454,-0.291l-2.906,-0.581l-0.580,-2.322l3.197,-0.871l4.649,0.290l2.618,-0.290l0.581,0.580l1.455,0.291l2.614,1.162l0.290,1.160l-2.326,1.162l-0.578,1.452l-2.908,0.872l-2.907,0.000l-0.582,-0.872l1.454,0.290z", - "LU" : "M490.338,93.032l0.579,0.581l0.000,1.452l-0.871,0.000l-0.581,-0.291l0.290,-1.451l-0.583,0.291z", - "LV" : "M531.616,76.771l0.290,-2.033l1.162,-1.742l2.616,-0.871l2.326,2.033l2.035,0.000l0.581,-2.033l2.325,-0.581l1.165,0.290l2.614,1.162l2.034,0.000l1.455,0.581l0.291,1.161l0.871,1.742l-2.906,1.162l-1.745,0.291l-2.614,-1.162l-1.455,-0.291l-0.581,-0.580l-2.618,0.290l-4.649,-0.290l3.197,-0.871z", - "LY" : "M514.755,167.951l-2.036,1.162l-1.452,-1.452l-4.361,-1.161l-1.452,-1.743l-2.035,-1.451l-1.163,0.580l-1.163,-1.451l0.000,-1.162l-1.744,-2.033l1.162,-1.161l-0.291,-1.743l0.291,-1.452l0.000,-1.451l0.291,-2.033l0.000,-1.453l-0.871,-2.322l1.162,-0.581l0.290,-1.162l-0.290,-1.161l2.034,-1.162l0.872,-0.870l1.164,-0.873l0.291,-2.032l3.195,0.872l1.165,0.000l2.326,0.290l3.486,1.161l1.456,2.614l2.325,0.581l4.067,1.161l2.907,1.162l1.165,-0.581l1.453,-1.452l-0.582,-2.033l0.874,-1.162l1.741,-1.451l2.036,-0.290l3.778,0.580l0.873,1.161l1.163,0.000l0.871,0.582l2.616,0.291l0.582,0.870l-0.871,1.452l0.289,1.162l-0.579,1.451l0.871,2.324l0.000,9.873l0.000,10.162l0.000,5.228l-3.199,0.291l0.000,0.870l-11.045,-5.227l-11.046,-5.226l2.616,-1.451z", - "MA" : "M459.526,132.525l1.743,1.161l2.616,0.000l2.615,0.581l1.164,0.000l1.163,1.742l0.291,1.742l0.871,2.905l0.582,0.580l-0.289,0.871l-3.782,0.582l-1.162,0.870l-1.744,0.291l0.000,2.032l-3.197,1.162l-1.162,1.452l-2.036,0.581l-2.906,0.581l-4.361,2.032l0.000,3.194l-0.581,0.000l0.292,1.452l-1.745,0.000l-0.872,0.871l-1.161,0.000l-1.165,-0.581l-2.324,0.291l-0.873,2.323l-0.872,0.000l-1.162,3.485l-4.069,3.194l-0.874,3.775l-1.162,1.162l-0.290,0.870l-6.107,0.291l0.000,-1.161l1.165,-0.872l0.871,-1.451l-0.291,-0.872l1.164,-2.033l1.454,-1.742l0.871,-0.291l0.873,-1.742l0.000,-1.451l0.870,-1.742l2.036,-0.872l1.745,-2.904l1.452,-1.162l2.326,-0.289l2.326,-1.743l1.452,-0.871l2.036,-2.323l-0.582,-3.194l1.163,-2.323l0.290,-1.452l1.744,-2.033l2.906,-1.162l2.037,-1.162l1.745,-2.903l0.871,-1.742l-2.035,0.000z", - "MD" : "M547.02,98.259l0.584,-0.290l2.033,-0.290l2.034,0.870l1.162,0.000l1.166,0.872l-0.293,0.871l1.164,0.580l0.290,1.162l0.873,0.580l0.000,0.291l0.290,0.291l-0.581,0.290l-1.743,0.000l-0.293,-0.581l-0.581,0.291l0.291,0.580l-0.872,0.871l-0.291,0.872l-0.872,0.291l-0.291,-1.163l0.291,-1.161l-0.291,-1.161l-1.453,-1.742l-0.873,-1.162l-0.871,-0.872l0.873,0.290z", - "ME" : "M528.417,113.94l-0.292,-0.291l-1.163,1.162l0.000,0.872l-0.581,0.000l-0.579,-0.872l-1.163,-0.582l0.289,-0.580l0.291,-1.451l0.872,-0.581l0.582,-0.290l0.873,0.290l0.290,0.581l0.872,0.290l1.162,0.581l-0.290,0.000l-0.581,0.871l0.582,0.000z", - "MG" : "M610.099,265.23l0.873,1.163l0.582,1.742l0.579,3.485l0.584,1.160l-0.293,1.454l-0.581,0.579l-0.871,-1.451l-0.583,0.872l0.583,2.032l-0.291,1.160l-0.582,0.581l-0.292,2.325l-1.162,3.194l-1.161,3.775l-1.744,5.226l-1.162,3.775l-1.165,3.195l-2.325,0.581l-2.325,1.162l-1.455,-0.582l-2.324,-0.871l-0.872,-1.453l0.000,-2.613l-1.163,-2.032l0.000,-2.033l0.292,-2.032l1.452,-0.582l0.000,-0.871l1.163,-2.032l0.289,-1.742l-0.579,-1.453l-0.582,-1.451l-0.291,-2.614l1.163,-1.743l0.289,-1.742l1.455,0.000l1.452,-0.581l0.872,-0.579l1.454,0.000l1.455,-1.454l2.325,-1.740l0.872,-1.454l-0.580,-1.160l1.161,0.289l1.744,-1.743l0.000,-1.742l0.873,-1.160l-0.871,-1.160z", - "MK" : "M530.451,115.973l0.292,0.000l0.289,-0.581l1.455,-0.581l0.581,0.000l1.161,-0.290l1.165,0.000l1.452,0.871l0.000,1.743l-0.290,0.290l-0.582,0.290l-1.452,0.000l-1.164,0.580l-1.742,0.291l-1.165,-0.581l-0.289,-1.161l-0.289,0.871z", - "ML" : "M440.34,190.602l0.871,-0.290l0.583,-1.743l0.872,0.000l1.744,0.871l1.455,-0.580l1.161,0.000l0.581,-0.581l11.046,0.000l0.582,-2.032l-0.582,-0.291l-1.454,-11.906l-1.161,-11.615l4.070,-0.291l9.301,6.098l9.301,6.098l0.873,1.161l1.454,0.872l1.452,0.291l0.000,1.742l2.906,0.000l0.000,6.097l-1.452,2.034l-0.291,1.452l-2.326,0.580l-3.778,0.291l-0.872,0.870l-1.744,0.291l-2.035,0.000l-0.582,-0.581l-1.452,0.290l-2.617,1.162l-0.582,0.871l-2.035,1.161l-0.291,0.872l-1.163,0.581l-1.452,-0.581l-0.872,0.871l-0.291,1.742l-2.034,2.324l0.000,0.871l-0.873,1.161l0.290,1.741l-1.161,0.292l-0.583,0.290l-0.579,-1.162l-0.582,0.291l-0.581,0.000l-0.582,0.871l-2.037,0.000l-0.870,-0.582l-0.292,0.292l-0.871,-0.581l0.290,-0.871l-0.581,-0.291l-0.582,0.291l0.291,-1.162l0.582,-0.580l-1.162,-1.162l-0.292,-0.871l-0.582,-0.581l-0.581,0.000l-0.871,0.290l-0.873,0.582l-0.579,0.580l-1.165,-0.291l-0.871,-0.580l-0.582,-0.291l-0.581,0.582l-0.290,0.000l-0.293,-1.162l0.000,-0.871l0.000,-1.162l-1.162,-0.581l-0.581,-1.742l0.000,1.742z", - "MM" : "M747.882,175.501l-1.743,1.163l-2.034,0.000l-1.163,3.194l-1.165,0.290l1.455,2.613l1.744,1.742l1.163,2.034l-1.163,2.323l-0.871,0.580l0.582,1.162l1.741,2.322l0.582,1.453l-0.290,1.452l1.162,2.322l-1.454,2.614l-1.452,2.903l-0.289,-2.031l0.870,-2.033l-0.870,-1.742l0.289,-2.904l-1.163,-1.453l-0.871,-3.484l-0.581,-3.484l-1.164,-2.034l-1.743,1.162l-3.200,2.033l-1.454,-0.291l-1.741,-0.580l0.870,-3.486l-0.579,-2.612l-2.036,-2.904l0.290,-1.161l-1.744,-0.291l-1.743,-2.323l-0.291,-2.033l0.871,0.291l0.292,-2.033l1.162,-0.581l-0.291,-1.161l0.583,-0.872l0.290,-2.904l2.033,0.580l1.163,-2.322l0.292,-1.162l1.453,-2.323l0.000,-1.742l3.489,-1.742l2.034,0.290l-0.291,-1.452l0.871,-0.580l0.000,-1.162l1.455,0.000l0.873,1.452l1.161,0.580l0.291,2.324l-0.291,2.032l-2.615,2.323l-0.290,3.484l2.905,-0.580l0.873,2.614l1.743,0.580l-0.872,2.033l2.035,1.162l1.163,0.580l2.035,-0.870l0.000,1.161l-2.326,1.742l-0.581,1.162l1.454,-0.580z", - "MN" : "M715.327,95.356l2.907,-0.582l5.232,-2.323l4.069,-1.161l2.616,0.871l2.908,0.000l1.741,1.162l2.617,0.290l4.071,0.581l2.617,-2.033l-1.163,-1.453l2.907,-2.902l3.196,1.161l2.327,0.290l3.488,0.580l0.290,2.324l4.069,1.162l2.617,-0.582l3.487,-0.290l2.618,0.290l2.615,1.162l1.743,1.453l2.616,0.000l3.490,0.581l2.616,-0.872l3.488,-0.291l4.070,-2.033l1.745,0.291l1.452,0.871l3.197,-0.290l-1.453,2.324l-1.744,2.612l0.581,1.162l1.455,-0.290l2.904,0.290l2.036,-0.872l2.327,0.872l2.325,1.742l-0.291,1.161l-2.034,-0.289l-4.071,0.289l-2.035,0.872l-2.034,1.742l-4.069,1.162l-2.909,1.451l-2.614,-0.580l-1.745,-0.290l-1.454,1.742l0.873,1.162l0.581,0.871l-2.033,0.871l-1.745,1.452l-3.199,0.871l-4.359,0.289l-4.361,0.873l-3.197,1.451l-1.163,-0.870l-3.489,0.000l-4.069,-1.743l-2.615,-0.291l-3.781,0.291l-5.522,-0.580l-3.196,0.000l-1.456,-1.453l-1.163,-2.613l-1.743,-0.291l-3.488,-1.742l-3.778,-0.290l-3.198,-0.581l-0.873,-1.162l0.873,-3.194l-1.746,-2.323l-4.067,-0.872l-2.326,-1.451l0.581,2.032z", - "MR" : "M440.34,190.602l-2.034,-1.742l-1.454,-2.033l-2.034,-0.580l-1.163,-0.872l-1.454,0.000l-1.452,0.581l-1.456,-0.291l-0.871,0.872l-0.290,-1.453l0.871,-1.451l0.290,-2.614l-0.290,-2.613l-0.291,-1.453l0.291,-1.161l-0.871,-1.452l-1.454,-1.161l0.582,-0.871l11.046,0.000l-0.581,-4.066l0.581,-1.451l2.615,0.000l0.000,-7.261l9.011,0.290l0.000,-4.355l10.176,6.679l-4.070,0.291l1.161,11.615l1.454,11.906l0.582,0.291l-0.582,2.032l-11.046,0.000l-0.581,0.581l-1.161,0.000l-1.455,0.580l-1.744,-0.871l-0.872,0.000l-0.583,1.743l0.871,-0.290z", - "MW" : "M568.822,262.618l-0.582,2.032l0.582,3.776l1.165,-0.291l0.871,0.871l1.163,2.034l0.289,3.483l-1.163,0.581l-0.871,2.032l-1.744,-1.742l-0.292,-2.032l0.582,-1.161l-0.290,-1.161l-0.873,-0.582l-0.871,0.291l-1.455,-1.454l-1.452,-0.580l0.580,-2.612l0.872,-0.873l-0.290,-2.323l0.290,-2.322l0.582,-0.582l-0.582,-2.322l-1.452,-1.452l2.907,0.581l0.289,0.871l1.163,1.161l-0.582,-3.776z", - "MX" : "M206.341,159.82l-1.163,2.324l-0.291,2.033l-0.290,3.774l-0.291,1.162l0.581,1.743l0.872,1.161l0.582,2.033l1.744,2.323l0.581,1.452l1.163,1.451l2.906,0.582l1.163,1.161l2.326,-0.871l2.034,-0.290l2.035,-0.291l1.745,-0.581l1.743,-1.161l0.872,-1.452l0.000,-2.323l0.582,-0.871l2.034,-0.581l2.908,-0.872l2.324,0.291l1.745,-0.291l0.582,0.582l0.000,1.161l-1.454,1.742l-0.873,1.742l0.582,0.581l-0.291,1.162l-0.872,2.033l-0.582,-0.581l-0.581,0.000l-0.580,0.000l-0.872,1.742l-0.582,-0.580l-0.290,0.290l0.000,0.290l-2.617,0.000l-2.615,0.000l0.000,1.743l-1.163,0.000l0.872,0.870l1.162,0.581l0.291,0.581l0.582,0.291l-0.292,0.871l-3.487,0.000l-1.164,2.033l0.291,0.580l-0.291,0.581l0.000,0.871l-3.197,-2.903l-1.454,-0.872l-2.325,-0.870l-1.453,0.290l-2.325,1.161l-1.163,0.291l-2.035,-0.872l-2.035,-0.580l-2.617,-1.162l-2.034,-0.291l-3.198,-1.451l-2.325,-1.161l-0.582,-0.872l-1.453,0.000l-2.906,-0.871l-1.163,-1.453l-2.907,-1.451l-1.454,-1.742l-0.581,-1.453l0.872,-0.290l-0.291,-0.581l0.582,-0.871l0.000,-0.871l-0.873,-1.161l-0.290,-1.162l-0.872,-1.452l-2.325,-2.614l-2.908,-2.322l-1.453,-1.453l-2.325,-1.161l-0.290,-0.872l0.290,-1.451l-1.454,-0.871l-1.453,-1.162l-0.872,-2.032l-1.454,-0.291l-1.453,-1.452l-1.454,-1.161l0.000,-0.871l-1.453,-2.033l-1.162,-2.324l0.290,-0.870l-2.035,-1.162l-0.872,0.000l-1.744,-0.581l-0.290,1.162l0.290,1.161l0.290,2.034l0.872,1.161l2.036,2.032l0.581,0.581l0.291,0.290l0.581,0.872l0.291,0.000l0.581,1.742l0.872,0.580l0.581,1.162l1.745,1.162l0.872,2.613l0.872,1.162l0.872,1.452l0.000,1.452l1.453,0.000l0.872,1.160l1.164,1.454l0.000,0.290l-1.164,1.161l-0.581,0.000l-0.581,-1.742l-2.035,-1.452l-1.744,-1.453l-1.454,-0.580l0.000,-2.033l-0.291,-1.452l-1.453,-0.870l-1.744,-1.453l-0.581,0.581l-0.582,-0.871l-1.743,-0.581l-1.745,-1.742l0.291,0.000l1.163,0.000l1.162,-0.872l0.000,-1.451l-2.034,-1.742l-1.744,-0.871l-0.873,-1.742l-1.162,-1.744l-1.163,-2.322l-1.163,-2.323l3.198,-0.291l3.487,-0.290l-0.290,0.581l4.070,1.452l6.395,1.742l5.232,0.000l2.326,0.000l0.000,-1.162l4.650,0.000l1.163,1.162l1.453,0.871l1.454,1.162l0.872,1.451l0.872,1.453l1.454,0.871l2.325,0.871l1.744,-2.323l2.035,0.000l2.034,1.161l1.454,1.742l0.872,1.742l1.744,1.452l0.582,2.033l0.581,1.162l2.326,0.871l1.744,0.580l-1.163,0.000z", - "MY" : "M751.953,213.833l0.29,1.451l1.744-0.289l0.873-1.162l0.582,0.29l1.741,1.743l1.165,1.741l0.29,1.743l-0.29,1.452v0.87l0.29,1.453l0.871,0.871l1.162,2.322v1.162h-2.033l-2.616-2.033l-3.195-2.032l-0.295-1.452l-1.452-1.743l-0.581-2.322l-0.871-1.452l0.289-2.031l-0.58-1.162l0.291-0.582L751.953,213.833zM800.205,218.769l-2.034,0.871l-2.325-0.58h-3.198l-0.871,3.193l-1.163,0.872l-1.452,3.774l-2.036,0.581l-2.615-0.581l-1.454,0.291l-1.453,1.16h-1.744l-1.744,0.581l-2.033-1.741l-0.584-1.743l2.036,0.871l2.325-0.581l0.581-2.322l1.163-0.29l3.197-0.581l2.036-2.324l1.162-1.741l1.453,1.451l0.58-0.87h1.163l0.291-1.743v-1.451l2.327-1.743l1.161-2.322h1.162l1.455,1.452v1.162l2.034,0.869l2.325,0.872l-0.29,0.872l-1.744,0.289L800.205,218.769z", - "MZ" : "M568.822,262.618l2.036,-0.292l3.486,0.872l0.581,-0.291l2.036,-0.289l0.872,-0.581l1.746,0.000l2.907,-1.162l2.323,-1.452l0.292,1.162l0.000,2.613l0.289,2.614l0.000,4.064l0.584,1.453l-0.873,2.033l-0.873,1.742l-1.742,1.742l-2.618,1.161l-3.199,1.163l-2.905,3.194l-1.163,0.290l-2.036,2.033l-1.162,0.580l0.000,2.034l1.162,2.032l0.582,1.741l0.000,0.874l0.581,-0.292l-0.291,2.614l-0.290,1.451l0.581,0.290l-0.291,1.162l-1.161,1.161l-2.327,0.873l-3.198,1.451l-1.452,1.162l0.289,1.161l0.873,0.000l-0.291,1.452l-2.034,0.000l-0.291,-1.162l-0.580,-1.161l0.000,-1.162l0.290,-2.904l-0.582,-2.033l-1.452,-3.774l2.904,-3.195l0.874,-2.033l0.289,-0.290l0.293,-1.452l-0.293,-0.870l0.000,-2.033l0.582,-2.032l0.000,-3.486l-1.452,-0.871l-1.163,-0.289l-0.582,-0.582l-1.452,-0.581l-2.325,0.000l0.000,-0.870l-0.292,-2.033l8.429,-2.325l1.455,1.454l0.871,-0.291l0.873,0.582l0.290,1.161l-0.582,1.161l0.292,2.032l1.744,1.742l0.871,-2.032l1.163,-0.581l-0.289,-3.483l-1.163,-2.034l-0.871,-0.871l-1.165,0.291l-0.582,-3.776l-0.582,2.032z", - "NA" : "M518.825,309.661l-2.036,-2.325l-1.163,-2.033l-0.579,-2.613l-0.584,-2.032l-1.161,-4.065l0.000,-3.485l-0.291,-1.452l-1.163,-1.162l-1.454,-2.034l-1.452,-3.483l-0.582,-1.743l-2.034,-2.613l-0.291,-2.033l1.452,-0.581l1.455,-0.581l1.743,0.292l1.745,1.161l0.581,-0.291l11.047,0.000l2.033,1.162l6.396,0.582l5.232,-1.162l2.326,-0.582l1.745,0.000l0.871,0.582l0.290,0.289l-1.743,0.582l-0.874,0.000l-1.744,1.162l-0.871,-1.162l-4.361,0.871l-2.033,0.291l0.000,9.582l-2.908,0.289l0.000,7.843l0.000,10.163l-2.326,1.451l-1.452,0.290l-1.744,-0.581l-1.162,-0.290l-0.582,-1.162l-1.163,-0.580l1.163,-1.453z", - "NC" : "M930.142,289.042l2.325,1.452l1.452,1.454l-1.162,0.579l-1.453,-0.871l-2.036,-1.162l-1.744,-1.452l-1.742,-1.741l-0.582,-1.162l1.161,0.000l1.745,1.162l1.162,0.870l-0.874,-0.871z", - "NCY" : "M563.881,134.267l0.289,0.000l0.291,-0.581l2.035,0.000l2.326,-0.871l-1.745,1.162l0.293,0.580l-0.293,0.000l-0.581,0.000l-0.581,0.000l-0.290,-0.290l-0.582,0.000l-0.582,0.290l0.580,0.290z", - "NE" : "M479.583,198.151l0.291,-2.032l-3.198,-0.581l-0.291,-1.161l-1.453,-2.033l-0.292,-1.162l0.292,-1.161l1.744,-0.291l0.872,-0.870l3.778,-0.291l2.326,-0.580l0.291,-1.452l1.452,-2.034l0.000,-6.097l4.070,-1.453l7.849,-5.227l9.592,-5.226l4.361,1.161l1.452,1.452l2.036,-1.162l0.581,4.357l1.164,0.871l0.000,0.871l1.163,0.871l-0.581,1.162l-1.164,5.517l-0.292,3.484l-3.486,2.614l-1.165,3.775l1.165,0.871l0.000,1.742l1.742,0.291l-0.289,1.161l-0.582,0.291l-0.292,0.871l-0.289,0.000l-2.036,-2.904l-0.580,-0.291l-2.327,1.453l-2.033,-0.581l-1.455,-0.291l-0.872,0.291l-1.453,0.000l-1.743,1.161l-1.455,0.000l-3.196,-1.161l-1.452,0.581l-1.165,0.000l-1.163,-1.162l-2.617,-0.872l-3.195,0.291l-0.582,0.581l-0.292,1.452l-0.871,1.161l-0.291,2.324l-2.034,-1.453l-0.874,0.000l1.161,-0.871z", - "NG" : "M497.023,217.898l-2.615,0.871l-1.164,0.000l-1.161,0.581l-2.037,0.000l-1.452,-1.743l-0.873,-2.032l-2.033,-1.742l-2.036,0.000l-2.615,0.000l0.289,-4.647l0.000,-1.741l0.581,-1.743l0.582,-0.871l1.454,-1.452l-0.291,-0.873l0.580,-1.160l-0.580,-1.453l0.000,-1.160l0.291,-2.324l0.871,-1.161l0.292,-1.452l0.582,-0.581l3.195,-0.291l2.617,0.872l1.163,1.162l1.165,0.000l1.452,-0.581l3.196,1.161l1.455,0.000l1.743,-1.161l1.453,0.000l0.872,-0.291l1.455,0.291l2.033,0.581l2.327,-1.453l0.580,0.291l2.036,2.904l0.289,0.000l1.163,0.871l-0.289,0.580l0.000,0.872l-2.326,2.323l-0.873,1.742l-0.289,1.452l-0.582,0.582l-0.581,1.742l-1.455,1.161l-0.581,1.452l-0.580,1.161l-0.291,1.162l-1.744,0.870l-1.746,-1.161l-0.871,0.000l-1.743,1.743l-0.872,0.000l-1.164,2.614l0.872,-2.032z", - "NI" : "M237.734,200.475l-0.872,-0.871l-1.163,-1.162l-0.581,-0.871l-1.163,-0.871l-1.454,-1.162l0.291,-0.580l0.291,0.580l0.291,-0.290l0.872,0.000l0.291,-0.871l0.581,0.000l-0.290,-1.162l0.871,-0.291l0.582,0.291l0.581,-0.871l0.581,0.580l0.291,-0.289l0.581,-0.291l1.163,-0.871l0.000,-0.581l0.291,0.000l0.291,-0.580l0.291,0.000l0.290,0.290l0.582,0.000l0.581,-0.290l0.872,0.000l0.872,-0.291l0.291,-0.291l1.162,0.000l-0.291,0.291l-0.290,0.581l0.290,0.871l-0.582,1.162l-0.289,0.870l0.000,1.453l0.000,0.580l0.289,1.162l-0.580,0.290l-0.291,1.161l0.291,0.872l-0.581,0.581l0.000,0.871l0.581,0.290l-0.581,0.581l-0.872,0.000l-0.583,-0.581l-0.871,-0.290l-0.581,0.290l-1.745,-0.581l0.581,-0.291z", - "NL" : "M490.628,83.74l2.035,0.000l0.581,1.161l-0.581,2.323l-0.871,1.162l-1.454,0.000l0.290,2.904l-1.452,-0.582l-1.745,-1.451l-2.617,0.580l-2.034,0.000l1.452,-0.870l2.618,-4.066l-3.778,1.161z", - "NO" : "M551.381,35.246l8.43,2.032l-3.488,0.582l3.198,1.742l-4.942,1.161l-2.034,0.29l1.161-2.032l-3.486-1.162l-4.362,1.162l-1.452,2.032l-2.615,1.162l-2.907-0.581h-3.488l-3.198-1.452l-1.453,0.581l-1.744,0.29l-0.582,1.743l-5.231-0.291l-0.582,1.452h-2.615l-1.745,2.033l-2.906,2.903l-4.361,3.775l1.165,1.162l-0.873,0.872h-2.907l-1.744,2.613l0.29,3.775l1.743,1.162l-1.162,3.484l-2.033,1.742l-1.455,1.742l-1.742-1.742l-5.524,3.194l-3.488,0.582l-3.778-1.452l-1.163-2.905l-0.871-6.387l2.615-1.743l7.268-2.323l5.523-2.904l4.941-3.774l6.685-5.228l4.651-2.033l7.559-3.484l5.813-1.162h4.651l4.069-2.324l5.231,0.291L551.381,35.246zM541.79,16.951l-6.105,1.162l-4.941-0.87l2.036-0.582l-1.747-0.872l5.814-0.58l0.873,1.161L541.79,16.951zM524.058,11.724l9.01,2.033l-6.977,1.162l-1.452,2.032l-2.325,0.581l-1.455,2.324h-3.196l-6.104-1.743l2.615-0.87l-4.069-0.873l-5.523-2.323l-2.036-2.033l7.56-1.162l1.454,1.162l3.777-0.291l1.163-0.871h4.07L524.058,11.724zM543.823,9.692l5.522,1.161l-4.358,1.452l-7.849,0.29l-8.14-0.581l-0.582-0.58h-3.777l-3.199-1.453l8.722-0.58l3.778,0.58l2.906-0.871L543.823,9.692z", - "NP" : "M716.198,154.304l0.000,1.161l0.291,1.742l-0.291,1.162l-2.326,0.000l-3.197,-0.581l-2.325,-0.290l-1.453,-1.452l-3.779,-0.291l-3.490,-1.742l-2.614,-1.161l-2.908,-1.162l1.163,-2.613l1.745,-1.161l1.162,-0.582l2.326,0.871l2.616,1.742l1.454,0.291l1.162,1.452l2.034,0.581l2.326,1.162l2.906,0.580l-3.198,-0.291z", - "NZ" : "M949.907,343.345l0.873,1.161l1.745-1.161l0.87,1.161v1.161l-0.87,1.452l-2.036,2.033l-1.163,1.161l0.873,1.162h-2.034l-2.327,1.162l-0.871,1.74l-1.455,2.904l-2.323,1.161l-1.165,0.871l-2.615-0.289l-1.742-0.872h-3.198l-0.292-1.162l1.453-2.033l3.49-2.613l1.744-0.58l2.034-1.16l2.325-1.452l1.744-1.453l1.162-2.032l0.872-0.58l0.58-1.452l1.745-1.451L949.907,343.345zM954.559,330.277l1.743,2.904l0.292-1.743l1.16,0.58l0.293,2.324l2.324,0.872h1.745l1.743-0.872l1.453,0.289l-0.871,2.326l-0.873,1.74h-2.033l-0.582,0.581v1.452l-0.289,0.291l-1.165,1.452l-1.163,2.032l-2.325,1.161l-0.29-0.87l-1.162-0.291l1.452-2.322l-0.871-1.453l-2.907-1.16v-0.873l2.035-1.159l0.58-2.034l-0.289-1.743l-1.164-1.743l0.292-0.58l-1.454-1.161l-2.034-2.323l-1.162-2.032l0.87-0.291l1.455,1.453l2.325,0.87L954.559,330.277z", - "OM" : "M635.678,172.888l-0.871,1.742h-1.163l-0.58,0.581l-0.582,1.452l0.29,1.742l-0.29,0.581l-1.163-0.29l-1.744,1.162l-0.291,1.452l-0.58,0.581h-1.743l-1.165,0.582v1.162l-1.163,0.581l-1.452-0.291l-2.034,1.162h-1.163l-0.873-1.743l-2.325-4.645l8.431-2.613l1.745-5.519l-1.165-2.032v-1.162l0.873-1.162v-1.161l1.162-0.581l-0.581-0.291l0.289-1.742h1.456l1.161,1.742l1.745,1.161l2.036,0.291l1.45,0.581l1.165,1.452l0.871,0.872l0.872,0.58v0.582l-0.872,1.451l-0.582,0.872L635.678,172.888zM628.995,159.82l-0.291,0.291l-0.583-0.871l0.874-0.872l0.289,0.291L628.995,159.82z", - "PA" : "M259.244,211.219l-0.872,-0.871l-0.580,-1.452l0.872,-0.871l-0.872,-0.290l-0.582,-0.871l-1.163,-0.581l-1.162,0.000l-0.582,1.162l-1.162,0.580l-0.582,0.000l-0.291,0.581l1.163,1.451l-0.581,0.581l-0.582,0.291l-1.163,0.290l-0.581,-1.742l-0.291,0.291l-0.872,0.000l-0.581,-1.162l-1.163,-0.291l-0.580,-0.290l-1.164,0.000l-0.291,0.581l-0.290,-0.291l0.290,-0.580l0.291,-0.582l-0.291,-0.289l0.583,-0.581l-0.583,-0.291l0.000,-1.161l0.872,-0.291l1.163,1.162l0.000,0.581l0.872,0.000l0.291,-0.291l0.872,0.872l1.163,-0.291l1.163,-0.581l1.744,-0.579l0.872,-0.873l1.744,0.000l-0.291,0.291l1.745,0.291l1.163,0.291l0.871,0.870l0.872,0.870l-0.290,0.292l0.872,1.741l-0.582,0.871l-0.872,-0.289l0.582,-1.451z", - "PE" : "M282.208,279.17l-0.872,1.451l-1.163,0.872l-2.905,-1.743l-0.292,-1.162l-5.232,-2.613l-4.942,-3.195l-2.325,-1.451l-1.163,-2.323l0.581,-0.871l-2.326,-3.485l-2.905,-5.227l-2.326,-5.517l-1.163,-1.161l-0.872,-2.033l-2.325,-1.743l-1.745,-1.161l0.872,-1.162l-1.453,-2.613l0.872,-2.033l2.326,-1.742l0.291,1.160l-0.873,0.582l0.000,1.162l1.163,-0.290l1.163,0.290l1.162,1.451l1.454,-1.162l0.582,-1.742l1.744,-2.613l3.196,-0.871l3.198,-2.904l0.872,-1.741l-0.581,-2.324l0.872,-0.291l1.744,1.452l0.872,1.163l1.163,0.870l1.744,2.903l2.035,0.291l1.453,-0.870l1.164,0.579l1.452,-0.290l2.326,1.452l-1.744,2.613l0.582,0.290l1.452,1.454l-2.324,-0.290l-0.583,0.580l-2.033,0.289l-3.198,2.034l-0.291,1.161l-0.581,1.162l0.290,1.451l-1.744,0.581l0.000,1.162l-0.872,0.581l1.163,2.614l1.744,1.451l-0.581,1.451l1.744,0.000l0.872,1.453l2.616,0.000l2.326,-1.453l-0.292,4.066l1.163,0.292l1.744,-0.292l2.326,4.355l-0.582,0.873l-0.290,2.033l0.000,2.323l-1.163,1.452l0.582,0.872l-0.582,0.869l1.163,2.324l1.745,-2.904z", - "PG" : "M902.817,249.55l-0.873,0.29l-1.163-0.871l-1.162-1.742l-0.581-2.032l0.581-0.289l0.29,0.579l0.583,0.872l1.452,1.741l1.163,0.871L902.817,249.55zM892.063,246.065l-1.455,0.292l-0.29,0.58l-1.454,0.871l-1.452,0.582h-1.452l-2.328-0.872l-1.453-0.872v-0.871l2.616,0.582l1.454-0.292l0.289-1.159l0.582-0.293l0.292,1.452h1.452l0.873-1.159l1.452-0.873l-0.289-1.741h1.741l0.584,0.58l-0.291,1.452L892.063,246.065zM878.982,251.292l2.326,1.742l1.741,2.904h1.745v1.16l2.035,0.582l-0.87,0.291l2.904,1.16l-0.29,0.871l-1.744,0.292l-0.87-0.872l-2.328-0.291l-2.616-0.29l-2.325-1.743l-1.452-1.451l-1.454-2.613l-3.488-1.161l-2.326,0.871l-1.744,0.871l0.292,2.032l-2.034,0.871l-1.744-0.29l-2.617-0.29l-0.29-9.002v-8.712l4.94,1.742l4.941,1.451l2.036,1.453l1.452,1.452l0.292,1.741l4.649,1.743l0.583,1.451l-2.328,0.291L878.982,251.292zM895.259,243.451l-0.873,0.582l-0.582-1.741l-0.579-0.873l-1.162-0.87l-1.455-1.162l-2.034-0.871l0.579-0.58l1.455,0.58l1.163,0.581l1.163,0.871l0.87,1.161l1.165,0.871L895.259,243.451z", - "PH" : "M821.715,207.735l0.292,2.033v1.451l-0.872,2.322l-0.871-2.612l-1.454,1.452l0.871,2.033l-0.871,1.16l-3.199-1.452l-0.581-2.032l0.874-1.452l-1.745-1.161l-0.873,1.161l-1.452-0.29l-2.034,1.742l-0.292-0.871l0.871-2.323l1.744-0.871l1.455-0.872l1.163,1.162l2.035-0.87l0.29-1.162h2.033v-2.323l2.036,1.453l0.29,1.451L821.715,207.735zM815.03,202.798l-0.871,0.87l-0.873,1.744l-0.871,0.579l-1.744-1.741l0.582-0.871l0.581-0.581l0.289-1.743l1.455-0.29l-0.292,2.033l2.036-2.614L815.03,202.798zM799.916,205.413l-3.488,2.612l1.163-2.033l2.034-1.741l1.743-1.744l1.454-2.902l0.291,2.322l-1.745,1.453L799.916,205.413zM809.216,198.151l1.743,0.872h1.745v1.161l-1.452,1.162l-1.745,0.871v-1.162l0.292-1.451L809.216,198.151zM819.099,197.571l0.874,2.904l-2.036-0.582v0.872l0.581,1.741l-1.162,0.582l-0.29-2.033h-0.584l-0.578-1.742l1.743,0.291v-1.162l-1.743-2.033h2.614L819.099,197.571zM808.344,194.958l-0.873,2.323l-1.161-1.162l-1.454-2.323l2.615,0.291L808.344,194.958zM807.764,180.148l1.743,0.581l0.871-0.581v0.581l-0.289,1.162l0.87,2.033l-0.581,2.324l-1.744,0.87l-0.29,2.323l0.582,2.033l1.452,0.29l1.165-0.29l3.486,1.451l-0.289,1.743l0.87,0.581l-0.289,1.161l-2.036-1.161l-1.163-1.452l-0.579,0.871l-1.744-1.743l-2.617,0.581l-1.454-0.581l0.291-1.162l0.873-0.871l-0.873-0.58l-0.291,1.162l-1.453-1.743l-0.29-1.161l-0.291-2.613l1.162,0.871l0.292-4.355l0.871-2.324H807.764z", - "PK" : "M680.735,128.75l2.036,1.451l0.870,2.033l4.361,1.162l-2.617,2.323l-3.196,0.290l-4.069,-0.581l-1.453,1.162l1.160,2.324l0.874,2.032l2.325,1.161l-2.325,1.743l0.000,2.032l-2.618,2.614l-1.745,2.904l-2.904,2.904l-3.199,-0.291l-3.197,2.904l1.745,1.162l0.579,2.032l1.455,1.451l0.583,2.324l-6.106,0.000l-1.745,2.033l-2.033,-0.871l-0.873,-2.033l-2.034,-2.033l-5.234,0.580l-4.360,0.000l-4.068,0.291l1.161,-3.193l4.070,-1.162l-0.290,-1.452l-1.453,-0.291l0.000,-2.613l-2.617,-1.162l-1.162,-1.742l-1.453,-1.452l4.649,1.452l2.907,-0.291l1.455,0.291l0.581,-0.580l2.035,0.289l3.488,-1.161l0.291,-2.323l1.452,-1.742l2.034,0.000l0.292,-0.581l2.036,-0.290l1.160,0.000l0.875,-0.580l0.000,-1.743l1.162,-1.743l1.742,-0.580l-1.161,-1.743l2.616,0.000l0.872,-0.871l-0.289,-1.162l1.450,-1.161l-0.289,-1.452l-0.581,-1.162l1.454,-1.161l3.197,-0.580l2.907,-0.291l1.454,-0.581l-1.743,0.290z", - "PL" : "M515.047,90.418l-1.165,-1.742l0.292,-0.870l-0.581,-1.452l-1.163,-1.162l0.872,-0.581l-0.583,-1.452l1.744,-0.870l4.362,-1.163l3.489,-1.161l2.614,0.581l0.291,0.580l2.617,0.291l3.489,0.290l4.940,-0.290l1.454,0.290l0.582,0.872l0.289,1.452l0.582,0.870l0.000,1.161l-1.453,0.582l0.871,1.162l0.000,1.161l1.455,2.614l-0.292,0.580l-1.452,0.580l-2.617,2.033l0.872,1.452l-0.582,-0.289l-2.616,-1.163l-2.033,0.582l-1.455,-0.291l-1.453,0.581l-1.455,-1.163l-1.160,0.582l0.000,-0.291l-1.454,-1.161l-2.034,-0.290l-0.290,-0.872l-1.746,-0.290l-0.581,0.580l-1.454,-0.580l0.293,-0.580l-2.036,-0.291l1.453,0.872z", - "PR" : "M291.219,180.148l1.455,0.000l0.581,0.581l-0.872,0.871l-2.035,0.000l-1.453,0.000l-0.291,-1.162l0.582,-0.290l-2.033,0.000z", - "PS" : "M571.728,141.816l0.000,1.743l-0.581,0.871l-1.160,0.291l0.000,-0.581l0.871,-0.581l-0.871,-0.289l0.578,-1.743l-1.163,-0.289z", - "PT" : "M448.769,115.683l1.163,-0.581l1.163,-0.291l0.581,1.162l1.744,0.000l0.291,-0.290l1.746,0.000l0.581,1.452l-1.163,0.870l0.000,2.033l-0.582,0.291l0.000,1.451l-1.162,0.291l1.162,1.452l-0.873,2.032l0.873,0.581l-0.291,0.871l-0.871,0.871l0.000,1.162l-0.874,0.581l-1.452,-0.290l-1.454,0.290l0.292,-2.324l-0.292,-1.451l-1.163,-0.291l-0.581,-1.162l0.291,-1.742l0.871,-1.160l0.292,-0.873l0.582,-1.741l0.000,-1.162l-0.582,-0.871l0.292,1.161z", - "PY" : "M301.103,292.237l1.163,-3.485l0.000,-1.451l1.453,-2.324l4.652,-0.871l2.616,0.000l2.615,1.451l0.000,0.871l0.872,1.452l-0.291,3.776l2.907,0.581l1.163,-0.581l2.035,0.871l0.291,0.581l0.291,2.613l0.290,1.162l1.163,0.000l0.872,-0.290l1.163,0.290l0.000,1.741l-0.292,1.454l-0.580,1.742l-0.582,2.322l-2.325,2.032l-2.326,0.581l-3.197,-0.581l-2.617,-0.580l2.617,-4.354l-0.291,-1.162l-2.906,-1.161l-3.198,-2.034l-2.326,-0.290l5.232,4.356z", - "QA" : "M613.587,162.725l0.000,-1.743l0.582,-1.452l0.873,-0.290l0.871,0.871l0.000,1.451l-0.581,1.744l-0.872,0.000l0.873,0.581z", - "RO" : "M536.265,99.13l1.163,-0.581l1.744,0.581l1.745,0.000l1.163,0.581l1.162,-0.581l2.036,-0.291l0.579,-0.580l1.163,0.000l0.873,0.290l0.871,0.872l0.873,1.162l1.453,1.742l0.291,1.161l-0.291,1.161l0.291,1.163l1.452,0.580l1.166,-0.580l1.161,0.580l0.289,0.581l-1.450,0.581l-0.874,0.000l-0.872,3.194l-1.454,-0.290l-2.035,-0.872l-3.196,0.581l-1.452,0.581l-4.071,0.000l-2.035,-0.581l-1.164,0.291l-0.581,-1.162l-0.581,-0.581l0.581,-0.291l-0.581,-0.289l-0.871,0.580l-1.745,-0.872l-0.289,-1.161l-1.454,-0.580l-0.293,-0.872l-1.741,-1.161l2.325,-0.581l1.742,-1.741l1.164,-2.034l-1.743,0.581z", - "RS" : "M531.325,106.1l1.454,0.580l0.289,1.161l1.745,0.872l0.871,-0.580l0.581,0.289l-0.581,0.291l0.581,0.581l-0.871,0.581l0.290,1.161l1.454,1.162l-1.164,0.871l-0.580,0.871l0.290,0.289l-0.290,0.292l-1.165,0.000l-1.161,0.290l0.000,-0.290l0.290,-0.292l0.292,-0.580l-0.292,0.000l-0.579,-0.580l-0.583,0.000l-0.290,-0.581l-0.581,-0.290l-0.293,-0.291l-0.581,0.291l-0.289,0.871l-0.582,0.000l0.290,0.000l-1.162,-0.581l-0.872,-0.290l-0.290,-0.581l-0.873,-0.290l0.581,-0.291l0.582,-1.161l-1.455,-1.162l0.581,-1.161l-0.871,0.000l1.163,-0.872l-0.873,-0.870l-0.871,-1.163l2.326,-0.580l1.455,0.000l1.741,1.161l-0.293,-0.872z", - "RU" : "M869.098,91.29l2.907,4.936l-4.07-0.87l-1.743,4.065l2.614,2.613v2.033l-2.034-1.743l-1.743,2.323l-0.582-2.323l0.292-2.904l-0.292-2.904l0.582-2.033v-3.775l-1.454-2.613l0.291-3.774l2.326-1.162l-0.872-1.452l1.163-0.29l0.58,1.742l1.162,2.614l-0.29,2.903L869.098,91.29zM536.265,81.417l-4.94,0.29l-3.488-0.29l0.58-1.452l3.779-0.872l2.906,0.581l1.454,0.291l-0.582,0.871L536.265,81.417zM969.382,36.116l-3.196,0.291l-0.581-0.871l3.777-1.162h-0.01l0.58-0.29h2.326l3.779,0.872v0.29l-2.907,0.871h-3.778H969.382zM869.098,29.728h-4.069l-5.814-0.29l-0.582-0.29l2.618-1.162h3.488l4.067,0.872L869.098,29.728zM888.574,24.501l-3.198,1.162l-4.36-0.291l-4.942-1.16l0.582-0.873l5.232,0.291L888.574,24.501zM873.167,23.049l-2.324,2.033h-9.884l-4.651,0.58l-5.521-1.742l1.454-1.742l3.778-0.582h7.266L873.167,23.049zM632.19,36.407l-1.743,0.291l-9.012-0.291l-0.581-1.161l-4.941-0.872l-0.581-1.452l2.907-0.582V30.89l5.232-2.323l-2.325-0.291l6.393-2.613l-0.578-1.162l6.104-1.452l9.011-1.742l9.3-0.581l4.653-0.871l5.23-0.581l2.036,1.162l-1.745,0.871l-9.883,1.452l-8.43,1.162l-8.43,2.613l-4.069,2.614l-4.361,2.904l0.584,2.033L632.19,36.407zM969.382,52.379h-0.291l-3.486,1.161l-3.488-0.29l2.615,1.452l1.454,2.323l1.455,0.58l0.289,1.162l-0.873,0.872l-4.94-0.582l-7.849,2.033l-2.325,0.291l-4.362,2.033l-4.069,1.742l-0.871,1.161l-4.069-2.033l-6.977,2.324l-1.452-1.162l-2.618,1.162l-3.488-0.291l-0.871,1.742l-3.486,2.613l0.29,1.162l2.906,0.582l-0.291,4.064h-2.615l-1.163,2.324l1.163,1.161l-4.651,1.452l-1.163,3.194l-4.07,0.582l-0.87,2.903l-3.781,2.613l-1.162-2.032l-1.163-3.775l-1.454-6.389l1.164-3.775l2.324-1.453l0.291-1.451l4.36-0.581l4.942-3.484l4.649-2.904l4.943-2.033l2.326-3.775h-3.489l-1.744,2.324l-6.977,3.194l-2.034-3.485l-7.269,0.872l-6.975,4.646l2.325,1.742l-6.105,0.58l-4.359,0.291l0.291-2.032l-4.358-0.292l-3.199,1.453l-8.431-0.581l-9.01,0.871l-9.013,5.227l-10.463,6.679l4.357,0.29l1.165,1.743l2.615,0.581l1.744-1.452l3.196,0.291l3.78,2.904l0.29,2.323l-2.326,2.904v3.194l-1.452,4.356l-4.07,4.066l-0.87,1.741l-3.781,3.194l-3.777,3.194l-1.744,1.742l-3.488,1.452l-1.744,0.291l-1.744-1.453l-3.78,2.033l-0.579,0.871l-0.292-0.582v-1.161l1.454-0.291l0.29-3.194l-0.581-2.324l2.325-0.871l3.198,0.291l2.034-2.613l0.871-2.904l1.163-1.162l1.454-2.323l-4.651,0.871l-2.325,0.872h-4.361l-0.871-2.614l-3.488-1.742l-4.651-0.871l-1.16-2.904l-0.874-1.453l-0.871-1.161l-1.744-2.903l-2.617-1.162l-4.067-0.58h-3.491l-3.486,0.58l-2.325,1.162l1.452,0.871v1.452l-1.452,0.872l-2.328,2.903v1.162l-4.068,1.742l-3.197-1.162l-3.197,0.291l-1.452-0.871l-1.745-0.291l-4.069,2.033l-3.488,0.291l-2.616,0.872l-3.49-0.581h-2.615l-1.743-1.453l-2.615-1.162l-2.618-0.291l-3.486,0.291l-2.617,0.582l-4.069-1.162l-0.29-2.324l-3.488-0.58l-2.326-0.29l-3.196-1.162l-2.907,2.903l1.163,1.453l-2.617,2.033l-4.07-0.581l-2.617-0.29l-1.741-1.162h-2.908l-2.616-0.871l-4.068,1.161l-5.232,2.324l-2.907,0.582l-1.163,0.29l-1.454-1.742l-3.488,0.291l-1.163-1.162l-2.034-0.582l-1.16-1.452l-1.455-0.581l-4.069,0.872l-3.78-1.742l-1.453,1.451l-6.104-6.968l-3.488-2.033l0.871-0.871l-6.975,2.613h-2.617l0.29-1.451l-3.488-0.872l-2.906,0.581l-0.872-2.904l-4.941-0.581l-2.326,1.161l-6.977,1.162l-1.454,0.582l-10.172,0.872l-1.454,1.161l2.036,1.743l-2.617,0.87l0.581,0.581l-2.617,1.452l4.361,1.742l-0.581,1.453l-3.78-0.291l-0.871,0.872l-3.488-1.452l-4.36,0.29l-2.906,1.162l-3.488-1.162l-5.812-2.032h-4.361l-5.814,3.194l-0.289,2.033l-2.906-1.742l-2.036,3.195l0.58,0.29l-1.452,2.324l2.326,1.742h2.034l1.743,1.741l-0.289,1.453l1.452,0.581l-1.163,1.452l-2.906,0.581l-2.615,2.614l2.615,2.613l-0.289,2.032l2.906,3.194l-1.744,1.162l-0.29,0.581h-1.165l-2.033-1.743h-0.873l-1.745-0.871l-0.581-1.162l-2.614-0.58l-1.745,0.58l-0.581-0.58l-3.78-1.162l-3.778-0.581l-2.325-0.581l-0.581,0.581l-3.488-2.323l-3.197-1.161l-2.326-1.743l2.034-0.29l2.328-2.324l-1.455-1.162l4.07-1.162l-0.292-0.581l-2.323,0.581v-1.161l1.452-0.871l2.615-0.291l0.582-0.871l-0.582-1.452l1.163-1.451l-0.29-0.873l-4.07-0.871h-1.454l-1.744-1.162l-2.034,0.291l-3.488-0.871V91.29l-0.871-1.162h-2.327l-0.29-0.871l0.873-0.581l-1.744-1.742l-2.906,0.29h-0.872l-0.584,0.582h-1.16l-0.583-2.033l-0.871-0.872l0.581-0.291l2.326,0.291l1.163-0.58l-0.872-0.872l-2.036-0.581l0.292-0.29l-1.163-0.581l-1.743-1.742l0.578-0.871l-0.289-1.162l-2.615-0.581l-1.454,0.291l-0.29-0.872l-2.907-0.581l-0.871-1.742l-0.291-1.161l-1.455-0.582l1.163-0.871l-0.582-2.613l1.745-1.742l-0.291-0.291l3.199-1.742l-2.908-1.162l5.813-3.485l2.617-1.742l0.871-1.162l-4.069-2.032l1.162-1.742l-2.325-2.033l1.744-2.324l-3.198-3.194l2.617-2.033l-4.362-1.743l0.584-2.033l2.034-0.29l4.942-1.161l2.615-0.872l4.651,1.743l7.557,0.58l10.465,3.195l2.035,1.162v1.741l-2.906,1.453l-4.651,0.871l-12.21-2.033l-2.033,0.291l4.651,2.033v1.161l0.292,2.904l3.486,0.872l2.036,0.58l0.581-1.161l-1.746-1.162l1.746-1.162l6.685,1.742l2.326-0.581l-1.745-2.033l6.396-2.903l2.323,0.29l2.617,0.871l1.745-1.742l-2.326-1.742l1.163-1.742l-2.034-1.452l7.848,0.872l1.453,1.452l-3.489,0.289v1.453l2.326,1.162l4.361-0.582l0.581-2.033l5.812-1.161l9.594-2.323h2.034l-2.907,1.742l3.488,0.29l2.034-0.871h5.232l4.069-1.161l3.197,1.452l2.906-1.742l-2.906-1.453l1.454-1.162l8.14,0.872l3.778,0.871l10.176,3.194l1.742-1.452l-2.907-1.452v-0.581l-3.197-0.291l0.874-1.162l-1.455-2.323v-0.871l4.943-2.323l1.742-2.613l2.035-0.582l7.268,0.872l0.581,1.451l-2.615,2.324l1.743,0.871l0.872,1.742l-0.581,3.775l3.198,1.743l-1.165,1.742l-5.521,4.066l3.197,0.29l1.161-0.871l2.907-0.872l0.874-1.161l2.325-1.453l-1.744-1.452l1.454-1.742l-3.198-0.291l-0.582-1.451l2.326-2.904l-3.778-2.324l4.94-1.741l-0.581-2.033h1.453l1.454,1.452l-1.163,2.613l2.907,0.581l-1.162-2.033l4.65-0.872l5.522-0.29l5.232,1.451l-2.617-2.032l-0.29-3.195l4.94-0.291h6.688l5.812-0.29l-2.324-1.451l3.197-1.743l3.197-0.29l5.521-1.162l7.27-0.58l0.872-0.582l7.268-0.291l2.325,0.582l6.104-1.452h4.94l0.873-1.161l2.615-1.162l6.396-1.161l4.651,0.87l-3.489,0.872l6.104,0.291l0.874,1.452l2.324-0.871h8.141l6.104,1.452l2.325,1.162l-0.873,1.451l-2.907,0.581l-7.267,1.743l-2.036,0.581l3.49,0.58l4.068,0.581l2.326-0.581l1.452,1.743l1.165-0.581l4.359-0.582l9.013,0.582l0.579,1.161l11.628,0.582v-2.033l5.814,0.291h4.359l4.651,1.451l1.163,1.742l-1.745,1.162l3.488,2.323l4.36,1.161l2.615-2.904l4.653,1.162l4.65-0.871l5.233,0.871l2.034-0.581l4.648,0.29l-2.033-2.614l3.488-1.161l24.998,1.741l2.327,1.743l7.267,2.032l11.045-0.581l5.524,0.581l2.324,1.162l-0.58,2.033l3.486,0.581l3.78-0.581h4.941l4.94,0.581l5.234-0.29l4.938,2.323l3.488-0.872l-2.322-1.742l1.162-1.162l8.721,0.872l5.812-0.292l7.848,1.453l4.069,1.162h-0.01l6.976,2.033l6.977,2.614v1.742l1.744,0.871l-0.581-2.033l7.559,0.291l5.231,2.613l-2.616,1.162l-4.651,0.29v2.613l-1.161,0.581h-2.617l-2.034-0.871l-3.779-0.871l-0.582-1.162l-2.615-0.58l-3.199,0.58l-1.452-1.162l0.581-0.872l-3.198,0.582l1.165,1.452l-1.745,1.162H969.382zM762.998,15.499l-15.406,1.162l4.94-3.484l2.328-0.291h2.034l6.977,1.742L762.998,15.499zM614.46,9.401l-3.488,0.291l-2.617,0.29l-0.289,0.581l-3.199,0.291l-3.197-0.581l1.743-0.871h-6.104l5.233-0.581h4.359l0.291,0.581l1.744-0.581l2.618-0.291l4.067,0.581L614.46,9.401zM748.754,14.047l-5.812,0.29l-7.85-0.87l-4.359-0.872l-2.325-2.033l-3.779-0.581l7.268-1.742L738,7.369l5.232,1.452l6.396,2.614L748.754,14.047z", - "RW" : "M557.485,234.16l1.163,1.452l-0.289,1.741l-0.582,0.291l-1.454,-0.291l-0.874,1.743l-1.743,-0.290l0.293,-1.453l0.290,-0.290l0.000,-1.742l0.871,-0.580l0.582,0.290l-1.743,0.871z", - "SA" : "M591.496,185.956l-0.291,-1.162l-0.873,-0.871l-0.290,-1.162l-1.453,-0.871l-1.454,-2.323l-0.582,-2.322l-2.034,-1.744l-1.163,-0.580l-1.743,-2.613l-0.292,-1.744l0.000,-1.741l-1.453,-2.904l-1.454,-1.162l-1.453,-0.580l-0.871,-1.452l0.000,-0.872l-0.581,-1.451l-0.874,-0.582l-1.162,-2.032l-1.452,-2.033l-1.456,-2.033l-1.452,0.000l0.290,-1.451l0.292,-0.871l0.292,-1.162l3.196,0.291l1.161,-0.582l0.581,-1.161l2.036,-0.290l0.581,-0.871l0.872,-0.581l-2.905,-2.614l5.522,-1.451l0.582,-0.582l3.488,0.873l4.067,2.032l7.561,5.517l5.230,0.000l2.326,0.290l0.873,1.452l1.743,0.000l1.165,2.323l1.452,0.581l0.289,0.871l2.036,1.162l0.290,1.162l-0.290,0.870l0.290,0.872l0.584,0.871l0.578,0.871l0.292,0.581l0.873,0.581l0.872,0.000l0.290,0.871l0.291,0.871l0.872,2.613l8.430,1.452l0.580,-0.580l1.165,2.031l-1.745,5.519l-8.430,2.613l-7.849,1.162l-2.615,1.161l-2.036,2.904l-1.163,0.291l-0.580,-0.873l-1.164,0.292l-2.615,-0.292l-0.582,-0.289l-3.197,0.000l-0.582,0.289l-1.161,-0.869l-0.873,1.451l0.289,1.161l1.161,-0.872z", - "SB" : "M919.968,259.712l0.871,0.873h-2.034l-0.873-1.453l1.452,0.58H919.968zM916.48,257.972l-0.874,0.289l-1.743-0.289l-0.58-0.582v-1.161l2.034,0.581l0.873,0.58L916.48,257.972zM918.805,257.39l-0.291,0.582l-2.034-2.613l-0.582-1.453h0.871l0.873,2.033L918.805,257.39zM913.863,253.906v0.581l-2.034-1.161l-1.454-1.162l-1.161-0.871l0.579-0.29l1.164,0.871l2.326,1.161L913.863,253.906zM907.468,251.002l-0.581,0.29l-1.162-0.58l-1.163-1.162v-0.581l1.744,1.162L907.468,251.002z", - "SD" : "M567.37,204.831l-0.582,0.000l0.000,-1.452l-0.292,-0.873l-1.453,-1.160l-0.292,-1.742l0.292,-2.033l-1.162,-0.291l-0.293,0.582l-1.452,0.289l0.582,0.582l0.291,1.742l-1.454,1.451l-1.453,2.033l-1.454,0.291l-2.325,-1.744l-1.163,0.582l0.000,0.871l-1.454,0.581l-0.290,0.582l-2.617,0.000l-0.289,-0.582l-2.035,0.000l-1.164,0.291l-0.581,-0.291l-1.452,-1.452l-0.584,-0.871l-2.033,0.581l-0.581,1.161l-0.872,2.324l-0.874,0.581l-0.872,0.289l-0.290,0.000l-0.871,-0.870l0.000,-0.870l0.289,-1.163l0.000,-1.162l-1.452,-1.742l-0.292,-1.162l0.000,-0.580l-1.162,-0.871l0.000,-1.453l-0.582,-1.161l-0.873,0.290l0.293,-1.161l0.580,-1.162l-0.289,-1.162l0.871,-0.870l-0.582,-0.581l0.872,-1.743l1.164,-2.032l2.324,0.291l0.000,-11.036l0.000,-0.870l3.199,-0.291l0.000,-5.228l11.045,0.000l10.755,0.000l10.755,0.000l0.874,2.615l-0.581,0.580l0.289,2.614l1.163,3.485l1.164,0.580l1.454,0.872l-1.454,1.742l-2.035,0.289l-0.874,0.873l-0.291,2.033l-1.161,4.065l0.290,0.870l-0.581,2.323l-0.872,2.904l-1.743,1.162l-1.163,2.322l-0.292,1.162l-1.454,0.582l-0.579,2.903l0.000,-0.291z", - "SE" : "M534.813,50.346l-2.617,1.742l0.291,1.742l-4.362,2.324l-5.230,2.323l-2.036,3.774l2.036,2.033l2.615,1.452l-2.615,3.194l-2.907,0.581l-0.873,4.647l-1.744,2.613l-3.197,-0.291l-1.455,2.033l-3.196,0.291l-0.874,-2.614l-2.323,-3.194l-2.327,-3.776l1.455,-1.742l2.033,-1.742l1.162,-3.485l-1.743,-1.162l-0.290,-3.775l1.744,-2.612l2.907,0.000l0.873,-0.872l-1.165,-1.162l4.361,-3.774l2.907,-2.904l1.745,-2.033l2.615,0.000l0.582,-1.452l5.232,0.290l0.582,-1.742l1.744,-0.290l3.486,1.452l4.361,2.033l0.000,4.065l0.872,1.162l4.649,-0.871z", - "SI" : "M511.848,102.905l2.326,0.291l1.162,-0.582l2.616,0.000l0.291,-0.580l0.582,0.000l0.582,1.162l-2.325,0.580l-0.293,1.162l-0.871,0.290l0.000,0.582l-1.163,0.000l-0.873,-0.291l-0.580,0.291l-1.743,0.000l0.581,-0.291l-0.581,-1.162l-0.289,1.452z", - "SK" : "M525.802,94.774l0.000,0.291l1.160,-0.582l1.455,1.163l1.453,-0.581l1.455,0.291l2.033,-0.582l2.616,1.163l-0.872,0.870l-0.580,0.872l-0.582,0.290l-2.908,-0.872l-0.870,0.291l-0.582,0.581l-1.455,0.290l-0.289,0.000l-1.163,0.290l-1.163,0.290l-0.291,0.291l-2.324,0.581l-0.871,-0.290l-1.454,-0.872l-0.292,-0.870l0.292,-0.291l0.289,-0.581l1.165,0.000l0.871,-0.290l0.290,-0.291l0.289,-0.289l0.292,-0.581l0.582,0.000l0.580,-0.582l-0.874,0.000z", - "SL" : "M442.376,212.381l-0.873,-0.291l-2.034,-1.161l-1.455,-1.452l-0.289,-0.871l-0.292,-2.033l1.455,-1.451l0.289,-0.582l0.292,-0.581l0.871,0.000l0.581,-0.580l2.326,0.000l0.582,0.871l0.581,1.163l0.000,0.870l0.582,0.581l0.000,1.161l0.581,-0.290l-1.163,1.451l-1.454,1.452l0.000,0.871l0.580,-0.872z", - "SN" : "M427.84,193.505l-1.162,-2.032l-1.454,-1.161l1.164,-0.291l1.452,-2.032l0.582,-1.452l0.871,-0.872l1.456,0.291l1.452,-0.581l1.454,0.000l1.163,0.872l2.034,0.580l1.454,2.033l2.034,1.742l0.000,1.742l0.581,1.742l1.162,0.581l0.000,1.162l0.000,0.871l-0.289,0.290l-1.744,-0.290l0.000,0.290l-0.581,0.000l-2.036,-0.581l-1.453,0.000l-4.942,-0.290l-0.871,0.290l-0.874,0.000l-1.453,0.581l-0.291,-2.323l2.327,0.291l0.580,-0.581l0.582,0.000l1.163,-0.581l1.163,0.581l1.162,0.000l1.163,-0.581l-0.582,-0.872l-0.870,0.581l-0.873,0.000l-1.163,-0.581l-0.871,0.000l-0.581,0.581l2.909,0.000z", - "SO" : "M610.681,199.023l1.452,-0.290l1.162,-0.871l1.165,0.000l0.000,0.871l-0.291,1.451l0.000,1.453l-0.582,1.161l-0.581,2.904l-1.452,2.904l-1.747,3.484l-2.323,4.066l-2.326,3.194l-3.199,3.775l-2.907,2.323l-4.068,2.613l-2.616,2.033l-2.908,3.486l-0.582,1.451l-0.580,0.581l-1.745,-2.323l0.000,-9.873l2.325,-3.196l0.874,-0.870l1.744,0.000l2.324,-2.033l3.780,0.000l7.850,-8.421l1.742,-2.323l1.163,-1.742l0.000,-1.452l0.000,-2.614l0.000,-1.161l0.290,0.000l0.873,0.000l-1.163,0.581z", - "SOL" : "M608.355,204.831l-1.163,1.742l-1.742,2.323l-2.328,0.000l-9.010,-3.194l-1.163,-0.871l-0.873,-1.452l-1.163,-1.453l0.583,-1.161l1.161,-1.452l0.873,0.580l0.582,1.162l1.163,1.162l1.163,0.000l2.614,-0.580l3.199,-0.582l2.327,-0.580l1.452,-0.291l0.871,-0.580l1.744,0.000l-0.290,0.000l0.000,1.161l0.000,2.614l0.000,-1.452z", - "SR" : "M316.509,214.415l3.198,0.580l0.290,-0.291l2.326,-0.289l2.907,0.580l-1.453,2.612l0.289,1.743l1.164,1.742l-0.582,1.161l-0.290,1.163l-0.581,1.162l-1.745,-0.581l-1.162,0.289l-1.163,-0.289l-0.291,0.870l0.581,0.581l-0.290,0.581l-1.454,-0.291l-1.744,-2.322l-0.291,-1.744l-0.872,0.000l-1.453,-2.032l0.581,-1.161l0.000,-0.872l1.453,-0.579l-0.582,2.613z", - "SS" : "M567.37,204.831l0.000,2.322l-0.582,0.872l-1.455,0.000l-0.872,1.452l1.746,0.291l1.452,1.161l0.290,1.161l1.454,0.580l1.455,3.196l-1.745,1.741l-1.743,1.743l-1.745,1.162l-1.744,0.000l-2.326,0.580l-1.744,-0.580l-1.163,0.870l-2.325,-2.032l-0.874,-1.162l-1.450,0.581l-1.166,0.000l-0.873,0.291l-1.161,-0.291l-1.743,-2.323l-0.292,-0.871l-2.034,-0.871l-0.873,-1.743l-1.163,-1.161l-1.743,-1.452l0.000,-0.871l-1.452,-1.162l-2.037,-1.162l0.872,-0.289l0.874,-0.581l0.872,-2.324l0.581,-1.161l2.033,-0.581l0.584,0.871l1.452,1.452l0.581,0.291l1.164,-0.291l2.035,0.000l0.289,0.582l2.617,0.000l0.290,-0.582l1.454,-0.581l0.000,-0.871l1.163,-0.582l2.325,1.744l1.454,-0.291l1.453,-2.033l1.454,-1.451l-0.291,-1.742l-0.582,-0.582l1.452,-0.289l0.293,-0.582l1.162,0.291l-0.292,2.033l0.292,1.742l1.453,1.160l0.292,0.873l0.000,1.452l-0.582,0.000z", - "SV" : "M232.211,194.086l-0.291,0.581l-1.743,0.000l-0.872,-0.290l-1.164,-0.581l-1.452,0.000l-0.873,-0.581l0.000,-0.580l0.873,-0.581l0.580,-0.291l0.000,-0.290l0.581,-0.291l0.873,0.291l0.582,0.581l0.872,0.581l0.000,0.289l1.161,-0.289l0.582,0.000l0.291,0.289l0.000,-1.162z", - "SY" : "M580.45,139.204l-5.234,2.903l-3.195,-1.161l0.289,-0.290l0.000,-1.162l0.873,-1.452l1.452,-1.161l-0.581,-1.162l-1.163,0.000l-0.290,-2.033l0.582,-1.161l0.871,-0.582l0.581,-0.580l0.290,-1.742l0.873,0.580l2.907,-0.870l1.454,0.581l2.327,0.000l3.196,-0.872l1.453,0.000l3.197,-0.581l-1.454,1.742l-1.454,0.872l0.292,2.032l-1.163,3.195l6.103,-2.904z", - "SZ" : "M562.136,304.433l-0.581,1.161l-1.744,0.290l-1.452,-1.451l-0.292,-0.871l0.870,-1.161l0.293,-0.581l0.872,-0.290l1.163,0.580l0.580,1.161l-0.291,-1.162z", - "TD" : "M513.593,195.538l0.289,-1.161l-1.742,-0.291l0.000,-1.742l-1.165,-0.871l1.165,-3.775l3.486,-2.614l0.292,-3.484l1.164,-5.517l0.581,-1.162l-1.163,-0.871l0.000,-0.871l-1.164,-0.871l-0.581,-4.357l2.616,-1.451l11.046,5.226l11.045,5.227l0.000,11.036l-2.324,-0.291l-1.164,2.032l-0.872,1.743l0.582,0.581l-0.871,0.870l0.289,1.162l-0.580,1.162l-0.293,1.161l0.873,-0.290l0.582,1.161l0.000,1.453l1.162,0.871l0.000,0.580l-1.744,0.581l-1.452,1.161l-2.034,2.905l-2.617,1.452l-2.618,-0.291l-0.871,0.291l0.292,0.870l-1.454,0.872l-1.163,1.161l-3.488,1.162l-0.582,-0.580l-0.579,-0.291l-0.293,0.871l-2.325,0.290l0.290,-0.870l-0.872,-1.743l-0.289,-1.161l-1.165,-0.581l-1.742,-1.743l0.579,-1.161l1.455,0.289l0.581,-0.289l1.453,0.000l-1.453,-2.324l0.292,-2.032l-0.292,-1.743l1.162,1.742z", - "TF" : "M663.583,364.542l1.746,0.872l2.617,0.581l0.000,0.291l-0.584,1.452l-4.360,0.000l0.000,-1.452l0.292,-1.161l-0.289,0.583z", - "TG" : "M479,214.123l-2.324,0.581l-0.582,-1.162l-0.872,-1.742l0.000,-1.162l0.581,-2.613l-0.871,-0.872l-0.292,-2.322l0.000,-2.033l-0.871,-1.161l0.000,-0.872l2.616,0.000l-0.582,1.452l0.873,0.871l0.872,0.871l0.291,1.454l0.579,0.289l-0.290,6.388l-0.872,-2.033z", - "TH" : "M756.022,197.571l-2.325,-1.452l-2.325,0.000l0.290,-2.033l-2.326,0.000l-0.291,2.904l-1.454,4.065l-0.871,2.613l0.290,1.745l1.744,0.289l1.163,2.323l0.291,2.613l1.745,1.452l1.453,0.291l1.454,1.452l-0.873,1.162l-1.744,0.289l-0.290,-1.451l-2.326,-1.163l-0.291,0.582l-1.163,-1.162l-0.582,-1.452l-1.452,-1.452l-1.163,-1.161l-0.582,1.452l-0.581,-1.452l0.292,-1.742l0.871,-2.615l1.452,-2.903l1.454,-2.614l-1.162,-2.322l0.290,-1.452l-0.582,-1.453l-1.741,-2.322l-0.582,-1.162l0.871,-0.580l1.163,-2.323l-1.163,-2.034l-1.744,-1.742l-1.455,-2.613l1.165,-0.290l1.163,-3.194l2.034,0.000l1.743,-1.163l1.454,-0.580l1.163,0.580l0.290,1.744l1.743,0.289l-0.579,2.904l0.000,2.323l2.907,-1.742l0.871,0.581l1.452,0.000l0.582,-0.871l2.036,0.000l2.325,2.323l0.000,2.613l2.327,2.324l-0.291,2.323l-0.872,1.451l-2.326,-0.581l-3.781,0.581l-1.741,2.323l-0.580,-3.485z", - "TJ" : "M669.108,120.329l-0.873,0.871l-2.906,-0.582l-0.291,1.743l2.908,-0.290l3.488,0.871l5.233,-0.291l0.579,2.324l0.874,-0.291l1.743,0.582l0.000,1.160l0.292,1.742l-2.909,0.000l-1.745,-0.290l-1.744,1.162l-1.162,0.291l-1.161,0.581l-0.873,-0.872l0.000,-2.323l-0.581,0.000l0.291,-0.871l-1.454,-0.871l-1.455,1.161l-0.290,1.161l-0.289,0.291l-1.745,0.000l-0.872,1.162l-0.872,-0.582l-2.036,0.872l-0.871,-0.290l1.744,-2.614l-0.582,-2.032l-2.033,-0.871l0.579,-1.162l2.328,0.290l1.452,-1.743l0.872,-1.741l3.488,-0.582l-0.581,1.163l0.581,0.871l-0.873,0.000z", - "TL" : "M817.647,255.359l0.580,-0.582l2.327,-0.580l1.744,-0.291l0.871,-0.290l1.164,0.290l-1.164,0.871l-2.905,1.162l-2.037,0.871l-0.290,-0.871l0.290,0.580z", - "TM" : "M642.364,132.815l-0.289,-2.323l-2.034,0.000l-3.200,-2.324l-2.325,-0.290l-2.907,-1.452l-2.034,-0.290l-1.162,0.581l-1.745,-0.291l-2.036,1.742l-2.323,0.582l-0.582,-2.033l0.289,-2.904l-2.033,-0.871l0.581,-2.033l-1.743,0.000l0.578,-2.323l2.617,0.581l2.326,-0.872l-2.033,-1.742l-0.582,-1.451l-2.328,0.581l-0.289,2.032l-0.871,-1.742l1.160,-0.871l3.199,-0.581l2.034,0.871l1.744,2.033l1.455,0.000l3.199,0.000l-0.583,-1.452l2.325,-0.871l2.325,-1.742l3.778,1.451l0.292,2.324l1.163,0.580l2.907,-0.290l0.871,0.580l1.455,2.904l2.906,1.742l2.034,1.453l2.909,1.162l3.487,1.160l0.000,1.742l-0.871,0.000l-1.164,-0.871l-0.580,1.162l-2.326,0.291l-0.583,2.323l-1.454,0.870l-2.325,0.291l-0.581,1.452l-2.034,0.291l2.617,1.162z", - "TN" : "M499.931,147.625l-1.163,-4.936l-1.745,-1.162l0.000,-0.581l-2.325,-1.742l-0.290,-2.034l1.745,-1.451l0.579,-2.323l-0.290,-2.614l0.581,-1.451l2.908,-1.163l2.034,0.291l-0.291,1.453l2.325,-0.872l0.292,0.291l-1.454,1.451l0.000,1.161l1.162,0.872l-0.580,2.324l-1.745,1.451l0.582,1.452l1.452,0.000l0.583,1.452l1.163,0.290l-0.291,2.032l-1.164,0.873l-0.872,0.870l-2.034,1.162l0.290,1.161l-0.290,1.162l1.162,-0.581z", - "TR" : "M575.509,117.135l3.777,1.161l3.199-0.291l2.323,0.291l3.489-1.451l2.906-0.291l2.615,1.452l0.292,0.872l-0.292,1.452l2.036,0.58l1.162,0.872l-1.743,0.871l0.87,2.904l-0.579,0.871l1.452,2.324l-1.452,0.581l-0.873-0.872l-3.197-0.291l-1.164,0.291l-3.196,0.581h-1.453l-3.196,0.872h-2.327l-1.454-0.581l-2.906,0.871l-0.873-0.58l-0.29,1.742l-0.581,0.58l-0.871,0.582l-0.873-1.452l0.873-0.872l-1.455,0.291l-2.325-0.871l-2.033,1.742l-4.07,0.29l-2.326-1.452h-2.906l-0.582,1.162l-2.036,0.29l-2.615-1.452h-2.906l-1.744-2.904l-2.034-1.452l1.455-2.033l-1.747-1.452l2.907-2.613h4.361l1.163-2.033l5.232,0.29l3.197-1.742l3.196-0.871h4.65L575.509,117.135zM548.764,119.167l-2.325,1.451l-0.871-1.451v-0.581l0.581-0.291l0.871-1.742l-1.452-0.581l2.907-0.871l2.324,0.29l0.291,1.162l2.615,0.872l-0.58,0.58l-3.198,0.291L548.764,119.167z", - "TT" : "M304.01,201.346l1.454,-0.291l0.581,0.000l0.000,2.033l-2.326,0.291l-0.581,-0.291l0.872,-0.582l0.000,1.160z", - "TW" : "M808.926,163.886l-1.744,4.356l-1.163,2.322l-1.452,-2.322l-0.292,-2.033l1.744,-2.614l2.325,-2.322l1.163,0.871l0.581,-1.742z", - "TZ" : "M567.077,233.58l0.582,0.289l9.883,5.517l0.291,1.742l3.780,2.615l-1.163,3.484l0.000,1.452l1.744,1.161l0.292,0.581l-0.873,1.743l0.289,0.871l-0.289,1.162l0.873,1.742l1.161,2.903l1.162,0.581l-2.323,1.452l-2.907,1.162l-1.746,0.000l-0.872,0.581l-2.036,0.289l-0.581,0.291l-3.486,-0.872l-2.036,0.292l-0.582,-3.776l-1.163,-1.161l-0.289,-0.871l-2.907,-0.581l-1.456,-0.870l-1.743,-0.291l-1.161,-0.581l-1.162,-0.581l-1.455,-3.485l-1.744,-1.452l-0.290,-1.742l0.290,-1.452l-0.581,-2.324l1.163,-0.289l0.872,-0.870l1.163,-1.454l0.582,-0.580l0.000,-0.872l-0.582,-0.871l0.000,-0.871l0.582,-0.291l0.289,-1.741l-1.163,-1.452l0.874,-0.291l3.196,0.000l-5.522,0.289z", - "UA" : "M561.265,87.806l1.160,0.000l0.584,-0.582l0.872,0.000l2.907,-0.290l1.744,1.742l-0.873,0.581l0.290,0.871l2.327,0.000l0.871,1.162l0.000,0.581l3.488,0.870l2.034,-0.290l1.745,1.162l1.454,0.000l4.070,0.870l0.290,0.873l-1.163,1.451l0.582,1.452l-0.582,0.871l-2.615,0.291l-1.452,0.871l0.000,1.161l-2.329,0.292l-1.744,0.869l-2.615,0.000l-2.323,1.162l0.289,1.743l1.161,0.581l2.907,-0.290l-0.580,1.161l-2.906,0.290l-3.781,1.742l-1.452,-0.581l0.582,-1.451l-3.198,-0.581l0.579,-0.580l2.619,-0.872l-0.874,-0.581l-4.068,-0.871l-0.292,-0.872l-2.614,0.291l-0.874,1.452l-2.325,2.033l-1.161,-0.580l-1.166,0.580l-1.452,-0.580l0.872,-0.291l0.291,-0.872l0.872,-0.871l-0.291,-0.580l0.581,-0.291l0.293,0.581l1.743,0.000l0.581,-0.290l-0.290,-0.291l0.000,-0.291l-0.873,-0.580l-0.290,-1.162l-1.164,-0.580l0.293,-0.871l-1.166,-0.872l-1.162,0.000l-2.034,-0.870l-2.033,0.290l-0.584,0.290l-1.163,0.000l-0.579,0.580l-2.036,0.291l-1.162,0.581l-1.163,-0.581l-1.745,0.000l-1.744,-0.581l-1.163,0.581l-0.291,-0.581l-1.452,-0.870l0.580,-0.872l0.872,-0.870l0.582,0.289l-0.872,-1.452l2.617,-2.033l1.452,-0.580l0.292,-0.580l-1.455,-2.614l1.163,0.000l1.746,-0.581l2.035,-0.291l2.615,0.291l3.196,0.581l2.036,0.290l1.163,0.291l1.162,-0.581l0.583,0.581l2.615,0.000l0.873,0.289l0.290,-1.451l0.870,-0.580l-2.328,0.000z", - "UG" : "M561.555,233.869l-3.196,0.000l-0.874,0.291l-1.743,0.871l-0.582,-0.290l0.000,-2.324l0.582,-0.871l0.291,-2.324l0.581,-1.161l1.163,-1.451l0.871,-0.872l0.873,-0.871l-1.162,-0.289l0.289,-3.196l1.163,-0.870l1.744,0.580l2.326,-0.580l1.744,0.000l1.745,-1.162l1.452,1.742l0.291,1.452l1.163,3.194l-1.163,2.033l-1.164,1.742l-0.872,1.161l0.000,2.906l5.522,-0.289z", - "US" : "M45.593,178.406l-0.292,0.581l-0.873-0.581l0.292-0.581l-0.582-1.162l0.29-0.291l0.292-0.29l-0.292-0.582l0.292-0.29h0.291l0.872,0.581l0.582,0.291l0.581,0.29l0.582,0.872v0.29l-1.162,0.581L45.593,178.406zM44.14,174.05l-0.872,0.29l-0.582-0.581l-0.292-0.29l0.292-0.291l0.872,0.291l0.872,0.29L44.14,174.05zM42.395,172.598l-0.29,0.291h-1.453l0.29-0.291H42.395zM39.779,172.308v0.29l-0.291-0.29h-0.873l-0.582-0.582l0.873-0.581v0.291L39.779,172.308zM35.128,170.564l-0.291,0.292l-0.872-0.582v-0.291l0.581-0.29l0.582,0.29V170.564zM212.735,95.065l0.582,1.452l0.871,0.581l1.744,0.291l2.907,0.291l2.616,0.871l2.325-0.291l3.488,0.581h0.872l2.326-0.87l2.617,1.161l2.616,1.162l2.326,0.872l2.035,0.871l0.291,0.58l0.582,0.291v0.291h0.58l0.583-0.291l0.29,0.871l0.583,0.291h0.581l0.581,0.29l-0.581,0.581l2.906,1.162l0.583,2.613l0.58,2.323l-0.872,1.742l-1.163,1.451l-0.581,0.873v0.29l0.292,0.581l0.872,0.29h0.581l3.197-1.452l2.907-0.29l3.488-1.453l0.291-0.291l-0.291-0.871l-0.582-0.581l1.454-0.291h2.616h2.616l0.872-1.162l0.291-0.29l2.907-1.743l1.163-0.581h4.07h5.232l0.292-0.871h0.872l1.162-0.58l0.872-1.162l0.873-2.033l2.035-2.032l0.872,0.581l2.035-0.581l1.163,0.87v3.775l1.744,1.452l0.582,1.161l-2.907,1.162l-2.907,0.872l-2.907,0.872l-1.453,1.742l-0.582,0.581v1.453l0.872,1.451h1.163l-0.291-0.871l0.872,0.581l-0.291,0.871l-1.744,0.291h-1.162l-2.036,0.581h-1.452l-1.454,0.291l-2.326,0.58l4.07-0.291l0.872,0.291l-4.07,0.872H270l0.291-0.29l-0.872,0.872h0.872l-0.582,2.032l-2.035,2.033l-0.291-0.58l-0.582-0.291l-0.872-0.581l0.582,1.452l0.582,0.58v0.873l-0.873,1.161l-1.453,2.033h-0.291l0.873-1.742l-1.454-1.162l-0.291-2.322l-0.58,1.16l0.58,1.743l-1.744-0.291l1.744,0.871l0.291,2.614l0.873,0.291l0.291,0.871l0.291,2.613l-1.745,2.033l-2.907,0.871l-1.743,1.742H257.5l-1.452,1.162l-0.291,0.87l-2.907,1.744l-1.744,1.451l-1.163,1.452l-0.582,2.033l0.582,1.742l0.873,2.614l1.163,1.742v1.161l1.453,3.195v2.032l-0.29,0.871l-0.582,1.742l-0.873,0.291l-1.453-0.291l-0.291-1.161l-1.163-0.582l-1.454-2.323l-1.162-2.032l-0.583-1.161l0.583-1.743l-0.583-1.742l-2.325-2.323l-0.873-0.291l-2.906,1.162h-0.581l-1.163-1.451l-1.744-0.581l-3.197,0.29l-2.326-0.29l-2.326,0.29l-0.872,0.291l0.292,0.87v1.162l0.581,0.582l-0.581,0.29l-0.872-0.581l-1.164,0.581h-2.034l-2.035-1.452l-2.325,0.291l-2.035-0.581l-1.745,0.29l-2.325,0.581l-2.325,2.033l-2.908,1.162l-1.452,1.162l-0.582,1.451v1.742v1.452l0.582,0.871h-1.163l-1.744-0.58l-2.326-0.872l-0.581-1.162l-0.582-2.033l-1.744-1.452l-0.873-1.742l-1.453-1.742l-2.034-1.162h-2.036l-1.743,2.323l-2.326-0.871l-1.454-0.871l-0.872-1.453l-0.872-1.451l-1.454-1.162l-1.454-0.871l-1.163-1.162h-4.65v1.162h-2.326h-5.232l-6.395-1.742l-4.07-1.451l0.29-0.582l-3.487,0.291l-3.198,0.291l-0.581-1.453l-1.744-1.451l-1.163-0.582l-0.291-0.58l-1.743-0.291l-0.872-0.581l-2.616-0.29l-0.582-0.582l-0.291-1.452l-2.908-2.904l-2.034-3.775v-0.582l-1.163-0.871l-2.326-2.323l-0.291-2.322l-1.454-1.453l0.582-2.322v-2.324l-0.872-2.032l0.872-2.614l0.582-2.613l0.291-2.323l-0.581-3.775l-0.873-2.323l-0.872-1.162l0.291-0.58l4.069,0.87l1.454,2.613l0.581-0.87l-0.291-2.033l-0.872-2.324h7.849h8.139h2.616h8.43h8.14h8.138h8.43h9.302h9.302h5.813v-1.161H212.735zM52.569,73.867l-2.616,1.162l-1.454-0.871l-0.581-1.162l2.616-1.162l1.454-0.29l1.744,0.29l1.163,0.871L52.569,73.867zM17.978,66.316l-1.744,0.291l-1.745-0.581l-1.744-0.582l2.907-0.581l2.035,0.291L17.978,66.316zM1.118,55.572l1.744,0.582l1.744-0.291l2.035,0.581l2.907,0.581l-0.291,0.29l-2.035,0.581l-2.326-0.87l-0.872-0.291H1.409l-0.582-0.29L1.118,55.572zM47.046,35.246l1.744,1.161l1.453-0.291h4.651l-0.291,0.582l4.36,0.58l2.617-0.29l5.813,0.871l5.232,0.29l2.326,0.291l3.488-0.291l4.36,0.581l2.907,0.581v10.164v15.681h2.616l2.616,0.872l2.035,1.162L95.3,68.93l2.906-1.452l2.616-0.871l1.454,1.451l1.744,1.162l2.616,1.162l1.744,2.033l2.908,2.903l4.65,1.742v1.743l-1.454,1.452l-1.454-1.162l-2.615-0.871l-0.583-2.323l-3.778-2.323l-1.454-2.324l-2.616-0.291h-4.361l-3.197-0.871l-5.814-2.903l-2.616-0.581l-4.651-0.872l-3.778,0.291l-5.523-1.453l-3.198-1.161l-3.197,0.581l0.581,2.033l-1.454,0.29l-3.196,0.58l-2.326,0.873l-3.198,0.581l-0.291-1.742l1.163-2.614l2.907-0.871l-0.582-0.581l-3.488,1.452l-2.035,1.742l-4.07,2.033l2.035,1.161l-2.617,2.033l-2.907,1.162l-2.616,0.871l-0.872,1.162l-4.07,1.451l-0.872,1.452l-3.198,1.162l-2.035-0.29l-2.615,0.871l-2.617,0.87l-2.326,0.872l-4.65,0.871l-0.581-0.582l2.907-1.162l2.906-0.87l2.907-1.453l3.489-0.291l1.163-1.161l3.779-1.742l0.582-0.581l2.035-0.873l0.58-2.033l1.455-1.742l-3.198,0.872l-0.872-0.582L36,70.382l-1.745-1.453l-0.872,0.872l-1.162-1.162l-2.617,0.871h-1.743l-0.292-1.453l0.581-1.162l-1.744-0.87l-3.487,0.581l-2.326-1.452l-2.035-0.581v-1.452l-2.035-1.162l1.163-1.742l2.035-1.452l1.163-1.452l2.035-0.29l2.034,0.58l2.036-1.451l2.035,0.29l2.326-0.872l-0.583-1.161l-1.743-0.582l2.034-1.162h-1.453l-2.906,0.871l-0.873,0.581l-2.325-0.581l-3.779,0.291l-4.07-0.871l-1.163-0.871l-3.487-1.742l3.778-1.162l6.105-1.451h2.325l-0.29,1.451h5.814l-2.327-1.742l-3.197-1.162l-2.034-1.162l-2.616-1.161l-3.779-0.871l1.455-1.452l4.941-0.291l3.488-1.162l0.582-1.453l2.906-1.161l2.617-0.291L36,36.116h2.616l4.07-1.452L47.046,35.246z", - "UY" : "M315.056,314.017l1.744,-0.292l2.907,2.033l0.872,0.000l2.907,1.743l2.325,1.451l1.454,2.032l-1.163,1.164l0.872,1.740l-1.453,1.742l-2.907,1.453l-2.035,-0.582l-1.454,0.291l-2.616,-1.162l-2.035,0.000l-1.453,-1.452l0.000,-1.741l0.872,-0.580l-0.291,-2.905l0.872,-2.614l-0.582,2.321z", - "UZ" : "M656.899,128.168l0.000,-1.742l-3.487,-1.160l-2.909,-1.162l-2.034,-1.453l-2.906,-1.742l-1.455,-2.904l-0.871,-0.580l-2.907,0.290l-1.163,-0.580l-0.292,-2.324l-3.778,-1.451l-2.325,1.742l-2.325,0.871l0.583,1.452l-3.199,0.000l0.000,-10.164l6.976,-1.742l0.580,0.291l4.071,2.031l2.324,0.872l2.618,2.614l3.196,-0.291l4.944,-0.290l3.196,2.032l-0.290,2.614l1.453,0.000l0.581,2.323l3.489,0.000l0.580,1.452l1.163,0.000l1.163,-2.032l3.779,-2.033l1.454,-0.291l0.872,0.291l-2.326,1.742l2.035,0.871l2.034,-0.580l3.199,1.451l-3.488,2.032l-2.326,-0.289l-0.873,0.000l-0.581,-0.871l0.581,-1.163l-3.488,0.582l-0.872,1.741l-1.452,1.743l-2.328,-0.290l-0.579,1.162l2.033,0.871l0.582,2.032l-1.744,2.614l-2.035,-0.582l1.453,0.000z", - "VE" : "M277.558,198.442l-0.290,0.871l-1.454,0.291l0.872,1.161l0.000,1.452l-1.454,1.451l1.164,2.324l1.162,-0.290l0.582,-1.743l-0.872,-1.161l0.000,-2.033l3.487,-1.161l-0.582,-1.162l1.163,-0.871l0.872,1.742l2.035,0.291l1.744,1.451l0.000,0.871l2.617,0.000l2.907,-0.289l1.452,1.161l2.326,0.290l1.455,-0.582l0.000,-0.869l3.487,0.000l3.198,-0.291l-2.326,0.871l0.872,1.451l2.326,0.000l2.034,1.454l0.291,2.323l1.453,-0.292l1.164,0.872l-2.036,1.452l-0.290,1.161l0.872,0.871l-0.582,0.581l-1.743,0.580l0.000,1.163l-0.873,0.582l2.035,2.322l0.291,0.580l-0.872,1.162l-3.198,0.871l-2.035,0.580l-0.581,0.582l-2.326,-0.582l-2.034,-0.290l-0.582,0.000l1.163,0.872l0.000,1.741l0.292,1.744l2.324,0.289l0.291,0.581l-2.035,0.871l-0.291,1.162l-1.162,0.291l-2.036,0.870l-0.580,0.582l-2.036,0.289l-1.452,-1.451l-0.872,-2.614l-0.873,-1.162l-0.872,-0.580l1.454,-1.453l-0.291,-0.580l-0.582,-0.580l-0.581,-2.033l0.000,-2.033l0.872,-0.871l0.291,-1.452l-0.872,-0.290l-1.454,0.290l-2.034,-0.290l-1.163,0.290l-2.035,-2.323l-1.453,-0.291l-3.488,0.291l-0.872,-1.162l-0.583,0.000l0.000,-0.581l0.292,-1.161l-0.292,-1.161l-0.580,-0.582l-0.291,-1.161l-1.453,-0.290l0.581,-1.452l0.582,-2.033l0.581,-1.162l1.163,-0.580l0.581,-1.452l-2.035,0.581z", - "VN" : "M771.137,171.726l-3.488,2.324l-2.326,2.614l-0.581,1.742l2.034,2.904l2.617,3.774l2.325,1.743l1.744,2.033l1.163,5.226l-0.290,4.647l-2.327,2.032l-3.195,1.741l-2.037,2.325l-3.486,2.322l-1.164,-1.740l0.872,-1.745l-2.034,-1.451l2.326,-1.162l2.906,-0.290l-1.162,-1.742l4.651,-2.033l0.289,-3.194l-0.581,-2.033l0.581,-2.614l-0.870,-2.032l-2.036,-1.742l-1.745,-2.614l-2.325,-3.194l-3.197,-1.742l0.870,-0.872l1.747,-0.580l-1.165,-2.614l-3.488,0.000l-1.161,-2.322l-1.454,-2.324l1.454,-0.580l2.034,0.000l2.615,-0.291l2.329,-1.451l1.452,0.870l2.615,0.581l-0.581,1.742l1.454,0.872l-2.615,-0.870z", - "VU" : "M935.666,276.266l-0.872,0.291l-0.874-1.163v-0.871L935.666,276.266zM933.628,271.91l0.583,2.324l-0.874-0.292h-0.58l-0.29-0.58v-2.322L933.628,271.91z", - "WS" : "M449.643,156.336l-0.292,-1.452l0.581,0.000l0.000,0.290l0.000,0.291l0.000,4.355l-9.011,-0.290l0.000,7.261l-2.615,0.000l-0.581,1.451l0.581,4.066l-11.046,0.000l-0.582,0.871l0.289,-1.162l6.107,-0.291l0.290,-0.870l1.162,-1.162l0.874,-3.775l4.069,-3.194l1.162,-3.485l0.872,0.000l0.873,-2.323l2.324,-0.291l1.165,0.581l1.161,0.000l0.872,-0.871l-1.745,0.000z", - "YE" : "M619.983,185.084l-2.034,0.872l-0.583,1.161l0.000,0.872l-2.616,1.160l-4.651,1.453l-2.326,1.742l-1.162,0.291l-0.871,-0.291l-1.744,1.161l-1.745,0.581l-2.327,0.291l-0.580,0.000l-0.581,0.871l-0.582,0.000l-0.581,0.871l-1.455,-0.290l-0.870,0.580l-1.745,-0.290l-0.873,-1.452l0.292,-1.452l-0.581,-0.871l-0.581,-2.032l-0.874,-1.163l0.583,-0.289l-0.291,-1.162l0.582,-0.581l-0.291,-1.161l1.161,-0.872l-0.289,-1.161l0.873,-1.451l1.161,0.869l0.582,-0.289l3.197,0.000l0.582,0.289l2.615,0.292l1.164,-0.292l0.580,0.873l1.163,-0.291l2.036,-2.904l2.615,-1.161l7.849,-1.162l2.325,4.645l-0.873,-1.743z", - "ZA" : "M560.392,311.403l-0.29,0.291l-1.165,1.451l-0.87,1.451l-1.453,2.034l-3.198,2.902l-2.034,1.451l-2.036,1.453l-2.906,0.871l-1.452,0.29l-0.293,0.58l-1.743-0.29l-1.161,0.581l-3.199-0.581l-1.452,0.29h-1.164l-2.906,0.872l-2.325,0.58l-1.744,0.871l-1.162,0.29l-1.163-1.161h-0.871l-1.454-1.161v0.292l-0.29-0.583v-1.741l-0.873-1.742l0.873-0.581v-2.032l-2.034-2.613l-1.165-2.323l-2.034-3.484l1.163-1.453l1.163,0.58l0.582,1.162l1.162,0.29l1.744,0.581l1.452-0.29l2.325-1.451v-10.163l0.874,0.58l1.741,2.613l-0.289,1.741l0.582,0.872l2.033-0.29l1.164-1.162l1.452-0.87l0.582-1.453l1.454-0.58l1.162,0.29l1.162,0.872h2.326l1.744-0.582l0.289-0.87l0.584-1.161l1.452-0.293l0.874-1.16l0.871-1.742l2.324-2.032l4.07-2.033h1.163l1.163,0.581l0.871-0.289l1.454,0.289l1.452,3.774l0.582,2.033l-0.29,2.903v1.162l-1.163-0.58l-0.872,0.29l-0.293,0.581l-0.87,1.161l0.292,0.871l1.452,1.451l1.744-0.29l0.581-1.161h2.034l-0.582,2.031l-0.579,2.323l-0.584,1.162L560.392,311.403zM553.416,310.531l-1.162-0.87l-1.163,0.579l-1.453,1.163l-1.454,1.742l2.036,2.032l0.871-0.291l0.581-0.869l1.454-0.292l0.58-0.871l0.873-1.451L553.416,310.531z", - "ZM" : "M563.881,256.229l1.452,1.452l0.582,2.322l-0.582,0.582l-0.290,2.322l0.290,2.323l-0.872,0.873l-0.580,2.612l1.452,0.580l-8.429,2.325l0.292,2.033l-2.036,0.289l-1.744,1.162l-0.291,0.871l-0.872,0.291l-2.616,2.322l-1.454,1.744l-0.872,0.000l-0.872,-0.291l-3.197,-0.291l-0.291,-0.291l-0.290,-0.289l-0.871,-0.582l-1.745,0.000l-2.326,0.582l-1.745,-1.744l-2.034,-2.322l0.289,-8.711l5.524,0.000l0.000,-0.873l0.292,-1.161l-0.583,-1.161l0.291,-1.452l-0.291,-0.871l1.164,0.290l0.000,0.872l1.454,-0.291l1.743,0.291l0.871,1.452l2.036,0.291l1.745,-0.873l0.581,1.452l2.325,0.291l0.872,1.162l1.163,1.451l2.033,0.000l-0.289,-2.904l-0.581,0.581l-2.035,-1.160l-0.584,-0.291l0.293,-2.904l0.580,-3.195l-0.873,-1.161l0.873,-1.742l0.873,-0.290l3.490,-0.581l1.163,0.290l1.162,0.581l1.161,0.581l1.743,0.291l-1.456,-0.870z", - "ZW" : "M559.521,292.237l-1.454,-0.289l-0.871,0.289l-1.163,-0.581l-1.163,0.000l-1.745,-1.162l-2.326,-0.579l-0.580,-1.744l0.000,-0.870l-1.455,-0.292l-2.907,-2.903l-0.870,-1.742l-0.582,-0.580l-1.163,-2.034l3.197,0.291l0.872,0.291l0.872,0.000l1.454,-1.744l2.616,-2.322l0.872,-0.291l0.291,-0.871l1.744,-1.162l2.036,-0.289l0.000,0.870l2.325,0.000l1.452,0.581l0.582,0.582l1.163,0.289l1.452,0.871l0.000,3.486l-0.582,2.032l0.000,2.033l0.293,0.870l-0.293,1.452l-0.289,0.290l-0.874,2.033l2.904,-3.195z" - - } - } - } - } - ); - - return Mapael; - -})); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries.min.js b/htdocs/public/high/plugins/jquery-mapael/maps/world_countries.min.js deleted file mode 100644 index 65fd8dbc..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries.min.js +++ /dev/null @@ -1,13 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires jQuery and Mapael - * - * Map of World by country - * - * @source http://backspace.com/mapapp/javascript_world/ - */ -!function(a){"object"==typeof exports?module.exports=a(require("jquery"),require("mapael")):"function"==typeof define&&define.amd?define(["jquery","mapael"],a):a(jQuery,jQuery.mapael)}(function(a,b){"use strict";return a.extend(!0,b,{maps:{world_countries:{width:1e3,height:400,getCoords:function(a,b){var c=2.752,d=473.75,e=b*c+d,f=-2.753,g=231,h=a*f+g;return{x:e,y:h}},elems:{AE:"M615.622,164.177l0.582,0.000l0.000,0.580l2.324,-0.289l2.326,0.000l1.455,0.000l2.033,-1.743l2.034,-1.743l1.745,-1.742l0.583,0.871l0.291,2.324l-1.456,0.000l-0.289,1.742l0.581,0.291l-1.163,0.580l0.000,1.161l-0.873,1.162l0.000,1.162l-0.580,0.580l-8.430,-1.452l-0.872,-2.613l0.291,0.871z",AF:"M642.364,132.815l2.617,1.162l2.034,-0.291l0.581,-1.452l2.325,-0.291l1.454,-0.870l0.583,-2.323l2.326,-0.291l0.580,-1.162l1.164,0.871l0.871,0.000l1.453,0.000l2.035,0.582l0.871,0.290l2.036,-0.872l0.872,0.582l0.872,-1.162l1.745,0.000l0.289,-0.291l0.290,-1.161l1.455,-1.161l1.454,0.871l-0.291,0.871l0.581,0.000l0.000,2.323l0.873,0.872l1.161,-0.581l1.162,-0.291l1.744,-1.162l1.745,0.290l2.909,0.000l0.580,0.582l-1.743,0.290l-1.454,0.581l-2.907,0.291l-3.197,0.580l-1.454,1.161l0.581,1.162l0.289,1.452l-1.450,1.161l0.289,1.162l-0.872,0.871l-2.616,0.000l1.161,1.743l-1.742,0.580l-1.162,1.743l0.000,1.743l-0.875,0.580l-1.160,0.000l-2.036,0.290l-0.292,0.581l-2.034,0.000l-1.452,1.742l-0.291,2.323l-3.488,1.161l-2.035,-0.289l-0.581,0.580l-1.455,-0.291l-2.907,0.291l-4.649,-1.452l2.615,-2.323l-0.289,-1.742l-2.036,-0.581l-0.290,-1.743l-0.873,-2.032l1.163,-1.742l-1.163,-0.291l0.873,-2.032l-1.161,3.485z",AL:"M530.451,115.973l-0.289,0.871l0.289,1.161l1.165,0.581l0.000,0.872l-0.873,0.291l-0.292,0.869l-1.160,1.453l-0.583,-0.291l0.000,-0.580l-1.454,-0.871l-0.292,-1.452l0.292,-1.742l0.292,-0.872l-0.584,-0.580l0.000,-0.872l1.163,-1.162l0.292,0.291l0.582,0.000l0.581,0.581l0.582,0.290l-0.289,-1.162z",AM:"M593.82,118.005l3.780,-0.580l0.581,0.870l0.871,0.291l-0.289,0.872l1.452,0.871l-0.871,0.871l1.163,0.871l1.162,0.290l0.000,2.032l-0.873,0.000l-1.163,-1.451l0.000,-0.581l-1.160,0.000l-0.873,-0.581l-0.582,0.000l-1.162,-0.871l-2.036,-0.580l0.292,-1.452l0.292,0.872z",AO:"M518.825,247.227l0.582,2.032l0.871,1.453l0.581,0.87l0.874,1.452h2.033l0.873-0.581l1.452,0.581l0.582-0.871l0.581-1.451l1.744-0.291v-0.29h1.452l-0.289,0.871h3.488v1.742l0.579,1.161l-0.579,1.453l0.29,1.74l0.873,1.162v3.195l0.581-0.292h1.162l1.745-0.29h1.161l0.291,0.871l-0.291,1.452l0.583,1.161l-0.292,1.161v0.873h-5.524l-0.289,8.711l2.034,2.322l1.745,1.744l-5.232,1.161l-6.396-0.582l-2.033-1.161h-11.047l-0.581,0.291l-1.745-1.161l-1.743-0.292l-1.455,0.581l-1.452,0.581l-0.29-1.742l0.581-2.612l0.871-2.324v-1.161l0.874-2.613l0.871-1.163l1.452-1.742l0.873-1.16l0.292-2.033v-1.451l-0.874-1.162l-0.871-1.742l-0.581-1.452v-0.581l0.872-1.161l-0.872-2.613l-0.291-1.742l-1.455-1.741l0.292-0.582l1.163-0.581l0.581,0.291l1.162-0.581L518.825,247.227zM508.071,246.646l-0.874,0.291l-0.581-2.031l1.163-1.163l0.87-0.581l0.874,0.871l-0.874,0.58l-0.578,0.872V246.646z",AR:"M293.546,382.836h-2.616l-1.454-0.87h-1.745h-2.907v-6.389l1.163,1.45l1.163,2.033l3.779,1.744l3.778,0.58L293.546,382.836zM295,291.656l1.452,2.033l1.163-2.323l3.198,0.29l0.291,0.581l5.232,4.356l2.326,0.29l3.198,2.033l2.906,1.161l0.291,1.162l-2.617,4.354l2.617,0.58l3.197,0.581l2.326-0.581l2.326-2.032l0.582-2.322l1.163-0.58l1.454,1.45v2.324l-2.325,1.45l-1.745,1.163l-3.198,2.612l-3.779,3.777l-0.582,2.321l-0.872,2.613l0.291,2.905l-0.872,0.58v1.741l-0.29,1.452l3.487,2.323l-0.291,2.033l1.745,1.161l-0.291,1.162l-2.616,3.773l-4.07,1.455l-5.522,0.579l-2.907-0.29l0.582,1.451l-0.582,2.033l0.291,1.452l-1.454,0.871l-2.907,0.58l-2.616-1.161l-1.163,0.871l0.583,2.613l1.744,0.872l1.452-0.872l0.873,1.453l-2.617,0.87l-2.035,1.743l-0.582,2.613l-0.58,1.451h-2.617l-2.035,1.451l-0.873,2.033l2.617,2.032l2.615,0.582l-0.872,2.613l-3.197,1.452l-1.744,3.194l-2.616,1.161l-1.163,1.163l0.872,2.902l2.035,1.742l-1.163-0.291l-2.617-0.29l-6.685-0.58l-1.163-1.453v-2.03h-1.744l-0.873-0.873l-0.291-2.904l2.035-1.161l0.873-1.741l-0.292-1.453l1.455-2.323l0.872-3.775l-0.291-1.451l1.452-0.58l-0.29-1.162l-1.454-0.289l0.873-1.162l-1.162-1.162l-0.582-3.194l1.164-0.581l-0.582-3.193l0.582-2.904l0.872-2.613l1.453-0.87l-0.581-2.615l-0.292-2.613l2.326-1.742l-0.29-2.323l1.744-2.613v-2.613l-0.873-0.58l-1.163-4.646l1.744-2.904l-0.291-2.612l0.872-2.614l2.035-2.324l1.744-1.741l-0.872-1.163l0.582-0.87v-4.646l2.907-1.451l1.163-2.613l-0.291-0.872l2.034-2.324L295,291.656z",AT:"M520.57,98.549l-0.292,1.162l-1.453,0.000l0.582,0.581l-1.164,1.742l-0.291,0.580l-2.616,0.000l-1.162,0.582l-2.326,-0.291l-4.069,-0.580l-0.582,-0.872l-2.615,0.292l-0.291,0.580l-1.746,-0.291l-1.452,0.000l-1.162,-0.581l0.289,-0.581l0.000,-0.580l0.873,-0.291l1.452,0.871l0.292,-0.871l2.326,0.291l2.034,-0.581l1.452,0.000l0.584,0.581l0.290,-0.291l-0.290,-1.742l0.872,-0.580l1.162,-1.162l2.035,0.871l1.453,-1.162l0.871,0.000l2.326,0.581l1.163,0.000l1.455,0.581l-0.292,0.291l-0.292,-0.870z",AU:"M874.039,343.054l2.616,0.871l1.454-0.29l2.325-0.581l1.453,0.291l0.291,3.193l-0.87,0.872l-0.293,2.321l-1.162-0.579l-1.744,1.741h-0.582l-1.743-0.289l-1.745-2.324l-0.289-1.742l-1.744-2.323l0.29-1.451L874.039,343.054zM868.806,268.715l1.163,2.324l1.744-1.163l0.873,1.163l1.452,1.161l-0.289,1.161l0.58,2.324l0.291,1.45l0.873,0.29l0.579,2.323l-0.289,1.453l0.871,1.741l3.198,1.453l1.744,1.451l2.034,1.161l-0.582,0.581l1.745,1.742l0.87,2.904l1.165-0.581l1.163,1.452l0.581-0.581l0.579,2.904l2.036,1.742l1.163,1.161l2.034,2.033l0.873,2.322v1.452v1.742l1.163,2.323v2.323l-0.582,1.452l-0.581,2.323v1.742l-0.582,2.033l-1.162,2.322l-2.034,1.453l-1.163,2.031l-0.872,1.453l-0.872,2.322l-0.871,1.451l-0.873,2.033l-0.292,1.743v0.87l-1.452,1.163h-3.198l-2.326,1.159l-1.452,1.163l-1.454,1.161l-2.325-1.45l-1.743-0.293l0.289-1.45l-1.452,0.58l-2.325,1.744l-2.326-0.581l-1.743-0.582h-1.454l-2.616-0.871l-1.744-1.743l-0.582-2.032l-0.58-1.452l-1.456-1.162l-2.614-0.29l0.873-1.161l-0.581-2.033l-1.455,1.744l-2.326,0.579l1.455-1.452l0.292-1.74l1.161-1.453l-0.291-2.032l-2.324,2.612l-1.745,0.873l-0.873,2.03l-2.323-1.161l0.29-1.452l-1.744-1.741l-1.455-1.161l0.583-0.581l-3.779-1.743h-1.744l-2.616-1.45l-4.942,0.29l-3.778,0.871l-2.907,1.162l-2.615-0.292l-2.908,1.451l-2.616,0.581l-0.289,1.452l-1.163,1.161h-2.325l-1.744,0.291l-2.325-0.581l-2.036,0.29l-2.034,0.291l-1.455,1.452l-0.871-0.291l-1.452,0.871l-1.163,0.873h-2.036h-2.034l-2.906-1.744l-1.452-0.58v-1.742l1.452-0.291l0.581-0.58l-0.29-1.161l0.58-1.743l-0.29-1.741l-1.454-2.614l-0.579-1.742v-1.452l-0.873-1.743l-0.29-0.87l-1.163-1.162l-0.292-2.033l-1.454-2.323l-0.579-1.161l1.163,1.161l-0.874-2.321l1.455,0.58l0.873,1.161v-1.451l-1.454-2.033l-0.292-0.87l-0.582-0.872l0.29-1.742l0.584-0.581l0.289-1.451l-0.289-1.453l1.162-2.032l0.292,2.032l1.161-1.743l2.034-1.159l1.454-1.162l2.034-0.872l1.454-0.29l0.581,0.29l2.325-0.871l1.455-0.29l0.579-0.58l0.582-0.291h1.744l2.616-0.871l1.745-1.161l0.579-1.452l1.744-1.452v-1.162v-1.45l2.036-2.324l1.163,2.324l1.163-0.292l-0.871-1.45l0.871-1.453l1.163,0.871l0.289-2.322l1.454-1.162l0.58-1.162l1.454-0.58v-0.581l1.163,0.291l0.291-0.872l1.163-0.291l1.163-0.289l2.034,1.161l1.743,1.742h1.453l1.744,0.291l-0.581-1.742l1.454-2.032l1.163-0.873l-0.291-0.581l1.162-1.452l1.744-1.161l1.165,0.291l2.323-0.291v-1.452l-2.034-0.87l1.453-0.58l2.035,0.869l1.453,1.163l2.326,0.581l0.581-0.29l1.744,0.87l1.744-0.87l0.871,0.29l0.872-0.581l1.164,1.451l-0.873,1.453l-0.872,1.16h-0.873l0.292,1.162l-0.873,1.452l-1.163,1.161l0.292,0.872l2.325,1.452l2.034,0.87l1.454,0.871l2.034,1.742h0.581l1.452,0.582l0.582,0.87l2.617,1.161l1.745-1.161l0.581-1.452l0.581-1.161l0.29-1.452l0.873-2.322l-0.291-1.161v-0.872l-0.291-1.452l0.291-2.322l0.581-0.29l-0.29-1.163l0.581-1.451l0.582-1.452v-0.872l1.163-0.869l0.58,1.45l0.291,1.743l0.581,0.291l0.291,1.16l0.871,1.163l0.292,1.74L868.806,268.715z",AZ:"M597.6,121.78l0.873,0.581h1.16v0.581l1.163,1.451l-2.033-0.29l-1.163-1.453l-0.582-0.871H597.6zM604.285,117.715h1.165l0.29-0.581l1.744-1.162l1.452,1.452l1.453,2.033h1.165l0.87,0.871h-2.325l-0.292,2.322l-0.579,0.873l-0.873,0.58v1.452l-0.582,0.291l-1.743-1.453l0.871-1.451l-0.871-0.871l-0.872,0.291l-3.488,2.032v-2.032l-1.162-0.291l-1.163-0.871l0.871-0.871l-1.452-0.871l0.289-0.871l-0.871-0.291l-0.581-0.871l0.581-0.29l2.034,0.581l1.454,0.29l0.582-0.29l-1.455-1.453l0.582-0.29h0.873L604.285,117.715z",BA:"M526.091,107.552l0.871,0.000l-0.581,1.161l1.455,1.162l-0.582,1.161l-0.581,0.291l-0.582,0.290l-0.872,0.581l-0.291,1.451l-2.614,-1.161l-0.874,-1.161l-1.162,-0.581l-1.163,-0.871l-0.579,-0.872l-1.454,-1.451l0.581,-0.872l1.162,0.581l0.582,-0.581l1.163,0.000l2.325,0.291l2.033,0.000l-1.163,-0.581z",BD:"M728.989,170.275l-0.292,2.033l-0.871,-0.291l0.291,2.033l-0.872,-1.452l-0.292,-1.452l-0.290,-1.162l-1.163,-1.742l-2.615,0.000l0.289,1.161l-0.873,1.453l-1.161,-0.581l-0.581,0.581l-0.582,-0.292l-1.164,-0.289l-0.290,-2.324l-1.160,-2.032l0.579,-1.742l-1.744,-0.582l0.582,-1.160l1.743,-0.873l-2.034,-1.451l1.163,-2.032l2.034,1.451l1.454,0.000l0.291,2.032l2.616,0.291l2.327,0.000l1.743,0.291l-1.454,2.324l-1.163,0.289l-0.872,1.452l1.454,1.452l0.581,-1.742l0.872,0.000l-1.454,-4.356z",BE:"M482.78,89.837l2.034,0.000l2.617,-0.580l1.745,1.451l1.452,0.582l-0.290,1.742l-0.583,0.291l-0.290,1.451l-2.615,-1.161l-1.162,0.000l-2.036,-1.162l-1.163,-1.161l-1.452,0.000l-0.293,-0.872l-2.036,0.581z",BF:"M465.919,204.54l-1.744,-0.872l-1.452,0.291l-0.872,0.581l-1.164,-0.581l-0.579,-0.871l-1.165,-0.582l-0.290,-1.741l0.873,-1.161l0.000,-0.871l2.034,-2.324l0.291,-1.742l0.872,-0.871l1.452,0.581l1.163,-0.581l0.291,-0.872l2.035,-1.161l0.582,-0.871l2.617,-1.162l1.452,-0.290l0.582,0.581l2.035,0.000l-0.292,1.161l0.292,1.162l1.453,2.033l0.291,1.161l3.198,0.581l-0.291,2.032l-0.583,0.872l-1.161,0.290l-0.584,1.162l-0.870,0.290l-2.616,0.000l-1.163,-0.290l-0.872,0.290l-1.163,0.000l-4.942,0.000l0.000,1.452l-0.290,-2.323z",BG:"M536.265,109.294l0.581,1.162l1.164,-0.291l2.035,0.581l4.071,0.000l1.452,-0.581l3.196,-0.581l2.035,0.872l1.454,0.290l-1.163,1.161l-1.163,2.033l0.872,1.452l-2.324,-0.290l-2.907,0.871l0.000,1.452l-2.326,0.000l-2.034,-0.872l-2.326,0.872l-2.036,-0.290l0.000,-1.743l-1.452,-0.871l0.290,-0.292l-0.290,-0.289l0.580,-0.871l1.164,-0.871l-1.454,-1.162l-0.290,-1.161l-0.871,0.581z",BI:"M554.579,243.451l-0.290,-3.484l-0.583,-1.161l1.743,0.290l0.874,-1.743l1.454,0.291l0.000,0.871l0.582,0.871l0.000,0.872l-0.582,0.580l-1.163,1.454l-0.872,0.870l1.163,-0.289z",BJ:"M481.037,213.833l-2.037,0.290l-0.872,-2.033l0.290,-6.388l-0.579,-0.289l-0.291,-1.454l-0.872,-0.871l-0.873,-0.871l0.582,-1.452l0.870,-0.290l0.584,-1.162l1.161,-0.290l0.583,-0.872l1.161,-0.871l0.874,0.000l2.034,1.453l0.000,1.160l0.580,1.453l-0.580,1.160l0.291,0.873l-1.454,1.452l-0.582,0.871l-0.581,1.743l0.000,1.741l0.289,-4.647z",BN:"M787.998,218.479l1.163,-0.872l2.324,-1.741l0.000,1.451l-0.291,1.743l-1.163,0.000l-0.580,0.870l1.453,1.451z",BO:"M300.812,291.656l-3.197,-0.290l-1.163,2.323l-1.452,-2.033l-3.781,-0.582l-2.033,2.324l-2.036,0.582l-1.163,-4.065l-1.453,-2.906l0.872,-2.612l-1.453,-1.163l-0.291,-2.031l-1.454,-2.033l1.745,-2.904l-1.163,-2.324l0.582,-0.869l-0.582,-0.872l1.163,-1.452l0.000,-2.323l0.290,-2.033l0.582,-0.873l-2.326,-4.355l2.035,0.000l1.163,0.000l0.872,-0.870l2.326,-0.872l1.453,-1.162l3.487,-0.580l-0.289,2.031l0.289,1.163l0.000,1.743l2.909,2.612l3.196,0.290l0.872,1.162l2.035,0.581l1.163,0.872l1.744,0.000l1.453,0.580l0.000,1.743l0.582,0.871l0.000,1.162l-0.582,0.000l0.872,3.195l5.233,0.000l-0.291,1.740l0.291,0.873l1.453,0.871l0.872,1.742l-0.581,2.032l-0.873,1.453l0.291,1.451l-0.872,0.580l0.000,-0.871l-2.615,-1.451l-2.616,0.000l-4.652,0.871l-1.453,2.324l0.000,1.451l-1.163,3.485l0.291,0.581z",BR:"M315.056,314.017l3.778,-3.777l3.198,-2.613l1.745,-1.163l2.325,-1.450l0.000,-2.324l-1.454,-1.450l-1.162,0.580l0.580,-1.742l0.292,-1.454l0.000,-1.741l-1.163,-0.290l-0.872,0.290l-1.163,0.000l-0.290,-1.162l-0.291,-2.613l-0.291,-0.581l-2.035,-0.871l-1.163,0.581l-2.907,-0.581l0.291,-3.776l-0.872,-1.452l0.872,-0.580l-0.291,-1.451l0.873,-1.453l0.581,-2.032l-0.872,-1.742l-1.453,-0.871l-0.291,-0.873l0.291,-1.740l-5.233,0.000l-0.872,-3.195l0.582,0.000l0.000,-1.162l-0.582,-0.871l0.000,-1.743l-1.453,-0.580l-1.744,0.000l-1.163,-0.872l-2.035,-0.581l-0.872,-1.162l-3.196,-0.290l-2.909,-2.612l0.000,-1.743l-0.289,-1.163l0.289,-2.031l-3.487,0.580l-1.453,1.162l-2.326,0.872l-0.872,0.870l-1.163,0.000l-2.035,0.000l-1.744,0.292l-1.163,-0.292l0.292,-4.066l-2.326,1.453l-2.616,0.000l-0.872,-1.453l-1.744,0.000l0.581,-1.451l-1.744,-1.451l-1.163,-2.614l0.872,-0.581l0.000,-1.162l1.744,-0.581l-0.290,-1.451l0.581,-1.162l0.291,-1.161l3.198,-2.034l2.033,-0.289l0.583,-0.580l2.324,0.290l1.163,-7.551l0.291,-1.161l-0.582,-1.743l-1.162,-0.871l0.000,-2.033l1.453,-0.581l0.582,0.290l0.291,-0.871l-1.745,-0.290l0.000,-1.742l5.233,0.000l0.871,-0.871l0.873,0.871l0.582,1.452l0.581,-0.290l1.452,1.451l2.036,-0.289l0.580,-0.582l2.036,-0.870l1.162,-0.291l0.291,-1.162l2.035,-0.871l-0.291,-0.581l-2.324,-0.289l-0.292,-1.744l0.000,-1.741l-1.163,-0.872l0.582,0.000l2.034,0.290l2.326,0.582l0.581,-0.582l2.035,-0.580l3.198,-0.871l0.872,-1.162l-0.291,-0.580l1.453,-0.291l0.582,0.582l-0.290,1.451l0.872,0.290l0.580,1.161l-0.580,1.162l-0.582,2.324l0.582,1.451l0.291,1.162l1.743,1.162l1.454,0.290l0.290,-0.581l0.872,0.000l1.163,-0.581l0.871,-0.871l1.454,0.290l0.872,0.000l1.454,0.291l0.290,-0.581l-0.581,-0.581l0.291,-0.870l1.163,0.289l1.162,-0.289l1.745,0.581l1.161,0.581l0.873,-0.873l0.582,0.292l0.290,0.581l1.453,0.000l0.872,-1.162l0.872,-2.034l1.745,-2.323l0.872,-0.290l0.581,1.452l1.744,4.936l1.453,0.291l0.000,2.032l-2.034,2.323l0.872,0.872l4.942,0.290l0.000,2.904l2.034,-2.033l3.489,1.163l4.650,1.741l1.163,1.453l-0.290,1.451l3.197,-0.872l5.232,1.453l4.070,0.000l4.069,2.322l3.780,3.196l2.034,0.582l2.326,0.289l0.872,0.870l1.162,3.485l0.291,1.452l-1.162,4.646l-1.163,1.742l-4.070,3.775l-1.744,3.194l-2.035,2.323l-0.581,0.290l-0.873,2.034l0.291,4.936l-0.872,4.357l-0.290,1.742l-0.873,1.162l-0.581,3.774l-2.615,3.483l-0.583,2.906l-2.034,1.161l-0.872,1.453l-2.907,0.000l-4.360,1.160l-1.745,1.162l-3.197,0.871l-3.198,2.324l-2.325,2.613l-0.581,2.032l0.581,1.452l-0.581,2.904l-0.581,1.163l-2.035,1.742l-2.907,4.645l-2.325,2.323l-2.036,1.162l-1.162,2.615l-1.744,1.740l-0.872,-1.740l1.163,-1.164l-1.454,-2.032l-2.325,-1.451l-2.907,-1.743l-0.872,0.000l-2.907,-2.033l1.744,-0.292z",BS:"M260.408,165.628h-0.872l-0.581-1.452l-1.163-0.871l0.872-1.743l0.581,0.291l1.164,2.033V165.628zM259.536,157.788l-2.907,0.581l-0.291-1.162l1.454-0.29l1.744,0.29V157.788zM261.86,157.788l-0.58,2.032l-0.583-0.29l0.291-1.451l-1.453-1.162v-0.291L261.86,157.788z",BT:"M726.082,154.594l1.163,0.871l0.000,1.742l-2.326,0.000l-2.326,-0.290l-1.744,0.581l-2.615,-1.162l0.000,-0.581l1.743,-2.033l1.454,-0.580l2.035,0.580l1.453,0.000l-1.163,-0.872z",BW:"M544.405,281.784l0.582,0.580l0.870,1.742l2.907,2.903l1.455,0.292l0.000,0.870l0.580,1.744l2.326,0.579l1.745,1.162l-4.071,2.033l-2.324,2.032l-0.871,1.742l-0.874,1.161l-1.452,0.293l-0.584,1.161l-0.289,0.870l-1.744,0.582l-2.327,0.000l-1.162,-0.872l-1.162,-0.290l-1.454,0.580l-0.582,1.453l-1.452,0.870l-1.164,1.162l-2.033,0.290l-0.582,-0.872l0.289,-1.741l-1.741,-2.613l-0.874,-0.580l0.000,-7.843l2.908,-0.289l0.000,-9.582l2.033,-0.291l4.361,-0.871l0.871,1.162l1.744,-1.162l0.874,0.000l1.743,-0.582l0.291,0.291l-1.163,-2.034z",BY:"M538.301,82.579l2.907,0.000l2.908,-0.872l0.578,-1.452l2.326,-1.162l-0.290,-1.160l1.745,-0.291l2.906,-1.162l2.908,0.581l0.290,0.872l1.454,-0.291l2.615,0.581l0.289,1.161l-0.578,0.871l1.743,1.743l1.163,0.581l-0.292,0.290l2.036,0.580l0.872,0.872l-1.163,0.580l-2.326,-0.290l-0.581,0.290l0.871,0.872l0.583,2.033l-2.328,0.000l-0.870,0.580l-0.290,1.451l-0.873,-0.289l-2.615,0.000l-0.583,-0.581l-1.162,0.581l-1.163,-0.291l-2.036,-0.290l-3.196,-0.581l-2.615,-0.291l-2.035,0.291l-1.746,0.581l-1.163,0.000l0.000,-1.161l-0.871,-1.162l1.453,-0.582l0.000,-1.161l-0.582,-0.870l0.289,1.452z",BZ:"M228.433,181.89l0.000,-0.290l0.290,-0.290l0.582,0.580l0.872,-1.742l0.580,0.000l0.000,0.290l0.581,0.000l-0.289,0.872l-0.292,1.162l0.292,0.289l-0.292,1.162l0.000,0.291l-0.290,1.161l-0.582,0.872l-0.291,0.000l-0.581,0.870l-0.872,0.000l0.292,-2.903l0.000,2.324z",CA:"M298.487,102.905l2.035,0.291h2.617l-1.454,1.162l-0.872,0.29l-3.488-1.162l-0.873-1.161l1.163-0.872L298.487,102.905zM303.719,95.937h-1.454l-3.488-0.872l-2.616-1.162l0.872-0.291l3.779,0.581l2.616,1.162L303.719,95.937zM133.669,97.679l-1.163,0.291l-4.651-1.162l-0.872-1.162l-2.324-0.871l-0.582-0.871l-2.907-0.581l-0.872-1.452V91.29l2.907,0.581l1.744,0.58l2.617,0.291l0.872,0.872l1.454,1.162l2.615,1.162L133.669,97.679zM319.125,91.581l-1.744,2.323l1.744-0.871l2.035,0.581l-1.163,0.871l2.617,0.873l1.163-0.582l2.906,0.871l-0.872,1.742l1.744-0.291l0.292,1.452l0.872,1.742l-1.164,2.323h-1.162l-1.744-0.29l0.582-2.323l-0.872-0.29l-3.198,2.323h-1.453l1.744-1.452l-2.617-0.581h-2.907h-5.232l-0.58-0.872l1.744-0.871l-1.164-0.871l2.326-1.451l2.906-4.356l1.745-1.743l2.325-0.87h1.163l-0.582,0.87L319.125,91.581zM108.38,82.289l2.616-0.291l-0.58,3.195l2.324,2.323h-1.163l-1.744-1.453l-0.871-1.161l-1.454-0.871l-0.582-1.162l0.291-0.871L108.38,82.289zM255.466,59.928l-0.872,1.453l-1.453-0.291l-0.582-0.58v-0.291l1.163-0.872h1.163L255.466,59.928zM248.198,58.477l-3.197,1.451h-1.744l-0.581-0.581l2.034-1.452h3.779L248.198,58.477zM239.478,50.346l0.291,1.161l1.454-0.29l1.744,0.581l2.906,1.162l3.198,0.871l0.29,1.162l2.035-0.29l1.745,0.871l-2.326,0.872l-4.361-0.581l-1.453-1.161l-2.617,1.452l-4.069,1.451l-0.872-1.742l-3.779,0.291l2.325-1.162l0.291-2.323l1.163-2.613L239.478,50.346zM265.058,46.28l-3.198,0.291l-0.58-1.453l1.162-1.451l2.326-0.581l2.326,0.871v1.161l-0.291,0.292L265.058,46.28zM210.41,40.763l-1.744,1.162l-3.488-0.872l-2.325,0.291l-3.779-1.162l2.325-0.872l2.035-1.162l2.907,0.581l1.744,0.581l0.581,0.581L210.41,40.763zM224.653,39.891v2.614l3.488-2.032l3.197,1.742l-0.581,2.033l2.616,2.032l2.907-2.032l2.035-2.324v-3.195l4.069,0.292l4.07,0.29l3.488,1.452l0.291,1.452l-2.035,1.452l1.744,1.451l-0.291,1.162l-5.231,2.033l-3.779,0.291l-2.907-0.581l-0.872,1.161l-2.617,2.323l-0.872,1.453l-3.196,1.743l-3.78,0.29l-2.325,1.162l-0.292,1.741l-3.197,0.291l-3.198,2.324l-2.907,2.904l-1.162,2.323l-0.292,3.194l4.07,0.291l1.454,2.614l1.163,2.033l3.779-0.582l5.232,1.453l2.616,0.871l2.035,1.452l3.489,0.582l2.907,1.162l4.651,0.29l2.906,0.291l-0.581,2.323l0.872,2.614l2.035,3.194l4.07,2.613l2.326-0.871l1.452-2.903l-1.452-4.357l-2.035-1.452l4.36-1.162l3.197-2.033l1.455-1.742l-0.292-2.032l-1.744-2.324L257.5,69.22l3.489-2.904l-1.162-2.323l-1.163-4.355l2.034-0.582l4.651,0.582l2.907,0.29l2.326-0.581l2.616,0.872l3.198,1.451l0.872,1.162l4.941,0.291v2.323l0.872,3.484l2.616,0.291l1.745,1.742l4.07-1.742l2.616-2.904l1.744-1.161l2.325,2.323l3.488,3.484l3.198,3.195l-1.163,1.742l3.487,1.742l2.616,1.451l4.36,0.872l1.744,0.871l1.163,2.324l2.035,0.29l1.163,0.872l0.291,3.194l-2.035,1.161l-2.035,0.872l-4.65,0.871l-3.198,2.323l-4.942,0.582l-5.814-0.582h-4.07h-2.906l-2.326,2.033l-3.488,1.162l-3.779,3.775l-3.197,2.613l2.325-0.58l4.36-3.486l5.814-2.322l4.069-0.291l2.326,1.162l-2.616,2.032l0.872,2.905l0.872,2.032l3.779,1.452l4.361-0.581l2.906-2.903l0.292,2.032l1.744,0.871l-3.489,1.742l-6.104,1.743l-2.616,1.161l-3.198,2.033l-2.034-0.291l-0.29-2.323l4.94-2.324h-4.36l-3.197,0.291l-1.744-1.452v-3.775l-1.163-0.87l-2.035,0.581l-0.872-0.581l-2.035,2.032l-0.873,2.033l-0.872,1.162l-1.162,0.58h-0.872l-0.292,0.871h-5.232h-4.07l-1.163,0.581l-2.907,1.743l-0.291,0.29l-0.872,1.162h-2.616h-2.616l-1.454,0.291l0.582,0.581l0.291,0.871l-0.291,0.291l-3.488,1.453l-2.907,0.29l-3.197,1.452h-0.581l-0.872-0.29l-0.292-0.581v-0.29l0.581-0.873l1.163-1.451l0.872-1.742l-0.58-2.323l-0.583-2.613l-2.906-1.162l0.581-0.581l-0.581-0.29h-0.581l-0.583-0.291l-0.29-0.871l-0.583,0.291h-0.58v-0.291l-0.582-0.291l-0.291-0.58l-2.035-0.871l-2.326-0.872l-2.616-1.162l-2.617-1.161l-2.326,0.87h-0.872l-3.488-0.581l-2.325,0.291l-2.616-0.871l-2.907-0.291l-1.744-0.291l-0.871-0.581l-0.582-1.452h-0.873v1.161h-5.813h-9.302h-9.302h-8.43h-8.138h-8.14h-8.43h-2.616h-8.139h-7.849h-0.582l-5.231-2.613l-2.036-1.452l-4.941-0.871l-1.454-2.614l0.291-1.742l-3.488-1.161l-0.291-2.033l-3.488-2.033v-1.452l1.454-1.452v-1.743l-4.65-1.742l-2.908-2.903l-1.744-2.033l-2.616-1.162l-1.744-1.162l-1.454-1.451l-2.616,0.871L95.3,68.93l-2.326-1.741l-2.035-1.162l-2.616-0.872h-2.616V49.475V39.311l5.232,0.581l4.069,1.453h2.907l2.616-0.871l3.198-0.871l4.07,0.29l4.069-1.162l4.651-0.87l1.744,1.162l2.035-0.581l0.872-1.452l1.744,0.29l4.651,2.613l3.778-1.742l0.292,2.033l3.487-0.581l0.872-0.872l3.487,0.292l4.071,1.161l6.395,0.871l3.779,0.582l2.907-0.291l3.488,1.452l-3.779,1.453l4.94,0.581l7.559-0.291l2.325-0.581l2.906,1.742l2.908-1.451l-2.616-1.162l1.744-0.871l3.196-0.291l2.326-0.29l2.035,0.871l2.907,1.452l3.197-0.291l4.65,1.162l4.361-0.291h4.07l-0.291-1.742l2.326-0.581l4.36,1.162v2.614l1.744-2.324h2.035l1.454-2.614l-3.198-1.742l-3.196-1.162l0.291-2.903l3.198-2.033l3.778,0.29l2.617,1.453l3.779,2.904l-2.326,1.451L224.653,39.891zM159.54,29.728l-1.453,1.453l6.104-0.871l3.779,1.451l3.197-1.451l2.617,0.871l2.035,2.613l1.454-1.161l-1.745-2.615l2.327-0.581l2.615,0.581l3.198,1.162l1.744,2.613l0.872,2.033l4.651,1.162l4.941,1.452l-0.29,1.162l-4.651,0.29l1.744,0.872l-0.873,1.162l-4.941-0.581l-4.651-0.581h-3.198l-5.231,1.162l-6.977,0.291l-4.941,0.29l-1.454-1.452l-3.778-0.58l-2.617,0.29l-3.198-2.323l1.744-0.291l4.36-0.29h3.778l3.488-0.291l-5.233-0.871l-5.813,0.291h-4.069l-1.454-1.162l6.396-0.871h-4.07l-4.941-0.872l2.325-2.033l2.036-1.162l7.267-1.452L159.54,29.728zM185.993,29.147l-2.326,1.742l-4.361-2.032l1.163-0.291h3.488L185.993,29.147zM263.604,30.018l0.291,0.582h-2.907h-2.906l-3.197,0.29l-0.582-0.29l-3.198-1.452l0.291-0.872l1.163-0.291l6.396,0.291L263.604,30.018zM235.409,29.728l2.325,1.743l2.326-2.323l6.977-0.872l4.941,2.614l-0.582,2.033l5.523-0.871l2.616-1.162l6.104,1.451l3.78,1.162l0.29,1.162l5.233-0.581l2.906,1.742l6.687,1.162l2.326,1.161l2.616,2.614l-5.233,1.162l6.687,1.742l4.359,0.582l3.779,2.613l4.36,0.29l-0.872,1.743l-4.651,3.194l-3.488-1.162l-4.36-2.613l-3.488,0.291l-0.291,1.742l2.907,1.452l3.778,1.452l0.872,0.581l2.036,2.904l-1.164,1.743l-3.488-0.582l-6.685-2.323l3.779,2.323l2.906,1.743l0.292,0.871l-7.268-0.871l-6.104-1.743l-3.198-1.161l0.872-0.871l-4.07-1.451l-4.07-1.453v0.871l-7.848,0.582L257.5,53.25l1.745-2.033h5.232l5.814-0.291l-1.163-0.871l1.163-1.452l3.488-2.613l-0.872-1.162l-0.873-1.162l-4.36-1.162l-5.522-1.161l1.743-0.581l-2.907-1.742h-2.325l-2.326-1.162l-1.453,0.87l-4.942,0.292l-9.883-0.581l-5.814-0.581l-4.651-0.582l-2.325-0.871l2.908-1.451h-3.78l-0.872-2.615l2.036-2.613l2.906-0.87l6.977-0.872L235.409,29.728zM197.62,27.985l3.198,0.582l4.942-0.582l0.582,0.872l-2.617,1.452l4.361,1.162l-0.582,2.323l-4.361,1.162l-2.907-0.291l-1.744-0.871l-6.976-2.323l0.29-0.871l5.523,0.29l-3.196-1.742L197.62,27.985zM217.096,30.89l-2.907,2.033h-3.197l-1.454-2.613v-1.452l1.454-1.162l2.616-0.581h5.814l5.232,0.871l-4.069,2.324L217.096,30.89zM142.099,34.665l-7.267,1.162l-1.453-1.162l-6.396-1.452l1.455-1.162l1.743-2.033l2.326-1.742l-2.615-1.742l9.301-0.29l4.07,0.581h6.976l2.616,0.871l2.907,1.162l-3.488,0.87l-6.686,1.743l-3.488,2.032V34.665zM216.224,24.792l-1.744,1.162l-3.778-0.291l-3.489-0.871l1.453-1.162l4.07-0.58l2.326,0.871L216.224,24.792zM202.562,19.855l2.035,1.452l0.291,1.452l-1.454,2.033l-4.36,0.291l-2.908-0.582v-1.452h-4.65v-2.033h2.906l4.07-0.871l4.07,0.291V19.855zM175.819,21.307l1.163,1.162l2.324-0.582l2.907,0.291l0.582,1.161l-1.745,1.453l-9.301,0.291l-6.977,1.162h-4.07l-0.291-0.873l5.523-1.16l-12.208,0.29l-4.07-0.29l3.779-2.904l2.616-0.581l7.848,0.871l4.942,1.453l4.651,0.29l-3.779-2.613l2.326-0.871l2.907,0.29L175.819,21.307zM213.026,18.984l3.198,0.872h5.523l2.326,0.871l-0.582,1.161l2.906,0.582l1.744,0.58h3.779l4.069,0.29l4.361-0.58l5.522-0.29l4.651,0.29l2.907,0.871l0.582,1.162l-1.744,0.871l-4.07,0.582l-3.488-0.291l-7.848,0.291h-5.813l-4.36-0.291l-7.268-0.871l-0.872-1.453l-0.582-1.451l-2.617-1.162l-5.814-0.291l-3.196-0.871l1.163-1.162L213.026,18.984zM154.018,17.532l-0.582,2.033l-2.035,0.871l-2.616,0.29l-4.941,1.161l-4.65,0.291l-3.488-0.582l4.651-2.032l5.523-1.742h4.36L154.018,17.532zM215.351,17.823h-1.163l-5.231-0.291l-0.582-0.581h5.522l1.744,0.581L215.351,17.823zM170.586,17.243l-5.232,0.87l-4.071-0.87l2.326-0.873l3.779-0.29l4.07,0.29L170.586,17.243zM172.04,14.919l-3.488,0.291H163.9v-0.291l2.907-0.872l1.453,0.29L172.04,14.919zM210.12,16.37l-4.07,0.581l-2.326-0.87l-1.163-0.871l-0.291-1.162h3.488l1.744,0.29l3.198,0.872L210.12,16.37zM198.201,15.499l1.163,1.162l-4.361-0.291l-4.65-0.871h-6.104l2.616-0.871l-3.198-0.581l-0.291-1.162l5.524,0.291l7.266,1.161L198.201,15.499zM234.246,12.015l3.198,0.871l-3.779,0.582l-4.942,2.322h-4.942l-5.813-0.291l-2.907-1.162v-0.87l2.325-0.872h-4.941l-3.198-0.872l-1.744-1.162l2.034-1.161l1.744-0.871l2.907-0.291l-1.163-0.581l6.395-0.29l3.489,1.452l4.651,0.871l4.36,0.29L234.246,12.015zM285.116,2.432l7.558,0.29l5.813,0.291l4.942,0.58v0.873l-6.685,1.161l-6.687,0.581l-2.616,0.582h6.104L287.15,8.53l-4.651,0.581l-4.651,2.324l-5.813,0.58l-1.744,0.581l-8.139,0.291l3.778,0.291l-2.035,0.58l2.326,1.162l-2.616,1.162l-4.36,0.581l-1.162,1.162l-3.779,0.871l0.291,0.581h4.65v0.581l-7.267,1.741l-7.268-0.871l-7.848,0.291l-4.361-0.291h-4.941l-0.581-1.452l5.231-0.581l-1.454-2.033h1.744l7.268,1.162l-3.779-1.742l-4.36-0.582l2.326-1.162l4.651-0.581l0.872-0.871l-3.779-1.162l-1.163-1.451h7.558l2.034,0.29l4.361-0.87l-6.105-0.291h-9.883L227.85,8.53l-2.325-1.162l-3.197-0.581l-0.582-1.162l4.07-0.291l3.197-0.29l5.232-0.291l4.07-1.162l3.488,0.291l2.906,0.582l2.327-1.453l3.487-0.291l4.942-0.29l8.429-0.291l1.454,0.291l7.849-0.291h6.104L285.116,2.432z",CD:"M558.648,221.382l-0.289,3.196l1.162,0.289l-0.873,0.871l-0.871,0.872l-1.163,1.451l-0.581,1.161l-0.291,2.324l-0.582,0.871l0.000,2.324l-0.871,0.580l0.000,1.742l-0.290,0.290l-0.293,1.453l0.583,1.161l0.290,3.484l0.581,2.324l-0.290,1.452l0.290,1.742l1.744,1.452l1.455,3.485l-1.163,-0.290l-3.490,0.581l-0.873,0.290l-0.873,1.742l0.873,1.161l-0.580,3.195l-0.293,2.904l0.584,0.291l2.035,1.160l0.581,-0.581l0.289,2.904l-2.033,0.000l-1.163,-1.451l-0.872,-1.162l-2.325,-0.291l-0.581,-1.452l-1.745,0.873l-2.036,-0.291l-0.871,-1.452l-1.743,-0.291l-1.454,0.291l0.000,-0.872l-1.164,-0.290l-1.161,0.000l-1.745,0.290l-1.162,0.000l-0.581,0.292l0.000,-3.196l-0.873,-1.162l-0.290,-1.740l0.579,-1.453l-0.579,-1.161l0.000,-1.743l-3.488,0.000l0.289,-0.871l-1.452,0.000l0.000,0.290l-1.745,0.291l-0.581,1.452l-0.582,0.871l-1.452,-0.581l-0.873,0.581l-2.033,0.000l-0.874,-1.452l-0.581,-0.871l-0.871,-1.453l-0.582,-2.032l-8.140,-0.290l-1.162,0.581l-0.581,-0.291l-1.163,0.581l-0.582,-0.871l0.874,-0.291l0.000,-1.161l0.578,-0.872l0.874,-0.580l0.871,0.291l0.873,-0.873l1.452,0.000l0.292,0.582l0.871,0.580l1.744,-1.741l1.456,-1.454l0.870,-0.870l-0.289,-2.033l1.162,-2.903l1.453,-1.162l1.746,-1.452l0.290,-0.871l0.000,-1.162l0.581,-0.871l-0.292,-1.451l0.292,-2.614l0.579,-1.451l0.874,-1.744l0.291,-1.452l0.289,-2.032l0.874,-1.452l1.452,-0.870l2.326,0.870l1.745,1.162l2.033,0.290l2.036,0.580l0.871,-1.742l0.291,-0.290l1.454,0.290l2.907,-1.160l1.163,0.579l0.871,-0.290l0.291,-0.580l1.163,-0.291l2.034,0.291l1.744,0.000l0.873,-0.291l1.743,2.323l1.161,0.291l0.873,-0.291l1.166,0.000l1.450,-0.581l0.874,1.162l-2.325,-2.032z",CF:"M515.918,210.638l2.325,-0.290l0.293,-0.871l0.579,0.291l0.582,0.580l3.488,-1.162l1.163,-1.161l1.454,-0.872l-0.292,-0.870l0.871,-0.291l2.618,0.291l2.617,-1.452l2.034,-2.905l1.452,-1.161l1.744,-0.581l0.292,1.162l1.452,1.742l0.000,1.162l-0.289,1.163l0.000,0.870l0.871,0.870l2.327,1.162l1.452,1.162l0.000,0.871l1.743,1.452l1.163,1.161l0.873,1.743l2.034,0.871l0.292,0.871l-0.873,0.291l-1.744,0.000l-2.034,-0.291l-1.163,0.291l-0.291,0.580l-0.871,0.290l-1.163,-0.579l-2.907,1.160l-1.454,-0.290l-0.291,0.290l-0.871,1.742l-2.036,-0.580l-2.033,-0.290l-1.745,-1.162l-2.326,-0.870l-1.452,0.870l-0.874,1.452l-0.289,2.032l-1.744,-0.290l-2.036,-0.290l-1.452,1.451l-1.455,2.325l-0.289,-0.581l-0.292,-1.453l-1.163,-0.872l-1.161,-1.452l0.000,-0.870l-1.454,-1.452l0.289,-0.870l-0.289,-1.162l0.289,-2.033l0.581,-0.581l-1.455,2.614z",CG:"M509.523,244.033l-0.874,-0.871l-0.870,0.581l-1.163,1.163l-2.325,-2.906l2.035,-1.742l-0.872,-1.743l0.872,-0.580l1.745,-0.291l0.289,-1.451l1.454,1.451l2.616,0.000l0.581,-1.162l0.582,-1.741l-0.291,-2.324l-1.454,-1.452l1.163,-3.194l-0.581,-0.580l-2.036,0.000l-0.871,-1.162l0.291,-1.451l3.488,0.289l2.034,0.581l2.327,0.871l0.289,-1.741l1.455,-2.325l1.452,-1.451l2.036,0.290l1.744,0.290l-0.291,1.452l-0.874,1.744l-0.579,1.451l-0.292,2.614l0.292,1.451l-0.581,0.871l0.000,1.162l-0.290,0.871l-1.746,1.452l-1.453,1.162l-1.162,2.903l0.289,2.033l-0.870,0.870l-1.456,1.454l-1.744,1.741l-0.871,-0.580l-0.292,-0.582l-1.452,0.000l-0.873,0.873l0.871,0.291z",CH:"M500.22,100.292l0.000,0.580l-0.289,0.581l1.162,0.581l1.452,0.000l-0.289,1.162l-1.163,0.290l-2.034,-0.290l-0.583,1.161l-1.453,0.000l-0.291,-0.290l-1.744,0.871l-1.160,0.000l-1.165,-0.581l-0.871,-1.161l-1.454,0.580l0.000,-1.451l2.034,-1.453l0.000,-0.580l1.163,0.291l0.873,-0.582l2.324,0.000l0.582,-0.580l-2.906,-0.871z",CI:"M465.919,217.317l-1.162,0.000l-2.034,-0.580l-1.744,0.000l-3.197,0.580l-2.036,0.581l-2.615,1.162l-0.582,0.000l0.289,-2.323l0.293,-0.291l-0.293,-1.162l-1.162,-1.161l-0.871,-0.290l-0.582,-0.581l0.582,-1.452l-0.291,-1.162l0.000,-0.870l0.581,0.000l0.000,-1.162l-0.290,-0.581l0.290,-0.290l1.162,-0.290l-0.871,-2.323l-0.581,-1.163l0.290,-0.871l0.581,-0.290l0.292,-0.292l0.870,0.582l2.037,0.000l0.582,-0.871l0.581,0.000l0.582,-0.291l0.579,1.162l0.583,-0.290l1.161,-0.292l1.165,0.582l0.579,0.871l1.164,0.581l0.872,-0.581l1.452,-0.291l1.744,0.872l0.874,3.775l-1.164,2.323l-0.872,3.195l1.162,2.323l0.000,-1.161z",CL:"M284.825,375.578v6.389h2.907h1.745l-0.872,1.162l-2.326,0.87l-1.454-0.291l-1.744-0.289l-1.744-0.582l-2.907-0.58l-3.487-1.451l-2.907-1.453l-3.779-3.193l2.326,0.58l3.778,2.033l3.78,0.87l1.453-1.16l0.872-2.033l2.326-1.162L284.825,375.578zM285.987,289.915l1.163,4.065l2.035-0.582l0.291,0.872l-1.163,2.613l-2.907,1.451v4.646l-0.582,0.87l0.872,1.163l-1.744,1.741l-2.035,2.324l-0.872,2.614l0.291,2.612l-1.744,2.904l1.163,4.646l0.873,0.58v2.613l-1.744,2.613l0.29,2.323l-2.326,1.742l0.292,2.613l0.581,2.615l-1.453,0.87l-0.872,2.613l-0.582,2.904l0.582,3.193l-1.164,0.581l0.582,3.194l1.162,1.162l-0.873,1.162l1.454,0.289l0.29,1.162l-1.452,0.58l0.291,1.451l-0.872,3.775l-1.455,2.323l0.292,1.453l-0.873,1.741l-2.035,1.161l0.291,2.904l0.873,0.873h1.744v2.03l1.163,1.453l6.685,0.58l2.617,0.29h-2.617l-1.163,0.581l-2.616,1.162l-0.291,2.612h-1.162l-3.198-0.87l-3.198-2.032l-3.488-1.453l-0.872-1.74l0.872-1.744l-1.454-1.742l-0.291-4.646l1.163-2.614l2.907-2.323l-4.07-0.581l2.617-2.612l0.872-4.357l2.907,0.873l1.453-5.808l-1.744-0.581l-0.872,3.484l-1.744-0.582l0.872-3.773l0.872-5.228l1.454-1.742l-0.872-2.905l-0.291-2.902l1.163-0.29l1.744-4.356l1.744-4.356l1.162-4.064l-0.581-4.065l0.872-2.323l-0.292-3.485l1.744-3.192l0.292-5.518l0.872-5.519l0.871-6.388v-4.356l-0.582-3.774l1.163-0.872l0.872-1.45l1.454,2.032l0.291,2.031l1.454,1.163l-0.872,2.612L285.987,289.915z",CM:"M509.814,224.578l-0.291,0.000l-1.744,0.289l-1.744,-0.289l-1.163,0.000l-4.652,0.000l0.582,-2.034l-1.163,-1.742l-1.163,-0.582l-0.581,-1.160l-0.872,-0.581l0.000,-0.581l0.872,-2.032l1.164,-2.614l0.872,0.000l1.743,-1.743l0.871,0.000l1.746,1.161l1.744,-0.870l0.291,-1.162l0.580,-1.161l0.581,-1.452l1.455,-1.161l0.581,-1.742l0.582,-0.582l0.289,-1.452l0.873,-1.742l2.326,-2.323l0.000,-0.872l0.289,-0.580l-1.163,-0.871l0.292,-0.871l0.582,-0.291l1.162,1.742l0.292,1.743l-0.292,2.032l1.453,2.324l-1.453,0.000l-0.581,0.289l-1.455,-0.289l-0.579,1.161l1.742,1.743l1.165,0.581l0.289,1.161l0.872,1.743l-0.290,0.870l-1.455,2.614l-0.581,0.581l-0.289,2.033l0.289,1.162l-0.289,0.870l1.454,1.452l0.000,0.870l1.161,1.452l1.163,0.872l0.292,1.453l0.289,0.581l-0.289,1.741l-2.327,-0.871l-2.034,-0.581l3.488,0.289z",CN:"M777.533,179.567l-2.325,1.451l-2.326-0.871v-2.323l1.163-1.453l3.196-0.581h1.455l0.581,0.872l-1.163,1.451L777.533,179.567zM825.204,94.194l4.651,0.871l3.488,1.742l0.871,2.614h4.361l2.325-0.872l4.651-0.871l-1.454,2.323l-1.163,1.162l-0.871,2.904l-2.034,2.613l-3.198-0.291l-2.325,0.871l0.581,2.324l-0.29,3.194l-1.454,0.291v1.161l-1.744-1.451l-1.163,1.451l-4.067,1.162l0.289,1.453h-2.325l-1.452-0.872l-1.745,2.032l-3.198,1.453l-2.033,1.742l-3.781,0.871l-2.033,1.162l-3.197,0.871l1.452-1.453l-0.58-1.16l2.325-1.742l-1.455-1.453l-2.324,1.162l-3.197,1.742l-1.745,1.742l-2.615,0.291l-1.452,1.16l1.452,1.743l2.326,0.581v1.162l2.325,0.872l2.906-2.033l2.616,1.162h1.744l0.289,1.452l-3.777,0.871l-1.454,1.452l-2.615,1.453l-1.453,1.742l3.196,1.742l0.872,2.614l1.743,2.613l1.745,2.033v2.033l-1.745,0.581l0.873,1.453l1.455,0.87l-0.292,2.324l-0.873,2.323h-1.452l-2.034,3.194l-2.326,3.484l-2.327,3.195l-3.778,2.613l-4.069,2.323l-2.905,0.291l-1.744,1.162l-0.873-0.871l-1.743,1.452l-3.779,1.451l-2.906,0.291l-0.872,2.904l-1.454,0.29l-0.873-2.033l0.584-1.162l-3.488-0.872l-1.455,0.581l-2.615-0.87l-1.454-0.873l0.581-1.742l-2.615-0.581l-1.452-0.871l-2.328,1.451l-2.615,0.291h-2.034l-1.454,0.58l-1.453,0.582l0.29,2.903h-1.455l-0.289-0.581v-1.161l-2.034,0.87l-1.163-0.581l-2.035-1.162l0.872-2.033l-1.743-0.581l-0.873-2.613l-2.905,0.58l0.29-3.484l2.615-2.323l0.291-2.033l-0.291-2.323l-1.161-0.581l-0.873-1.452h-1.455l-3.194-0.291l1.161-1.161l-1.455-1.743l-2.034,1.162l-2.033-0.581l-3.198,1.742l-2.615,2.033l-2.326,0.29l-1.162-0.872h-1.453l-2.035-0.58l-1.454,0.58l-1.743,2.033l-0.292-2.033l-1.744,0.582L713,154.013l-2.906-0.581l-2.326-1.162l-2.034-0.581l-1.162-1.452l-1.454-0.291l-2.615-1.742l-2.326-0.871l-1.162,0.581l-3.781-2.033l-2.615-1.742l-0.873-2.904l2.036,0.291v-1.453l-1.163-1.161l0.293-2.324l-2.908-3.194l-4.361-1.161l-0.87-2.033l-2.036-1.451l-0.58-0.582l-0.292-1.742v-1.161l-1.743-0.582l-0.874,0.291l-0.579-2.324l0.579-0.871l-0.289-0.581l2.615-1.162l2.036-0.58l2.906,0.291l0.871-1.744l3.489-0.29l1.162-1.162l4.362-1.451l0.289-0.581l-0.289-1.743l2.033-0.581l-2.617-4.646l5.524-1.162l1.452-0.58l2.034-4.938l5.232,0.873l1.744-1.162v-2.904l2.328-0.291l2.033-1.742l1.163-0.29l0.581,2.032l2.326,1.452l4.067,0.872l1.746,2.323l-0.873,3.194l0.873,1.162l3.197,0.582l3.778,0.29l3.488,1.742l1.743,0.291l1.163,2.613l1.455,1.453h3.196l5.522,0.58l3.78-0.291l2.615,0.291l4.069,1.743h3.489l1.162,0.871l3.197-1.451l4.361-0.873l4.359-0.29l3.198-0.871l1.745-1.452l2.033-0.871l-0.581-0.872l-0.873-1.161l1.454-1.742l1.745,0.29l2.614,0.581l2.908-1.452l4.069-1.162l2.034-1.742l2.035-0.872l4.07-0.29l2.034,0.29l0.291-1.162l-2.325-1.741l-2.326-0.872l-2.036,0.872l-2.904-0.291l-1.455,0.291l-0.581-1.162l1.744-2.613l1.453-2.324l3.197,1.162l4.068-1.742v-1.162l2.328-2.903l1.452-0.872v-1.452l-1.452-0.871l2.325-1.162l3.486-0.58h3.491l4.067,0.58l2.617,1.162l1.744,2.903l0.871,1.161l0.874,1.453L825.204,94.194z", -CO:"M266.221,231.256l-1.163,-0.582l-1.163,-0.870l-0.871,0.290l-2.326,-0.290l-0.582,-1.161l-0.580,0.000l-2.907,-1.452l-0.291,-0.872l1.162,-0.290l-0.290,-1.451l0.582,-0.873l1.452,-0.289l1.164,-1.744l1.161,-1.452l-1.161,-0.580l0.580,-1.452l-0.580,-2.613l0.580,-0.580l-0.580,-2.325l-1.164,-1.451l0.582,-1.451l0.872,0.289l0.582,-0.871l-0.872,-1.741l0.290,-0.292l1.454,0.000l2.034,-2.031l1.163,-0.291l0.000,-0.872l0.581,-2.322l1.744,-1.162l1.745,0.000l0.000,-0.582l2.325,0.291l2.035,-1.451l1.163,-0.582l1.454,-1.451l0.872,0.290l0.580,0.581l-0.290,0.871l-2.035,0.581l-0.581,1.452l-1.163,0.580l-0.581,1.162l-0.582,2.033l-0.581,1.452l1.453,0.290l0.291,1.161l0.580,0.582l0.292,1.161l-0.292,1.161l0.000,0.581l0.583,0.000l0.872,1.162l3.488,-0.291l1.453,0.291l2.035,2.323l1.163,-0.290l2.034,0.290l1.454,-0.290l0.872,0.290l-0.291,1.452l-0.872,0.871l0.000,2.033l0.581,2.033l0.582,0.580l0.291,0.580l-1.454,1.453l0.872,0.580l0.873,1.162l0.872,2.614l-0.581,0.290l-0.582,-1.452l-0.873,-0.871l-0.871,0.871l-5.233,0.000l0.000,1.742l1.745,0.290l-0.291,0.871l-0.582,-0.290l-1.453,0.581l0.000,2.033l1.162,0.871l0.582,1.743l-0.291,1.161l-1.163,7.551l-1.452,-1.454l-0.582,-0.290l1.744,-2.613l-2.326,-1.452l-1.452,0.290l-1.164,-0.579l-1.453,0.870l-2.035,-0.291l-1.744,-2.903l-1.163,-0.870l-0.872,-1.163l-1.744,-1.452l0.872,-0.291z",CR:"M245.292,208.315l-1.453,-0.580l-0.582,-0.582l0.291,-0.580l0.000,-0.581l-0.872,-0.579l-0.872,-0.582l-1.163,-0.291l0.000,-0.872l-0.872,-0.580l0.291,0.871l-0.582,0.581l-0.581,-0.581l-0.872,-0.291l-0.291,-0.580l0.000,-0.871l0.291,-0.871l-0.872,-0.291l0.581,-0.580l0.581,-0.291l1.745,0.581l0.581,-0.290l0.871,0.290l0.583,0.581l0.872,0.000l0.581,-0.581l0.580,1.452l1.164,1.162l1.162,1.161l-0.872,0.291l0.000,1.161l0.583,0.291l-0.583,0.581l0.291,0.289l-0.291,0.582l0.290,-0.580z",CU:"M247.326,167.081l2.326,0.290l2.326,0.000l2.325,0.871l1.163,1.161l2.616,-0.290l0.873,0.581l2.325,1.743l1.744,1.161l0.871,0.000l1.744,0.581l-0.290,0.871l2.035,0.000l2.325,1.161l-0.581,0.581l-1.744,0.291l-1.745,0.290l-2.035,-0.290l-3.778,0.290l1.743,-1.452l-1.161,-0.871l-1.744,0.000l-0.872,-0.871l-0.582,-1.742l-1.744,0.289l-2.616,-0.870l-0.582,-0.581l-3.779,-0.291l-0.872,-0.581l0.872,-0.580l-2.616,-0.290l-2.034,1.451l-1.163,0.000l-0.292,0.580l-1.452,0.292l-1.163,0.000l1.454,-0.872l0.581,-1.161l1.453,-0.581l1.163,-0.581l2.325,-0.290l-0.581,0.290z",CY:"M567.37,134.557l0.000,0.291l-2.909,1.161l-1.162,-0.581l-0.874,-1.161l1.456,0.000l0.580,0.290l0.582,-0.290l0.582,0.000l0.290,0.290l0.581,0.000l0.581,0.000l-0.293,0.000z",CZ:"M520.57,97.388l-1.455,-0.581l-1.163,0.000l-2.326,-0.581l-0.871,0.000l-1.453,1.162l-2.035,-0.871l-1.744,-1.161l-1.163,-0.582l-0.289,-1.161l-0.584,-0.872l2.036,-0.580l0.871,-0.871l2.036,-0.291l0.581,-0.581l0.871,0.290l1.165,-0.290l1.453,0.872l2.036,0.291l-0.293,0.580l1.454,0.580l0.581,-0.580l1.746,0.290l0.290,0.872l2.034,0.290l1.454,1.161l-0.874,0.000l-0.580,0.582l-0.582,0.000l-0.292,0.581l-0.289,0.289l-0.290,0.291l-0.871,0.290l-1.165,0.000l0.289,-0.581z",DE:"M501.093,79.674l0.000,1.161l2.906,0.582l0.000,0.872l2.617,-0.291l1.744,-0.872l2.907,1.163l1.452,0.870l0.583,1.452l-0.872,0.581l1.163,1.162l0.581,1.452l-0.292,0.870l1.165,1.742l-1.165,0.290l-0.871,-0.290l-0.581,0.581l-2.036,0.291l-0.871,0.871l-2.036,0.580l0.584,0.872l0.289,1.161l1.163,0.582l1.744,1.161l-1.162,1.162l-0.872,0.580l0.290,1.742l-0.290,0.291l-0.584,-0.581l-1.452,0.000l-2.034,0.581l-2.326,-0.291l-0.292,0.871l-1.452,-0.871l-0.873,0.291l-2.906,-0.871l-0.582,0.580l-2.324,0.000l0.290,-2.032l1.455,-1.743l-4.070,-0.580l-1.166,-0.581l0.000,-1.452l-0.579,-0.581l0.290,-1.742l-0.290,-2.904l1.454,0.000l0.871,-1.162l0.581,-2.323l-0.581,-1.161l0.581,-0.581l2.327,0.000l0.582,0.581l1.742,-1.451l-0.581,-0.872l0.000,-1.743l2.035,0.581l-1.744,0.581z",DJ:"M592.368,196.119l0.581,0.871l0.000,1.161l-1.453,0.582l1.161,0.580l-1.161,1.452l-0.583,-0.290l-0.581,0.000l-1.743,0.000l0.000,-0.871l0.000,-0.581l0.871,-1.452l0.872,-1.162l1.164,0.291l-0.872,0.581z",DK:"M508.649,77.933l-1.743,2.323l-2.615-1.452l-0.582-1.162l4.07-0.872L508.649,77.933zM503.708,75.609l-0.581,1.162l-0.871-0.291l-2.036,2.033l0.873,1.161l-1.744,0.582l-2.035-0.582l-1.161-1.451v-2.904l0.289-0.581l0.872-0.871h2.325l1.163-0.871l2.035-0.871v1.453l-0.872,0.87l0.291,0.871L503.708,75.609z",DO:"M276.396,176.664l0.290,-0.291l2.034,0.000l1.744,0.580l0.872,0.000l0.291,0.872l1.454,0.000l0.000,0.871l1.162,0.000l1.454,1.162l-0.872,1.161l-1.453,-0.871l-1.164,0.290l-0.872,-0.290l-0.581,0.581l-1.163,0.290l-0.290,-0.871l-0.873,0.581l-1.161,1.743l-0.872,-0.291l0.000,-0.871l0.000,-0.872l-0.582,-0.580l0.582,-0.582l0.290,-1.161l0.290,1.451z",DZ:"M506.906,166.5l-9.592,5.226l-7.849,5.227l-4.070,1.453l-2.906,0.000l0.000,-1.742l-1.452,-0.291l-1.454,-0.872l-0.873,-1.161l-9.301,-6.098l-9.301,-6.098l-10.176,-6.679l0.000,-0.291l0.000,-0.290l0.000,-3.194l4.361,-2.032l2.906,-0.581l2.036,-0.581l1.162,-1.452l3.197,-1.162l0.000,-2.032l1.744,-0.291l1.162,-0.870l3.782,-0.582l0.289,-0.871l-0.582,-0.580l-0.871,-2.905l-0.291,-1.742l-1.163,-1.742l2.907,-1.452l2.907,-0.581l1.744,-1.161l2.617,-0.872l4.650,-0.289l4.651,-0.291l1.162,0.291l2.615,-1.162l2.911,0.000l1.160,0.871l2.035,-0.290l-0.581,1.451l0.290,2.614l-0.579,2.323l-1.745,1.451l0.290,2.034l2.325,1.742l0.000,0.581l1.745,1.162l1.163,4.936l0.871,2.322l0.000,1.453l-0.291,2.033l0.000,1.451l-0.291,1.452l0.291,1.743l-1.162,1.161l1.744,2.033l0.000,1.162l1.163,1.451l1.163,-0.580l2.035,1.451l-1.452,-1.743z",EC:"M252.85,240.258l1.453,-2.033l-0.581,-1.162l-1.163,1.162l-1.744,-1.162l0.581,-0.581l-0.291,-2.613l0.873,-0.580l0.581,-1.454l0.872,-2.031l0.000,-0.872l1.454,-0.581l1.744,-1.160l2.907,1.452l0.580,0.000l0.582,1.161l2.326,0.290l0.871,-0.290l1.163,0.870l1.163,0.582l0.581,2.324l-0.872,1.741l-3.198,2.904l-3.196,0.871l-1.744,2.613l-0.582,1.742l-1.454,1.162l-1.162,-1.451l-1.163,-0.290l-1.163,0.290l0.000,-1.162l0.873,-0.582l0.291,1.160z",EE:"M540.626,72.125l0.291,-1.743l-0.872,0.290l-1.744,-0.870l-0.291,-1.743l3.489,-0.581l3.488,-0.582l2.906,0.582l2.906,0.000l0.291,0.291l-1.745,1.742l0.582,2.614l-1.163,0.871l-2.034,0.000l-2.614,-1.162l-1.165,-0.290l2.325,-0.581z",EG:"M569.987,149.947l-0.874,0.872l-0.581,2.323l-0.873,1.162l-0.582,0.580l-0.870,-0.871l-1.164,-1.161l-2.034,-4.066l-0.291,0.291l1.163,2.903l1.744,2.904l2.034,4.065l0.873,1.743l0.871,1.452l2.618,2.904l-0.584,0.580l0.000,1.743l3.198,2.613l0.581,0.580l-10.755,0.000l-10.755,0.000l-11.045,0.000l0.000,-10.162l0.000,-9.873l-0.871,-2.324l0.579,-1.451l-0.289,-1.162l0.871,-1.452l3.779,0.000l2.615,0.581l2.615,0.871l1.456,0.580l2.033,-0.870l1.165,-0.872l2.323,-0.290l2.036,0.290l0.872,1.452l0.580,-0.870l2.036,0.580l2.327,0.290l1.161,-0.870l-2.038,-4.935z",ER:"M590.332,196.409l-0.872,-0.871l-1.162,-1.452l-1.163,-1.162l-0.871,-0.870l-2.326,-1.162l-1.744,0.000l-0.873,-0.580l-1.453,0.870l-1.743,-1.452l-0.873,2.033l-3.198,-0.581l-0.290,-0.870l1.161,-4.065l0.291,-2.033l0.874,-0.873l2.035,-0.289l1.454,-1.742l1.452,3.193l0.871,2.614l1.454,1.452l3.779,2.613l1.454,1.453l1.453,1.742l0.871,0.871l1.455,0.871l-0.872,0.581l1.164,0.291z",ES:"M448.769,115.683l0.292,-1.743l-1.163,-1.452l3.778,-1.742l3.489,0.290l3.778,0.000l2.908,0.581l2.324,-0.290l4.362,0.290l1.163,0.871l4.940,1.452l1.163,-0.580l2.907,1.161l3.197,-0.292l0.292,1.454l-2.616,2.032l-3.489,0.580l-0.291,0.872l-1.744,1.451l-1.162,2.324l1.162,1.451l-1.453,1.162l-0.581,1.742l-2.325,0.581l-1.744,2.323l-3.489,0.000l-2.616,0.000l-1.743,0.872l-1.165,1.161l-1.452,-0.291l-0.871,-0.870l-0.874,-1.742l-2.615,-0.291l0.000,-1.162l0.871,-0.871l0.291,-0.871l-0.873,-0.581l0.873,-2.032l-1.162,-1.452l1.162,-0.291l0.000,-1.451l0.582,-0.291l0.000,-2.033l1.163,-0.870l-0.581,-1.452l-1.746,0.000l-0.291,0.290l-1.744,0.000l-0.581,-1.162l-1.163,0.291l1.163,-0.581z",ET:"M578.125,189.73l1.743,1.452l1.453,-0.870l0.873,0.580l1.744,0.000l2.326,1.162l0.871,0.870l1.163,1.162l1.162,1.452l0.872,0.871l-0.872,1.162l-0.871,1.452l0.000,0.581l0.000,0.871l1.743,0.000l0.581,0.000l0.583,0.290l-0.583,1.161l1.163,1.453l0.873,1.452l1.163,0.871l9.010,3.194l2.328,0.000l-7.850,8.421l-3.780,0.000l-2.324,2.033l-1.744,0.000l-0.874,0.870l-1.743,0.000l-1.161,-0.870l-2.618,1.162l-0.581,1.160l-2.036,-0.290l-0.580,-0.290l-0.580,0.000l-0.874,0.000l-3.489,-2.323l-2.033,0.000l-0.873,-0.871l0.000,-1.742l-1.452,-0.290l-1.455,-3.196l-1.454,-0.580l-0.290,-1.161l-1.452,-1.161l-1.746,-0.291l0.872,-1.452l1.455,0.000l0.582,-0.872l0.000,-2.613l0.579,-2.903l1.454,-0.582l0.292,-1.162l1.163,-2.322l1.743,-1.162l0.872,-2.904l0.581,-2.323l3.198,0.581l-0.873,2.033z",FI:"M552.544,41.053l-0.584,2.033l4.363,1.743l-2.617,2.032l3.198,3.194l-1.744,2.324l2.325,2.033l-1.162,1.742l4.069,2.032l-0.871,1.161l-2.617,1.742l-5.814,3.485l-4.941,0.291l-4.941,0.871l-4.362,0.580l-1.744,-1.451l-2.615,-0.871l0.581,-2.614l-1.452,-2.613l1.452,-1.453l2.616,-1.742l6.106,-3.193l2.033,-0.582l-0.289,-1.160l-4.072,-1.162l-0.872,-1.162l0.000,-4.065l-4.361,-2.033l-3.486,-1.452l1.453,-0.581l3.198,1.452l3.488,0.000l2.908,0.581l2.615,-1.162l1.452,-2.032l4.362,-1.162l3.487,1.162l1.162,-2.032z",FJ:"M964.732,278.588l0.873,0.871l-0.292,1.452l-1.744,0.291l-1.452-0.291l-0.292-1.162l0.873-0.87l1.455,0.291L964.732,278.588zM969.382,276.557l-1.741,0.579l-2.036,0.582l-0.292-1.161l1.455-0.291l0.873-0.291l1.741-0.871h-0.01h0.58l-0.29,1.162l-0.29,0.291H969.382z",FK:"M305.173,373.544l3.488,-1.741l2.326,0.870l1.744,-1.161l2.034,1.161l-0.872,0.871l-3.778,0.872l-1.164,-0.872l-2.325,1.162l1.453,1.162z",FR:"M329.008,223.997l-0.873,1.162h-1.453l-0.29-0.581l-0.582-0.292l-0.872,0.873l-1.162-0.581l0.581-1.162l0.291-1.162l0.582-1.161l-1.164-1.742l-0.289-1.743l1.453-2.612l0.872,0.289l2.034,0.872l2.907,2.323l0.582,1.161l-1.744,2.323L329.008,223.997zM500.22,115.102l-1.161,2.033l-1.164-0.582l-0.581-1.742l0.581-1.162l1.744-0.871L500.22,115.102zM483.652,92.451l2.036,1.162h1.162l2.615,1.162l0.581,0.291h0.871l1.165,0.581l4.07,0.58l-1.455,1.744l-0.29,2.032l-0.873,0.581l-1.163-0.291v0.581l-2.033,1.453v1.452l1.453-0.581l0.871,1.162l-0.291,0.871l0.872,1.162l-0.872,0.871l0.582,2.033l1.454,0.291l-0.291,1.162l-2.325,1.452l-5.523-0.581l-4.069,0.872l-0.292,1.741l-3.196,0.292l-2.907-1.162l-1.163,0.58l-4.94-1.452l-1.163-0.872l1.452-1.742l0.582-5.517l-2.907-2.905l-2.034-1.451l-4.36-0.872v-2.033l3.488-0.581l4.651,0.581l-0.872-2.903l2.615,1.162l6.396-2.324l0.87-2.324l2.325-0.29l0.293,0.872h1.452L483.652,92.451z",GA:"M504.291,242l-2.908,-2.904l-1.744,-2.322l-1.744,-2.905l0.291,-0.871l0.582,-0.871l0.581,-2.033l0.582,-2.033l0.871,0.000l4.070,0.000l0.000,-3.483l1.163,0.000l1.744,0.289l1.744,-0.289l0.291,0.000l-0.291,1.451l0.871,1.162l2.036,0.000l0.581,0.580l-1.163,3.194l1.454,1.452l0.291,2.324l-0.582,1.741l-0.581,1.162l-2.616,0.000l-1.454,-1.451l-0.289,1.451l-1.745,0.291l-0.872,0.580l0.872,1.743l2.035,-1.742z",GB:"M458.072,80.835l-1.452,2.033l-2.036-0.58h-1.745l0.582-1.453l-0.582-1.451l2.326-0.291L458.072,80.835zM465.629,69.802l-3.198,2.903l2.907-0.289h2.907l-0.582,2.032l-2.615,2.613h2.907l0.29,0.291l2.325,3.484l2.035,0.291l1.745,3.195l0.581,1.161l3.486,0.291l-0.29,2.033l-1.452,0.58l1.163,1.452l-2.617,1.453h-3.488l-4.94,0.871l-1.164-0.581l-1.744,1.161l-2.616-0.291l-2.034,1.162l-1.453-0.581l4.069-2.904l2.616-0.581l-4.359-0.581l-0.873-0.872l2.906-0.871l-1.454-1.451l0.582-2.033l4.069,0.291l0.291-1.452l-1.744-1.743l-3.488-0.58l-0.582-0.871l0.872-1.162l-0.872-0.581l-1.452,1.162V76.19l-1.454-1.453l0.873-2.904l2.326-2.032h2.033H465.629z",GE:"M588.298,116.844l0.291,-1.161l-0.582,-2.034l-1.743,-0.871l-1.455,-0.580l-1.162,-0.581l0.581,-0.581l2.325,0.581l3.779,0.581l3.780,1.162l0.581,0.580l1.745,-0.580l2.614,0.580l0.581,1.162l1.745,0.871l-0.582,0.290l1.455,1.452l-0.582,0.290l-1.454,-0.290l-2.034,-0.580l-0.581,0.290l-3.780,0.580l-2.615,-1.452l2.907,-0.291z",GH:"M476.676,214.704l-4.361,1.452l-1.452,1.161l-2.617,0.581l-2.327,-0.581l0.000,-1.161l-1.162,-2.323l0.872,-3.195l1.164,-2.323l-0.874,-3.775l-0.290,-2.323l0.000,-1.452l4.942,0.000l1.163,0.000l0.872,-0.290l1.163,0.290l0.000,0.872l0.871,1.161l0.000,2.033l0.292,2.322l0.871,0.872l-0.581,2.613l0.000,1.162l0.872,1.742l-0.582,-1.162z",GL:"M344.996,3.593l9.302,-1.451l9.593,0.000l3.488,-0.871l9.883,-0.291l21.800,0.291l17.442,2.322l-5.232,0.872l-10.465,0.290l-14.824,0.291l1.453,0.289l9.593,-0.289l8.429,0.871l5.232,-0.582l2.326,0.872l-2.907,1.452l6.977,-0.871l13.370,-1.162l8.139,0.581l1.455,1.162l-11.047,2.032l-1.743,0.580l-8.721,0.581l6.395,0.000l-3.196,2.033l-2.326,1.742l0.290,3.195l3.198,1.742l-4.361,0.000l-4.361,0.872l4.943,1.451l0.581,2.323l-2.908,0.291l3.781,2.323l-6.106,0.291l2.906,1.160l-0.871,0.872l-3.780,0.581l-3.777,0.000l3.488,1.742l0.000,1.161l-5.522,-1.161l-1.455,0.871l3.778,0.582l3.488,1.741l1.163,2.324l-4.940,0.580l-2.034,-1.162l-3.489,-1.742l0.871,2.033l-3.197,1.452l7.267,0.000l3.780,0.290l-7.269,2.324l-7.557,2.322l-7.848,0.872l-3.198,0.000l-2.907,0.871l-3.779,2.903l-5.814,2.034l-2.034,0.290l-3.489,0.581l-4.069,0.580l-2.326,1.742l0.000,2.034l-1.453,1.742l-4.360,2.033l0.872,2.323l-1.162,2.323l-1.454,2.613l-3.779,0.000l-4.069,-2.033l-5.524,0.000l-2.615,-1.742l-2.036,-2.614l-4.650,-3.484l-1.454,-1.742l-0.291,-2.324l-3.778,-2.613l0.872,-2.033l-1.744,-0.871l2.617,-3.194l4.359,-1.162l0.872,-1.161l0.582,-2.034l-3.198,0.873l-1.454,0.289l-2.325,0.582l-3.488,-0.871l0.000,-2.034l0.871,-1.452l2.617,0.000l5.523,0.872l-4.651,-1.742l-2.325,-1.162l-2.907,0.581l-2.326,-0.872l3.198,-2.322l-1.744,-1.162l-2.035,-2.033l-3.489,-2.904l-3.488,-0.871l0.000,-1.162l-7.266,-1.742l-5.814,0.000l-7.558,0.000l-6.685,0.290l-3.199,-0.870l-4.649,-1.743l7.266,-0.871l5.523,-0.291l-11.917,-0.580l-6.105,-1.162l0.291,-1.161l10.464,-1.162l10.173,-1.452l0.872,-0.871l-7.266,-1.162l2.326,-1.161l9.592,-1.742l4.070,-0.290l-1.163,-1.162l6.395,-0.872l8.429,-0.289l8.430,0.000l3.199,0.580l7.266,-1.453l6.395,1.162l4.070,0.291l5.523,0.871l-6.395,-1.451l-0.290,1.453z",GM:"M427.549,194.667l0.291,-1.162l2.909,0.000l0.581,-0.581l0.871,0.000l1.163,0.581l0.873,0.000l0.870,-0.581l0.582,0.872l-1.163,0.581l-1.162,0.000l-1.163,-0.581l-1.163,0.581l-0.582,0.000l-0.580,0.581l2.327,0.291z",GN:"M450.514,209.768l-0.871,0.000l-0.582,1.161l-0.581,0.000l-0.582,-0.581l0.290,-1.162l-1.162,-1.741l-0.872,0.290l-0.581,0.000l-0.581,0.290l0.000,-1.161l-0.582,-0.581l0.000,-0.870l-0.581,-1.163l-0.582,-0.871l-2.326,0.000l-0.581,0.580l-0.871,0.000l-0.292,0.581l-0.289,0.582l-1.455,1.451l-1.453,-1.742l-0.873,-1.163l-0.870,-0.289l-0.582,-0.581l-0.291,-1.161l-0.582,-0.582l-0.581,-0.580l1.163,-1.162l0.873,0.000l0.581,-0.580l0.582,0.000l0.580,-0.291l-0.291,-0.871l0.291,-0.291l0.000,-0.871l1.453,0.000l2.036,0.581l0.581,0.000l0.000,-0.290l1.744,0.290l0.289,-0.290l0.293,1.162l0.290,0.000l0.581,-0.582l0.582,0.291l0.871,0.580l1.165,0.291l0.579,-0.580l0.873,-0.582l0.871,-0.290l0.581,0.000l0.582,0.581l0.292,0.871l1.162,1.162l-0.582,0.580l-0.291,1.162l0.582,-0.291l0.581,0.291l-0.290,0.871l0.871,0.581l-0.581,0.290l-0.290,0.871l0.581,1.163l0.871,2.323l-1.162,0.290l-0.290,0.290l0.290,0.581l0.000,1.162l0.581,0.000z",GQ:"M499.931,228.061l-0.582,-0.290l0.871,-3.193l4.652,0.000l0.000,3.483l-4.070,0.000l0.871,0.000z",GR:"M538.882,132.815l1.744,0.871l2.034-0.29l2.033,0.29v0.582l1.455-0.291l-0.292,0.581l-4.067,0.291v-0.291l-3.199-0.581L538.882,132.815zM547.02,116.553l-0.871,1.742l-0.581,0.291h-1.745l-1.454-0.291l-3.196,0.872l1.744,1.451l-1.454,0.291h-1.452l-1.454-1.16l-0.582,0.58l0.582,1.452l1.454,1.453l-0.872,0.58l1.452,1.162l1.455,0.871v1.452l-2.617-0.581l0.873,1.452l-1.745,0.291l0.872,2.323h-1.744l-2.326-1.161l-0.871-2.324l-0.581-1.742l-1.163-1.162l-1.452-1.742v-0.58l1.16-1.453l0.292-0.87l0.873-0.291v-0.871l1.742-0.291l1.164-0.58h1.452l0.582-0.291l0.29-0.29l2.036,0.29l2.325-0.872l2.034,0.872h2.326v-1.452L547.02,116.553z",GT:"M225.816,193.215l-1.453,-0.580l-1.744,0.000l-1.163,-0.581l-1.454,-1.162l0.000,-0.871l0.291,-0.581l-0.291,-0.580l1.164,-2.033l3.487,0.000l0.292,-0.871l-0.582,-0.291l-0.291,-0.581l-1.162,-0.581l-0.872,-0.870l1.163,0.000l0.000,-1.743l2.615,0.000l2.617,0.000l0.000,2.324l-0.292,2.903l0.872,0.000l0.872,0.581l0.292,-0.291l0.872,0.291l-1.455,1.162l-1.161,0.580l-0.292,0.581l0.292,0.581l-0.583,0.580l-0.581,0.291l0.000,0.290l-0.580,0.291l-0.873,0.581l0.000,-0.580z",GW:"M432.201,200.475l-1.452,-1.162l-1.164,0.000l-0.582,-0.871l0.000,-0.291l-0.871,-0.580l-0.292,-0.581l1.453,-0.581l0.874,0.000l0.871,-0.290l4.942,0.290l0.000,0.871l-0.291,0.291l0.291,0.871l-0.580,0.291l-0.582,0.000l-0.581,0.580l-0.873,0.000l1.163,-1.162z",GY:"M309.243,208.025l1.744,0.871l1.744,1.742l0.000,1.452l1.162,0.000l1.453,1.452l1.163,0.873l-0.582,2.613l-1.453,0.579l0.000,0.872l-0.581,1.161l1.453,2.032l0.872,0.000l0.291,1.744l1.744,2.322l-0.872,0.000l-1.454,-0.290l-0.871,0.871l-1.163,0.581l-0.872,0.000l-0.290,0.581l-1.454,-0.290l-1.743,-1.162l-0.291,-1.162l-0.582,-1.451l0.582,-2.324l0.580,-1.162l-0.580,-1.161l-0.872,-0.290l0.290,-1.451l-0.582,-0.582l-1.453,0.291l-2.035,-2.322l0.873,-0.582l0.000,-1.163l1.743,-0.580l0.582,-0.581l-0.872,-0.871l0.290,-1.161l-2.036,1.452z",HN:"M233.374,195.248l-0.291,-0.871l-0.872,-0.291l0.000,-1.162l-0.291,-0.289l-0.582,0.000l-1.161,0.289l0.000,-0.289l-0.872,-0.581l-0.582,-0.581l-0.873,-0.291l0.583,-0.580l-0.292,-0.581l0.292,-0.581l1.161,-0.580l1.455,-1.162l0.289,0.000l0.582,-0.291l0.581,0.000l0.291,0.000l0.582,0.000l1.163,0.291l1.162,-0.291l0.873,-0.290l0.581,-0.290l0.872,0.290l0.581,0.000l0.582,0.000l0.581,-0.290l1.454,0.580l0.289,0.000l0.872,0.582l0.873,0.580l0.871,0.291l0.873,0.870l-1.162,0.000l-0.291,0.291l-0.872,0.291l-0.872,0.000l-0.581,0.290l-0.582,0.000l-0.290,-0.290l-0.291,0.000l-0.291,0.580l-0.291,0.000l0.000,0.581l-1.163,0.871l-0.581,0.291l-0.291,0.289l-0.581,-0.580l-0.581,0.871l-0.582,-0.291l-0.871,0.291l0.290,1.162l-0.581,0.000l-0.291,0.871l0.872,0.000z",HR:"M525.51,104.647l0.871,1.163l0.873,0.870l-1.163,0.872l-1.163,-0.581l-2.033,0.000l-2.325,-0.291l-1.163,0.000l-0.582,0.581l-1.162,-0.581l-0.581,0.872l1.454,1.451l0.579,0.872l1.163,0.871l1.162,0.581l0.874,1.161l2.614,1.161l-0.289,0.580l-2.615,-1.160l-1.746,-0.871l-2.326,-0.871l-2.326,-2.033l0.582,-0.291l-1.453,-1.162l0.000,-0.870l-1.744,-0.291l-0.871,1.161l-0.873,-1.161l0.292,-0.870l1.743,0.000l0.580,-0.291l0.873,0.291l1.163,0.000l0.000,-0.582l0.871,-0.290l0.293,-1.162l2.325,-0.580l0.871,0.290l2.036,1.161l2.325,0.581l-0.871,0.581z",HT:"M272.326,176.083l1.744,0.290l2.326,0.291l0.290,1.451l-0.290,1.161l-0.582,0.582l0.582,0.580l0.000,0.872l-1.745,-0.581l-1.453,0.290l-1.744,-0.290l-1.163,0.581l-1.454,-0.872l0.291,-0.871l2.326,0.291l2.325,0.290l0.872,-0.581l-1.163,-1.161l0.000,-1.161l-1.744,-0.292l-0.582,0.870z",HU:"M518.243,102.034l1.164,-1.742l-0.582,-0.581l1.453,0.000l0.292,-1.162l1.454,0.872l0.871,0.290l2.324,-0.581l0.291,-0.291l1.163,-0.290l1.163,-0.290l0.289,0.000l1.455,-0.290l0.582,-0.581l0.870,-0.291l2.908,0.872l0.582,-0.290l1.452,0.870l0.291,0.581l-1.743,0.581l-1.164,2.034l-1.742,1.741l-2.325,0.581l-1.455,0.000l-2.326,0.580l-0.871,0.581l-2.325,-0.581l-2.036,-1.161l-0.871,-0.290l-0.582,-1.162l0.582,0.000z",ID:"M806.019,259.132h-1.163l-3.488-2.033l2.326-0.289l1.454,0.58l1.162,0.871L806.019,259.132zM816.193,258.842l-2.323,0.581l-0.292-0.291l0.292-0.871l1.16-1.742l2.617-1.16l0.29,0.58l0.29,0.871L816.193,258.842zM798.17,253.326l1.163,0.58l1.745-0.29l0.581,1.161l-3.198,0.582l-1.745,0.58l-1.743-0.291l1.162-1.451h1.455L798.17,253.326zM812.123,253.326l-0.579,1.451l-4.072,0.871l-3.486-0.58v-0.871l2.034-0.581l1.745,0.871l1.743-0.29L812.123,253.326zM772.881,249.55l5.232,0.29l0.582-1.161l4.94,1.452l1.163,1.742l4.07,0.58l3.487,1.452l-3.196,1.162l-3.199-1.162h-2.325h-2.907l-2.615-0.58l-3.199-1.162l-2.033-0.29l-1.163,0.29l-4.942-0.871l-0.58-1.452h-2.325l1.745-2.613h3.488l2.033,1.163l1.162,0.289L772.881,249.55zM844.679,248.098l-1.452,1.742l-0.292-2.032l0.583-0.871l0.58-1.162l0.581,0.871V248.098zM824.043,240.548l-1.163,0.87l-1.745-0.58l-0.581-1.162h2.907L824.043,240.548zM833.053,239.386l0.871,2.032l-2.325-0.87l-2.324-0.29h-1.454h-2.034l0.582-1.452l3.486-0.291L833.053,239.386zM842.935,234.16l0.874,4.355l2.906,1.743l2.325-2.905l3.199-1.741h2.323l2.326,0.87l2.033,1.162l2.909,0.581v8.712l0.29,9.002l-2.615-2.323l-2.91-0.29l-0.578,0.58l-3.489,0.291l1.161-2.323l1.744-0.871l-0.579-2.904l-1.454-2.323l-5.233-2.324l-2.323-0.289l-4.069-2.613L840.901,242l-1.162,0.292l-0.581-1.163v-1.161l-2.034-1.161l2.906-1.162h2.034l-0.289-0.581h-4.072l-1.161-1.742l-2.327-0.58l-1.161-1.161l3.778-0.872l1.455-0.872l4.359,1.162L842.935,234.16zM818.518,226.9l-2.325,2.904l-2.034,0.58l-2.615-0.58h-4.651l-2.325,0.58l-0.292,2.033l2.326,2.323l1.454-1.161l5.23-0.872l-0.29,1.161l-1.162-0.289l-1.163,1.451l-2.326,1.162l2.615,3.483l-0.581,0.872l2.326,3.194v1.742l-1.452,0.872l-0.874-0.872l1.165-2.323l-2.617,1.162l-0.871-0.873l0.579-0.869l-2.033-1.743l0.291-2.613l-2.036,0.871l0.292,3.195v3.773l-1.744,0.581l-1.165-0.871l0.874-2.613l-0.291-2.613h-1.162l-0.871-2.033l1.161-1.741l0.289-2.033l1.455-4.356l0.581-0.871l2.326-2.032l2.033,0.58l3.488,0.582l3.199-0.292l2.615-2.032L818.518,226.9zM828.111,227.771l-0.29,2.323h-1.452l-0.292,1.452l1.162,1.451l-0.87,0.291l-1.165-1.742l-0.871-3.485l0.581-2.032l0.873-1.162l0.29,1.452l1.744,0.291L828.111,227.771zM798.17,226.029l3.197,2.322l-3.197,0.292l-1.162,2.031l0.292,2.614l-2.618,1.742v2.613L793.52,242l-0.581-0.871l-2.908,1.163l-1.161-1.743l-2.034-0.29l-1.163-0.872l-3.488,1.162l-0.871-1.452l-1.744,0.29l-2.328-0.29l-0.581-3.775l-1.163-0.871l-1.452-2.322l-0.292-2.323l0.292-2.613l1.452-1.743l0.584,1.743l2.033,1.741l1.744-0.581h1.744l1.453-1.16l1.454-0.291l2.615,0.581l2.036-0.581l1.452-3.774l1.163-0.872l0.871-3.193h3.198l2.325,0.58l-1.454,2.323l2.036,2.614L798.17,226.029zM765.034,246.937l-2.907,0.29l-2.325-2.321l-3.779-2.324l-1.162-1.743l-2.033-2.323l-1.165-2.033l-2.325-3.774l-2.326-2.323l-0.871-2.323l-0.873-2.032l-2.615-1.743l-1.454-2.322l-2.034-1.743l-2.908-2.903l-0.289-1.451h1.745l4.358,0.58l2.618,2.614l2.033,2.032l1.453,1.161l2.615,2.905h2.908l2.325,2.032l1.454,2.322l2.033,1.161l-0.871,2.323l1.454,0.871h0.872l0.581,2.033l0.873,1.451l2.034,0.291l1.452,1.742l-0.871,3.485V246.937z",IE:"M456.62,82.869l0.579,2.032l-2.034,2.323l-4.942,1.743l-3.779,-0.581l2.036,-2.904l-1.454,-2.613l3.779,-2.323l2.033,-1.162l0.582,1.451l-0.582,1.454l1.745,0.000l-2.037,-0.580z",IL:"M572.021,140.946l-0.293,0.870l-1.163,-0.289l-0.578,1.743l0.871,0.289l-0.871,0.581l0.000,0.581l1.160,-0.291l0.000,0.872l-1.160,4.645l-2.038,-4.935l0.873,-0.872l0.581,-1.451l0.584,-2.033l0.289,-0.582l0.289,0.000l0.872,0.000l0.291,-0.580l0.582,0.000l0.000,1.162l-0.289,0.290l0.000,0.000z",IN:"M688.002,133.396l2.909,3.194l-0.293,2.324l1.163,1.160l0.000,1.453l-2.036,-0.291l0.873,2.904l2.615,1.742l3.781,2.034l-1.745,1.161l-1.163,2.613l2.908,1.162l2.614,1.161l3.490,1.742l3.779,0.291l1.453,1.452l2.325,0.290l3.197,0.581l2.326,0.000l0.291,-1.162l-0.291,-1.742l0.000,-1.161l1.744,-0.582l0.292,2.033l0.000,0.581l2.615,1.162l1.744,-0.581l2.326,0.290l2.326,0.000l0.000,-1.742l-1.163,-0.871l2.326,-0.290l2.615,-2.033l3.198,-1.742l2.033,0.580l2.035,-1.162l1.455,1.743l-1.161,1.162l3.194,0.290l0.000,1.162l-0.871,0.580l0.291,1.452l-2.034,-0.290l-3.489,1.742l0.000,1.742l-1.453,2.323l-0.292,1.162l-1.163,2.322l-2.033,-0.580l-0.290,2.904l-0.583,0.872l0.291,1.161l-1.162,0.581l-1.454,-4.356l-0.872,0.000l-0.581,1.742l-1.454,-1.452l0.872,-1.452l1.163,-0.289l1.454,-2.324l-1.743,-0.291l-2.327,0.000l-2.616,-0.291l-0.291,-2.032l-1.454,0.000l-2.034,-1.451l-1.163,2.032l2.034,1.451l-1.743,0.873l-0.582,1.160l1.744,0.582l-0.579,1.742l1.160,2.032l0.290,2.324l-0.290,1.162l-2.034,-0.291l-3.197,0.580l0.000,2.033l-1.455,1.742l-4.069,1.744l-2.904,3.484l-2.038,1.743l-2.906,1.742l0.000,1.161l-1.163,0.581l-2.615,1.161l-1.162,0.000l-0.874,2.323l0.582,3.484l0.000,2.324l-1.163,2.614l0.000,4.644l-1.454,0.000l-1.160,2.325l0.870,0.871l-2.615,0.581l-0.874,2.032l-1.163,0.581l-2.615,-2.323l-1.163,-4.067l-1.162,-2.613l-0.874,-1.451l-1.452,-2.613l-0.581,-3.485l-0.581,-1.742l-2.618,-3.775l-1.161,-5.227l-0.584,-3.485l0.000,-3.194l-0.581,-2.613l-4.068,1.451l-2.035,-0.290l-3.488,-3.194l1.454,-1.162l-0.873,-0.871l-3.198,-2.323l1.745,-2.033l6.106,0.000l-0.583,-2.324l-1.455,-1.451l-0.579,-2.032l-1.745,-1.162l3.197,-2.904l3.199,0.291l2.904,-2.904l1.745,-2.904l2.618,-2.614l0.000,-2.032l2.325,-1.743l-2.325,-1.161l-0.874,-2.032l-1.160,-2.324l1.453,-1.162l4.069,0.581l3.196,-0.290l-2.617,2.323z",IQ:"M598.763,131.943l1.744,0.872l0.289,1.742l-1.452,0.871l-0.581,2.033l2.033,2.613l3.200,1.453l1.454,2.323l-0.292,1.742l0.872,0.000l0.000,1.742l1.454,1.452l-1.744,-0.290l-1.744,-0.291l-2.037,2.614l-5.230,0.000l-7.561,-5.517l-4.067,-2.032l-3.488,-0.873l-1.163,-3.193l6.103,-2.904l1.163,-3.195l-0.292,-2.032l1.454,-0.872l1.454,-1.742l1.164,-0.291l3.197,0.291l0.873,0.872l1.452,-0.581l-1.745,-3.193z",IR:"M622.309,128.75l2.323,-0.582l2.036,-1.742l1.745,0.291l1.162,-0.581l2.034,0.290l2.907,1.452l2.325,0.290l3.200,2.324l2.034,0.000l0.289,2.323l-1.161,3.485l-0.873,2.032l1.163,0.291l-1.163,1.742l0.873,2.032l0.290,1.743l2.036,0.581l0.289,1.742l-2.615,2.323l1.453,1.452l1.162,1.742l2.617,1.162l0.000,2.613l1.453,0.291l0.290,1.452l-4.070,1.162l-1.161,3.193l-4.943,-0.580l-3.197,-0.871l-2.906,-0.291l-1.454,-3.194l-1.163,-0.581l-2.034,0.581l-2.908,1.162l-3.196,-0.872l-2.907,-2.033l-2.617,-0.870l-1.745,-2.614l-2.034,-3.774l-1.744,0.580l-1.744,-0.871l-0.871,1.161l-1.454,-1.452l0.000,-1.742l-0.872,0.000l0.292,-1.742l-1.454,-2.323l-3.200,-1.453l-2.033,-2.613l0.581,-2.033l1.452,-0.871l-0.289,-1.742l-1.744,-0.872l-1.745,-3.193l-1.452,-2.324l0.579,-0.871l-0.870,-2.904l1.743,-0.871l0.582,0.871l1.163,1.453l2.033,0.289l0.873,0.000l3.489,-2.032l0.872,-0.290l0.871,0.871l-0.871,1.451l1.743,1.453l0.582,-0.291l0.873,2.033l2.615,0.580l1.744,1.453l4.069,0.291l4.360,-0.581l-0.293,0.581z",IS:"M433.944,48.313l-0.870,1.742l3.196,1.742l-3.488,2.033l-8.138,2.033l-2.326,0.581l-3.488,-0.581l-7.849,-0.871l2.906,-1.162l-6.103,-1.451l4.940,-0.291l0.000,-0.871l-5.811,-0.580l1.744,-2.033l4.067,-0.291l4.362,1.742l4.360,-1.451l3.198,0.871l4.649,-1.452l-4.651,-0.290z",IT:"M516.5,125.846l-0.873,2.033l0.292,0.872l-0.582,1.451l-2.034-0.871l-1.454-0.291l-3.777-1.451l0.289-1.452l3.199,0.29l2.904-0.29L516.5,125.846zM499.059,117.715l1.743,1.742l-0.291,3.775l-1.452-0.291l-1.164,0.871l-0.872-0.58l-0.291-3.195l-0.579-1.742l1.452,0.291L499.059,117.715zM507.779,102.325l4.069,0.581l-0.289,1.452l0.581,1.161l-2.326-0.291l-2.035,0.872v1.452l-0.292,0.871l0.873,1.162l2.615,1.452l1.455,2.324l2.906,2.323h2.326l0.58,0.58l-0.872,0.582l2.617,0.871l2.036,0.871l2.324,1.451l0.291,0.581l-0.581,0.873l-1.455-1.453l-2.325-0.289l-1.163,1.742l2.036,1.16l-0.581,1.453h-0.873l-1.745,2.323l-0.87,0.291v-0.871l0.289-1.453l0.872-0.58l-1.161-1.742l-0.873-1.162l-1.161-0.58l-0.873-1.162l-1.744-0.29l-1.163-1.162l-2.034-0.291l-2.036-1.162l-2.615-1.741l-1.744-1.743l-0.872-2.614l-1.454-0.29l-2.325-0.872l-1.163,0.291l-1.743,1.162l-1.163,0.291l0.291-1.162l-1.454-0.291l-0.582-2.033l0.872-0.871l-0.872-1.162l0.291-0.871l1.165,0.581h1.16l1.744-0.871l0.291,0.29h1.453l0.583-1.162l2.034,0.29l1.163-0.29l0.289-1.162l1.745,0.291l0.291-0.58l2.615-0.292L507.779,102.325z",JM:"M260.116,180.148l2.036,0.290l1.452,0.581l0.291,0.871l-1.743,0.000l-0.872,0.291l-1.454,-0.291l-1.744,-1.161l0.290,-0.581l1.164,-0.290l-0.580,-0.290z",JO:"M571.728,141.816l0.293,-0.870l3.195,1.161l5.234,-2.903l1.163,3.193l-0.582,0.582l-5.522,1.451l2.905,2.614l-0.872,0.581l-0.581,0.871l-2.036,0.290l-0.581,1.161l-1.161,0.582l-3.196,-0.291l0.000,-0.291l1.160,-4.645l0.000,-0.872l0.581,-0.871l0.000,1.743z",JP:"M844.39,137.17l0.289,0.871l-1.452,1.742l-1.163-1.161l-1.454,0.871l-0.58,1.452l-2.035-0.581l0.292-1.452l1.452-1.743l1.452,0.291l1.165-1.161L844.39,137.17zM861.832,128.75l-1.165,2.323l0.584,1.162l-1.455,2.033l-3.488,1.452h-4.94l-3.78,3.195l-1.742-1.162l-0.292-2.033l-4.651,0.582l-3.488,1.451h-3.198l2.909,2.032l-1.745,4.646l-1.743,1.162l-1.454-1.162l0.582-2.323l-1.745-0.871l-1.163-1.742l2.617-0.871l1.452-1.742l2.907-1.453l2.035-2.033l5.523-0.581l2.907,0.291l2.904-4.646l1.746,1.162l4.07-2.614l1.452-1.161l1.744-3.484l-0.292-2.904l1.164-1.742l2.906-0.581l1.454,3.774v2.324l-2.615,2.613V128.75zM869.969,109.584l1.744,0.58l2.036-1.162l0.58,2.904l-4.068,0.871l-2.326,2.613l-4.36-1.742l-1.453,2.904h-3.199l-0.29-2.613l1.454-2.033l2.906-0.291l0.873-3.775l0.581-2.032l3.488,2.613L869.969,109.584z",KE:"M586.553,233.289l1.745,2.323l-2.034,1.162l-0.582,1.161l-1.163,0.000l-0.291,2.032l-0.872,1.161l-0.581,1.744l-1.162,0.871l-3.780,-2.615l-0.291,-1.742l-9.883,-5.517l-0.582,-0.289l0.000,-2.906l0.872,-1.161l1.164,-1.742l1.163,-2.033l-1.163,-3.194l-0.291,-1.452l-1.452,-1.742l1.743,-1.743l1.745,-1.741l1.452,0.290l0.000,1.742l0.873,0.871l2.033,0.000l3.489,2.323l0.874,0.000l0.580,0.000l0.580,0.290l2.036,0.290l0.581,-1.160l2.618,-1.162l1.161,0.870l1.743,0.000l-2.325,3.196l0.000,-9.873z",KG:"M669.108,114.811l0.581,-1.162l1.745,-0.580l4.649,0.871l0.292,-1.452l1.745,-0.581l3.779,1.162l1.161,-0.291l4.361,0.000l4.068,0.291l1.455,0.871l1.744,0.581l-0.289,0.581l-4.362,1.451l-1.162,1.162l-3.490,0.290l-0.871,1.744l-2.906,-0.291l-2.036,0.580l-2.615,1.162l0.289,0.580l-0.579,0.871l-5.233,0.291l-3.488,-0.871l-2.908,0.290l0.291,-1.743l2.906,0.582l0.873,-0.871l2.326,0.289l3.488,-2.032l-3.199,-1.451l-2.034,0.580l-2.035,-0.871l2.326,-1.742l0.872,0.291z",KH:"M758.638,201.637l-1.162,-1.453l-1.454,-2.613l-0.580,-3.485l1.741,-2.323l3.781,-0.581l2.326,0.581l2.326,0.872l1.160,-1.743l2.617,0.871l0.581,2.033l-0.289,3.194l-4.651,2.033l1.162,1.742l-2.906,0.290l-2.326,1.162l2.326,0.580z",KO:"M531.032,115.392l-0.289,0.581l-0.292,0.000l-0.289,-1.162l-0.582,-0.290l-0.581,-0.581l0.581,-0.871l0.582,0.000l0.289,-0.871l0.581,-0.291l0.293,0.291l0.581,0.290l0.290,0.581l0.583,0.000l0.579,0.580l0.292,0.000l-0.292,0.580l-0.290,0.292l0.000,0.290l-0.581,0.000l1.455,-0.581z",KP:"M833.343,114.229l0.292,0.582l-0.872,0.000l-1.164,0.872l-0.872,0.870l0.000,2.033l-1.452,0.581l-0.291,0.582l-1.163,0.580l-1.744,0.580l-1.163,0.582l-0.292,1.451l-0.289,0.291l1.163,0.290l1.452,1.161l-0.290,0.871l-1.162,0.000l-2.035,0.291l-0.874,1.161l-1.452,0.000l-1.454,-0.290l-0.289,0.290l-0.874,0.290l0.000,-0.580l-0.581,0.000l-0.871,-0.581l0.871,-1.161l0.581,-0.291l-0.291,-0.580l0.583,-1.453l0.000,-0.580l-1.744,-0.291l-1.162,-0.580l2.033,-1.742l3.198,-1.453l1.745,-2.032l1.453,0.871l2.325,0.000l-0.289,-1.452l4.067,-1.163l1.163,-1.451l-1.744,-1.451z",KR:"M826.948,124.684l2.617,3.194l0.582,2.034l0.000,2.903l-1.163,1.742l-2.326,0.582l-2.325,0.870l-2.326,0.291l-0.292,-1.452l0.292,-2.033l-1.163,-2.903l2.036,-0.291l-1.745,-2.614l1.452,0.000l0.874,-1.161l2.035,-0.291l1.162,0.000l-0.290,0.871z",KW:"M605.74,148.496l0.581,1.162l-0.291,0.580l0.871,2.323l-1.743,0.000l-0.873,-1.452l-2.326,-0.290l2.037,-2.614l-1.744,-0.291z",KZ:"M669.108,114.811l-1.454,0.291l-3.779,2.033l-1.163,2.032l-1.163,0.000l-0.580,-1.452l-3.489,0.000l-0.581,-2.323l-1.453,0.000l0.290,-2.614l-3.196,-2.032l-4.944,0.290l-3.196,0.291l-2.618,-2.614l-2.324,-0.872l-4.071,-2.031l-0.580,-0.291l-6.976,1.742l0.000,10.164l-1.455,0.000l-1.744,-2.033l-2.034,-0.871l-3.199,0.581l-1.160,0.871l0.000,-0.581l0.582,-1.163l-0.582,-0.869l-3.197,-1.162l-1.165,-2.323l-1.453,-0.581l-0.291,-1.161l2.909,0.289l0.000,-2.032l2.324,-0.290l2.326,0.290l0.581,-2.614l-0.581,-1.742l-2.616,0.291l-2.326,-0.872l-3.196,1.452l-2.618,0.581l-1.452,-0.581l0.289,-1.452l-1.743,-1.742l-2.034,0.000l-2.327,-1.742l1.453,-2.323l-0.580,-0.290l2.036,-3.195l2.906,1.742l0.289,-2.032l5.814,-3.195l4.362,0.000l5.812,2.032l3.489,1.163l2.906,-1.163l4.360,-0.290l3.488,1.453l0.871,-0.872l3.781,0.291l0.581,-1.453l-4.362,-1.742l2.618,-1.451l-0.581,-0.582l2.617,-0.870l-2.036,-1.743l1.454,-1.160l10.172,-0.872l1.454,-0.582l6.976,-1.161l2.326,-1.161l4.942,0.580l0.872,2.905l2.906,-0.581l3.488,0.872l-0.290,1.451l2.618,0.000l6.974,-2.614l-0.871,0.872l3.488,2.033l6.104,6.968l1.453,-1.451l3.780,1.742l4.070,-0.872l1.455,0.581l1.160,1.452l2.034,0.581l1.163,1.162l3.488,-0.291l1.455,1.743l-2.034,1.742l-2.328,0.291l0.000,2.904l-1.744,1.162l-5.232,-0.873l-2.034,4.938l-1.453,0.580l-5.524,1.162l2.617,4.646l-2.033,0.580l0.289,1.743l-1.744,-0.581l-1.455,-0.871l-4.068,-0.291l-4.361,0.000l-1.161,0.291l-3.779,-1.162l-1.745,0.581l-0.292,1.452l-4.649,-0.871l-1.745,0.580l0.581,-1.162z",LA:"M763.29,191.763l0.872,-1.451l0.291,-2.323l-2.327,-2.324l0.000,-2.613l-2.325,-2.323l-2.036,0.000l-0.582,0.871l-1.452,0.000l-0.871,-0.581l-2.907,1.742l0.000,-2.323l0.579,-2.904l-1.743,-0.289l-0.290,-1.744l-1.163,-0.580l0.581,-1.162l2.326,-1.742l0.289,0.581l1.455,0.000l-0.290,-2.904l1.453,-0.581l1.454,2.324l1.161,2.322l3.488,0.000l1.165,2.614l-1.747,0.580l-0.870,0.872l3.197,1.742l2.325,3.194l1.745,2.614l2.036,1.742l0.870,2.032l-0.581,2.614l-2.617,-0.871l-1.160,1.743l2.326,0.872z", -LB:"M572.31,139.494l-0.582,0.000l-0.291,0.580l-0.872,0.000l0.872,-2.323l1.454,-2.032l1.163,0.000l0.581,1.162l-1.452,1.161l0.873,-1.452z",LK:"M699.047,210.348l-0.579,2.904l-1.165,0.581l-2.323,0.582l-1.455,-2.034l-0.292,-4.066l1.166,-4.356l2.033,1.454l1.162,2.032l-1.453,-2.903z",LR:"M452.549,219.06l-0.873,0.000l-2.615,-1.453l-2.617,-2.032l-2.324,-1.452l-1.744,-1.742l0.580,-0.872l0.000,-0.871l1.454,-1.452l1.163,-1.451l0.581,0.000l0.872,-0.290l1.162,1.741l-0.290,1.162l0.582,0.581l0.581,0.000l0.582,-1.161l0.871,0.000l0.000,0.870l0.291,1.162l-0.582,1.452l0.582,0.581l0.871,0.290l1.162,1.161l0.293,1.162l-0.293,0.291l0.289,-2.323z",LS:"M553.416,310.531l1.163,0.872l-0.873,1.451l-0.581,0.871l-1.454,0.292l-0.581,0.869l-0.871,0.291l-2.036,-2.032l1.454,-1.742l1.453,-1.163l1.163,-0.579l-1.163,-0.870z",LT:"M536.265,81.417l-0.291,-0.582l0.582,-0.870l-1.454,-0.291l-2.906,-0.581l-0.580,-2.322l3.197,-0.871l4.649,0.290l2.618,-0.290l0.581,0.580l1.455,0.291l2.614,1.162l0.290,1.160l-2.326,1.162l-0.578,1.452l-2.908,0.872l-2.907,0.000l-0.582,-0.872l1.454,0.290z",LU:"M490.338,93.032l0.579,0.581l0.000,1.452l-0.871,0.000l-0.581,-0.291l0.290,-1.451l-0.583,0.291z",LV:"M531.616,76.771l0.290,-2.033l1.162,-1.742l2.616,-0.871l2.326,2.033l2.035,0.000l0.581,-2.033l2.325,-0.581l1.165,0.290l2.614,1.162l2.034,0.000l1.455,0.581l0.291,1.161l0.871,1.742l-2.906,1.162l-1.745,0.291l-2.614,-1.162l-1.455,-0.291l-0.581,-0.580l-2.618,0.290l-4.649,-0.290l3.197,-0.871z",LY:"M514.755,167.951l-2.036,1.162l-1.452,-1.452l-4.361,-1.161l-1.452,-1.743l-2.035,-1.451l-1.163,0.580l-1.163,-1.451l0.000,-1.162l-1.744,-2.033l1.162,-1.161l-0.291,-1.743l0.291,-1.452l0.000,-1.451l0.291,-2.033l0.000,-1.453l-0.871,-2.322l1.162,-0.581l0.290,-1.162l-0.290,-1.161l2.034,-1.162l0.872,-0.870l1.164,-0.873l0.291,-2.032l3.195,0.872l1.165,0.000l2.326,0.290l3.486,1.161l1.456,2.614l2.325,0.581l4.067,1.161l2.907,1.162l1.165,-0.581l1.453,-1.452l-0.582,-2.033l0.874,-1.162l1.741,-1.451l2.036,-0.290l3.778,0.580l0.873,1.161l1.163,0.000l0.871,0.582l2.616,0.291l0.582,0.870l-0.871,1.452l0.289,1.162l-0.579,1.451l0.871,2.324l0.000,9.873l0.000,10.162l0.000,5.228l-3.199,0.291l0.000,0.870l-11.045,-5.227l-11.046,-5.226l2.616,-1.451z",MA:"M459.526,132.525l1.743,1.161l2.616,0.000l2.615,0.581l1.164,0.000l1.163,1.742l0.291,1.742l0.871,2.905l0.582,0.580l-0.289,0.871l-3.782,0.582l-1.162,0.870l-1.744,0.291l0.000,2.032l-3.197,1.162l-1.162,1.452l-2.036,0.581l-2.906,0.581l-4.361,2.032l0.000,3.194l-0.581,0.000l0.292,1.452l-1.745,0.000l-0.872,0.871l-1.161,0.000l-1.165,-0.581l-2.324,0.291l-0.873,2.323l-0.872,0.000l-1.162,3.485l-4.069,3.194l-0.874,3.775l-1.162,1.162l-0.290,0.870l-6.107,0.291l0.000,-1.161l1.165,-0.872l0.871,-1.451l-0.291,-0.872l1.164,-2.033l1.454,-1.742l0.871,-0.291l0.873,-1.742l0.000,-1.451l0.870,-1.742l2.036,-0.872l1.745,-2.904l1.452,-1.162l2.326,-0.289l2.326,-1.743l1.452,-0.871l2.036,-2.323l-0.582,-3.194l1.163,-2.323l0.290,-1.452l1.744,-2.033l2.906,-1.162l2.037,-1.162l1.745,-2.903l0.871,-1.742l-2.035,0.000z",MD:"M547.02,98.259l0.584,-0.290l2.033,-0.290l2.034,0.870l1.162,0.000l1.166,0.872l-0.293,0.871l1.164,0.580l0.290,1.162l0.873,0.580l0.000,0.291l0.290,0.291l-0.581,0.290l-1.743,0.000l-0.293,-0.581l-0.581,0.291l0.291,0.580l-0.872,0.871l-0.291,0.872l-0.872,0.291l-0.291,-1.163l0.291,-1.161l-0.291,-1.161l-1.453,-1.742l-0.873,-1.162l-0.871,-0.872l0.873,0.290z",ME:"M528.417,113.94l-0.292,-0.291l-1.163,1.162l0.000,0.872l-0.581,0.000l-0.579,-0.872l-1.163,-0.582l0.289,-0.580l0.291,-1.451l0.872,-0.581l0.582,-0.290l0.873,0.290l0.290,0.581l0.872,0.290l1.162,0.581l-0.290,0.000l-0.581,0.871l0.582,0.000z",MG:"M610.099,265.23l0.873,1.163l0.582,1.742l0.579,3.485l0.584,1.160l-0.293,1.454l-0.581,0.579l-0.871,-1.451l-0.583,0.872l0.583,2.032l-0.291,1.160l-0.582,0.581l-0.292,2.325l-1.162,3.194l-1.161,3.775l-1.744,5.226l-1.162,3.775l-1.165,3.195l-2.325,0.581l-2.325,1.162l-1.455,-0.582l-2.324,-0.871l-0.872,-1.453l0.000,-2.613l-1.163,-2.032l0.000,-2.033l0.292,-2.032l1.452,-0.582l0.000,-0.871l1.163,-2.032l0.289,-1.742l-0.579,-1.453l-0.582,-1.451l-0.291,-2.614l1.163,-1.743l0.289,-1.742l1.455,0.000l1.452,-0.581l0.872,-0.579l1.454,0.000l1.455,-1.454l2.325,-1.740l0.872,-1.454l-0.580,-1.160l1.161,0.289l1.744,-1.743l0.000,-1.742l0.873,-1.160l-0.871,-1.160z",MK:"M530.451,115.973l0.292,0.000l0.289,-0.581l1.455,-0.581l0.581,0.000l1.161,-0.290l1.165,0.000l1.452,0.871l0.000,1.743l-0.290,0.290l-0.582,0.290l-1.452,0.000l-1.164,0.580l-1.742,0.291l-1.165,-0.581l-0.289,-1.161l-0.289,0.871z",ML:"M440.34,190.602l0.871,-0.290l0.583,-1.743l0.872,0.000l1.744,0.871l1.455,-0.580l1.161,0.000l0.581,-0.581l11.046,0.000l0.582,-2.032l-0.582,-0.291l-1.454,-11.906l-1.161,-11.615l4.070,-0.291l9.301,6.098l9.301,6.098l0.873,1.161l1.454,0.872l1.452,0.291l0.000,1.742l2.906,0.000l0.000,6.097l-1.452,2.034l-0.291,1.452l-2.326,0.580l-3.778,0.291l-0.872,0.870l-1.744,0.291l-2.035,0.000l-0.582,-0.581l-1.452,0.290l-2.617,1.162l-0.582,0.871l-2.035,1.161l-0.291,0.872l-1.163,0.581l-1.452,-0.581l-0.872,0.871l-0.291,1.742l-2.034,2.324l0.000,0.871l-0.873,1.161l0.290,1.741l-1.161,0.292l-0.583,0.290l-0.579,-1.162l-0.582,0.291l-0.581,0.000l-0.582,0.871l-2.037,0.000l-0.870,-0.582l-0.292,0.292l-0.871,-0.581l0.290,-0.871l-0.581,-0.291l-0.582,0.291l0.291,-1.162l0.582,-0.580l-1.162,-1.162l-0.292,-0.871l-0.582,-0.581l-0.581,0.000l-0.871,0.290l-0.873,0.582l-0.579,0.580l-1.165,-0.291l-0.871,-0.580l-0.582,-0.291l-0.581,0.582l-0.290,0.000l-0.293,-1.162l0.000,-0.871l0.000,-1.162l-1.162,-0.581l-0.581,-1.742l0.000,1.742z",MM:"M747.882,175.501l-1.743,1.163l-2.034,0.000l-1.163,3.194l-1.165,0.290l1.455,2.613l1.744,1.742l1.163,2.034l-1.163,2.323l-0.871,0.580l0.582,1.162l1.741,2.322l0.582,1.453l-0.290,1.452l1.162,2.322l-1.454,2.614l-1.452,2.903l-0.289,-2.031l0.870,-2.033l-0.870,-1.742l0.289,-2.904l-1.163,-1.453l-0.871,-3.484l-0.581,-3.484l-1.164,-2.034l-1.743,1.162l-3.200,2.033l-1.454,-0.291l-1.741,-0.580l0.870,-3.486l-0.579,-2.612l-2.036,-2.904l0.290,-1.161l-1.744,-0.291l-1.743,-2.323l-0.291,-2.033l0.871,0.291l0.292,-2.033l1.162,-0.581l-0.291,-1.161l0.583,-0.872l0.290,-2.904l2.033,0.580l1.163,-2.322l0.292,-1.162l1.453,-2.323l0.000,-1.742l3.489,-1.742l2.034,0.290l-0.291,-1.452l0.871,-0.580l0.000,-1.162l1.455,0.000l0.873,1.452l1.161,0.580l0.291,2.324l-0.291,2.032l-2.615,2.323l-0.290,3.484l2.905,-0.580l0.873,2.614l1.743,0.580l-0.872,2.033l2.035,1.162l1.163,0.580l2.035,-0.870l0.000,1.161l-2.326,1.742l-0.581,1.162l1.454,-0.580z",MN:"M715.327,95.356l2.907,-0.582l5.232,-2.323l4.069,-1.161l2.616,0.871l2.908,0.000l1.741,1.162l2.617,0.290l4.071,0.581l2.617,-2.033l-1.163,-1.453l2.907,-2.902l3.196,1.161l2.327,0.290l3.488,0.580l0.290,2.324l4.069,1.162l2.617,-0.582l3.487,-0.290l2.618,0.290l2.615,1.162l1.743,1.453l2.616,0.000l3.490,0.581l2.616,-0.872l3.488,-0.291l4.070,-2.033l1.745,0.291l1.452,0.871l3.197,-0.290l-1.453,2.324l-1.744,2.612l0.581,1.162l1.455,-0.290l2.904,0.290l2.036,-0.872l2.327,0.872l2.325,1.742l-0.291,1.161l-2.034,-0.289l-4.071,0.289l-2.035,0.872l-2.034,1.742l-4.069,1.162l-2.909,1.451l-2.614,-0.580l-1.745,-0.290l-1.454,1.742l0.873,1.162l0.581,0.871l-2.033,0.871l-1.745,1.452l-3.199,0.871l-4.359,0.289l-4.361,0.873l-3.197,1.451l-1.163,-0.870l-3.489,0.000l-4.069,-1.743l-2.615,-0.291l-3.781,0.291l-5.522,-0.580l-3.196,0.000l-1.456,-1.453l-1.163,-2.613l-1.743,-0.291l-3.488,-1.742l-3.778,-0.290l-3.198,-0.581l-0.873,-1.162l0.873,-3.194l-1.746,-2.323l-4.067,-0.872l-2.326,-1.451l0.581,2.032z",MR:"M440.34,190.602l-2.034,-1.742l-1.454,-2.033l-2.034,-0.580l-1.163,-0.872l-1.454,0.000l-1.452,0.581l-1.456,-0.291l-0.871,0.872l-0.290,-1.453l0.871,-1.451l0.290,-2.614l-0.290,-2.613l-0.291,-1.453l0.291,-1.161l-0.871,-1.452l-1.454,-1.161l0.582,-0.871l11.046,0.000l-0.581,-4.066l0.581,-1.451l2.615,0.000l0.000,-7.261l9.011,0.290l0.000,-4.355l10.176,6.679l-4.070,0.291l1.161,11.615l1.454,11.906l0.582,0.291l-0.582,2.032l-11.046,0.000l-0.581,0.581l-1.161,0.000l-1.455,0.580l-1.744,-0.871l-0.872,0.000l-0.583,1.743l0.871,-0.290z",MW:"M568.822,262.618l-0.582,2.032l0.582,3.776l1.165,-0.291l0.871,0.871l1.163,2.034l0.289,3.483l-1.163,0.581l-0.871,2.032l-1.744,-1.742l-0.292,-2.032l0.582,-1.161l-0.290,-1.161l-0.873,-0.582l-0.871,0.291l-1.455,-1.454l-1.452,-0.580l0.580,-2.612l0.872,-0.873l-0.290,-2.323l0.290,-2.322l0.582,-0.582l-0.582,-2.322l-1.452,-1.452l2.907,0.581l0.289,0.871l1.163,1.161l-0.582,-3.776z",MX:"M206.341,159.82l-1.163,2.324l-0.291,2.033l-0.290,3.774l-0.291,1.162l0.581,1.743l0.872,1.161l0.582,2.033l1.744,2.323l0.581,1.452l1.163,1.451l2.906,0.582l1.163,1.161l2.326,-0.871l2.034,-0.290l2.035,-0.291l1.745,-0.581l1.743,-1.161l0.872,-1.452l0.000,-2.323l0.582,-0.871l2.034,-0.581l2.908,-0.872l2.324,0.291l1.745,-0.291l0.582,0.582l0.000,1.161l-1.454,1.742l-0.873,1.742l0.582,0.581l-0.291,1.162l-0.872,2.033l-0.582,-0.581l-0.581,0.000l-0.580,0.000l-0.872,1.742l-0.582,-0.580l-0.290,0.290l0.000,0.290l-2.617,0.000l-2.615,0.000l0.000,1.743l-1.163,0.000l0.872,0.870l1.162,0.581l0.291,0.581l0.582,0.291l-0.292,0.871l-3.487,0.000l-1.164,2.033l0.291,0.580l-0.291,0.581l0.000,0.871l-3.197,-2.903l-1.454,-0.872l-2.325,-0.870l-1.453,0.290l-2.325,1.161l-1.163,0.291l-2.035,-0.872l-2.035,-0.580l-2.617,-1.162l-2.034,-0.291l-3.198,-1.451l-2.325,-1.161l-0.582,-0.872l-1.453,0.000l-2.906,-0.871l-1.163,-1.453l-2.907,-1.451l-1.454,-1.742l-0.581,-1.453l0.872,-0.290l-0.291,-0.581l0.582,-0.871l0.000,-0.871l-0.873,-1.161l-0.290,-1.162l-0.872,-1.452l-2.325,-2.614l-2.908,-2.322l-1.453,-1.453l-2.325,-1.161l-0.290,-0.872l0.290,-1.451l-1.454,-0.871l-1.453,-1.162l-0.872,-2.032l-1.454,-0.291l-1.453,-1.452l-1.454,-1.161l0.000,-0.871l-1.453,-2.033l-1.162,-2.324l0.290,-0.870l-2.035,-1.162l-0.872,0.000l-1.744,-0.581l-0.290,1.162l0.290,1.161l0.290,2.034l0.872,1.161l2.036,2.032l0.581,0.581l0.291,0.290l0.581,0.872l0.291,0.000l0.581,1.742l0.872,0.580l0.581,1.162l1.745,1.162l0.872,2.613l0.872,1.162l0.872,1.452l0.000,1.452l1.453,0.000l0.872,1.160l1.164,1.454l0.000,0.290l-1.164,1.161l-0.581,0.000l-0.581,-1.742l-2.035,-1.452l-1.744,-1.453l-1.454,-0.580l0.000,-2.033l-0.291,-1.452l-1.453,-0.870l-1.744,-1.453l-0.581,0.581l-0.582,-0.871l-1.743,-0.581l-1.745,-1.742l0.291,0.000l1.163,0.000l1.162,-0.872l0.000,-1.451l-2.034,-1.742l-1.744,-0.871l-0.873,-1.742l-1.162,-1.744l-1.163,-2.322l-1.163,-2.323l3.198,-0.291l3.487,-0.290l-0.290,0.581l4.070,1.452l6.395,1.742l5.232,0.000l2.326,0.000l0.000,-1.162l4.650,0.000l1.163,1.162l1.453,0.871l1.454,1.162l0.872,1.451l0.872,1.453l1.454,0.871l2.325,0.871l1.744,-2.323l2.035,0.000l2.034,1.161l1.454,1.742l0.872,1.742l1.744,1.452l0.582,2.033l0.581,1.162l2.326,0.871l1.744,0.580l-1.163,0.000z",MY:"M751.953,213.833l0.29,1.451l1.744-0.289l0.873-1.162l0.582,0.29l1.741,1.743l1.165,1.741l0.29,1.743l-0.29,1.452v0.87l0.29,1.453l0.871,0.871l1.162,2.322v1.162h-2.033l-2.616-2.033l-3.195-2.032l-0.295-1.452l-1.452-1.743l-0.581-2.322l-0.871-1.452l0.289-2.031l-0.58-1.162l0.291-0.582L751.953,213.833zM800.205,218.769l-2.034,0.871l-2.325-0.58h-3.198l-0.871,3.193l-1.163,0.872l-1.452,3.774l-2.036,0.581l-2.615-0.581l-1.454,0.291l-1.453,1.16h-1.744l-1.744,0.581l-2.033-1.741l-0.584-1.743l2.036,0.871l2.325-0.581l0.581-2.322l1.163-0.29l3.197-0.581l2.036-2.324l1.162-1.741l1.453,1.451l0.58-0.87h1.163l0.291-1.743v-1.451l2.327-1.743l1.161-2.322h1.162l1.455,1.452v1.162l2.034,0.869l2.325,0.872l-0.29,0.872l-1.744,0.289L800.205,218.769z",MZ:"M568.822,262.618l2.036,-0.292l3.486,0.872l0.581,-0.291l2.036,-0.289l0.872,-0.581l1.746,0.000l2.907,-1.162l2.323,-1.452l0.292,1.162l0.000,2.613l0.289,2.614l0.000,4.064l0.584,1.453l-0.873,2.033l-0.873,1.742l-1.742,1.742l-2.618,1.161l-3.199,1.163l-2.905,3.194l-1.163,0.290l-2.036,2.033l-1.162,0.580l0.000,2.034l1.162,2.032l0.582,1.741l0.000,0.874l0.581,-0.292l-0.291,2.614l-0.290,1.451l0.581,0.290l-0.291,1.162l-1.161,1.161l-2.327,0.873l-3.198,1.451l-1.452,1.162l0.289,1.161l0.873,0.000l-0.291,1.452l-2.034,0.000l-0.291,-1.162l-0.580,-1.161l0.000,-1.162l0.290,-2.904l-0.582,-2.033l-1.452,-3.774l2.904,-3.195l0.874,-2.033l0.289,-0.290l0.293,-1.452l-0.293,-0.870l0.000,-2.033l0.582,-2.032l0.000,-3.486l-1.452,-0.871l-1.163,-0.289l-0.582,-0.582l-1.452,-0.581l-2.325,0.000l0.000,-0.870l-0.292,-2.033l8.429,-2.325l1.455,1.454l0.871,-0.291l0.873,0.582l0.290,1.161l-0.582,1.161l0.292,2.032l1.744,1.742l0.871,-2.032l1.163,-0.581l-0.289,-3.483l-1.163,-2.034l-0.871,-0.871l-1.165,0.291l-0.582,-3.776l-0.582,2.032z",NA:"M518.825,309.661l-2.036,-2.325l-1.163,-2.033l-0.579,-2.613l-0.584,-2.032l-1.161,-4.065l0.000,-3.485l-0.291,-1.452l-1.163,-1.162l-1.454,-2.034l-1.452,-3.483l-0.582,-1.743l-2.034,-2.613l-0.291,-2.033l1.452,-0.581l1.455,-0.581l1.743,0.292l1.745,1.161l0.581,-0.291l11.047,0.000l2.033,1.162l6.396,0.582l5.232,-1.162l2.326,-0.582l1.745,0.000l0.871,0.582l0.290,0.289l-1.743,0.582l-0.874,0.000l-1.744,1.162l-0.871,-1.162l-4.361,0.871l-2.033,0.291l0.000,9.582l-2.908,0.289l0.000,7.843l0.000,10.163l-2.326,1.451l-1.452,0.290l-1.744,-0.581l-1.162,-0.290l-0.582,-1.162l-1.163,-0.580l1.163,-1.453z",NC:"M930.142,289.042l2.325,1.452l1.452,1.454l-1.162,0.579l-1.453,-0.871l-2.036,-1.162l-1.744,-1.452l-1.742,-1.741l-0.582,-1.162l1.161,0.000l1.745,1.162l1.162,0.870l-0.874,-0.871z",NCY:"M563.881,134.267l0.289,0.000l0.291,-0.581l2.035,0.000l2.326,-0.871l-1.745,1.162l0.293,0.580l-0.293,0.000l-0.581,0.000l-0.581,0.000l-0.290,-0.290l-0.582,0.000l-0.582,0.290l0.580,0.290z",NE:"M479.583,198.151l0.291,-2.032l-3.198,-0.581l-0.291,-1.161l-1.453,-2.033l-0.292,-1.162l0.292,-1.161l1.744,-0.291l0.872,-0.870l3.778,-0.291l2.326,-0.580l0.291,-1.452l1.452,-2.034l0.000,-6.097l4.070,-1.453l7.849,-5.227l9.592,-5.226l4.361,1.161l1.452,1.452l2.036,-1.162l0.581,4.357l1.164,0.871l0.000,0.871l1.163,0.871l-0.581,1.162l-1.164,5.517l-0.292,3.484l-3.486,2.614l-1.165,3.775l1.165,0.871l0.000,1.742l1.742,0.291l-0.289,1.161l-0.582,0.291l-0.292,0.871l-0.289,0.000l-2.036,-2.904l-0.580,-0.291l-2.327,1.453l-2.033,-0.581l-1.455,-0.291l-0.872,0.291l-1.453,0.000l-1.743,1.161l-1.455,0.000l-3.196,-1.161l-1.452,0.581l-1.165,0.000l-1.163,-1.162l-2.617,-0.872l-3.195,0.291l-0.582,0.581l-0.292,1.452l-0.871,1.161l-0.291,2.324l-2.034,-1.453l-0.874,0.000l1.161,-0.871z",NG:"M497.023,217.898l-2.615,0.871l-1.164,0.000l-1.161,0.581l-2.037,0.000l-1.452,-1.743l-0.873,-2.032l-2.033,-1.742l-2.036,0.000l-2.615,0.000l0.289,-4.647l0.000,-1.741l0.581,-1.743l0.582,-0.871l1.454,-1.452l-0.291,-0.873l0.580,-1.160l-0.580,-1.453l0.000,-1.160l0.291,-2.324l0.871,-1.161l0.292,-1.452l0.582,-0.581l3.195,-0.291l2.617,0.872l1.163,1.162l1.165,0.000l1.452,-0.581l3.196,1.161l1.455,0.000l1.743,-1.161l1.453,0.000l0.872,-0.291l1.455,0.291l2.033,0.581l2.327,-1.453l0.580,0.291l2.036,2.904l0.289,0.000l1.163,0.871l-0.289,0.580l0.000,0.872l-2.326,2.323l-0.873,1.742l-0.289,1.452l-0.582,0.582l-0.581,1.742l-1.455,1.161l-0.581,1.452l-0.580,1.161l-0.291,1.162l-1.744,0.870l-1.746,-1.161l-0.871,0.000l-1.743,1.743l-0.872,0.000l-1.164,2.614l0.872,-2.032z",NI:"M237.734,200.475l-0.872,-0.871l-1.163,-1.162l-0.581,-0.871l-1.163,-0.871l-1.454,-1.162l0.291,-0.580l0.291,0.580l0.291,-0.290l0.872,0.000l0.291,-0.871l0.581,0.000l-0.290,-1.162l0.871,-0.291l0.582,0.291l0.581,-0.871l0.581,0.580l0.291,-0.289l0.581,-0.291l1.163,-0.871l0.000,-0.581l0.291,0.000l0.291,-0.580l0.291,0.000l0.290,0.290l0.582,0.000l0.581,-0.290l0.872,0.000l0.872,-0.291l0.291,-0.291l1.162,0.000l-0.291,0.291l-0.290,0.581l0.290,0.871l-0.582,1.162l-0.289,0.870l0.000,1.453l0.000,0.580l0.289,1.162l-0.580,0.290l-0.291,1.161l0.291,0.872l-0.581,0.581l0.000,0.871l0.581,0.290l-0.581,0.581l-0.872,0.000l-0.583,-0.581l-0.871,-0.290l-0.581,0.290l-1.745,-0.581l0.581,-0.291z",NL:"M490.628,83.74l2.035,0.000l0.581,1.161l-0.581,2.323l-0.871,1.162l-1.454,0.000l0.290,2.904l-1.452,-0.582l-1.745,-1.451l-2.617,0.580l-2.034,0.000l1.452,-0.870l2.618,-4.066l-3.778,1.161z",NO:"M551.381,35.246l8.43,2.032l-3.488,0.582l3.198,1.742l-4.942,1.161l-2.034,0.29l1.161-2.032l-3.486-1.162l-4.362,1.162l-1.452,2.032l-2.615,1.162l-2.907-0.581h-3.488l-3.198-1.452l-1.453,0.581l-1.744,0.29l-0.582,1.743l-5.231-0.291l-0.582,1.452h-2.615l-1.745,2.033l-2.906,2.903l-4.361,3.775l1.165,1.162l-0.873,0.872h-2.907l-1.744,2.613l0.29,3.775l1.743,1.162l-1.162,3.484l-2.033,1.742l-1.455,1.742l-1.742-1.742l-5.524,3.194l-3.488,0.582l-3.778-1.452l-1.163-2.905l-0.871-6.387l2.615-1.743l7.268-2.323l5.523-2.904l4.941-3.774l6.685-5.228l4.651-2.033l7.559-3.484l5.813-1.162h4.651l4.069-2.324l5.231,0.291L551.381,35.246zM541.79,16.951l-6.105,1.162l-4.941-0.87l2.036-0.582l-1.747-0.872l5.814-0.58l0.873,1.161L541.79,16.951zM524.058,11.724l9.01,2.033l-6.977,1.162l-1.452,2.032l-2.325,0.581l-1.455,2.324h-3.196l-6.104-1.743l2.615-0.87l-4.069-0.873l-5.523-2.323l-2.036-2.033l7.56-1.162l1.454,1.162l3.777-0.291l1.163-0.871h4.07L524.058,11.724zM543.823,9.692l5.522,1.161l-4.358,1.452l-7.849,0.29l-8.14-0.581l-0.582-0.58h-3.777l-3.199-1.453l8.722-0.58l3.778,0.58l2.906-0.871L543.823,9.692z",NP:"M716.198,154.304l0.000,1.161l0.291,1.742l-0.291,1.162l-2.326,0.000l-3.197,-0.581l-2.325,-0.290l-1.453,-1.452l-3.779,-0.291l-3.490,-1.742l-2.614,-1.161l-2.908,-1.162l1.163,-2.613l1.745,-1.161l1.162,-0.582l2.326,0.871l2.616,1.742l1.454,0.291l1.162,1.452l2.034,0.581l2.326,1.162l2.906,0.580l-3.198,-0.291z",NZ:"M949.907,343.345l0.873,1.161l1.745-1.161l0.87,1.161v1.161l-0.87,1.452l-2.036,2.033l-1.163,1.161l0.873,1.162h-2.034l-2.327,1.162l-0.871,1.74l-1.455,2.904l-2.323,1.161l-1.165,0.871l-2.615-0.289l-1.742-0.872h-3.198l-0.292-1.162l1.453-2.033l3.49-2.613l1.744-0.58l2.034-1.16l2.325-1.452l1.744-1.453l1.162-2.032l0.872-0.58l0.58-1.452l1.745-1.451L949.907,343.345zM954.559,330.277l1.743,2.904l0.292-1.743l1.16,0.58l0.293,2.324l2.324,0.872h1.745l1.743-0.872l1.453,0.289l-0.871,2.326l-0.873,1.74h-2.033l-0.582,0.581v1.452l-0.289,0.291l-1.165,1.452l-1.163,2.032l-2.325,1.161l-0.29-0.87l-1.162-0.291l1.452-2.322l-0.871-1.453l-2.907-1.16v-0.873l2.035-1.159l0.58-2.034l-0.289-1.743l-1.164-1.743l0.292-0.58l-1.454-1.161l-2.034-2.323l-1.162-2.032l0.87-0.291l1.455,1.453l2.325,0.87L954.559,330.277z",OM:"M635.678,172.888l-0.871,1.742h-1.163l-0.58,0.581l-0.582,1.452l0.29,1.742l-0.29,0.581l-1.163-0.29l-1.744,1.162l-0.291,1.452l-0.58,0.581h-1.743l-1.165,0.582v1.162l-1.163,0.581l-1.452-0.291l-2.034,1.162h-1.163l-0.873-1.743l-2.325-4.645l8.431-2.613l1.745-5.519l-1.165-2.032v-1.162l0.873-1.162v-1.161l1.162-0.581l-0.581-0.291l0.289-1.742h1.456l1.161,1.742l1.745,1.161l2.036,0.291l1.45,0.581l1.165,1.452l0.871,0.872l0.872,0.58v0.582l-0.872,1.451l-0.582,0.872L635.678,172.888zM628.995,159.82l-0.291,0.291l-0.583-0.871l0.874-0.872l0.289,0.291L628.995,159.82z",PA:"M259.244,211.219l-0.872,-0.871l-0.580,-1.452l0.872,-0.871l-0.872,-0.290l-0.582,-0.871l-1.163,-0.581l-1.162,0.000l-0.582,1.162l-1.162,0.580l-0.582,0.000l-0.291,0.581l1.163,1.451l-0.581,0.581l-0.582,0.291l-1.163,0.290l-0.581,-1.742l-0.291,0.291l-0.872,0.000l-0.581,-1.162l-1.163,-0.291l-0.580,-0.290l-1.164,0.000l-0.291,0.581l-0.290,-0.291l0.290,-0.580l0.291,-0.582l-0.291,-0.289l0.583,-0.581l-0.583,-0.291l0.000,-1.161l0.872,-0.291l1.163,1.162l0.000,0.581l0.872,0.000l0.291,-0.291l0.872,0.872l1.163,-0.291l1.163,-0.581l1.744,-0.579l0.872,-0.873l1.744,0.000l-0.291,0.291l1.745,0.291l1.163,0.291l0.871,0.870l0.872,0.870l-0.290,0.292l0.872,1.741l-0.582,0.871l-0.872,-0.289l0.582,-1.451z",PE:"M282.208,279.17l-0.872,1.451l-1.163,0.872l-2.905,-1.743l-0.292,-1.162l-5.232,-2.613l-4.942,-3.195l-2.325,-1.451l-1.163,-2.323l0.581,-0.871l-2.326,-3.485l-2.905,-5.227l-2.326,-5.517l-1.163,-1.161l-0.872,-2.033l-2.325,-1.743l-1.745,-1.161l0.872,-1.162l-1.453,-2.613l0.872,-2.033l2.326,-1.742l0.291,1.160l-0.873,0.582l0.000,1.162l1.163,-0.290l1.163,0.290l1.162,1.451l1.454,-1.162l0.582,-1.742l1.744,-2.613l3.196,-0.871l3.198,-2.904l0.872,-1.741l-0.581,-2.324l0.872,-0.291l1.744,1.452l0.872,1.163l1.163,0.870l1.744,2.903l2.035,0.291l1.453,-0.870l1.164,0.579l1.452,-0.290l2.326,1.452l-1.744,2.613l0.582,0.290l1.452,1.454l-2.324,-0.290l-0.583,0.580l-2.033,0.289l-3.198,2.034l-0.291,1.161l-0.581,1.162l0.290,1.451l-1.744,0.581l0.000,1.162l-0.872,0.581l1.163,2.614l1.744,1.451l-0.581,1.451l1.744,0.000l0.872,1.453l2.616,0.000l2.326,-1.453l-0.292,4.066l1.163,0.292l1.744,-0.292l2.326,4.355l-0.582,0.873l-0.290,2.033l0.000,2.323l-1.163,1.452l0.582,0.872l-0.582,0.869l1.163,2.324l1.745,-2.904z",PG:"M902.817,249.55l-0.873,0.29l-1.163-0.871l-1.162-1.742l-0.581-2.032l0.581-0.289l0.29,0.579l0.583,0.872l1.452,1.741l1.163,0.871L902.817,249.55zM892.063,246.065l-1.455,0.292l-0.29,0.58l-1.454,0.871l-1.452,0.582h-1.452l-2.328-0.872l-1.453-0.872v-0.871l2.616,0.582l1.454-0.292l0.289-1.159l0.582-0.293l0.292,1.452h1.452l0.873-1.159l1.452-0.873l-0.289-1.741h1.741l0.584,0.58l-0.291,1.452L892.063,246.065zM878.982,251.292l2.326,1.742l1.741,2.904h1.745v1.16l2.035,0.582l-0.87,0.291l2.904,1.16l-0.29,0.871l-1.744,0.292l-0.87-0.872l-2.328-0.291l-2.616-0.29l-2.325-1.743l-1.452-1.451l-1.454-2.613l-3.488-1.161l-2.326,0.871l-1.744,0.871l0.292,2.032l-2.034,0.871l-1.744-0.29l-2.617-0.29l-0.29-9.002v-8.712l4.94,1.742l4.941,1.451l2.036,1.453l1.452,1.452l0.292,1.741l4.649,1.743l0.583,1.451l-2.328,0.291L878.982,251.292zM895.259,243.451l-0.873,0.582l-0.582-1.741l-0.579-0.873l-1.162-0.87l-1.455-1.162l-2.034-0.871l0.579-0.58l1.455,0.58l1.163,0.581l1.163,0.871l0.87,1.161l1.165,0.871L895.259,243.451z",PH:"M821.715,207.735l0.292,2.033v1.451l-0.872,2.322l-0.871-2.612l-1.454,1.452l0.871,2.033l-0.871,1.16l-3.199-1.452l-0.581-2.032l0.874-1.452l-1.745-1.161l-0.873,1.161l-1.452-0.29l-2.034,1.742l-0.292-0.871l0.871-2.323l1.744-0.871l1.455-0.872l1.163,1.162l2.035-0.87l0.29-1.162h2.033v-2.323l2.036,1.453l0.29,1.451L821.715,207.735zM815.03,202.798l-0.871,0.87l-0.873,1.744l-0.871,0.579l-1.744-1.741l0.582-0.871l0.581-0.581l0.289-1.743l1.455-0.29l-0.292,2.033l2.036-2.614L815.03,202.798zM799.916,205.413l-3.488,2.612l1.163-2.033l2.034-1.741l1.743-1.744l1.454-2.902l0.291,2.322l-1.745,1.453L799.916,205.413zM809.216,198.151l1.743,0.872h1.745v1.161l-1.452,1.162l-1.745,0.871v-1.162l0.292-1.451L809.216,198.151zM819.099,197.571l0.874,2.904l-2.036-0.582v0.872l0.581,1.741l-1.162,0.582l-0.29-2.033h-0.584l-0.578-1.742l1.743,0.291v-1.162l-1.743-2.033h2.614L819.099,197.571zM808.344,194.958l-0.873,2.323l-1.161-1.162l-1.454-2.323l2.615,0.291L808.344,194.958zM807.764,180.148l1.743,0.581l0.871-0.581v0.581l-0.289,1.162l0.87,2.033l-0.581,2.324l-1.744,0.87l-0.29,2.323l0.582,2.033l1.452,0.29l1.165-0.29l3.486,1.451l-0.289,1.743l0.87,0.581l-0.289,1.161l-2.036-1.161l-1.163-1.452l-0.579,0.871l-1.744-1.743l-2.617,0.581l-1.454-0.581l0.291-1.162l0.873-0.871l-0.873-0.58l-0.291,1.162l-1.453-1.743l-0.29-1.161l-0.291-2.613l1.162,0.871l0.292-4.355l0.871-2.324H807.764z",PK:"M680.735,128.75l2.036,1.451l0.870,2.033l4.361,1.162l-2.617,2.323l-3.196,0.290l-4.069,-0.581l-1.453,1.162l1.160,2.324l0.874,2.032l2.325,1.161l-2.325,1.743l0.000,2.032l-2.618,2.614l-1.745,2.904l-2.904,2.904l-3.199,-0.291l-3.197,2.904l1.745,1.162l0.579,2.032l1.455,1.451l0.583,2.324l-6.106,0.000l-1.745,2.033l-2.033,-0.871l-0.873,-2.033l-2.034,-2.033l-5.234,0.580l-4.360,0.000l-4.068,0.291l1.161,-3.193l4.070,-1.162l-0.290,-1.452l-1.453,-0.291l0.000,-2.613l-2.617,-1.162l-1.162,-1.742l-1.453,-1.452l4.649,1.452l2.907,-0.291l1.455,0.291l0.581,-0.580l2.035,0.289l3.488,-1.161l0.291,-2.323l1.452,-1.742l2.034,0.000l0.292,-0.581l2.036,-0.290l1.160,0.000l0.875,-0.580l0.000,-1.743l1.162,-1.743l1.742,-0.580l-1.161,-1.743l2.616,0.000l0.872,-0.871l-0.289,-1.162l1.450,-1.161l-0.289,-1.452l-0.581,-1.162l1.454,-1.161l3.197,-0.580l2.907,-0.291l1.454,-0.581l-1.743,0.290z",PL:"M515.047,90.418l-1.165,-1.742l0.292,-0.870l-0.581,-1.452l-1.163,-1.162l0.872,-0.581l-0.583,-1.452l1.744,-0.870l4.362,-1.163l3.489,-1.161l2.614,0.581l0.291,0.580l2.617,0.291l3.489,0.290l4.940,-0.290l1.454,0.290l0.582,0.872l0.289,1.452l0.582,0.870l0.000,1.161l-1.453,0.582l0.871,1.162l0.000,1.161l1.455,2.614l-0.292,0.580l-1.452,0.580l-2.617,2.033l0.872,1.452l-0.582,-0.289l-2.616,-1.163l-2.033,0.582l-1.455,-0.291l-1.453,0.581l-1.455,-1.163l-1.160,0.582l0.000,-0.291l-1.454,-1.161l-2.034,-0.290l-0.290,-0.872l-1.746,-0.290l-0.581,0.580l-1.454,-0.580l0.293,-0.580l-2.036,-0.291l1.453,0.872z",PR:"M291.219,180.148l1.455,0.000l0.581,0.581l-0.872,0.871l-2.035,0.000l-1.453,0.000l-0.291,-1.162l0.582,-0.290l-2.033,0.000z",PS:"M571.728,141.816l0.000,1.743l-0.581,0.871l-1.160,0.291l0.000,-0.581l0.871,-0.581l-0.871,-0.289l0.578,-1.743l-1.163,-0.289z",PT:"M448.769,115.683l1.163,-0.581l1.163,-0.291l0.581,1.162l1.744,0.000l0.291,-0.290l1.746,0.000l0.581,1.452l-1.163,0.870l0.000,2.033l-0.582,0.291l0.000,1.451l-1.162,0.291l1.162,1.452l-0.873,2.032l0.873,0.581l-0.291,0.871l-0.871,0.871l0.000,1.162l-0.874,0.581l-1.452,-0.290l-1.454,0.290l0.292,-2.324l-0.292,-1.451l-1.163,-0.291l-0.581,-1.162l0.291,-1.742l0.871,-1.160l0.292,-0.873l0.582,-1.741l0.000,-1.162l-0.582,-0.871l0.292,1.161z",PY:"M301.103,292.237l1.163,-3.485l0.000,-1.451l1.453,-2.324l4.652,-0.871l2.616,0.000l2.615,1.451l0.000,0.871l0.872,1.452l-0.291,3.776l2.907,0.581l1.163,-0.581l2.035,0.871l0.291,0.581l0.291,2.613l0.290,1.162l1.163,0.000l0.872,-0.290l1.163,0.290l0.000,1.741l-0.292,1.454l-0.580,1.742l-0.582,2.322l-2.325,2.032l-2.326,0.581l-3.197,-0.581l-2.617,-0.580l2.617,-4.354l-0.291,-1.162l-2.906,-1.161l-3.198,-2.034l-2.326,-0.290l5.232,4.356z",QA:"M613.587,162.725l0.000,-1.743l0.582,-1.452l0.873,-0.290l0.871,0.871l0.000,1.451l-0.581,1.744l-0.872,0.000l0.873,0.581z",RO:"M536.265,99.13l1.163,-0.581l1.744,0.581l1.745,0.000l1.163,0.581l1.162,-0.581l2.036,-0.291l0.579,-0.580l1.163,0.000l0.873,0.290l0.871,0.872l0.873,1.162l1.453,1.742l0.291,1.161l-0.291,1.161l0.291,1.163l1.452,0.580l1.166,-0.580l1.161,0.580l0.289,0.581l-1.450,0.581l-0.874,0.000l-0.872,3.194l-1.454,-0.290l-2.035,-0.872l-3.196,0.581l-1.452,0.581l-4.071,0.000l-2.035,-0.581l-1.164,0.291l-0.581,-1.162l-0.581,-0.581l0.581,-0.291l-0.581,-0.289l-0.871,0.580l-1.745,-0.872l-0.289,-1.161l-1.454,-0.580l-0.293,-0.872l-1.741,-1.161l2.325,-0.581l1.742,-1.741l1.164,-2.034l-1.743,0.581z",RS:"M531.325,106.1l1.454,0.580l0.289,1.161l1.745,0.872l0.871,-0.580l0.581,0.289l-0.581,0.291l0.581,0.581l-0.871,0.581l0.290,1.161l1.454,1.162l-1.164,0.871l-0.580,0.871l0.290,0.289l-0.290,0.292l-1.165,0.000l-1.161,0.290l0.000,-0.290l0.290,-0.292l0.292,-0.580l-0.292,0.000l-0.579,-0.580l-0.583,0.000l-0.290,-0.581l-0.581,-0.290l-0.293,-0.291l-0.581,0.291l-0.289,0.871l-0.582,0.000l0.290,0.000l-1.162,-0.581l-0.872,-0.290l-0.290,-0.581l-0.873,-0.290l0.581,-0.291l0.582,-1.161l-1.455,-1.162l0.581,-1.161l-0.871,0.000l1.163,-0.872l-0.873,-0.870l-0.871,-1.163l2.326,-0.580l1.455,0.000l1.741,1.161l-0.293,-0.872z",RU:"M869.098,91.29l2.907,4.936l-4.07-0.87l-1.743,4.065l2.614,2.613v2.033l-2.034-1.743l-1.743,2.323l-0.582-2.323l0.292-2.904l-0.292-2.904l0.582-2.033v-3.775l-1.454-2.613l0.291-3.774l2.326-1.162l-0.872-1.452l1.163-0.29l0.58,1.742l1.162,2.614l-0.29,2.903L869.098,91.29zM536.265,81.417l-4.94,0.29l-3.488-0.29l0.58-1.452l3.779-0.872l2.906,0.581l1.454,0.291l-0.582,0.871L536.265,81.417zM969.382,36.116l-3.196,0.291l-0.581-0.871l3.777-1.162h-0.01l0.58-0.29h2.326l3.779,0.872v0.29l-2.907,0.871h-3.778H969.382zM869.098,29.728h-4.069l-5.814-0.29l-0.582-0.29l2.618-1.162h3.488l4.067,0.872L869.098,29.728zM888.574,24.501l-3.198,1.162l-4.36-0.291l-4.942-1.16l0.582-0.873l5.232,0.291L888.574,24.501zM873.167,23.049l-2.324,2.033h-9.884l-4.651,0.58l-5.521-1.742l1.454-1.742l3.778-0.582h7.266L873.167,23.049zM632.19,36.407l-1.743,0.291l-9.012-0.291l-0.581-1.161l-4.941-0.872l-0.581-1.452l2.907-0.582V30.89l5.232-2.323l-2.325-0.291l6.393-2.613l-0.578-1.162l6.104-1.452l9.011-1.742l9.3-0.581l4.653-0.871l5.23-0.581l2.036,1.162l-1.745,0.871l-9.883,1.452l-8.43,1.162l-8.43,2.613l-4.069,2.614l-4.361,2.904l0.584,2.033L632.19,36.407zM969.382,52.379h-0.291l-3.486,1.161l-3.488-0.29l2.615,1.452l1.454,2.323l1.455,0.58l0.289,1.162l-0.873,0.872l-4.94-0.582l-7.849,2.033l-2.325,0.291l-4.362,2.033l-4.069,1.742l-0.871,1.161l-4.069-2.033l-6.977,2.324l-1.452-1.162l-2.618,1.162l-3.488-0.291l-0.871,1.742l-3.486,2.613l0.29,1.162l2.906,0.582l-0.291,4.064h-2.615l-1.163,2.324l1.163,1.161l-4.651,1.452l-1.163,3.194l-4.07,0.582l-0.87,2.903l-3.781,2.613l-1.162-2.032l-1.163-3.775l-1.454-6.389l1.164-3.775l2.324-1.453l0.291-1.451l4.36-0.581l4.942-3.484l4.649-2.904l4.943-2.033l2.326-3.775h-3.489l-1.744,2.324l-6.977,3.194l-2.034-3.485l-7.269,0.872l-6.975,4.646l2.325,1.742l-6.105,0.58l-4.359,0.291l0.291-2.032l-4.358-0.292l-3.199,1.453l-8.431-0.581l-9.01,0.871l-9.013,5.227l-10.463,6.679l4.357,0.29l1.165,1.743l2.615,0.581l1.744-1.452l3.196,0.291l3.78,2.904l0.29,2.323l-2.326,2.904v3.194l-1.452,4.356l-4.07,4.066l-0.87,1.741l-3.781,3.194l-3.777,3.194l-1.744,1.742l-3.488,1.452l-1.744,0.291l-1.744-1.453l-3.78,2.033l-0.579,0.871l-0.292-0.582v-1.161l1.454-0.291l0.29-3.194l-0.581-2.324l2.325-0.871l3.198,0.291l2.034-2.613l0.871-2.904l1.163-1.162l1.454-2.323l-4.651,0.871l-2.325,0.872h-4.361l-0.871-2.614l-3.488-1.742l-4.651-0.871l-1.16-2.904l-0.874-1.453l-0.871-1.161l-1.744-2.903l-2.617-1.162l-4.067-0.58h-3.491l-3.486,0.58l-2.325,1.162l1.452,0.871v1.452l-1.452,0.872l-2.328,2.903v1.162l-4.068,1.742l-3.197-1.162l-3.197,0.291l-1.452-0.871l-1.745-0.291l-4.069,2.033l-3.488,0.291l-2.616,0.872l-3.49-0.581h-2.615l-1.743-1.453l-2.615-1.162l-2.618-0.291l-3.486,0.291l-2.617,0.582l-4.069-1.162l-0.29-2.324l-3.488-0.58l-2.326-0.29l-3.196-1.162l-2.907,2.903l1.163,1.453l-2.617,2.033l-4.07-0.581l-2.617-0.29l-1.741-1.162h-2.908l-2.616-0.871l-4.068,1.161l-5.232,2.324l-2.907,0.582l-1.163,0.29l-1.454-1.742l-3.488,0.291l-1.163-1.162l-2.034-0.582l-1.16-1.452l-1.455-0.581l-4.069,0.872l-3.78-1.742l-1.453,1.451l-6.104-6.968l-3.488-2.033l0.871-0.871l-6.975,2.613h-2.617l0.29-1.451l-3.488-0.872l-2.906,0.581l-0.872-2.904l-4.941-0.581l-2.326,1.161l-6.977,1.162l-1.454,0.582l-10.172,0.872l-1.454,1.161l2.036,1.743l-2.617,0.87l0.581,0.581l-2.617,1.452l4.361,1.742l-0.581,1.453l-3.78-0.291l-0.871,0.872l-3.488-1.452l-4.36,0.29l-2.906,1.162l-3.488-1.162l-5.812-2.032h-4.361l-5.814,3.194l-0.289,2.033l-2.906-1.742l-2.036,3.195l0.58,0.29l-1.452,2.324l2.326,1.742h2.034l1.743,1.741l-0.289,1.453l1.452,0.581l-1.163,1.452l-2.906,0.581l-2.615,2.614l2.615,2.613l-0.289,2.032l2.906,3.194l-1.744,1.162l-0.29,0.581h-1.165l-2.033-1.743h-0.873l-1.745-0.871l-0.581-1.162l-2.614-0.58l-1.745,0.58l-0.581-0.58l-3.78-1.162l-3.778-0.581l-2.325-0.581l-0.581,0.581l-3.488-2.323l-3.197-1.161l-2.326-1.743l2.034-0.29l2.328-2.324l-1.455-1.162l4.07-1.162l-0.292-0.581l-2.323,0.581v-1.161l1.452-0.871l2.615-0.291l0.582-0.871l-0.582-1.452l1.163-1.451l-0.29-0.873l-4.07-0.871h-1.454l-1.744-1.162l-2.034,0.291l-3.488-0.871V91.29l-0.871-1.162h-2.327l-0.29-0.871l0.873-0.581l-1.744-1.742l-2.906,0.29h-0.872l-0.584,0.582h-1.16l-0.583-2.033l-0.871-0.872l0.581-0.291l2.326,0.291l1.163-0.58l-0.872-0.872l-2.036-0.581l0.292-0.29l-1.163-0.581l-1.743-1.742l0.578-0.871l-0.289-1.162l-2.615-0.581l-1.454,0.291l-0.29-0.872l-2.907-0.581l-0.871-1.742l-0.291-1.161l-1.455-0.582l1.163-0.871l-0.582-2.613l1.745-1.742l-0.291-0.291l3.199-1.742l-2.908-1.162l5.813-3.485l2.617-1.742l0.871-1.162l-4.069-2.032l1.162-1.742l-2.325-2.033l1.744-2.324l-3.198-3.194l2.617-2.033l-4.362-1.743l0.584-2.033l2.034-0.29l4.942-1.161l2.615-0.872l4.651,1.743l7.557,0.58l10.465,3.195l2.035,1.162v1.741l-2.906,1.453l-4.651,0.871l-12.21-2.033l-2.033,0.291l4.651,2.033v1.161l0.292,2.904l3.486,0.872l2.036,0.58l0.581-1.161l-1.746-1.162l1.746-1.162l6.685,1.742l2.326-0.581l-1.745-2.033l6.396-2.903l2.323,0.29l2.617,0.871l1.745-1.742l-2.326-1.742l1.163-1.742l-2.034-1.452l7.848,0.872l1.453,1.452l-3.489,0.289v1.453l2.326,1.162l4.361-0.582l0.581-2.033l5.812-1.161l9.594-2.323h2.034l-2.907,1.742l3.488,0.29l2.034-0.871h5.232l4.069-1.161l3.197,1.452l2.906-1.742l-2.906-1.453l1.454-1.162l8.14,0.872l3.778,0.871l10.176,3.194l1.742-1.452l-2.907-1.452v-0.581l-3.197-0.291l0.874-1.162l-1.455-2.323v-0.871l4.943-2.323l1.742-2.613l2.035-0.582l7.268,0.872l0.581,1.451l-2.615,2.324l1.743,0.871l0.872,1.742l-0.581,3.775l3.198,1.743l-1.165,1.742l-5.521,4.066l3.197,0.29l1.161-0.871l2.907-0.872l0.874-1.161l2.325-1.453l-1.744-1.452l1.454-1.742l-3.198-0.291l-0.582-1.451l2.326-2.904l-3.778-2.324l4.94-1.741l-0.581-2.033h1.453l1.454,1.452l-1.163,2.613l2.907,0.581l-1.162-2.033l4.65-0.872l5.522-0.29l5.232,1.451l-2.617-2.032l-0.29-3.195l4.94-0.291h6.688l5.812-0.29l-2.324-1.451l3.197-1.743l3.197-0.29l5.521-1.162l7.27-0.58l0.872-0.582l7.268-0.291l2.325,0.582l6.104-1.452h4.94l0.873-1.161l2.615-1.162l6.396-1.161l4.651,0.87l-3.489,0.872l6.104,0.291l0.874,1.452l2.324-0.871h8.141l6.104,1.452l2.325,1.162l-0.873,1.451l-2.907,0.581l-7.267,1.743l-2.036,0.581l3.49,0.58l4.068,0.581l2.326-0.581l1.452,1.743l1.165-0.581l4.359-0.582l9.013,0.582l0.579,1.161l11.628,0.582v-2.033l5.814,0.291h4.359l4.651,1.451l1.163,1.742l-1.745,1.162l3.488,2.323l4.36,1.161l2.615-2.904l4.653,1.162l4.65-0.871l5.233,0.871l2.034-0.581l4.648,0.29l-2.033-2.614l3.488-1.161l24.998,1.741l2.327,1.743l7.267,2.032l11.045-0.581l5.524,0.581l2.324,1.162l-0.58,2.033l3.486,0.581l3.78-0.581h4.941l4.94,0.581l5.234-0.29l4.938,2.323l3.488-0.872l-2.322-1.742l1.162-1.162l8.721,0.872l5.812-0.292l7.848,1.453l4.069,1.162h-0.01l6.976,2.033l6.977,2.614v1.742l1.744,0.871l-0.581-2.033l7.559,0.291l5.231,2.613l-2.616,1.162l-4.651,0.29v2.613l-1.161,0.581h-2.617l-2.034-0.871l-3.779-0.871l-0.582-1.162l-2.615-0.58l-3.199,0.58l-1.452-1.162l0.581-0.872l-3.198,0.582l1.165,1.452l-1.745,1.162H969.382zM762.998,15.499l-15.406,1.162l4.94-3.484l2.328-0.291h2.034l6.977,1.742L762.998,15.499zM614.46,9.401l-3.488,0.291l-2.617,0.29l-0.289,0.581l-3.199,0.291l-3.197-0.581l1.743-0.871h-6.104l5.233-0.581h4.359l0.291,0.581l1.744-0.581l2.618-0.291l4.067,0.581L614.46,9.401zM748.754,14.047l-5.812,0.29l-7.85-0.87l-4.359-0.872l-2.325-2.033l-3.779-0.581l7.268-1.742L738,7.369l5.232,1.452l6.396,2.614L748.754,14.047z", -RW:"M557.485,234.16l1.163,1.452l-0.289,1.741l-0.582,0.291l-1.454,-0.291l-0.874,1.743l-1.743,-0.290l0.293,-1.453l0.290,-0.290l0.000,-1.742l0.871,-0.580l0.582,0.290l-1.743,0.871z",SA:"M591.496,185.956l-0.291,-1.162l-0.873,-0.871l-0.290,-1.162l-1.453,-0.871l-1.454,-2.323l-0.582,-2.322l-2.034,-1.744l-1.163,-0.580l-1.743,-2.613l-0.292,-1.744l0.000,-1.741l-1.453,-2.904l-1.454,-1.162l-1.453,-0.580l-0.871,-1.452l0.000,-0.872l-0.581,-1.451l-0.874,-0.582l-1.162,-2.032l-1.452,-2.033l-1.456,-2.033l-1.452,0.000l0.290,-1.451l0.292,-0.871l0.292,-1.162l3.196,0.291l1.161,-0.582l0.581,-1.161l2.036,-0.290l0.581,-0.871l0.872,-0.581l-2.905,-2.614l5.522,-1.451l0.582,-0.582l3.488,0.873l4.067,2.032l7.561,5.517l5.230,0.000l2.326,0.290l0.873,1.452l1.743,0.000l1.165,2.323l1.452,0.581l0.289,0.871l2.036,1.162l0.290,1.162l-0.290,0.870l0.290,0.872l0.584,0.871l0.578,0.871l0.292,0.581l0.873,0.581l0.872,0.000l0.290,0.871l0.291,0.871l0.872,2.613l8.430,1.452l0.580,-0.580l1.165,2.031l-1.745,5.519l-8.430,2.613l-7.849,1.162l-2.615,1.161l-2.036,2.904l-1.163,0.291l-0.580,-0.873l-1.164,0.292l-2.615,-0.292l-0.582,-0.289l-3.197,0.000l-0.582,0.289l-1.161,-0.869l-0.873,1.451l0.289,1.161l1.161,-0.872z",SB:"M919.968,259.712l0.871,0.873h-2.034l-0.873-1.453l1.452,0.58H919.968zM916.48,257.972l-0.874,0.289l-1.743-0.289l-0.58-0.582v-1.161l2.034,0.581l0.873,0.58L916.48,257.972zM918.805,257.39l-0.291,0.582l-2.034-2.613l-0.582-1.453h0.871l0.873,2.033L918.805,257.39zM913.863,253.906v0.581l-2.034-1.161l-1.454-1.162l-1.161-0.871l0.579-0.29l1.164,0.871l2.326,1.161L913.863,253.906zM907.468,251.002l-0.581,0.29l-1.162-0.58l-1.163-1.162v-0.581l1.744,1.162L907.468,251.002z",SD:"M567.37,204.831l-0.582,0.000l0.000,-1.452l-0.292,-0.873l-1.453,-1.160l-0.292,-1.742l0.292,-2.033l-1.162,-0.291l-0.293,0.582l-1.452,0.289l0.582,0.582l0.291,1.742l-1.454,1.451l-1.453,2.033l-1.454,0.291l-2.325,-1.744l-1.163,0.582l0.000,0.871l-1.454,0.581l-0.290,0.582l-2.617,0.000l-0.289,-0.582l-2.035,0.000l-1.164,0.291l-0.581,-0.291l-1.452,-1.452l-0.584,-0.871l-2.033,0.581l-0.581,1.161l-0.872,2.324l-0.874,0.581l-0.872,0.289l-0.290,0.000l-0.871,-0.870l0.000,-0.870l0.289,-1.163l0.000,-1.162l-1.452,-1.742l-0.292,-1.162l0.000,-0.580l-1.162,-0.871l0.000,-1.453l-0.582,-1.161l-0.873,0.290l0.293,-1.161l0.580,-1.162l-0.289,-1.162l0.871,-0.870l-0.582,-0.581l0.872,-1.743l1.164,-2.032l2.324,0.291l0.000,-11.036l0.000,-0.870l3.199,-0.291l0.000,-5.228l11.045,0.000l10.755,0.000l10.755,0.000l0.874,2.615l-0.581,0.580l0.289,2.614l1.163,3.485l1.164,0.580l1.454,0.872l-1.454,1.742l-2.035,0.289l-0.874,0.873l-0.291,2.033l-1.161,4.065l0.290,0.870l-0.581,2.323l-0.872,2.904l-1.743,1.162l-1.163,2.322l-0.292,1.162l-1.454,0.582l-0.579,2.903l0.000,-0.291z",SE:"M534.813,50.346l-2.617,1.742l0.291,1.742l-4.362,2.324l-5.230,2.323l-2.036,3.774l2.036,2.033l2.615,1.452l-2.615,3.194l-2.907,0.581l-0.873,4.647l-1.744,2.613l-3.197,-0.291l-1.455,2.033l-3.196,0.291l-0.874,-2.614l-2.323,-3.194l-2.327,-3.776l1.455,-1.742l2.033,-1.742l1.162,-3.485l-1.743,-1.162l-0.290,-3.775l1.744,-2.612l2.907,0.000l0.873,-0.872l-1.165,-1.162l4.361,-3.774l2.907,-2.904l1.745,-2.033l2.615,0.000l0.582,-1.452l5.232,0.290l0.582,-1.742l1.744,-0.290l3.486,1.452l4.361,2.033l0.000,4.065l0.872,1.162l4.649,-0.871z",SI:"M511.848,102.905l2.326,0.291l1.162,-0.582l2.616,0.000l0.291,-0.580l0.582,0.000l0.582,1.162l-2.325,0.580l-0.293,1.162l-0.871,0.290l0.000,0.582l-1.163,0.000l-0.873,-0.291l-0.580,0.291l-1.743,0.000l0.581,-0.291l-0.581,-1.162l-0.289,1.452z",SK:"M525.802,94.774l0.000,0.291l1.160,-0.582l1.455,1.163l1.453,-0.581l1.455,0.291l2.033,-0.582l2.616,1.163l-0.872,0.870l-0.580,0.872l-0.582,0.290l-2.908,-0.872l-0.870,0.291l-0.582,0.581l-1.455,0.290l-0.289,0.000l-1.163,0.290l-1.163,0.290l-0.291,0.291l-2.324,0.581l-0.871,-0.290l-1.454,-0.872l-0.292,-0.870l0.292,-0.291l0.289,-0.581l1.165,0.000l0.871,-0.290l0.290,-0.291l0.289,-0.289l0.292,-0.581l0.582,0.000l0.580,-0.582l-0.874,0.000z",SL:"M442.376,212.381l-0.873,-0.291l-2.034,-1.161l-1.455,-1.452l-0.289,-0.871l-0.292,-2.033l1.455,-1.451l0.289,-0.582l0.292,-0.581l0.871,0.000l0.581,-0.580l2.326,0.000l0.582,0.871l0.581,1.163l0.000,0.870l0.582,0.581l0.000,1.161l0.581,-0.290l-1.163,1.451l-1.454,1.452l0.000,0.871l0.580,-0.872z",SN:"M427.84,193.505l-1.162,-2.032l-1.454,-1.161l1.164,-0.291l1.452,-2.032l0.582,-1.452l0.871,-0.872l1.456,0.291l1.452,-0.581l1.454,0.000l1.163,0.872l2.034,0.580l1.454,2.033l2.034,1.742l0.000,1.742l0.581,1.742l1.162,0.581l0.000,1.162l0.000,0.871l-0.289,0.290l-1.744,-0.290l0.000,0.290l-0.581,0.000l-2.036,-0.581l-1.453,0.000l-4.942,-0.290l-0.871,0.290l-0.874,0.000l-1.453,0.581l-0.291,-2.323l2.327,0.291l0.580,-0.581l0.582,0.000l1.163,-0.581l1.163,0.581l1.162,0.000l1.163,-0.581l-0.582,-0.872l-0.870,0.581l-0.873,0.000l-1.163,-0.581l-0.871,0.000l-0.581,0.581l2.909,0.000z",SO:"M610.681,199.023l1.452,-0.290l1.162,-0.871l1.165,0.000l0.000,0.871l-0.291,1.451l0.000,1.453l-0.582,1.161l-0.581,2.904l-1.452,2.904l-1.747,3.484l-2.323,4.066l-2.326,3.194l-3.199,3.775l-2.907,2.323l-4.068,2.613l-2.616,2.033l-2.908,3.486l-0.582,1.451l-0.580,0.581l-1.745,-2.323l0.000,-9.873l2.325,-3.196l0.874,-0.870l1.744,0.000l2.324,-2.033l3.780,0.000l7.850,-8.421l1.742,-2.323l1.163,-1.742l0.000,-1.452l0.000,-2.614l0.000,-1.161l0.290,0.000l0.873,0.000l-1.163,0.581z",SOL:"M608.355,204.831l-1.163,1.742l-1.742,2.323l-2.328,0.000l-9.010,-3.194l-1.163,-0.871l-0.873,-1.452l-1.163,-1.453l0.583,-1.161l1.161,-1.452l0.873,0.580l0.582,1.162l1.163,1.162l1.163,0.000l2.614,-0.580l3.199,-0.582l2.327,-0.580l1.452,-0.291l0.871,-0.580l1.744,0.000l-0.290,0.000l0.000,1.161l0.000,2.614l0.000,-1.452z",SR:"M316.509,214.415l3.198,0.580l0.290,-0.291l2.326,-0.289l2.907,0.580l-1.453,2.612l0.289,1.743l1.164,1.742l-0.582,1.161l-0.290,1.163l-0.581,1.162l-1.745,-0.581l-1.162,0.289l-1.163,-0.289l-0.291,0.870l0.581,0.581l-0.290,0.581l-1.454,-0.291l-1.744,-2.322l-0.291,-1.744l-0.872,0.000l-1.453,-2.032l0.581,-1.161l0.000,-0.872l1.453,-0.579l-0.582,2.613z",SS:"M567.37,204.831l0.000,2.322l-0.582,0.872l-1.455,0.000l-0.872,1.452l1.746,0.291l1.452,1.161l0.290,1.161l1.454,0.580l1.455,3.196l-1.745,1.741l-1.743,1.743l-1.745,1.162l-1.744,0.000l-2.326,0.580l-1.744,-0.580l-1.163,0.870l-2.325,-2.032l-0.874,-1.162l-1.450,0.581l-1.166,0.000l-0.873,0.291l-1.161,-0.291l-1.743,-2.323l-0.292,-0.871l-2.034,-0.871l-0.873,-1.743l-1.163,-1.161l-1.743,-1.452l0.000,-0.871l-1.452,-1.162l-2.037,-1.162l0.872,-0.289l0.874,-0.581l0.872,-2.324l0.581,-1.161l2.033,-0.581l0.584,0.871l1.452,1.452l0.581,0.291l1.164,-0.291l2.035,0.000l0.289,0.582l2.617,0.000l0.290,-0.582l1.454,-0.581l0.000,-0.871l1.163,-0.582l2.325,1.744l1.454,-0.291l1.453,-2.033l1.454,-1.451l-0.291,-1.742l-0.582,-0.582l1.452,-0.289l0.293,-0.582l1.162,0.291l-0.292,2.033l0.292,1.742l1.453,1.160l0.292,0.873l0.000,1.452l-0.582,0.000z",SV:"M232.211,194.086l-0.291,0.581l-1.743,0.000l-0.872,-0.290l-1.164,-0.581l-1.452,0.000l-0.873,-0.581l0.000,-0.580l0.873,-0.581l0.580,-0.291l0.000,-0.290l0.581,-0.291l0.873,0.291l0.582,0.581l0.872,0.581l0.000,0.289l1.161,-0.289l0.582,0.000l0.291,0.289l0.000,-1.162z",SY:"M580.45,139.204l-5.234,2.903l-3.195,-1.161l0.289,-0.290l0.000,-1.162l0.873,-1.452l1.452,-1.161l-0.581,-1.162l-1.163,0.000l-0.290,-2.033l0.582,-1.161l0.871,-0.582l0.581,-0.580l0.290,-1.742l0.873,0.580l2.907,-0.870l1.454,0.581l2.327,0.000l3.196,-0.872l1.453,0.000l3.197,-0.581l-1.454,1.742l-1.454,0.872l0.292,2.032l-1.163,3.195l6.103,-2.904z",SZ:"M562.136,304.433l-0.581,1.161l-1.744,0.290l-1.452,-1.451l-0.292,-0.871l0.870,-1.161l0.293,-0.581l0.872,-0.290l1.163,0.580l0.580,1.161l-0.291,-1.162z",TD:"M513.593,195.538l0.289,-1.161l-1.742,-0.291l0.000,-1.742l-1.165,-0.871l1.165,-3.775l3.486,-2.614l0.292,-3.484l1.164,-5.517l0.581,-1.162l-1.163,-0.871l0.000,-0.871l-1.164,-0.871l-0.581,-4.357l2.616,-1.451l11.046,5.226l11.045,5.227l0.000,11.036l-2.324,-0.291l-1.164,2.032l-0.872,1.743l0.582,0.581l-0.871,0.870l0.289,1.162l-0.580,1.162l-0.293,1.161l0.873,-0.290l0.582,1.161l0.000,1.453l1.162,0.871l0.000,0.580l-1.744,0.581l-1.452,1.161l-2.034,2.905l-2.617,1.452l-2.618,-0.291l-0.871,0.291l0.292,0.870l-1.454,0.872l-1.163,1.161l-3.488,1.162l-0.582,-0.580l-0.579,-0.291l-0.293,0.871l-2.325,0.290l0.290,-0.870l-0.872,-1.743l-0.289,-1.161l-1.165,-0.581l-1.742,-1.743l0.579,-1.161l1.455,0.289l0.581,-0.289l1.453,0.000l-1.453,-2.324l0.292,-2.032l-0.292,-1.743l1.162,1.742z",TF:"M663.583,364.542l1.746,0.872l2.617,0.581l0.000,0.291l-0.584,1.452l-4.360,0.000l0.000,-1.452l0.292,-1.161l-0.289,0.583z",TG:"M479,214.123l-2.324,0.581l-0.582,-1.162l-0.872,-1.742l0.000,-1.162l0.581,-2.613l-0.871,-0.872l-0.292,-2.322l0.000,-2.033l-0.871,-1.161l0.000,-0.872l2.616,0.000l-0.582,1.452l0.873,0.871l0.872,0.871l0.291,1.454l0.579,0.289l-0.290,6.388l-0.872,-2.033z",TH:"M756.022,197.571l-2.325,-1.452l-2.325,0.000l0.290,-2.033l-2.326,0.000l-0.291,2.904l-1.454,4.065l-0.871,2.613l0.290,1.745l1.744,0.289l1.163,2.323l0.291,2.613l1.745,1.452l1.453,0.291l1.454,1.452l-0.873,1.162l-1.744,0.289l-0.290,-1.451l-2.326,-1.163l-0.291,0.582l-1.163,-1.162l-0.582,-1.452l-1.452,-1.452l-1.163,-1.161l-0.582,1.452l-0.581,-1.452l0.292,-1.742l0.871,-2.615l1.452,-2.903l1.454,-2.614l-1.162,-2.322l0.290,-1.452l-0.582,-1.453l-1.741,-2.322l-0.582,-1.162l0.871,-0.580l1.163,-2.323l-1.163,-2.034l-1.744,-1.742l-1.455,-2.613l1.165,-0.290l1.163,-3.194l2.034,0.000l1.743,-1.163l1.454,-0.580l1.163,0.580l0.290,1.744l1.743,0.289l-0.579,2.904l0.000,2.323l2.907,-1.742l0.871,0.581l1.452,0.000l0.582,-0.871l2.036,0.000l2.325,2.323l0.000,2.613l2.327,2.324l-0.291,2.323l-0.872,1.451l-2.326,-0.581l-3.781,0.581l-1.741,2.323l-0.580,-3.485z",TJ:"M669.108,120.329l-0.873,0.871l-2.906,-0.582l-0.291,1.743l2.908,-0.290l3.488,0.871l5.233,-0.291l0.579,2.324l0.874,-0.291l1.743,0.582l0.000,1.160l0.292,1.742l-2.909,0.000l-1.745,-0.290l-1.744,1.162l-1.162,0.291l-1.161,0.581l-0.873,-0.872l0.000,-2.323l-0.581,0.000l0.291,-0.871l-1.454,-0.871l-1.455,1.161l-0.290,1.161l-0.289,0.291l-1.745,0.000l-0.872,1.162l-0.872,-0.582l-2.036,0.872l-0.871,-0.290l1.744,-2.614l-0.582,-2.032l-2.033,-0.871l0.579,-1.162l2.328,0.290l1.452,-1.743l0.872,-1.741l3.488,-0.582l-0.581,1.163l0.581,0.871l-0.873,0.000z",TL:"M817.647,255.359l0.580,-0.582l2.327,-0.580l1.744,-0.291l0.871,-0.290l1.164,0.290l-1.164,0.871l-2.905,1.162l-2.037,0.871l-0.290,-0.871l0.290,0.580z",TM:"M642.364,132.815l-0.289,-2.323l-2.034,0.000l-3.200,-2.324l-2.325,-0.290l-2.907,-1.452l-2.034,-0.290l-1.162,0.581l-1.745,-0.291l-2.036,1.742l-2.323,0.582l-0.582,-2.033l0.289,-2.904l-2.033,-0.871l0.581,-2.033l-1.743,0.000l0.578,-2.323l2.617,0.581l2.326,-0.872l-2.033,-1.742l-0.582,-1.451l-2.328,0.581l-0.289,2.032l-0.871,-1.742l1.160,-0.871l3.199,-0.581l2.034,0.871l1.744,2.033l1.455,0.000l3.199,0.000l-0.583,-1.452l2.325,-0.871l2.325,-1.742l3.778,1.451l0.292,2.324l1.163,0.580l2.907,-0.290l0.871,0.580l1.455,2.904l2.906,1.742l2.034,1.453l2.909,1.162l3.487,1.160l0.000,1.742l-0.871,0.000l-1.164,-0.871l-0.580,1.162l-2.326,0.291l-0.583,2.323l-1.454,0.870l-2.325,0.291l-0.581,1.452l-2.034,0.291l2.617,1.162z",TN:"M499.931,147.625l-1.163,-4.936l-1.745,-1.162l0.000,-0.581l-2.325,-1.742l-0.290,-2.034l1.745,-1.451l0.579,-2.323l-0.290,-2.614l0.581,-1.451l2.908,-1.163l2.034,0.291l-0.291,1.453l2.325,-0.872l0.292,0.291l-1.454,1.451l0.000,1.161l1.162,0.872l-0.580,2.324l-1.745,1.451l0.582,1.452l1.452,0.000l0.583,1.452l1.163,0.290l-0.291,2.032l-1.164,0.873l-0.872,0.870l-2.034,1.162l0.290,1.161l-0.290,1.162l1.162,-0.581z",TR:"M575.509,117.135l3.777,1.161l3.199-0.291l2.323,0.291l3.489-1.451l2.906-0.291l2.615,1.452l0.292,0.872l-0.292,1.452l2.036,0.58l1.162,0.872l-1.743,0.871l0.87,2.904l-0.579,0.871l1.452,2.324l-1.452,0.581l-0.873-0.872l-3.197-0.291l-1.164,0.291l-3.196,0.581h-1.453l-3.196,0.872h-2.327l-1.454-0.581l-2.906,0.871l-0.873-0.58l-0.29,1.742l-0.581,0.58l-0.871,0.582l-0.873-1.452l0.873-0.872l-1.455,0.291l-2.325-0.871l-2.033,1.742l-4.07,0.29l-2.326-1.452h-2.906l-0.582,1.162l-2.036,0.29l-2.615-1.452h-2.906l-1.744-2.904l-2.034-1.452l1.455-2.033l-1.747-1.452l2.907-2.613h4.361l1.163-2.033l5.232,0.29l3.197-1.742l3.196-0.871h4.65L575.509,117.135zM548.764,119.167l-2.325,1.451l-0.871-1.451v-0.581l0.581-0.291l0.871-1.742l-1.452-0.581l2.907-0.871l2.324,0.29l0.291,1.162l2.615,0.872l-0.58,0.58l-3.198,0.291L548.764,119.167z",TT:"M304.01,201.346l1.454,-0.291l0.581,0.000l0.000,2.033l-2.326,0.291l-0.581,-0.291l0.872,-0.582l0.000,1.160z",TW:"M808.926,163.886l-1.744,4.356l-1.163,2.322l-1.452,-2.322l-0.292,-2.033l1.744,-2.614l2.325,-2.322l1.163,0.871l0.581,-1.742z",TZ:"M567.077,233.58l0.582,0.289l9.883,5.517l0.291,1.742l3.780,2.615l-1.163,3.484l0.000,1.452l1.744,1.161l0.292,0.581l-0.873,1.743l0.289,0.871l-0.289,1.162l0.873,1.742l1.161,2.903l1.162,0.581l-2.323,1.452l-2.907,1.162l-1.746,0.000l-0.872,0.581l-2.036,0.289l-0.581,0.291l-3.486,-0.872l-2.036,0.292l-0.582,-3.776l-1.163,-1.161l-0.289,-0.871l-2.907,-0.581l-1.456,-0.870l-1.743,-0.291l-1.161,-0.581l-1.162,-0.581l-1.455,-3.485l-1.744,-1.452l-0.290,-1.742l0.290,-1.452l-0.581,-2.324l1.163,-0.289l0.872,-0.870l1.163,-1.454l0.582,-0.580l0.000,-0.872l-0.582,-0.871l0.000,-0.871l0.582,-0.291l0.289,-1.741l-1.163,-1.452l0.874,-0.291l3.196,0.000l-5.522,0.289z",UA:"M561.265,87.806l1.160,0.000l0.584,-0.582l0.872,0.000l2.907,-0.290l1.744,1.742l-0.873,0.581l0.290,0.871l2.327,0.000l0.871,1.162l0.000,0.581l3.488,0.870l2.034,-0.290l1.745,1.162l1.454,0.000l4.070,0.870l0.290,0.873l-1.163,1.451l0.582,1.452l-0.582,0.871l-2.615,0.291l-1.452,0.871l0.000,1.161l-2.329,0.292l-1.744,0.869l-2.615,0.000l-2.323,1.162l0.289,1.743l1.161,0.581l2.907,-0.290l-0.580,1.161l-2.906,0.290l-3.781,1.742l-1.452,-0.581l0.582,-1.451l-3.198,-0.581l0.579,-0.580l2.619,-0.872l-0.874,-0.581l-4.068,-0.871l-0.292,-0.872l-2.614,0.291l-0.874,1.452l-2.325,2.033l-1.161,-0.580l-1.166,0.580l-1.452,-0.580l0.872,-0.291l0.291,-0.872l0.872,-0.871l-0.291,-0.580l0.581,-0.291l0.293,0.581l1.743,0.000l0.581,-0.290l-0.290,-0.291l0.000,-0.291l-0.873,-0.580l-0.290,-1.162l-1.164,-0.580l0.293,-0.871l-1.166,-0.872l-1.162,0.000l-2.034,-0.870l-2.033,0.290l-0.584,0.290l-1.163,0.000l-0.579,0.580l-2.036,0.291l-1.162,0.581l-1.163,-0.581l-1.745,0.000l-1.744,-0.581l-1.163,0.581l-0.291,-0.581l-1.452,-0.870l0.580,-0.872l0.872,-0.870l0.582,0.289l-0.872,-1.452l2.617,-2.033l1.452,-0.580l0.292,-0.580l-1.455,-2.614l1.163,0.000l1.746,-0.581l2.035,-0.291l2.615,0.291l3.196,0.581l2.036,0.290l1.163,0.291l1.162,-0.581l0.583,0.581l2.615,0.000l0.873,0.289l0.290,-1.451l0.870,-0.580l-2.328,0.000z",UG:"M561.555,233.869l-3.196,0.000l-0.874,0.291l-1.743,0.871l-0.582,-0.290l0.000,-2.324l0.582,-0.871l0.291,-2.324l0.581,-1.161l1.163,-1.451l0.871,-0.872l0.873,-0.871l-1.162,-0.289l0.289,-3.196l1.163,-0.870l1.744,0.580l2.326,-0.580l1.744,0.000l1.745,-1.162l1.452,1.742l0.291,1.452l1.163,3.194l-1.163,2.033l-1.164,1.742l-0.872,1.161l0.000,2.906l5.522,-0.289z",US:"M45.593,178.406l-0.292,0.581l-0.873-0.581l0.292-0.581l-0.582-1.162l0.29-0.291l0.292-0.29l-0.292-0.582l0.292-0.29h0.291l0.872,0.581l0.582,0.291l0.581,0.29l0.582,0.872v0.29l-1.162,0.581L45.593,178.406zM44.14,174.05l-0.872,0.29l-0.582-0.581l-0.292-0.29l0.292-0.291l0.872,0.291l0.872,0.29L44.14,174.05zM42.395,172.598l-0.29,0.291h-1.453l0.29-0.291H42.395zM39.779,172.308v0.29l-0.291-0.29h-0.873l-0.582-0.582l0.873-0.581v0.291L39.779,172.308zM35.128,170.564l-0.291,0.292l-0.872-0.582v-0.291l0.581-0.29l0.582,0.29V170.564zM212.735,95.065l0.582,1.452l0.871,0.581l1.744,0.291l2.907,0.291l2.616,0.871l2.325-0.291l3.488,0.581h0.872l2.326-0.87l2.617,1.161l2.616,1.162l2.326,0.872l2.035,0.871l0.291,0.58l0.582,0.291v0.291h0.58l0.583-0.291l0.29,0.871l0.583,0.291h0.581l0.581,0.29l-0.581,0.581l2.906,1.162l0.583,2.613l0.58,2.323l-0.872,1.742l-1.163,1.451l-0.581,0.873v0.29l0.292,0.581l0.872,0.29h0.581l3.197-1.452l2.907-0.29l3.488-1.453l0.291-0.291l-0.291-0.871l-0.582-0.581l1.454-0.291h2.616h2.616l0.872-1.162l0.291-0.29l2.907-1.743l1.163-0.581h4.07h5.232l0.292-0.871h0.872l1.162-0.58l0.872-1.162l0.873-2.033l2.035-2.032l0.872,0.581l2.035-0.581l1.163,0.87v3.775l1.744,1.452l0.582,1.161l-2.907,1.162l-2.907,0.872l-2.907,0.872l-1.453,1.742l-0.582,0.581v1.453l0.872,1.451h1.163l-0.291-0.871l0.872,0.581l-0.291,0.871l-1.744,0.291h-1.162l-2.036,0.581h-1.452l-1.454,0.291l-2.326,0.58l4.07-0.291l0.872,0.291l-4.07,0.872H270l0.291-0.29l-0.872,0.872h0.872l-0.582,2.032l-2.035,2.033l-0.291-0.58l-0.582-0.291l-0.872-0.581l0.582,1.452l0.582,0.58v0.873l-0.873,1.161l-1.453,2.033h-0.291l0.873-1.742l-1.454-1.162l-0.291-2.322l-0.58,1.16l0.58,1.743l-1.744-0.291l1.744,0.871l0.291,2.614l0.873,0.291l0.291,0.871l0.291,2.613l-1.745,2.033l-2.907,0.871l-1.743,1.742H257.5l-1.452,1.162l-0.291,0.87l-2.907,1.744l-1.744,1.451l-1.163,1.452l-0.582,2.033l0.582,1.742l0.873,2.614l1.163,1.742v1.161l1.453,3.195v2.032l-0.29,0.871l-0.582,1.742l-0.873,0.291l-1.453-0.291l-0.291-1.161l-1.163-0.582l-1.454-2.323l-1.162-2.032l-0.583-1.161l0.583-1.743l-0.583-1.742l-2.325-2.323l-0.873-0.291l-2.906,1.162h-0.581l-1.163-1.451l-1.744-0.581l-3.197,0.29l-2.326-0.29l-2.326,0.29l-0.872,0.291l0.292,0.87v1.162l0.581,0.582l-0.581,0.29l-0.872-0.581l-1.164,0.581h-2.034l-2.035-1.452l-2.325,0.291l-2.035-0.581l-1.745,0.29l-2.325,0.581l-2.325,2.033l-2.908,1.162l-1.452,1.162l-0.582,1.451v1.742v1.452l0.582,0.871h-1.163l-1.744-0.58l-2.326-0.872l-0.581-1.162l-0.582-2.033l-1.744-1.452l-0.873-1.742l-1.453-1.742l-2.034-1.162h-2.036l-1.743,2.323l-2.326-0.871l-1.454-0.871l-0.872-1.453l-0.872-1.451l-1.454-1.162l-1.454-0.871l-1.163-1.162h-4.65v1.162h-2.326h-5.232l-6.395-1.742l-4.07-1.451l0.29-0.582l-3.487,0.291l-3.198,0.291l-0.581-1.453l-1.744-1.451l-1.163-0.582l-0.291-0.58l-1.743-0.291l-0.872-0.581l-2.616-0.29l-0.582-0.582l-0.291-1.452l-2.908-2.904l-2.034-3.775v-0.582l-1.163-0.871l-2.326-2.323l-0.291-2.322l-1.454-1.453l0.582-2.322v-2.324l-0.872-2.032l0.872-2.614l0.582-2.613l0.291-2.323l-0.581-3.775l-0.873-2.323l-0.872-1.162l0.291-0.58l4.069,0.87l1.454,2.613l0.581-0.87l-0.291-2.033l-0.872-2.324h7.849h8.139h2.616h8.43h8.14h8.138h8.43h9.302h9.302h5.813v-1.161H212.735zM52.569,73.867l-2.616,1.162l-1.454-0.871l-0.581-1.162l2.616-1.162l1.454-0.29l1.744,0.29l1.163,0.871L52.569,73.867zM17.978,66.316l-1.744,0.291l-1.745-0.581l-1.744-0.582l2.907-0.581l2.035,0.291L17.978,66.316zM1.118,55.572l1.744,0.582l1.744-0.291l2.035,0.581l2.907,0.581l-0.291,0.29l-2.035,0.581l-2.326-0.87l-0.872-0.291H1.409l-0.582-0.29L1.118,55.572zM47.046,35.246l1.744,1.161l1.453-0.291h4.651l-0.291,0.582l4.36,0.58l2.617-0.29l5.813,0.871l5.232,0.29l2.326,0.291l3.488-0.291l4.36,0.581l2.907,0.581v10.164v15.681h2.616l2.616,0.872l2.035,1.162L95.3,68.93l2.906-1.452l2.616-0.871l1.454,1.451l1.744,1.162l2.616,1.162l1.744,2.033l2.908,2.903l4.65,1.742v1.743l-1.454,1.452l-1.454-1.162l-2.615-0.871l-0.583-2.323l-3.778-2.323l-1.454-2.324l-2.616-0.291h-4.361l-3.197-0.871l-5.814-2.903l-2.616-0.581l-4.651-0.872l-3.778,0.291l-5.523-1.453l-3.198-1.161l-3.197,0.581l0.581,2.033l-1.454,0.29l-3.196,0.58l-2.326,0.873l-3.198,0.581l-0.291-1.742l1.163-2.614l2.907-0.871l-0.582-0.581l-3.488,1.452l-2.035,1.742l-4.07,2.033l2.035,1.161l-2.617,2.033l-2.907,1.162l-2.616,0.871l-0.872,1.162l-4.07,1.451l-0.872,1.452l-3.198,1.162l-2.035-0.29l-2.615,0.871l-2.617,0.87l-2.326,0.872l-4.65,0.871l-0.581-0.582l2.907-1.162l2.906-0.87l2.907-1.453l3.489-0.291l1.163-1.161l3.779-1.742l0.582-0.581l2.035-0.873l0.58-2.033l1.455-1.742l-3.198,0.872l-0.872-0.582L36,70.382l-1.745-1.453l-0.872,0.872l-1.162-1.162l-2.617,0.871h-1.743l-0.292-1.453l0.581-1.162l-1.744-0.87l-3.487,0.581l-2.326-1.452l-2.035-0.581v-1.452l-2.035-1.162l1.163-1.742l2.035-1.452l1.163-1.452l2.035-0.29l2.034,0.58l2.036-1.451l2.035,0.29l2.326-0.872l-0.583-1.161l-1.743-0.582l2.034-1.162h-1.453l-2.906,0.871l-0.873,0.581l-2.325-0.581l-3.779,0.291l-4.07-0.871l-1.163-0.871l-3.487-1.742l3.778-1.162l6.105-1.451h2.325l-0.29,1.451h5.814l-2.327-1.742l-3.197-1.162l-2.034-1.162l-2.616-1.161l-3.779-0.871l1.455-1.452l4.941-0.291l3.488-1.162l0.582-1.453l2.906-1.161l2.617-0.291L36,36.116h2.616l4.07-1.452L47.046,35.246z",UY:"M315.056,314.017l1.744,-0.292l2.907,2.033l0.872,0.000l2.907,1.743l2.325,1.451l1.454,2.032l-1.163,1.164l0.872,1.740l-1.453,1.742l-2.907,1.453l-2.035,-0.582l-1.454,0.291l-2.616,-1.162l-2.035,0.000l-1.453,-1.452l0.000,-1.741l0.872,-0.580l-0.291,-2.905l0.872,-2.614l-0.582,2.321z",UZ:"M656.899,128.168l0.000,-1.742l-3.487,-1.160l-2.909,-1.162l-2.034,-1.453l-2.906,-1.742l-1.455,-2.904l-0.871,-0.580l-2.907,0.290l-1.163,-0.580l-0.292,-2.324l-3.778,-1.451l-2.325,1.742l-2.325,0.871l0.583,1.452l-3.199,0.000l0.000,-10.164l6.976,-1.742l0.580,0.291l4.071,2.031l2.324,0.872l2.618,2.614l3.196,-0.291l4.944,-0.290l3.196,2.032l-0.290,2.614l1.453,0.000l0.581,2.323l3.489,0.000l0.580,1.452l1.163,0.000l1.163,-2.032l3.779,-2.033l1.454,-0.291l0.872,0.291l-2.326,1.742l2.035,0.871l2.034,-0.580l3.199,1.451l-3.488,2.032l-2.326,-0.289l-0.873,0.000l-0.581,-0.871l0.581,-1.163l-3.488,0.582l-0.872,1.741l-1.452,1.743l-2.328,-0.290l-0.579,1.162l2.033,0.871l0.582,2.032l-1.744,2.614l-2.035,-0.582l1.453,0.000z",VE:"M277.558,198.442l-0.290,0.871l-1.454,0.291l0.872,1.161l0.000,1.452l-1.454,1.451l1.164,2.324l1.162,-0.290l0.582,-1.743l-0.872,-1.161l0.000,-2.033l3.487,-1.161l-0.582,-1.162l1.163,-0.871l0.872,1.742l2.035,0.291l1.744,1.451l0.000,0.871l2.617,0.000l2.907,-0.289l1.452,1.161l2.326,0.290l1.455,-0.582l0.000,-0.869l3.487,0.000l3.198,-0.291l-2.326,0.871l0.872,1.451l2.326,0.000l2.034,1.454l0.291,2.323l1.453,-0.292l1.164,0.872l-2.036,1.452l-0.290,1.161l0.872,0.871l-0.582,0.581l-1.743,0.580l0.000,1.163l-0.873,0.582l2.035,2.322l0.291,0.580l-0.872,1.162l-3.198,0.871l-2.035,0.580l-0.581,0.582l-2.326,-0.582l-2.034,-0.290l-0.582,0.000l1.163,0.872l0.000,1.741l0.292,1.744l2.324,0.289l0.291,0.581l-2.035,0.871l-0.291,1.162l-1.162,0.291l-2.036,0.870l-0.580,0.582l-2.036,0.289l-1.452,-1.451l-0.872,-2.614l-0.873,-1.162l-0.872,-0.580l1.454,-1.453l-0.291,-0.580l-0.582,-0.580l-0.581,-2.033l0.000,-2.033l0.872,-0.871l0.291,-1.452l-0.872,-0.290l-1.454,0.290l-2.034,-0.290l-1.163,0.290l-2.035,-2.323l-1.453,-0.291l-3.488,0.291l-0.872,-1.162l-0.583,0.000l0.000,-0.581l0.292,-1.161l-0.292,-1.161l-0.580,-0.582l-0.291,-1.161l-1.453,-0.290l0.581,-1.452l0.582,-2.033l0.581,-1.162l1.163,-0.580l0.581,-1.452l-2.035,0.581z",VN:"M771.137,171.726l-3.488,2.324l-2.326,2.614l-0.581,1.742l2.034,2.904l2.617,3.774l2.325,1.743l1.744,2.033l1.163,5.226l-0.290,4.647l-2.327,2.032l-3.195,1.741l-2.037,2.325l-3.486,2.322l-1.164,-1.740l0.872,-1.745l-2.034,-1.451l2.326,-1.162l2.906,-0.290l-1.162,-1.742l4.651,-2.033l0.289,-3.194l-0.581,-2.033l0.581,-2.614l-0.870,-2.032l-2.036,-1.742l-1.745,-2.614l-2.325,-3.194l-3.197,-1.742l0.870,-0.872l1.747,-0.580l-1.165,-2.614l-3.488,0.000l-1.161,-2.322l-1.454,-2.324l1.454,-0.580l2.034,0.000l2.615,-0.291l2.329,-1.451l1.452,0.870l2.615,0.581l-0.581,1.742l1.454,0.872l-2.615,-0.870z",VU:"M935.666,276.266l-0.872,0.291l-0.874-1.163v-0.871L935.666,276.266zM933.628,271.91l0.583,2.324l-0.874-0.292h-0.58l-0.29-0.58v-2.322L933.628,271.91z",WS:"M449.643,156.336l-0.292,-1.452l0.581,0.000l0.000,0.290l0.000,0.291l0.000,4.355l-9.011,-0.290l0.000,7.261l-2.615,0.000l-0.581,1.451l0.581,4.066l-11.046,0.000l-0.582,0.871l0.289,-1.162l6.107,-0.291l0.290,-0.870l1.162,-1.162l0.874,-3.775l4.069,-3.194l1.162,-3.485l0.872,0.000l0.873,-2.323l2.324,-0.291l1.165,0.581l1.161,0.000l0.872,-0.871l-1.745,0.000z",YE:"M619.983,185.084l-2.034,0.872l-0.583,1.161l0.000,0.872l-2.616,1.160l-4.651,1.453l-2.326,1.742l-1.162,0.291l-0.871,-0.291l-1.744,1.161l-1.745,0.581l-2.327,0.291l-0.580,0.000l-0.581,0.871l-0.582,0.000l-0.581,0.871l-1.455,-0.290l-0.870,0.580l-1.745,-0.290l-0.873,-1.452l0.292,-1.452l-0.581,-0.871l-0.581,-2.032l-0.874,-1.163l0.583,-0.289l-0.291,-1.162l0.582,-0.581l-0.291,-1.161l1.161,-0.872l-0.289,-1.161l0.873,-1.451l1.161,0.869l0.582,-0.289l3.197,0.000l0.582,0.289l2.615,0.292l1.164,-0.292l0.580,0.873l1.163,-0.291l2.036,-2.904l2.615,-1.161l7.849,-1.162l2.325,4.645l-0.873,-1.743z",ZA:"M560.392,311.403l-0.29,0.291l-1.165,1.451l-0.87,1.451l-1.453,2.034l-3.198,2.902l-2.034,1.451l-2.036,1.453l-2.906,0.871l-1.452,0.29l-0.293,0.58l-1.743-0.29l-1.161,0.581l-3.199-0.581l-1.452,0.29h-1.164l-2.906,0.872l-2.325,0.58l-1.744,0.871l-1.162,0.29l-1.163-1.161h-0.871l-1.454-1.161v0.292l-0.29-0.583v-1.741l-0.873-1.742l0.873-0.581v-2.032l-2.034-2.613l-1.165-2.323l-2.034-3.484l1.163-1.453l1.163,0.58l0.582,1.162l1.162,0.29l1.744,0.581l1.452-0.29l2.325-1.451v-10.163l0.874,0.58l1.741,2.613l-0.289,1.741l0.582,0.872l2.033-0.29l1.164-1.162l1.452-0.87l0.582-1.453l1.454-0.58l1.162,0.29l1.162,0.872h2.326l1.744-0.582l0.289-0.87l0.584-1.161l1.452-0.293l0.874-1.16l0.871-1.742l2.324-2.032l4.07-2.033h1.163l1.163,0.581l0.871-0.289l1.454,0.289l1.452,3.774l0.582,2.033l-0.29,2.903v1.162l-1.163-0.58l-0.872,0.29l-0.293,0.581l-0.87,1.161l0.292,0.871l1.452,1.451l1.744-0.29l0.581-1.161h2.034l-0.582,2.031l-0.579,2.323l-0.584,1.162L560.392,311.403zM553.416,310.531l-1.162-0.87l-1.163,0.579l-1.453,1.163l-1.454,1.742l2.036,2.032l0.871-0.291l0.581-0.869l1.454-0.292l0.58-0.871l0.873-1.451L553.416,310.531z",ZM:"M563.881,256.229l1.452,1.452l0.582,2.322l-0.582,0.582l-0.290,2.322l0.290,2.323l-0.872,0.873l-0.580,2.612l1.452,0.580l-8.429,2.325l0.292,2.033l-2.036,0.289l-1.744,1.162l-0.291,0.871l-0.872,0.291l-2.616,2.322l-1.454,1.744l-0.872,0.000l-0.872,-0.291l-3.197,-0.291l-0.291,-0.291l-0.290,-0.289l-0.871,-0.582l-1.745,0.000l-2.326,0.582l-1.745,-1.744l-2.034,-2.322l0.289,-8.711l5.524,0.000l0.000,-0.873l0.292,-1.161l-0.583,-1.161l0.291,-1.452l-0.291,-0.871l1.164,0.290l0.000,0.872l1.454,-0.291l1.743,0.291l0.871,1.452l2.036,0.291l1.745,-0.873l0.581,1.452l2.325,0.291l0.872,1.162l1.163,1.451l2.033,0.000l-0.289,-2.904l-0.581,0.581l-2.035,-1.160l-0.584,-0.291l0.293,-2.904l0.580,-3.195l-0.873,-1.161l0.873,-1.742l0.873,-0.290l3.490,-0.581l1.163,0.290l1.162,0.581l1.161,0.581l1.743,0.291l-1.456,-0.870z",ZW:"M559.521,292.237l-1.454,-0.289l-0.871,0.289l-1.163,-0.581l-1.163,0.000l-1.745,-1.162l-2.326,-0.579l-0.580,-1.744l0.000,-0.870l-1.455,-0.292l-2.907,-2.903l-0.870,-1.742l-0.582,-0.580l-1.163,-2.034l3.197,0.291l0.872,0.291l0.872,0.000l1.454,-1.744l2.616,-2.322l0.872,-0.291l0.291,-0.871l1.744,-1.162l2.036,-0.289l0.000,0.870l2.325,0.000l1.452,0.581l0.582,0.582l1.163,0.289l1.452,0.871l0.000,3.486l-0.582,2.032l0.000,2.033l0.293,0.870l-0.293,1.452l-0.289,0.290l-0.874,2.033l2.904,-3.195z"}}}}),b}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_mercator.js b/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_mercator.js deleted file mode 100644 index 050be7c4..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_mercator.js +++ /dev/null @@ -1,285 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires Mapael - * - * Map of World by country - * Mercator projection - * - * @source http://www.amcharts.com/svg-maps/?map=world - */ -(function (factory) { - if (typeof exports === 'object') { - // CommonJS - module.exports = factory(require('jquery'), require('mapael')); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery', 'mapael'], factory); - } else { - // Browser globals - factory(jQuery, jQuery.mapael); - } -}(function ($, Mapael) { - - "use strict"; - - $.extend(true, Mapael, { - maps: { - world_countries_mercator: { - /* - * map-specific constants - * (set by user) - */ - // Width of the map, in pixel - width: 1008.77, - // Height of the map, in pixel - height: 651.44, - // Longitude of the left side of the map, in degree - leftLongitude: -169.6, - // Longitude of the right side of the map, in degree - rightLongitude: 190.25, - // Latitude of the top of the map, in degree - topLatitude: 83.68, - // Latitude of the bottom of the map, in degree - bottomLatitude: -55.55, - /* - * Transform a longitude coordinate into projection-specific x' coordinate - * Note: this is not in pixel - * - * @param lon longitude value in degree - * @return x' projection-specific value - */ - _projectLongitude: function (lon) { - // Compute longitude in radian - return lon * Math.PI / 180; - }, - /* - * Transform a latitude coordinate into projection-specific y' coordinate - * Note: this is not in pixel - * - * @param lat latitude value in degree - * @return y' projection-specific value - */ - _projectLatitude: function (lat) { - // Compute latitude in radian and get its SINUS - var latRadSinus = Math.sin(lat * Math.PI / 180); - return 0.5 * Math.log((1 + latRadSinus) / (1 - latRadSinus)); - }, - /* - * Get x,y point from lat,lon coordinate - * - * Principle: - * (lat, lon) are inputs - * Projection(lat, lon) = (x', y') - * Transformation(x', y') = (x, y) - * - * Source: http://jkwiens.com/2009/01/23/miller-projection/ - * - * @param lat latitude value in degree - * @param lon longitude value in degree - * @return {x, y} coordinate in pixel - */ - getCoords: function (lat, lon) { - var self = this; - - // Project map boundaries with projection (only once for performance) - if (self._xLeftPrime === undefined) self._xLeftPrime = self._projectLongitude(self.leftLongitude); - if (self._xRightPrime === undefined) self._xRightPrime = self._projectLongitude(self.rightLongitude); - if (self._yTopPrime === undefined) self._yTopPrime = self._projectLatitude(self.topLatitude); - if (self._yBottomPrime === undefined) self._yBottomPrime = self._projectLatitude(self.bottomLatitude); - - // Compute x' and y' (projection-specific value) - var xPrime = self._projectLongitude(lon); - var yPrime = self._projectLatitude(lat); - - // Compute x and y - var x = (xPrime - self._xLeftPrime) * (self.width / (self._xRightPrime - self._xLeftPrime)); - var y = (self._yTopPrime - yPrime) * (self.height / (self._yTopPrime - self._yBottomPrime)); - - return {x: x, y: y}; - }, - elems: { - "AE": "m 620.12,393.97 0.5,-0.15 0.11,0.84 2.19,-0.48 2.32,0.08 1.69,0.09 1.92,-2.07 2.1,-1.98 1.77,-1.9 0.53,1.05 0.38,2.44 -1.43,0.01 -0.23,2 0.5,0.42 -1.27,0.6 -0.01,1.25 -0.82,1.26 -0.07,1.21 -0.57,0.64 -8.42,-1.52 -1.08,-3.08 z", - "AF": "m 647.13,357.15 2.86,1.3 2.11,-0.46 0.59,-1.55 2.21,-0.52 1.58,-1.05 0.56,-2.79 2.36,-0.68 0.44,-1.25 1.33,0.94 0.84,0.11 1.56,0.03 2.12,0.74 0.85,0.42 2.03,-1.12 0.95,0.67 0.9,-1.6 1.68,0.07 0.43,-0.52 0.3,-1.43 1.21,-1.23 1.51,0.8 -0.3,1.09 0.85,0.17 -0.27,2.95 1.11,1.15 0.98,-0.74 1.25,-0.34 1.74,-1.57 1.93,0.26 2.9,0 0.5,1.01 -1.64,0.39 -1.42,0.65 -3.22,0.4 -3.01,0.73 -1.64,1.51 0.66,1.46 0.33,1.7 -1.4,1.43 0.12,1.3 -0.77,1.22 -2.67,-0.11 1.1,2.22 -1.78,0.85 -1.19,2 0.15,1.98 -1.1,0.92 -1.03,-0.3 -2.15,0.43 -0.3,0.91 -2.09,0 -1.56,1.84 -0.1,2.75 -3.65,1.33 -1.95,-0.28 -0.57,0.7 -1.67,-0.4 -2.81,0.48 -4.69,-1.64 2.54,-2.93 -0.23,-2.1 -2.12,-0.55 -0.22,-2.09 -0.92,-2.64 1.2,-1.83 -1.22,-0.49 0.77,-2.45 z", - "AL": "m 533.23,334.91 -0.35,1.27 0.4,1.59 1.16,0.9 -0.06,0.97 -0.91,0.54 -0.17,1.19 -1.3,1.76 -0.48,-0.25 -0.05,-0.8 -1.56,-1.23 -0.24,-1.75 0.24,-2.53 0.38,-1.16 -0.47,-0.59 -0.19,-1.19 1.22,-1.87 0.17,0.72 0.76,-0.34 0.6,1.02 0.67,0.38 z", - "AM": "m 597.7,337.75 3.9,-0.58 0.58,0.98 1.07,0.64 -0.57,0.92 1.5,1.26 -0.79,1.16 1.19,0.99 1.26,0.59 0.06,2.5 -1.02,0.1 -1.14,-2.08 0.01,-0.55 -1.24,0.01 -0.83,-0.98 -0.58,0.1 -1.11,-1.06 -2.08,-0.91 0.27,-1.79 z", - "AO": "m 521.28,480.03 0.69,2.09 0.8,1.68 0.64,0.91 1.07,1.47 1.85,-0.23 0.93,-0.4 1.55,0.4 0.42,-0.7 0.7,-1.64 1.74,-0.11 0.15,-0.49 1.43,-0.01 -0.24,1.01 3.4,-0.02 0.05,1.77 0.57,1.09 -0.41,1.7 0.21,1.74 0.94,1.05 -0.15,3.37 0.69,-0.26 1.22,0.07 1.74,-0.42 1.28,0.17 0.3,0.88 -0.32,1.38 0.49,1.34 -0.42,1.07 0.24,0.99 -5.84,-0.04 -0.13,9.16 1.89,2.38 1.83,1.82 -5.15,1.19 -6.79,-0.41 -1.94,-1.4 -11.37,0.13 -0.42,0.21 -1.67,-1.32 -1.82,-0.09 -1.68,0.5 -1.35,0.56 -0.26,-1.83 0.39,-2.55 0.97,-2.65 0.15,-1.24 0.91,-2.59 0.67,-1.17 1.61,-1.87 0.9,-1.27 0.29,-2.11 -0.15,-1.61 -0.84,-1.01 -0.75,-1.72 -0.69,-1.69 0.15,-0.59 0.86,-1.12 -0.85,-2.72 -0.57,-1.88 -1.4,-1.77 0.27,-0.54 1.16,-0.38 0.81,0.05 0.98,-0.34 8.27,0.01 z m -10.91,-0.54 -0.71,0.3 -0.75,-2.1 1.13,-1.21 0.85,-0.47 1.05,0.96 -1.02,0.59 -0.46,0.72 -0.09,1.21 z", - "AR": "m 291.85,649.16 -2.66,0.25 -1.43,-1.73 -1.69,-0.13 -3,0 0,-10.57 1.08,2.15 1.4,3.53 3.65,2.87 3.93,1.21 -1.28,2.42 z m 1.5,-122.44 1.65,2.18 1.09,-2.43 3.2,0.12 0.45,0.64 5.15,4.94 2.29,0.46 3.43,2.26 2.89,1.2 0.4,1.36 -2.76,4.73 2.83,0.85 3.15,0.48 2.22,-0.5 2.54,-2.4 0.46,-2.74 1.39,-0.59 1.41,1.79 -0.06,2.49 -2.36,1.73 -1.88,1.28 -3.16,3.08 -3.74,4.37 -0.7,2.59 -0.75,3.37 0.03,3.3 -0.61,0.74 -0.22,2.17 -0.19,1.76 3.56,2.91 -0.38,2.37 1.75,1.51 -0.14,1.7 -2.69,4.52 -4.16,1.91 -5.62,0.75 -3.08,-0.36 0.59,2.15 -0.57,2.72 0.52,1.85 -1.68,1.3 -2.87,0.51 -2.7,-1.35 -1.08,0.97 0.39,3.71 1.89,1.14 1.54,-1.19 0.84,1.96 -2.58,1.18 -2.25,2.38 -0.41,3.91 -0.66,2.11 -2.65,0.01 -2.2,2.04 -0.8,3.01 2.76,2.98 2.68,0.83 -0.96,3.73 -3.31,2.38 -1.82,5.03 -2.56,1.72 -1.15,2.06 0.91,4.64 1.87,2.63 -1.18,-0.23 -2.6,-0.71 -6.78,-0.61 -1.16,-2.63 0.05,-3.33 -1.87,0.28 -0.99,-1.6 -0.25,-4.6 2.15,-1.88 0.89,-2.68 -0.33,-2.11 1.49,-3.52 1.02,-5.35 -0.3,-2.33 1.22,-0.75 -0.3,-1.48 -1.3,-0.78 0.92,-1.63 -1.27,-1.46 -0.65,-4.4 1.13,-0.77 -0.47,-4.54 0.66,-3.75 0.75,-3.22 1.68,-1.3 -0.85,-3.46 -0.01,-3.22 2.12,-2.26 -0.06,-2.87 1.6,-3.31 0.01,-3.09 -0.73,-0.61 -1.29,-5.69 1.73,-3.34 -0.27,-3.11 1,-2.9 1.84,-2.96 1.98,-1.95 -0.84,-1.23 0.59,-1 -0.09,-5.14 3.05,-1.51 0.96,-3.16 -0.34,-0.76 2.34,-2.72 3.62,0.72 z", - "AT": "m 523.11,310.1 -0.21,1.71 -1.58,0.01 0.54,0.89 -0.93,2.65 -0.53,0.69 -2.45,0.1 -1.42,0.92 -2.32,-0.31 -4.01,-1.05 -0.62,-1.43 -2.77,0.72 -0.33,0.77 -1.7,-0.58 -1.43,-0.11 -1.27,-0.74 0.43,-1.01 -0.11,-0.74 0.85,-0.22 1.42,1.14 0.4,-1.09 2.47,0.18 2.01,-0.74 1.34,0.12 0.87,0.85 0.27,-0.7 -0.4,-2.72 1.01,-0.54 0.98,-1.95 2.09,1.37 1.57,-1.74 0.99,-0.32 2.18,1.3 1.31,-0.22 1.3,0.8 -0.23,0.54 z", - "AU": "m 883.18,588.41 2.71,1.28 1.53,-0.51 2.19,-0.71 1.68,0.25 0.2,4.43 -0.96,1.3 -0.29,3.06 -0.98,-1.05 -1.95,2.67 -0.58,-0.21 -1.72,-0.12 -1.73,-3.28 -0.38,-2.5 -1.62,-3.25 0.07,-1.7 1.83,0.34 z m -5.15,-86.06 1.01,2.25 1.8,-1.08 0.93,1.22 1.35,1.13 -0.29,1.28 0.6,2.48 0.43,1.45 0.71,0.35 0.76,2.5 -0.27,1.52 0.91,1.99 3.04,1.54 1.98,1.41 1.88,1.29 -0.37,0.72 1.6,1.87 1.09,3.25 1.12,-0.66 1.14,1.31 0.69,-0.46 0.48,3.21 1.99,1.87 1.3,1.17 2.19,2.49 0.79,2.49 0.07,1.77 -0.19,1.94 1.34,2.68 -0.16,2.81 -0.49,1.48 -0.76,2.87 0.06,1.86 -0.55,2.34 -1.24,3 -2.08,1.63 -1.02,2.59 -0.94,1.67 -0.83,2.93 -1.08,1.71 -0.71,2.58 -0.36,2.4 0.14,1.11 -1.61,1.22 -3.14,0.13 -2.59,1.45 -1.29,1.38 -1.69,1.54 -2.32,-1.58 -1.72,-0.63 0.44,-1.85 -1.53,0.67 -2.46,2.58 -2.42,-0.97 -1.59,-0.56 -1.6,-0.25 -2.71,-1.03 -1.81,-2.18 -0.52,-2.66 -0.65,-1.75 -1.38,-1.4 -2.7,-0.41 0.92,-1.66 -0.68,-2.52 -1.37,2.35 -2.5,0.63 1.47,-1.88 0.42,-1.95 1.08,-1.65 -0.22,-2.47 -2.28,2.85 -1.75,1.15 -1.07,2.69 -2.19,-1.4 0.09,-1.79 -1.75,-2.43 -1.48,-1.25 0.53,-0.77 -3.6,-2 -1.97,-0.09 -2.7,-1.6 -5.02,0.31 -3.63,1.18 -3.19,1.1 -2.68,-0.22 -2.97,1.7 -2.43,0.77 -0.54,1.75 -1.04,1.36 -2.38,0.08 -1.76,0.3 -2.48,-0.61 -2.02,0.37 -1.92,0.15 -1.67,1.8 -0.82,-0.15 -1.41,0.96 -1.35,1.08 -2.05,-0.13 -1.88,0 -2.97,-2.17 -1.51,-0.64 0.06,-1.93 1.39,-0.46 0.48,-0.76 -0.1,-1.2 0.34,-2.3 -0.31,-1.95 -1.48,-3.29 -0.46,-1.85 0.12,-1.83 -1.12,-2.08 -0.07,-0.93 -1.24,-1.26 -0.35,-2.47 -1.6,-2.48 -0.39,-1.33 1.23,1.35 -0.95,-2.88 1.39,0.9 0.83,1.2 -0.05,-1.59 -1.39,-2.43 -0.27,-0.97 -0.65,-0.92 0.3,-1.77 0.57,-0.75 0.38,-1.52 -0.3,-1.77 1.16,-2.17 0.21,2.29 1.18,-2.07 2.28,-1 1.37,-1.28 2.14,-1.1 1.27,-0.23 0.77,0.37 2.21,-1.11 1.7,-0.33 0.42,-0.65 0.74,-0.27 1.55,0.07 2.95,-0.87 1.52,-1.31 0.72,-1.58 1.64,-1.49 0.13,-1.17 0.07,-1.59 1.96,-2.47 1.18,2.51 1.19,-0.58 -1,-1.38 0.88,-1.41 1.24,0.63 0.34,-2.21 1.53,-1.42 0.68,-1.14 1.41,-0.49 0.04,-0.8 1.23,0.34 0.05,-0.72 1.23,-0.41 1.36,-0.39 2.07,1.32 1.56,1.71 1.75,0.02 1.78,0.27 -0.59,-1.58 1.34,-2.3 1.26,-0.75 -0.44,-0.71 1.22,-1.63 1.7,-1.01 1.43,0.34 2.36,-0.54 -0.05,-1.45 -2.05,-0.94 1.49,-0.41 1.86,0.7 1.49,1.17 2.36,0.73 0.8,-0.29 1.74,0.88 1.64,-0.82 1.05,0.25 0.66,-0.55 1.29,1.41 -0.75,1.53 -1.06,1.16 -0.96,0.1 0.33,1.15 -0.82,1.43 -1,1.41 0.2,0.81 2.23,1.6 2.16,0.93 1.44,1 2.03,1.72 0.79,0 1.47,0.75 0.43,0.9 2.68,0.99 1.85,-1 0.55,-1.57 0.57,-1.29 0.35,-1.59 0.85,-2.3 -0.39,-1.39 0.2,-0.84 -0.32,-1.64 0.37,-2.16 0.54,-0.58 -0.44,-0.95 0.68,-1.51 0.53,-1.56 0.07,-0.81 1.04,-1.06 0.79,1.39 0.19,1.78 0.7,0.34 0.12,1.2 1.02,1.45 0.21,1.62 -0.08,1.01 z", - "AZ": "m 601.68,342.71 0.83,0.97 1.24,-0.01 -0.01,0.56 1.14,2.08 -1.92,-0.48 -1.42,-1.66 -0.44,-1.37 0.58,-0.09 z m 6.65,-5.43 1.24,0.25 0.48,-0.95 1.67,-1.51 1.47,1.97 1.43,2.62 1.31,0.17 0.86,0.99 -2.31,0.29 -0.49,2.82 -0.48,1.26 -1.03,0.84 0.08,1.77 -0.7,0.18 -1.75,-1.87 0.97,-1.78 -0.83,-1.06 -1.05,0.27 -3.31,2.66 -0.06,-2.5 -1.26,-0.59 -1.19,-0.99 0.79,-1.16 -1.49,-1.26 0.56,-0.92 -1.07,-0.64 -0.58,-0.97 0.69,-0.61 2.09,1.07 1.51,0.22 0.38,-0.43 -1.38,-2.02 0.73,-0.52 0.79,0.13 1.93,2.27 z", - "BA": "m 528.79,323.36 1.02,-0.01 -0.7,1.72 1.35,1.5 -0.41,1.82 -0.66,0.17 -0.53,0.36 -0.91,0.89 -0.41,2.1 -2.48,-1.44 -1.06,-1.61 -1.07,-0.85 -1.29,-1.45 -0.6,-1.21 -1.38,-1.83 0.59,-1.64 1.01,0.91 0.6,-0.82 1.31,-0.09 2.41,0.66 1.94,-0.06 z", - "BD": "m 735.34,400.66 -0.05,2.15 -0.98,-0.46 0.18,2.41 -0.8,-1.56 -0.16,-1.52 -0.54,-1.45 -1.17,-1.76 -2.58,-0.12 0.26,1.25 -0.88,1.67 -1.2,-0.61 -0.41,0.55 -0.79,-0.33 -1.08,-0.27 -0.44,-2.48 -0.97,-2.28 0.47,-1.84 -1.72,-0.82 0.62,-1.12 1.75,-1.15 -2.02,-1.63 0.99,-2.11 2.22,1.34 1.34,0.16 0.25,2.15 2.66,0.42 2.61,-0.05 1.61,0.53 -1.29,2.59 -1.26,0.18 -0.86,1.73 1.53,1.58 0.46,-1.94 0.78,-0.01 z", - "BE": "m 484.8,296.16 2.05,0.35 2.6,-0.93 1.77,1.95 1.55,1.04 -0.32,2.97 -0.73,0.16 -0.31,2.43 -2.45,-1.97 -1.44,0.34 -1.96,-2.06 -1.3,-1.77 -1.3,-0.07 -0.41,-1.56 z", - "BF": "m 467.58,436.65 -1.92,-0.73 -1.32,0.11 -0.98,0.71 -1.26,-0.6 -0.49,-0.93 -1.26,-0.62 -0.19,-1.64 0.77,-1.21 -0.07,-0.96 2.23,-2.36 0.41,-1.96 0.77,-0.7 1.36,0.38 1.17,-0.58 0.38,-0.74 2.18,-1.28 0.53,-0.9 2.62,-1.2 1.55,-0.41 0.7,0.55 1.79,-0.01 -0.22,1.4 0.38,1.31 1.58,1.87 0.08,1.38 3.24,0.65 -0.07,1.95 -0.61,0.86 -1.37,0.26 -0.57,1.24 -0.96,0.32 -2.46,-0.06 -1.3,-0.22 -0.9,0.46 -1.24,-0.21 -4.87,0.13 -0.07,1.61 z", - "BG": "m 539.03,325.81 0.81,1.6 1.08,-0.29 2.16,0.61 4.12,0.2 1.39,-0.99 3.3,-0.9 2.04,1.41 1.65,0.41 -1.46,1.59 -1.02,2.73 0.9,2.16 -2.41,-0.51 -2.86,1.18 -0.03,1.86 -2.55,0.35 -1.97,-1.3 -2.25,1.03 -2.07,-0.11 -0.2,-2.47 -1.41,-1.21 0.47,-0.54 -0.31,-0.45 0.47,-1.21 1.07,-1.19 -1.36,-1.66 -0.25,-1.42 z", - "BI": "m 557.77,476.18 -0.18,-3.37 -0.71,-1.26 1.71,0.22 0.86,-1.59 1.49,0.18 0.16,1.1 0.6,0.63 0.03,0.91 -0.69,0.58 -1.1,1.46 -1.01,1.01 z", - "BJ": "m 483.05,446.17 -2.32,0.33 -0.69,-1.94 0.13,-6.46 -0.57,-0.58 -0.1,-1.39 -0.98,-0.99 -0.85,-0.83 0.36,-1.5 0.96,-0.32 0.57,-1.24 1.37,-0.26 0.61,-0.86 0.94,-0.83 1.01,-0.01 2.14,1.64 -0.11,0.95 0.63,1.68 -0.55,1.14 0.29,0.76 -1.36,1.75 -0.86,0.87 -0.53,1.77 0.07,1.79 z", - "BN": "m 795.71,451.02 1.11,-1.05 2.39,-1.53 -0.13,1.38 -0.16,1.78 -1.34,-0.09 -0.59,0.95 z", - "BO": "m 299.29,526.6 -3.2,-0.13 -1.09,2.43 -1.65,-2.18 -3.67,-0.73 -2.33,2.72 -2.03,0.41 -1.1,-4.15 -1.5,-3.34 0.88,-2.87 -1.47,-1.25 -0.37,-2.12 -1.38,-2 1.77,-3.14 -1.21,-2.44 0.65,-0.97 -0.51,-1.07 1.1,-1.44 0.06,-2.44 0.13,-2.02 0.61,-0.96 -2.43,-4.58 2.09,0.24 1.44,-0.07 0.63,-0.85 2.45,-1.15 1.47,-1.06 3.67,-0.48 -0.29,2.12 0.34,1.09 -0.23,1.9 3.05,2.55 3.14,0.47 1.1,1.07 1.9,0.57 1.16,0.83 1.76,-0.03 1.63,0.85 0.12,1.66 0.55,0.84 0.04,1.25 -0.82,0.04 1.08,3.37 5.37,0.12 -0.41,1.68 0.3,1.15 1.53,0.82 0.67,1.82 -0.5,2.32 -0.77,1.29 0.27,1.69 -0.88,0.61 -0.04,-0.91 -2.62,-1.51 -2.6,-0.05 -4.89,0.86 -1.34,2.62 -0.07,1.6 -1.11,3.59 z", - "BR": "m 313.93,552.04 3.74,-4.37 3.17,-3.08 1.88,-1.28 2.36,-1.73 0.06,-2.49 -1.41,-1.79 -1.39,0.59 0.55,-1.78 0.38,-1.82 0,-1.68 -1.01,-0.55 -1.05,0.49 -1.04,-0.13 -0.33,-1.18 -0.26,-2.77 -0.53,-0.9 -1.89,-0.82 -1.14,0.59 -2.96,-0.58 0.18,-4.06 -0.83,-1.66 0.88,-0.61 -0.27,-1.69 0.77,-1.29 0.5,-2.32 -0.67,-1.82 -1.53,-0.82 -0.3,-1.15 0.41,-1.68 -5.37,-0.12 -1.08,-3.37 0.82,-0.04 -0.04,-1.25 -0.55,-0.84 -0.12,-1.66 -1.63,-0.85 -1.76,0.03 -1.16,-0.83 -1.9,-0.57 -1.1,-1.07 -3.14,-0.47 -3.05,-2.55 0.23,-1.9 -0.34,-1.09 0.29,-2.12 -3.67,0.48 -1.47,1.06 -2.45,1.15 -0.63,0.85 -1.44,0.07 -2.09,-0.24 -1.58,0.49 -1.28,-0.33 0.19,-4.3 -2.3,1.66 -2.47,-0.07 -1.06,-1.51 -1.86,-0.16 0.59,-1.21 -1.56,-1.72 -1.17,-2.53 0.74,-0.51 0,-1.19 1.7,-0.81 -0.28,-1.51 0.71,-0.98 0.21,-1.3 3.2,-1.91 2.3,-0.53 0.37,-0.42 2.53,0.13 1.26,-7.65 0.07,-1.21 -0.44,-1.59 -1.24,-1.02 0.01,-2.02 1.58,-0.46 0.56,0.29 0.09,-1.07 -1.64,-0.29 -0.03,-1.74 5.46,0.06 0.93,-0.96 0.78,0.88 0.54,1.65 0.53,-0.35 1.55,1.48 2.18,-0.18 0.54,-0.86 2.08,-0.65 1.16,-0.45 0.32,-1.18 2.01,-0.8 -0.16,-0.58 -2.37,-0.24 -0.39,-1.76 0.11,-1.87 -1.25,-0.72 0.52,-0.26 2.08,0.36 2.23,0.7 0.81,-0.66 2.01,-0.44 3.14,-1.04 1.03,-1.07 -0.38,-0.79 1.46,-0.12 0.66,0.64 -0.37,1.23 0.96,0.42 0.65,1.3 -0.78,0.98 -0.45,2.38 0.72,1.41 0.2,1.29 1.73,1.3 1.38,0.14 0.31,-0.54 0.88,-0.12 1.27,-0.49 0.91,-0.74 1.55,0.23 0.68,-0.1 1.53,0.23 0.25,-0.57 -0.47,-0.55 0.28,-0.81 1.13,0.25 1.33,-0.29 1.6,0.59 1.23,0.58 0.87,-0.76 0.62,0.12 0.39,0.79 1.34,-0.2 1.07,-1.06 0.86,-2.06 1.66,-2.55 0.96,-0.13 0.69,1.54 1.57,4.88 1.5,0.46 0.08,1.92 -2.11,2.29 0.87,0.84 4.96,0.44 0.1,2.79 2.13,-1.83 3.53,1.01 4.65,1.7 1.37,1.63 -0.46,1.54 3.26,-0.86 5.46,1.48 4.19,-0.11 4.14,2.31 3.58,3.13 2.16,0.8 2.4,0.12 1.02,0.88 0.95,3.57 0.47,1.69 -1.12,4.66 -1.43,1.84 -3.95,3.94 -1.79,3.21 -2.07,2.48 -0.7,0.06 -0.79,2.1 0.2,5.4 -0.78,4.48 -0.3,1.93 -0.88,1.15 -0.5,3.94 -2.84,3.88 -0.48,3.09 -2.27,1.31 -0.66,1.81 -3.04,-0.01 -4.41,1.17 -1.98,1.35 -3.14,0.89 -3.3,2.44 -2.37,3.06 -0.41,2.32 0.47,1.73 -0.53,3.18 -0.63,1.55 -1.96,1.75 -3.11,5.68 -2.47,2.59 -1.91,1.54 -1.27,3.16 -1.86,1.91 -0.78,-1.9 1.24,-1.57 -1.62,-2.25 -2.2,-1.82 -2.89,-2.08 -1.04,0.09 -2.81,-2.5 z", - "BS": "m 258.11,395.45 -0.69,0.15 -0.71,-1.76 -1.05,-0.89 0.61,-1.95 0.84,0.12 0.98,2.55 0.02,1.78 z m -0.8,-8.69 -3.06,0.5 -0.2,-1.15 1.32,-0.25 1.85,0.09 0.09,0.81 z m 2.3,-0.03 -0.48,2.21 -0.52,-0.4 0.05,-1.63 -1.26,-1.23 -0.01,-0.36 2.22,1.41 z", - "BT": "m 732.61,383.03 1.14,1 -0.2,1.93 -2.29,0.09 -2.36,-0.21 -1.77,0.49 -2.55,-1.19 -0.05,-0.63 1.85,-2.34 1.51,-0.8 2.01,0.73 1.48,0.08 z", - "BW": "m 547.42,516.2 0.56,0.52 0.89,1.71 3.17,3.25 1.2,0.32 0.01,1.05 0.82,1.9 2.17,0.46 1.79,1.36 -3.97,2.22 -2.52,2.26 -0.93,2.03 -0.84,1.15 -1.53,0.25 -0.49,1.47 -0.29,0.96 -1.79,0.72 -2.28,-0.15 -1.34,-0.86 -1.18,-0.38 -1.37,0.72 -0.69,1.48 -1.33,0.93 -1.4,1.39 -2.01,0.32 -0.62,-1.09 0.26,-1.9 -1.67,-2.93 -0.75,-0.46 0,-8.86 2.76,-0.11 0.08,-10.57 2.09,-0.09 4.32,-1.03 1.08,1.21 1.78,-1.15 0.86,-0.01 1.58,-0.66 0.5,0.22 z", - "BY": "m 541.35,284.32 2.71,0.04 3.04,-1.8 0.65,-2.72 2.3,-1.57 -0.26,-2.2 1.7,-0.84 3.02,-1.93 2.95,1.26 0.4,1.23 1.47,-0.59 2.74,1.18 0.27,2.31 -0.6,1.32 1.76,3.15 1.14,0.87 -0.17,0.86 1.89,0.83 0.81,1.25 -1.09,1.02 -2.26,-0.16 -0.54,0.44 0.66,1.54 0.69,2.93 -2.41,0.27 -0.86,1 -0.19,2.26 -1.11,-0.43 -2.53,0.22 -0.74,-1.05 -1.05,0.78 -1.05,-0.65 -2.21,-0.09 -3.13,-1.08 -2.83,-0.36 -2.17,0.1 -1.54,1.23 -1.34,0.17 -0.05,-2.01 -0.87,-2.12 1.68,-0.94 0.02,-1.85 -0.78,-1.78 z", - "BZ": "m 225.56,413.21 -0.02,-0.43 0.34,-0.14 0.51,0.35 1,-1.77 0.53,-0.04 0.01,0.43 0.53,0.01 -0.04,0.8 -0.46,1.27 0.25,0.45 -0.29,1.05 0.17,0.27 -0.32,1.47 -0.55,0.78 -0.51,0.09 -0.56,1 -0.83,0 0.22,-3.28 z", - "CA": "m 199.18,96.48 -0.22,-5.9 3.63,0.58 1.63,0.96 3.35,4.92 -0.76,4.97 -4.15,2.77 -2.28,-3.12 -1.2,-5.18 z m 13.21,12.65 0.33,-1.49 -1.97,-2.45 -5.65,-0.19 0.75,3.68 5.25,0.83 1.29,-0.38 z m 36.35,46.95 3.08,5.1 0.81,0.57 3.07,-1.27 3.02,0.2 2.98,0.28 -0.25,-2.64 -4.84,-5.38 -6.42,-1.08 -1.35,0.67 -0.1,3.55 z m -65.43,-62.7 -2.71,4.19 6.24,0.52 4.61,4.44 4.58,1.5 -1.09,-5.68 -2.14,-6.73 -7.58,-5.35 -5.5,-2.04 0.2,5.69 3.39,3.46 z m 25.9,-10.24 5.13,-0.12 -2.22,4 -0.04,5.3 3.01,5.76 5.81,1.77 4.96,-0.99 5.18,-10.73 3.85,-4.45 -3.38,-4.97 -2.21,-10.65 -4.6,-3.19 -4.72,-3.68 -3.58,-9.56 -6.52,0.94 1.23,4.15 -2.87,1.25 -1.94,5.32 -1.94,7.46 1.78,7.26 3.07,5.13 z m -63.75,53.38 3.92,1.95 12.67,-1.3 -5.82,4.77 0.36,3.43 4.26,-0.24 7.07,-4.58 9.5,-1.67 1.71,-5.22 -0.49,-5.57 -2.94,-0.5 -2.5,1.93 -1.1,-4.13 -0.95,-5.7 -2.9,-1.42 -2.57,4.41 4.01,11.05 -4.9,-0.85 -4.98,-6.79 -7.89,-4 -2.64,3.32 -3.82,11.11 z m 22.56,-42.06 -3.65,-2.9 -1.5,-0.66 -2.88,4.28 -0.05,2 4.66,0.01 3.42,-2.73 z m -1.46,12.35 0.93,-3.99 -3.95,-2.12 -4.09,1.39 -2.27,4.26 4.16,4.21 5.22,-3.75 z m 29.09,33.24 4.62,-1.11 1.28,-8.25 -0.09,-5.95 -2.14,-5.56 -0.22,1.6 -3.94,-0.7 -4.22,4.09 -3.02,-0.37 0.18,8.92 4.6,-0.87 -0.06,6.47 3.01,1.73 z m -3.28,45.61 -5.06,-3.93 -4.71,-4.21 -0.87,-6.18 -1.76,-8.92 -3.14,-3.84 -2.79,-1.55 -2.47,1.42 1.99,9.59 -1.41,3.73 -2.29,-8.98 -2.56,-3.11 -3.17,4.81 -3.9,-4.76 -6.24,2.87 1.4,-4.46 -2.87,-1.87 -7.51,5.84 -1.95,3.71 -2.35,6.77 4.9,2.32 4.33,-0.12 -6.5,3.46 1.48,3.13 3.98,0.17 5.99,-0.67 5.42,1.96 -3.66,1.44 -3.95,-0.37 -4.33,1.41 -1.87,0.87 3.45,6.35 2.49,-0.88 3.83,2.15 1.52,3.65 4.99,-0.73 7.1,-1.16 5.26,-2.65 3.26,-0.48 4.82,2.12 5.07,1.22 0.94,-2.86 -1.79,-3.05 4.6,-0.64 0.33,-3.57 z m 7.74,-0.98 -1.96,3.54 -2.47,2.49 3.83,3.54 2.28,-0.85 3.78,2.36 1.74,-2.73 -1.71,-3.03 -0.84,-1.53 -1.68,-1.46 -2.97,-2.33 z m -17.61,-29.45 -2.13,-2.17 -3.76,0.4 -0.95,1.38 4.37,6.75 2.47,-6.36 z m 28.69,13.17 3.01,-6.93 3.34,-1.85 4.19,-8.74 -5.36,-2.47 -5.84,-0.36 -2.78,2.77 -1.47,4.23 -0.04,4.82 1.75,8.19 3.2,0.34 z m 17.15,-23 5.76,-0.18 8.04,-1.61 3.59,1.28 4.18,-2.26 1.75,-2.84 -0.63,-4.52 -3,-4.23 -4.56,-0.8 -5.71,0.97 -4.46,2.44 -4.09,-0.94 -3.78,-0.5 -1.78,-2.7 -3.22,-2.61 0.64,-4.43 -2.42,-3.98 -5.52,0.03 -3.11,-3.99 -5.78,-0.8 -1.06,5.1 3.25,3.74 5.8,1.45 2.81,5.09 0.34,5.6 0.97,5.99 7.45,3.42 4.54,1.28 z m -89.02,-18.27 5.21,-5.05 2.62,-0.59 2.16,-4.23 0.38,-9.77 -3.85,1.91 -4.3,-0.18 -5.76,8.19 -4.76,8.98 3.8,2.51 4.5,-1.77 z m 72.18,16.17 1.53,-4.14 -1.02,-3.46 -2.45,-3.92 -4.03,3.02 -1.49,4.92 3.4,2.79 4.06,0.79 z m -8.31,11.44 -0.73,-2.88 -5,1.26 -3.34,-2.11 -3.32,4.8 3.09,6.28 -5.72,-1.17 -0.06,3.01 6.97,7.05 1.94,3.38 2.7,0.73 4.6,-3.41 0.5,-8.21 -4.24,-4.07 2.61,-4.66 z m -73.99,153.74 -1.16,-2.34 -2.8,-1.77 -1.39,-2.05 -0.95,-1.5 -2.64,-0.46 -1.72,-0.67 -2.94,-0.96 -0.24,1.02 1.08,2.38 2.89,0.78 0.5,1.23 2.51,1.5 0.84,1.51 4.6,1.92 1.42,-0.59 z m 121.7,-77.63 -2,-2.11 -2.06,0.5 -0.25,-3.06 -3.21,-2.04 -3.07,-2.27 -1.63,-1.75 -1.43,1.03 -0.52,-2.96 -2.03,-0.55 -0.96,6.13 -0.36,5.11 -2.44,3.14 3.8,-0.6 0.96,3.65 3.99,-3.23 2.78,-3.38 1.57,2.86 4.36,1.51 2.5,-1.98 z m -120.53,-52.55 7.38,-4.18 v -3.87 l 3.48,-6.41 6.88,-6.69 3.52,-2.47 -3.01,-4.2 -2.72,-2.95 -7.16,-0.57 -4,-2.16 -9.48,1.63 2.74,6.23 -2.43,6.43 -1.94,6.87 -1.2,3.86 6.47,4.69 1.47,3.79 z m 134.24,27.31 0.32,-1.01 -0.03,-3.17 -2.19,-2.08 -2.57,1.05 -1.19,4.17 0.7,3.56 3.14,-0.36 1.82,-2.16 z m 23.82,7.54 4.41,6.6 3.45,2.85 4.92,-7.87 0.87,-4.93 -4.41,-0.47 -4.03,-6.7 -4.45,-1.64 -6.6,-4.97 5.15,-3.63 -2.65,-7.54 -2.44,-3.35 -6.77,-3.35 -2.92,-5.55 -5.21,1.99 -0.36,-3.86 -3.86,-4.32 -6.22,-4.71 -2.65,3.71 -5.55,2.66 0.42,-6.06 -4.81,-10.05 -7.11,4.06 -2.59,7.7 -2.21,-5.92 2.06,-6.37 -7.24,2.65 -2.88,3.99 -2.15,8.42 0.89,9.05 3.98,0.04 -2.93,3.92 2.33,2.96 4.55,1.25 5.93,2.42 10.2,1.82 5.08,-1.04 1.5,-2.42 2.21,2.79 2.47,0.46 2.97,4.96 -1.8,1.98 5.68,2.63 4.29,3.68 1.08,2.55 0.77,3.24 -3.63,6.93 -0.98,3.44 0.94,2.42 -5.77,0.86 -5.27,0.12 -1.85,4.87 2.37,2.23 8.11,-1.03 -0.04,-1.89 4.08,3.15 4.18,3.28 -0.98,1.77 3.4,3.02 6.02,3.53 7.6,2.39 -0.46,-2.09 -2.92,-3.67 -3.96,-5.37 7.03,5 3.54,1.66 0.97,-4.44 -1.82,-6.3 -1.16,-1.73 -3.81,-3.03 -2.95,-3.91 0.35,-3.94 3.64,-0.9 z M 222.6,51.59 l 2.34,7.29 4.96,5.88 9.81,-1.09 6.31,1.97 -4.38,6.05 -2.21,-1.78 -7.66,-0.71 1.19,8.31 3.96,6.04 -0.8,5.2 -4.97,3.46 -2.27,5.47 4.55,2.65 3.82,8.55 -7.5,-5.7 -1.71,0.94 1.38,9.38 -5.18,2.83 0.35,5.85 5.3,0.63 4.17,1.44 8.24,-1.84 7.33,3.27 7.49,-7.19 -0.06,-3.02 -4.79,0.48 -0.39,-2.84 3.92,-3.83 1.33,-5.15 4.33,-3.83 2.66,-4.76 -2.32,-7.1 1.94,-2.65 -3.86,-1.89 8.49,-1.63 1.79,-3.15 5.78,-2.6 4.8,-13.47 4.57,-4.94 6.62,-11.12 -6.1,0.1 2.54,-4.3 6.78,-3.99 6.84,-8.9 0.12,-5.73 -5.13,-6.04 -6.02,-2.93 -7.49,-1.82 -6.07,-1.49 -6.07,-1.5 -8.1,3.98 -1.49,-2.53 -8.57,0.98 -5.03,2.57 -3.7,3.65 -2.13,11.74 -3.06,-6.01 -3.48,-1.14 -4.12,7.97 -5.5,3.35 -3.27,0.66 -4.17,3.84 0.61,6.65 3.28,5.49 z m 74.4,265 -0.98,-1.98 -1.06,1.26 0.7,1.36 3.56,1.71 1.04,-0.26 1.38,-1.66 -2.6,0.11 -2.04,-0.54 z m -57,-77.86 0.61,1.63 1.98,0.14 3.28,-3.34 0.06,-1.19 -3.85,-0.06 -2.08,2.82 z m 62.13,66.44 -2.87,-1.8 -3.69,-1.09 -0.97,0.37 2.61,2.04 3.63,1.34 1.36,-0.08 -0.07,-0.78 z m 24.88,4.79 -0.36,-2.24 -1.96,0.72 0.87,-3.11 -2.8,-1.32 -1.29,1.05 -2.49,-1.18 0.98,-1.51 -1.88,-0.93 -1.83,1.47 1.86,-3.82 1.5,-2.8 0.54,-1.22 -1.3,-0.2 -2.43,1.55 -1.74,2.53 -2.9,6.92 -2.35,2.56 1.22,1.14 -1.75,1.47 0.43,1.23 5.44,0.13 3.01,-0.25 2.69,1.01 -1.98,1.93 1.67,0.14 3.25,-3.58 0.78,0.53 -0.61,3.37 1.84,0.77 1.27,-0.15 1.18,-3.61 -0.86,-2.6 z m -21.19,4.76 -2.81,4.56 -4.63,0.58 -3.64,-2.01 -0.92,-3.07 -0.89,-4.46 2.65,-2.83 -2.48,-2.09 -4.19,0.43 -5.88,3.53 -4.5,5.45 -2.38,0.67 3.23,-3.8 4.04,-5.57 3.57,-1.9 2.35,-3.11 2.9,-0.3 4.21,0.03 6,0.92 4.74,-0.71 3.53,-3.62 4.62,-1.59 2.01,-1.58 2.04,-1.71 -0.2,-5.19 -1.13,-1.77 -2.18,-0.63 -1.11,-4.05 -1.8,-1.55 -4.47,-1.26 -2.52,-2.82 -3.73,-2.83 1.13,-3.2 -3.1,-6.26 -3.65,-6.89 -2.18,-4.98 -1.86,2.61 -2.68,6.05 -4.06,2.97 -2.03,-3.16 -2.56,-0.85 -0.93,-6.99 0.08,-4.8 -5,-0.44 -0.85,-2.27 -3.45,-3.44 -2.61,-2.04 -2.32,1.58 -2.88,-0.58 -4.81,-1.65 -1.95,1.4 0.94,9.18 1.22,5.12 -3.31,5.75 3.41,4.02 1.9,4.44 0.23,3.42 -1.55,3.5 -3.18,3.46 -4.49,2.28 1.98,2.53 1.46,7.4 -1.52,4.68 -2.16,1.46 -4.17,-4.28 -2.03,-5.17 -0.87,-4.76 0.46,-4.19 -3.05,-0.47 -4.63,-0.28 -2.97,-2.08 -3.51,-1.37 -2.01,-2.38 -2.8,-1.94 -5.21,-2.23 -3.92,1.02 -1.31,-3.95 -1.26,-4.99 -4.12,-0.9 0.15,-6.41 1.09,-4.48 3.04,-6.6 3.43,-4.9 3.26,-0.77 0.19,-4.05 2.21,-2.68 4.01,-0.42 3.25,-4.39 0.82,-2.9 2.7,-5.73 0.84,-3.5 2.9,2.11 3.9,-1.08 5.49,-4.96 0.36,-3.54 -1.98,-3.98 2.09,-4.06 -0.17,-3.87 -3.76,-3.95 -4.14,-1.19 -3.98,-0.62 -0.15,8.71 -2.04,6.56 -2.93,5.3 -2.71,-4.95 0.84,-5.61 -3.35,-5.02 -3.75,6.09 0.01,-7.99 -5.21,-1.63 2.49,-4.01 -3.81,-9.59 -2.84,-3.91 -3.7,-1.44 -3.32,6.43 -0.22,9.34 3.27,3.29 3,4.91 -1.27,7.71 -2.26,-0.2 -1.78,5.88 0.02,-7 -4.34,-2.58 -2.49,1.33 0.32,4.67 -4.09,-0.18 -4.35,1.17 -4.95,-3.35 -3.13,0.6 -2.82,-4.11 -2.26,-1.84 -2.24,0.77 -3.41,0.35 -1.81,2.61 2.86,3.19 -3.05,3.72 -2.99,-4.42 -2.39,1.3 -7.57,0.87 -5.07,-1.59 3.94,-3.74 -3.78,-3.9 -2.75,0.5 -3.86,-1.32 -6.56,-2.89 -4.29,-3.37 -3.4,-0.47 -1.06,2.36 -3.44,1.31 -0.38,-6.15 -3.73,5.5 -4.74,-7.32 -1.94,-0.89 -0.63,3.91 -2.09,1.9 -1.93,-3.39 -4.59,2.05 -4.2,3.55 -4.17,-0.98 -3.4,2.5 -2.46,3.28 -2.92,-0.72 -4.41,-3.8 -5.23,-1.94 -0.02,27.65 -0.01,35.43 2.76,0.17 2.73,1.56 1.96,2.44 2.49,3.6 2.73,-3.05 2.81,-1.79 1.49,2.85 1.89,2.23 2.57,2.42 1.75,3.79 2.87,5.88 4.77,3.2 0.08,3.12 -1.56,2.35 0.06,2.48 3.39,3.45 0.49,3.76 3.59,1.96 -0.4,2.79 1.56,3.96 5.08,1.82 2,1.89 5.43,4.23 0.38,0.01 h 7.96 8.32 2.76 8.55 8.27 8.41 l 8.42,0 9.53,0 9.59,0 5.8,0 0.01,-1.64 0.95,-0.02 0.5,2.35 0.87,0.72 1.96,0.26 2.86,0.67 2.72,1.3 2.27,-0.55 3.45,1.09 1.14,-1.66 1.59,-0.66 0.62,-1.03 0.63,-0.55 2.61,0.86 1.93,0.1 0.67,0.57 0.94,2.38 3.15,0.63 -0.49,1.18 1.11,1.21 -0.48,1.56 1.18,0.51 -0.59,1.37 0.75,0.13 0.53,-0.6 0.55,0.9 2.1,0.5 2.13,0.04 2.27,0.41 2.51,0.78 0.91,1.26 1.82,3.04 -0.9,1.3 -2.28,-0.54 -1.42,-2.44 0.36,2.49 -1.34,2.17 0.15,1.84 -0.23,1.07 -1.81,1.27 -1.32,2.09 -0.62,1.32 1.54,0.24 2.08,-1.2 1.23,-1.06 0.83,-0.17 1.54,0.38 0.75,-0.59 1.37,-0.48 2.44,-0.47 v 0 l 0,0 -0.25,-1.15 -0.13,0.04 -0.86,0.2 -1.12,-0.36 0.84,-1.32 0.85,-0.46 1.98,-0.56 2.37,-0.53 1.24,0.73 0.78,-0.85 0.89,-0.54 0.6,0.29 0.03,0.06 2.87,-2.73 1.27,-0.73 4.26,-0.03 5.17,0 0.28,-0.98 0.9,-0.2 1.19,-0.62 1,-1.82 0.86,-3.15 2.14,-3.1 0.93,1.08 1.88,-0.7 1.25,1.19 0,5.52 1.83,2.25 3.12,-0.48 4.49,-0.13 -4.87,3.26 0.11,3.29 2.13,0.28 3.13,-2.79 2.78,-1.58 6.21,-2.35 3.47,-2.62 -1.81,-1.46 -0.29,-2.92 z m -53.66,-71.1 1.1,-3.12 -0.71,-1.23 -1.15,-0.13 -1.08,1.8 -0.13,0.41 0.74,1.77 1.23,0.5 z m -142.66,36.43 0,0 1.56,-2.35 -1.56,2.35 z m -3.4,3.29 -2.69,0.38 -1.32,-0.62 -0.17,1.52 0.52,2.07 1.42,1.46 1.04,2.13 1.69,2.1 1.12,0.01 -2.44,-3.7 0.83,-5.35 z", - "CD": "m 561.96,453.86 -0.17,3.26 1.12,0.37 -0.9,0.99 -1.08,0.74 -1.07,1.46 -0.59,1.29 -0.16,2.24 -0.65,1.06 -0.02,2.1 -0.81,0.78 -0.1,1.66 -0.39,0.21 -0.26,1.53 0.71,1.26 0.18,3.37 0.5,2.57 -0.28,1.46 0.56,1.62 1.63,1.57 1.51,3.55 -1.1,-0.29 -3.77,0.48 -0.75,0.33 -0.8,1.8 0.63,1.25 -0.5,3.35 -0.35,2.85 0.76,0.51 1.96,1.1 0.77,-0.51 0.24,3.08 -2.15,-0.03 -1.15,-1.57 -1.03,-1.22 -2.15,-0.4 -0.63,-1.49 -1.72,0.9 -2.24,-0.4 -0.94,-1.29 -1.78,-0.26 -1.31,0.07 -0.16,-0.88 -0.97,-0.07 -1.28,-0.17 -1.73,0.42 -1.22,-0.07 -0.7,0.26 0.15,-3.37 -0.93,-1.05 -0.21,-1.73 0.41,-1.7 -0.56,-1.09 -0.05,-1.76 -3.41,0.02 0.25,-1.01 -1.43,0.01 -0.15,0.49 -1.74,0.11 -0.71,1.63 -0.42,0.71 -1.55,-0.4 -0.92,0.4 -1.86,0.22 -1.07,-1.47 -0.64,-0.91 -0.81,-1.68 -0.69,-2.09 -8.27,-0.03 -0.99,0.33 -0.81,-0.05 -1.16,0.38 -0.39,-0.87 0.71,-0.3 0.09,-1.22 0.46,-0.72 1.02,-0.58 0.74,0.28 0.96,-1.07 1.52,0.03 0.18,0.79 1.05,0.5 1.65,-1.76 1.63,-1.36 0.71,-0.89 -0.09,-2.3 1.22,-2.71 1.28,-1.43 1.85,-1.34 0.32,-0.89 0.07,-1.02 0.46,-0.97 -0.15,-1.58 0.35,-2.47 0.55,-1.74 0.84,-1.49 0.16,-1.68 0.25,-1.95 1.1,-1.42 1.5,-0.9 2.31,0.95 1.78,1.03 2.05,0.28 2.09,0.54 0.84,-1.68 0.39,-0.22 1.27,0.28 3.13,-1.39 1.1,0.59 0.91,-0.08 0.42,-0.68 1.04,-0.24 2.11,0.29 1.8,0.06 0.93,-0.29 1.69,2.31 1.26,0.33 0.75,-0.47 1.3,0.19 1.56,-0.59 0.67,1.19 z", - "CF": "m 518.34,442.91 2.32,-0.22 0.52,-0.72 0.46,0.06 0.7,0.63 3.53,-1.07 1.19,-1.1 1.47,-0.99 -0.28,-0.99 0.79,-0.26 2.71,0.18 2.64,-1.31 2.02,-3.09 1.43,-1.14 1.77,-0.49 0.32,1.22 1.62,1.77 0,1.15 -0.45,1.18 0.18,0.87 0.97,0.81 2.14,1.24 1.53,1.13 0.03,0.92 1.88,1.46 1.17,1.21 0.71,1.68 2.1,1.11 0.45,0.89 -0.93,0.29 -1.8,-0.06 -2.11,-0.29 -1.04,0.24 -0.42,0.68 -0.91,0.08 -1.1,-0.59 -3.13,1.39 -1.27,-0.28 -0.39,0.22 -0.84,1.68 -2.09,-0.54 -2.05,-0.28 -1.78,-1.03 -2.31,-0.95 -1.5,0.9 -1.1,1.42 -0.25,1.95 -1.8,-0.16 -1.9,-0.47 -1.67,1.48 -1.47,2.6 -0.3,-0.81 -0.12,-1.27 -1.28,-0.9 -1.04,-1.44 -0.24,-1 -1.32,-1.46 0.22,-0.83 -0.28,-1.18 0.22,-2.17 0.67,-0.51 z", - "CG": "m 511.94,476.97 -1.05,-0.96 -0.85,0.47 -1.13,1.2 -2.3,-2.95 2.13,-1.54 -1.05,-1.85 0.96,-0.7 1.89,-0.34 0.22,-1.24 1.5,1.34 2.48,0.12 0.86,-1.32 0.35,-1.85 -0.31,-2.18 -1.32,-1.64 1.21,-3.23 -0.7,-0.55 -2.08,0.22 -0.79,-1.43 0.21,-1.22 3.53,0.11 2.27,0.73 2.23,0.66 0.2,-1.5 1.47,-2.6 1.67,-1.48 1.9,0.47 1.8,0.16 -0.16,1.68 -0.84,1.49 -0.55,1.74 -0.35,2.47 0.15,1.58 -0.46,0.97 -0.07,1.02 -0.32,0.89 -1.85,1.34 -1.28,1.43 -1.22,2.71 0.09,2.3 -0.71,0.89 -1.63,1.36 -1.65,1.76 -1.05,-0.5 -0.18,-0.79 -1.52,-0.03 -0.96,1.07 z", - "CH": "m 502.4,312.59 0.11,0.74 -0.43,1.01 1.27,0.74 1.43,0.11 -0.22,1.67 -1.23,0.69 -2.08,-0.51 -0.61,1.63 -1.33,0.13 -0.49,-0.64 -1.57,1.36 -1.35,0.19 -1.21,-0.86 -0.96,-1.77 -1.34,0.64 0.04,-1.84 2.05,-2.31 -0.09,-1.05 1.28,0.39 0.77,-0.71 2.38,0.03 0.58,-0.9 z", - "CI": "m 467.49,449.71 -1.27,0.03 -1.96,-0.55 -1.79,0.03 -3.33,0.49 -1.94,0.81 -2.78,1.02 -0.54,-0.07 0.21,-2.3 0.27,-0.35 -0.08,-1.11 -1.19,-1.17 -0.89,-0.19 -0.82,-0.77 0.61,-1.24 -0.28,-1.36 0.13,-0.82 0.45,0 0.16,-1.23 -0.22,-0.54 0.27,-0.39 1.04,-0.34 -0.69,-2.26 -0.65,-1.16 0.23,-0.97 0.56,-0.21 0.36,-0.26 0.78,0.42 2.16,0.03 0.52,-0.83 0.48,0.06 0.81,-0.32 0.44,1.21 0.65,-0.36 1.16,-0.42 1.26,0.62 0.49,0.93 1.26,0.6 0.98,-0.71 1.32,-0.11 1.92,0.73 0.74,4.01 -1.18,2.36 -0.73,3.17 1.21,2.41 z", - "CL": "m 283.06,636.98 0,10.57 3,0 1.69,0.13 -0.93,1.98 -2.4,1.53 -1.38,-0.16 -1.66,-0.4 -2.04,-1.48 -2.94,-0.71 -3.53,-2.71 -2.86,-2.57 -3.86,-5.25 2.31,0.97 3.94,3.13 3.72,1.7 1.45,-2.17 0.91,-3.2 2.58,-1.91 2,0.55 z m 1.16,-112.01 1.1,4.15 2.02,-0.41 0.34,0.76 -0.96,3.16 -3.05,1.51 0.09,5.14 -0.59,1 0.84,1.23 -1.98,1.95 -1.84,2.96 -1,2.9 0.27,3.11 -1.73,3.34 1.29,5.69 0.73,0.61 -0.01,3.09 -1.6,3.31 0.06,2.87 -2.12,2.26 0.01,3.22 0.85,3.46 -1.68,1.3 -0.75,3.22 -0.66,3.75 0.47,4.54 -1.13,0.77 0.65,4.4 1.27,1.46 -0.92,1.63 1.3,0.78 0.3,1.48 -1.22,0.75 0.3,2.33 -1.02,5.35 -1.49,3.52 0.33,2.11 -0.89,2.68 -2.15,1.88 0.25,4.6 0.99,1.6 1.87,-0.28 -0.05,3.33 1.16,2.63 6.78,0.61 2.6,0.71 -2.49,-0.03 -1.35,1.13 -2.53,1.67 -0.45,4.38 -1.19,0.11 -3.16,-1.54 -3.21,-3.25 0,0 -3.49,-2.63 -0.88,-2.87 0.79,-2.62 -1.41,-2.94 -0.36,-7.34 1.19,-4.03 2.96,-3.19 -4.26,-1.19 2.67,-3.57 0.95,-6.56 3.12,1.37 1.46,-7.97 -1.88,-1 -0.88,4.75 -1.77,-0.54 0.88,-5.42 0.96,-6.84 1.29,-2.48 -0.81,-3.5 -0.23,-3.98 1.18,-0.11 1.72,-5.6 1.94,-5.43 1.19,-4.97 -0.65,-4.91 0.84,-2.67 -0.34,-3.96 1.64,-3.87 0.51,-6.04 0.9,-6.37 0.88,-6.75 -0.21,-4.87 -0.58,-4.15 1.44,-0.75 0.75,-1.5 1.37,1.99 0.37,2.12 1.47,1.25 -0.88,2.87 1.51,3.34 z", - "CM": "m 512.17,457.32 -0.35,-0.15 -1.66,0.36 -1.71,-0.38 -1.33,0.19 -4.56,-0.07 0.41,-2.2 -1.1,-1.84 -1.28,-0.48 -0.57,-1.25 -0.72,-0.4 0.04,-0.77 0.72,-1.98 1.33,-2.7 0.81,-0.03 1.67,-1.64 1.07,-0.04 1.57,1.15 1.93,-0.95 0.26,-1.16 0.63,-1.14 0.43,-1.42 1.5,-1.16 0.57,-1.97 0.59,-0.63 0.4,-1.47 0.74,-1.81 2.36,-2.2 0.15,-0.95 0.31,-0.51 -1.11,-1.14 0.09,-0.9 0.79,-0.17 1.11,1.83 0.19,1.89 -0.1,1.89 1.52,2.57 -1.56,-0.03 -0.79,0.2 -1.28,-0.28 -0.61,1.33 1.65,1.65 1.22,0.48 0.4,1.17 0.88,1.93 -0.44,0.77 -1.41,2.84 -0.67,0.51 -0.22,2.17 0.28,1.18 -0.22,0.83 1.32,1.46 0.24,1 1.04,1.44 1.28,0.9 0.12,1.27 0.3,0.81 -0.2,1.5 -2.23,-0.66 -2.27,-0.73 z", - "CN": "m 784.88,410.66 -2.42,1.41 -2.3,-0.91 -0.08,-2.53 1.38,-1.34 3.06,-0.83 1.61,0.07 0.63,1.13 -1.23,1.3 -0.65,1.7 z m 48.56,-107.52 4.88,1.38 3.32,3.03 1.13,3.95 4.26,0 2.43,-1.65 4.63,-1.24 -1.47,3.76 -1.09,1.51 -0.96,4.46 -1.89,3.89 -3.4,-0.7 -2.41,1.4 0.74,3.36 -0.4,4.55 -1.43,0.1 0.02,1.93 -1.81,-2.24 -1.11,2.13 -4.33,1.62 0.44,1.97 -2.42,-0.14 -1.33,-1.17 -1.93,2.64 -3.09,1.98 -2.28,2.35 -3.92,1.06 -2.06,1.69 -3.02,0.98 1.49,-1.67 -0.59,-1.41 2.22,-2.45 -1.48,-1.93 -2.44,1.3 -3.17,2.54 -1.73,2.34 -2.75,0.17 -1.43,1.68 1.48,2.41 2.29,0.58 0.09,1.58 2.22,1.02 3.14,-2.51 2.49,1.37 1.81,0.09 0.46,1.84 -3.97,0.97 -1.31,1.87 -2.73,1.73 -1.44,2.39 3.02,1.86 1.1,3.31 1.71,3.05 1.9,2.53 -0.05,2.43 -1.76,0.89 0.67,1.73 1.65,1 -0.43,2.61 -0.71,2.52 -1.57,0.28 -2.05,3.41 -2.27,4.09 -2.6,3.68 -3.86,2.82 -3.9,2.55 -3.16,0.35 -1.71,1.34 -0.97,-0.98 -1.59,1.5 -3.92,1.5 -2.97,0.46 -0.96,3.15 -1.55,0.17 -0.74,-2.16 0.66,-1.16 -3.76,-0.96 -1.33,0.49 -2.82,-0.78 -1.33,-1.22 0.44,-1.74 -2.56,-0.55 -1.35,-1.14 -2.39,1.62 -2.73,0.35 -2.24,-0.02 -1.5,0.74 -1.45,0.44 0.42,3.43 -1.5,-0.08 -0.25,-0.7 -0.08,-1.24 -2.06,0.87 -1.21,-0.55 -2.08,-1.13 0.82,-2.51 -1.78,-0.59 -0.67,-2.8 -2.96,0.51 0.34,-3.63 2.66,-2.58 0.11,-2.57 -0.08,-2.4 -1.22,-0.75 -0.94,-1.86 -1.64,0.24 -3.02,-0.47 0.95,-1.33 -1.31,-1.99 -2,1.35 -2.36,-0.78 -3.23,2.03 -2.55,2.36 -2.26,0.39 -1.23,-0.85 -1.48,-0.08 -2,-0.73 -1.51,0.8 -1.85,2.34 -0.24,-2.48 -1.71,0.66 -3.27,-0.31 -3.17,-0.73 -2.28,-1.39 -2.18,-0.63 -0.94,-1.53 -1.58,-0.46 -2.83,-2.09 -2.25,-0.99 -1.16,0.77 -3.9,-2.26 -2.75,-2.07 -0.79,-3.63 2.01,0.44 0.09,-1.69 -1.12,-1.71 0.28,-2.74 -3.01,-3.99 -4.61,-1.39 -0.83,-2.66 -2.07,-1.63 -0.5,-1.01 -0.42,-2.01 0.1,-1.38 -1.7,-0.81 -0.92,0.36 -0.71,-3.32 0.8,-0.83 -0.39,-0.85 2.68,-1.73 1.94,-0.72 2.97,0.49 1.06,-2.35 3.6,-0.44 1,-1.48 4.42,-2.03 0.39,-0.85 -0.22,-2.17 1.92,-1 -2.52,-6.75 5.55,-1.58 1.44,-0.89 2.02,-7.26 5.56,1.35 1.56,-1.86 0.13,-4.19 2.33,-0.39 2.13,-2.83 1.1,-0.35 0.74,2.97 2.36,2.23 4,1.57 1.93,3.32 -1.08,4.73 1.01,1.73 3.33,0.68 3.78,0.55 3.39,2.45 1.73,0.43 1.28,3.57 1.65,2.27 3.09,-0.09 5.79,0.85 3.73,-0.53 2.77,0.57 4.15,2.29 3.39,0 1.24,1.16 3.26,-2.01 4.53,-1.31 4.2,-0.14 3.28,-1.34 2.01,-2.05 1.96,-1.3 -0.45,-1.28 -0.9,-1.5 1.47,-2.54 1.58,0.36 2.88,0.8 2.79,-2.1 4.28,-1.55 2.05,-2.66 1.97,-1.16 4.07,-0.54 2.21,0.46 0.31,-1.45 -2.54,-2.89 -2.25,-1.33 -2.16,1.54 -2.77,-0.65 -1.59,0.53 -0.72,-1.71 1.98,-4.23 1.37,-3.25 3.37,1.63 3.95,-2.74 -0.03,-1.93 2.53,-4.73 1.56,-1.45 -0.04,-2.52 -1.54,-1.1 2.32,-2.31 3.48,-0.84 3.72,-0.13 4.2,1.39 2.46,1.71 1.73,4.61 1.05,1.94 0.98,2.73 1.05,4.31 z", - "CO": "m 264.17,464.06 -1.2,-0.66 -1.38,-0.92 -0.8,0.44 -2.38,-0.39 -0.68,-1.2 -0.52,0.05 -2.81,-1.59 -0.38,-0.87 1.05,-0.21 -0.12,-1.39 0.65,-1.01 1.39,-0.19 1.19,-1.75 1.07,-1.46 -1.04,-0.67 0.53,-1.62 -0.63,-2.56 0.6,-0.73 -0.44,-2.37 -1.14,-1.5 0.36,-1.36 0.91,0.2 0.53,-0.84 -0.65,-1.65 0.34,-0.42 1.44,0.09 2.11,-1.97 1.15,-0.3 0.03,-0.93 0.52,-2.39 1.61,-1.32 1.76,-0.05 0.22,-0.59 2.2,0.23 2.21,-1.43 1.09,-0.64 1.35,-1.37 1,0.17 0.73,0.75 -0.54,0.96 -1.8,0.48 -0.71,1.42 -1.09,0.81 -0.81,1.06 -0.35,2.01 -0.77,1.66 1.44,0.18 0.36,1.3 0.62,0.62 0.22,1.13 -0.33,1.04 0.1,0.59 0.69,0.23 0.67,0.98 3.6,-0.27 1.63,0.36 1.98,2.41 1.13,-0.3 2.02,0.15 1.6,-0.32 0.99,0.49 -0.51,1.5 -0.62,0.94 -0.22,2.01 0.56,1.85 0.8,0.83 0.09,0.63 -1.42,1.39 1.02,0.61 0.75,0.98 0.85,2.77 -0.53,0.35 -0.54,-1.65 -0.78,-0.88 -0.93,0.96 -5.46,-0.06 0.03,1.74 1.64,0.29 -0.09,1.07 -0.56,-0.29 -1.58,0.46 -0.01,2.02 1.24,1.02 0.44,1.59 -0.07,1.21 -1.26,7.65 -1.4,-1.49 -0.84,-0.06 1.81,-2.84 -2.15,-1.31 -1.68,0.24 -1.01,-0.48 -1.55,0.74 -2.09,-0.35 -1.65,-2.92 -1.3,-0.72 -0.89,-1.32 -1.86,-1.32 z", - "CR": "m 242.88,440.65 -1.52,-0.63 -0.57,-0.59 0.32,-0.49 -0.1,-0.62 -0.78,-0.68 -1.1,-0.55 -0.97,-0.36 -0.18,-0.83 -0.74,-0.51 0.18,0.83 -0.56,0.67 -0.64,-0.78 -0.9,-0.28 -0.38,-0.57 0.02,-0.86 0.37,-0.9 -0.79,-0.4 0.64,-0.54 0.42,-0.37 1.85,0.75 0.64,-0.37 0.89,0.24 0.47,0.58 0.82,0.19 0.67,-0.6 0.72,1.54 1.08,1.14 1.32,1.21 -1.09,0.25 0.02,1.13 0.58,0.42 -0.42,0.34 0.11,0.51 -0.23,0.57 z", - "CU": "m 244.83,397.19 2.43,0.22 2.2,0.03 2.63,1.03 1.12,1.11 2.62,-0.34 0.99,0.7 2.38,1.87 1.74,1.35 0.92,-0.04 1.68,0.61 -0.21,0.84 2.07,0.12 2.12,1.22 -0.33,0.69 -1.87,0.38 -1.89,0.15 -1.93,-0.24 -4.01,0.29 1.88,-1.66 -1.14,-0.77 -1.81,-0.2 -0.97,-0.86 -0.67,-1.7 -1.58,0.11 -2.62,-0.8 -0.84,-0.63 -3.65,-0.47 -0.98,-0.59 1.05,-0.75 -2.75,-0.15 -2.01,1.56 -1.17,0.04 -0.4,0.74 -1.38,0.33 -1.2,-0.29 1.48,-0.93 0.6,-1.09 1.27,-0.67 1.43,-0.59 2.13,-0.29 z", - "CY": "m 570.56,358.54 1.89,-1.46 -2.55,1.02 -2.02,-0.05 -0.4,0.83 -0.2,0.02 -1.33,0.12 0.65,1.37 1.37,0.44 2.88,-1.38 -0.09,-0.27 z", - "CZ": "m 523.06,308.11 -1.3,-0.8 -1.31,0.22 -2.18,-1.3 -0.99,0.32 -1.57,1.74 -2.09,-1.37 -1.58,-1.83 -1.43,-1.04 -0.3,-1.82 -0.49,-1.3 2.04,-0.95 1.04,-1.1 2.01,-0.86 0.71,-0.84 0.74,0.51 1.25,-0.47 1.33,1.43 2.09,0.39 -0.17,1.21 1.52,0.9 0.42,-1.13 1.92,0.49 0.27,1.37 2.08,0.26 1.29,2.13 -0.83,0.01 -0.44,0.77 -0.64,0.19 -0.18,0.97 -0.54,0.21 -0.08,0.39 -0.95,0.44 -1.25,-0.07 z", - "DE": "m 503.32,279.17 0.05,1.88 2.84,1.12 -0.03,1.7 2.85,-0.9 1.57,-1.31 3.17,1.89 1.32,1.51 0.66,2.39 -0.78,1.25 1.01,1.65 0.7,2.45 -0.22,1.56 1.15,2.86 -1.25,0.47 -0.74,-0.51 -0.71,0.84 -2.01,0.86 -1.04,1.1 -2.04,0.95 0.49,1.3 0.3,1.82 1.43,1.04 1.58,1.83 -0.98,1.95 -1.01,0.54 0.4,2.72 -0.27,0.7 -0.87,-0.85 -1.34,-0.12 -2.01,0.74 -2.47,-0.18 -0.4,1.09 -1.42,-1.14 -0.85,0.22 -3,-1.26 -0.58,0.9 -2.38,-0.03 0.35,-2.98 1.42,-2.9 -4.04,-0.78 -1.32,-1.13 0.16,-1.89 -0.56,-0.98 0.32,-2.97 -0.48,-4.69 1.69,0 0.71,-1.71 0.7,-4.23 -0.53,-1.58 0.55,-1 2.34,-0.26 0.52,1.04 1.91,-2.33 -0.64,-1.79 -0.13,-2.75 2.12,0.64 z", - "DJ": "m 596.3,427.97 0.66,0.88 -0.09,1.19 -1.6,0.68 1.21,0.77 -1.04,1.52 -0.62,-0.5 -0.67,0.2 -1.57,-0.05 -0.05,-0.86 -0.21,-0.79 0.94,-1.33 0.99,-1.26 1.2,0.25 z", - "DK": "m 511.08,276.09 -1.68,3.97 -2.93,-2.76 -0.39,-2.05 4.11,-1.66 0.89,2.5 z m -4.98,-4.25 -0.69,1.9 -0.83,-0.55 -2.02,3.59 0.76,2.39 -1.79,0.74 -2.12,-0.64 -1.14,-2.72 -0.08,-5.12 0.47,-1.38 0.8,-1.54 2.47,-0.32 0.98,-1.43 2.26,-1.47 -0.1,2.68 -0.83,1.68 0.34,1.43 1.52,0.76 z", - "DO": "m 274.43,407.6 0.35,-0.51 2.19,0.02 1.66,0.76 0.74,-0.08 0.51,1.05 1.53,-0.06 -0.09,0.88 1.25,0.11 1.38,1.08 -1.04,1.2 -1.34,-0.64 -1.28,0.12 -0.92,-0.14 -0.51,0.54 -1.08,0.18 -0.42,-0.72 -0.93,0.43 -1.12,2 -0.72,-0.46 -0.15,-0.84 0.06,-0.8 -0.72,-0.88 0.68,-0.5 0.22,-1.13 z", - "DZ": "m 509.15,396.33 -9.61,5.75 -8.12,5.85 -3.95,1.32 -3.11,0.29 -0.03,-1.88 -1.3,-0.48 -1.75,-0.85 -0.66,-1.39 -9.46,-6.55 -9.46,-6.65 -10.55,-7.53 0.06,-0.61 0,-0.21 -0.03,-3.75 4.53,-2.36 2.8,-0.49 2.29,-0.86 1.08,-1.62 3.28,-1.29 0.12,-2.41 1.62,-0.29 1.27,-1.21 3.67,-0.56 0.51,-1.28 -0.74,-0.71 -0.97,-3.53 -0.16,-2.05 -1.06,-2.18 2.69,-1.87 3.04,-0.6 1.77,-1.43 2.7,-1.05 4.75,-0.62 4.64,-0.29 1.41,0.52 2.64,-1.37 3,-0.03 1.14,0.81 1.91,-0.21 -0.57,1.79 0.45,3.28 -0.66,2.82 -1.73,1.88 0.25,2.53 2.29,1.98 0.03,0.81 1.72,1.33 1.2,5.86 0.91,2.84 0.15,1.48 -0.49,2.59 0.2,1.44 -0.36,1.72 0.25,1.97 -1.12,1.29 1.66,2.26 0.11,1.32 0.99,1.71 1.31,-0.56 2.22,1.42 z", - "EC": "m 250.35,473.12 1.49,-2.08 -0.61,-1.22 -1.07,1.3 -1.68,-1.23 0.57,-0.78 -0.47,-2.53 0.98,-0.42 0.52,-1.73 1.06,-1.8 -0.2,-1.13 1.54,-0.6 1.92,-1.11 2.81,1.59 0.52,-0.05 0.68,1.2 2.38,0.39 0.8,-0.44 1.38,0.92 1.2,0.66 0.39,2.11 -0.87,1.81 -3.06,2.92 -3.37,1.1 -1.72,2.43 -0.53,1.88 -1.59,1.15 -1.17,-1.41 -1.14,-0.3 -1.16,0.22 -0.07,-1.02 0.8,-0.66 z", - "EE": "m 543.67,264.96 0.33,-3.12 -1.03,0.67 -1.78,-1.9 -0.25,-3.11 3.55,-1.53 3.53,-0.81 3.04,0.92 2.9,-0.17 0.42,0.96 -1.99,3.14 0.83,4.96 -1.2,1.66 -2.32,-0.01 -2.41,-1.94 -1.23,-0.65 z", - "EG": "m 573.42,377.53 -0.79,1.29 -0.6,2.4 -0.76,1.64 -0.66,0.56 -0.93,-1.02 -1.27,-1.42 -2,-4.57 -0.28,0.29 1.16,3.37 1.72,3.18 2.12,4.88 1.03,1.68 0.9,1.74 2.52,3.4 -0.56,0.53 0.09,1.97 3.27,2.71 0.49,0.62 -11.12,0 -10.88,0 -11.27,0 0,-11.23 0,-11.18 -0.84,-2.58 0.72,-2 -0.43,-1.39 1.01,-1.57 3.73,-0.05 2.7,0.86 2.78,0.97 1.3,0.5 2.16,-1.03 1.15,-0.93 2.48,-0.27 1.99,0.41 0.77,1.62 0.65,-1.07 2.24,0.77 2.19,0.19 1.38,-0.82 z", - "EH": "m 438.82,383.31 3.62,0.01 8.75,0.03 0,0 0,0 -8.75,-0.03 -3.62,-0.01 -0.11,0.09 -0.05,0.04 -1.78,3.2 -1.86,1.14 -1.02,1.91 -0.06,1.65 -0.75,1.79 -0.94,0.49 -1.56,1.94 -0.96,2.15 0.18,1.02 -0.92,1.57 -1.08,0.82 -0.13,1.39 -0.12,1.27 0.61,-1 10.98,0.02 -0.53,-4.35 0.69,-1.55 2.62,-0.27 -0.09,-7.86 9.21,0.17 0,-4.73 0.06,-0.61 0,-0.21 z", - "ER": "m 594.25,428.42 -0.96,-0.93 -1.15,-1.67 -1.24,-0.92 -0.73,-1 -2.44,-1.15 -1.92,-0.03 -0.68,-0.61 -1.64,0.68 -1.7,-1.31 -0.88,2.15 -3.26,-0.6 -0.3,-1.15 1.21,-4.25 0.27,-1.93 0.88,-0.9 2.07,-0.48 1.42,-1.67 1.63,3.38 0.77,2.67 1.54,1.41 3.82,2.72 1.56,1.64 1.52,1.66 0.88,0.98 1.38,0.86 -0.85,0.7 z", - "ES": "m 450.17,334.81 0.14,-2.68 -1.14,-1.66 3.96,-2.77 3.43,0.7 3.77,-0.03 2.98,0.66 2.33,-0.2 4.53,0.12 1.12,1.49 5.16,1.73 1.02,-0.82 3.16,1.72 3.25,-0.49 0.15,2.19 -2.66,2.49 -3.59,0.78 -0.25,1.24 -1.73,2.03 -1.08,2.96 1.09,2.05 -1.62,1.6 -0.6,2.3 -2.12,0.7 -1.99,2.69 -3.55,0.05 -2.68,-0.06 -1.75,1.22 -1.07,1.31 -1.38,-0.29 -1.03,-1.17 -0.8,-2 -2.62,-0.54 -0.23,-1.16 1.04,-1.32 0.38,-0.96 -0.96,-1.06 0.77,-2.35 -1.12,-2.17 1.21,-0.3 0.11,-1.72 0.46,-0.53 0.03,-2.88 1.3,-1 -0.78,-1.88 -1.64,-0.13 -0.48,0.47 -1.65,0.01 -0.71,-1.84 -1.14,0.55 z", - "ET": "m 581.79,421.48 1.7,1.31 1.64,-0.68 0.68,0.61 1.92,0.03 2.44,1.15 0.73,1 1.24,0.92 1.15,1.67 0.96,0.93 -0.99,1.26 -0.94,1.33 0.21,0.79 0.05,0.86 1.57,0.05 0.67,-0.2 0.62,0.5 -0.61,1.01 1.04,1.56 1.03,1.36 1.07,1.01 9.17,3.34 2.36,-0.02 -7.93,8.42 -3.65,0.12 -2.5,1.97 -1.79,0.05 -0.77,0.88 -1.92,0 -1.13,-0.94 -2.56,1.17 -0.83,1.16 -1.87,-0.22 -0.62,-0.32 -0.66,0.07 -0.88,-0.02 -3.55,-2.38 -1.95,0 -0.96,-0.91 0,-1.57 -1.46,-0.47 -1.65,-3.05 -1.28,-0.65 -0.5,-1.12 -1.42,-1.37 -1.72,-0.2 0.96,-1.61 1.48,-0.07 0.42,-0.86 -0.03,-2.53 0.83,-2.96 1.32,-0.8 0.29,-1.16 1.2,-2.17 1.69,-1.42 1.14,-2.81 0.45,-2.47 3.26,0.6 z", - "FK": "m 303.91,633.38 3.36,-2.69 2.39,1.12 1.68,-1.79 2.24,2.01 -0.84,1.58 -3.79,1.36 -1.26,-1.59 -2.38,2.05 z", - "FI": "m 555.67,193.35 -0.41,5.4 4.3,4.99 -2.59,5.48 3.26,7.96 -1.89,5.76 2.53,4.86 -1.15,4.14 4.15,4.26 -1.06,3.1 -2.6,3.45 -6,7.41 -5.09,0.45 -4.93,2.07 -4.56,1.18 -1.63,-3.07 -2.71,-1.87 0.62,-5.72 -1.36,-5.41 1.34,-3.58 2.54,-3.94 6.41,-7.02 1.88,-1.39 -0.3,-2.84 -3.9,-3.22 -0.94,-2.7 -0.08,-11.12 -4.37,-5.15 -3.74,-3.81 1.68,-2.08 3.12,4.15 3.66,-0.39 3.01,1.87 2.67,-3.44 1.38,-5.85 4.35,-2.78 3.6,3.26 z", - "FJ": "m 980.78,508.86 -0.35,1.4 -0.23,0.16 -1.78,0.72 -1.79,0.61 -0.36,-1.09 1.4,-0.6 0.89,-0.16 1.64,-0.91 0.58,-0.13 z m -5.84,4.31 -1.27,-0.36 -1.08,1 0.27,1.29 1.55,0.36 1.74,-0.4 0.46,-1.53 -0.96,-0.84 -0.71,0.48 z", - "FR": "m 502.31,333.79 -0.93,2.89 -1.27,-0.76 -0.65,-2.53 0.57,-1.41 1.81,-1.45 0.47,3.26 z m -16.75,-33.35 1.96,2.06 1.44,-0.34 2.45,1.97 0.63,0.37 0.81,-0.09 1.32,1.12 4.04,0.79 -1.42,2.9 -0.36,2.98 -0.77,0.71 -1.28,-0.38 0.09,1.05 -2.05,2.3 -0.04,1.84 1.34,-0.63 0.96,1.77 -0.12,1.13 0.83,1.5 -0.97,1.21 0.72,3.04 1.52,0.49 -0.32,1.68 -2.54,2.17 -5.53,-1.04 -4.08,1.24 -0.32,2.29 -3.25,0.49 -3.15,-1.72 -1.02,0.82 -5.16,-1.73 -1.12,-1.49 1.45,-2.32 0.53,-7.88 -2.89,-4.26 -2.07,-2.09 -4.29,-1.6 -0.28,-3.07 3.64,-0.92 4.71,1.09 -0.89,-4.84 2.65,1.85 6.53,-3.37 0.84,-3.61 2.45,-0.9 0.41,1.56 1.3,0.07 1.3,1.79 z", - "GA": "m 506.61,474.73 -2.88,-2.82 -1.86,-2.3 -1.7,-2.88 0.09,-0.92 0.61,-0.9 0.68,-2.02 0.57,-2.07 0.95,-0.16 4.07,0.03 -0.02,-3.35 1.33,-0.19 1.71,0.38 1.66,-0.36 0.35,0.15 -0.21,1.22 0.79,1.43 2.08,-0.22 0.7,0.55 -1.21,3.23 1.32,1.64 0.31,2.18 -0.35,1.85 -0.86,1.32 -2.48,-0.12 -1.5,-1.34 -0.22,1.24 -1.89,0.34 -0.96,0.7 1.05,1.85 z", - "GB": "m 459.63,281.25 -1.5,3.29 -2.12,-0.98 -1.73,0.07 0.58,-2.57 -0.58,-2.6 2.35,-0.2 3,2.99 z m 7.45,-20.76 -3,5.73 2.86,-0.72 3.07,0.03 -0.73,4.22 -2.52,4.53 2.9,0.32 0.22,0.52 2.5,5.79 1.92,0.77 1.73,5.41 0.8,1.84 3.4,0.88 -0.34,2.93 -1.43,1.33 1.12,2.33 -2.52,2.33 -3.75,-0.04 -4.77,1.21 -1.31,-0.87 -1.85,2.06 -2.59,-0.5 -1.97,1.67 -1.49,-0.87 4.11,-4.64 2.51,-0.97 -0.02,0 -4.38,-0.75 -0.79,-1.8 2.93,-1.41 -1.54,-2.48 0.53,-3.06 4.17,0.42 0,0 0.41,-2.74 -1.88,-2.95 -0.04,-0.07 -3.4,-0.85 -0.67,-1.32 1.02,-2.2 -0.92,-1.37 -1.51,2.34 -0.16,-4.8 -1.42,-2.59 1.02,-5.36 2.18,-4.31 2.24,0.42 3.36,-0.41 z", - "GE": "m 592.01,336.1 0.42,-1.6 -0.7,-2.57 -1.62,-1.41 -1.55,-0.44 -1.03,-1.17 0.34,-0.46 2.37,0.66 4.13,0.62 3.82,1.83 0.49,0.71 1.7,-0.6 2.62,0.8 0.85,1.55 1.77,0.87 -0.73,0.51 1.38,2.02 -0.38,0.43 -1.51,-0.22 -2.09,-1.06 -0.69,0.6 -3.9,0.58 -2.7,-1.82 z", - "GF": "m 328.14,456.66 -1.07,1.06 -1.34,0.2 -0.38,-0.78 -0.63,-0.12 -0.87,0.76 -1.22,-0.57 0.71,-1.19 0.24,-1.27 0.48,-1.2 -1.09,-1.65 -0.22,-1.91 1.46,-2.41 0.95,0.31 2.06,0.66 2.97,2.36 0.46,1.14 -1.66,2.55 -0.85,2.06 z", - "GH": "m 478.48,447.09 -4.4,1.64 -1.56,0.96 -2.53,0.81 -2.5,-0.79 0.13,-1.11 -1.21,-2.41 0.73,-3.17 1.18,-2.36 -0.74,-4.01 -0.39,-2.13 0.07,-1.61 4.87,-0.13 1.24,0.21 0.9,-0.46 1.3,0.22 -0.21,0.89 1.17,1.46 0,2.05 0.27,2.22 0.7,1.03 -0.62,2.53 0.22,1.4 0.75,1.78 z", - "GL": "m 344.38,24.16 9.42,-13.61 9.84,1.07 3.57,-8.95 9.91,-2.42 22.4,3.15 17.54,18.59 -5.18,8.3 -10.73,0.93 -15.09,2.03 1.41,3.64 9.93,-2.24 8.44,6.91 5.45,-6.12 2.33,7.15 -3.08,10.97 7.14,-6.93 13.61,-7.55 8.41,3.81 1.57,8.12 -11.43,12.66 -1.58,3.9 -8.96,2.86 6.49,0.79 -3.28,11.51 -2.26,9.59 0.09,15.26 3.37,8.34 -4.38,0.51 -4.61,3.88 5.17,6.3 0.66,9.62 -3,1.02 3.63,9.15 -6.22,0.75 3.25,4.14 -0.92,3.51 -3.95,1.51 -3.91,0.03 3.51,6.48 0.04,4.13 -5.55,-3.83 -1.44,2.49 3.78,2.29 3.68,5.48 1.06,6.95 -5,1.62 -2.16,-3.26 -3.47,-4.98 0.96,5.87 -3.25,4.41 7.38,0.35 3.87,0.45 -7.52,7.03 -7.62,6.13 -8.2,2.61 -3.09,0.04 -2.9,2.87 -3.9,7.63 -6.03,4.89 -1.94,0.29 -3.74,1.67 -4.02,1.59 -2.41,4.12 -0.04,4.56 -1.41,4.16 -4.58,4.95 1.13,4.71 -1.26,4.85 -1.43,5.56 -3.95,0.34 -4.14,-4.63 -5.61,-0.03 -2.72,-3.18 -1.87,-5.8 -4.86,-7.68 -1.42,-4.15 -0.38,-5.89 -3.89,-6.27 1.01,-5.17 -1.87,-2.53 2.77,-8.65 4.22,-2.85 1.11,-3.26 0.59,-6.26 -3.21,2.86 -1.52,1.19 -2.52,1.14 -3.44,-2.61 -0.19,-5.55 1.1,-4.48 2.6,-0.12 5.72,2.25 -4.82,-5.43 -2.51,-3.01 -2.79,1.24 -2.34,-2.19 3.13,-8.5 -1.7,-3.53 -2.23,-6.74 -3.37,-10.91 -3.57,-4.17 0.03,-4.63 -7.53,-6.69 -5.95,-0.85 -7.49,0.47 -6.84,0.86 -3.26,-3.75 -4.87,-7.66 7.36,-3.97 5.65,-0.68 -12,-3.36 -6.32,-5.44 0.39,-5.34 10.61,-6.87 10.27,-7.16 1.08,-5.64 -7.56,-5.76 2.44,-6.64 9.71,-12.33 4.08,-1.98 -1.17,-8.57 6.64,-5.24 8.62,-3.21 8.62,-0.18 3.06,6.3 7.44,-11.32 6.69,7.78 3.93,1.59 5.83,6.41 L 344,33.25 z", - "GM": "m 428.28,426.68 0.36,-1.27 3.05,-0.09 0.64,-0.67 0.89,-0.05 1.1,0.71 0.87,0.01 0.93,-0.48 0.56,0.82 -1.21,0.65 -1.22,-0.05 -1.2,-0.61 -1.04,0.66 -0.5,0.03 -0.68,0.4 z", - "GN": "m 451.84,442.16 -0.79,-0.07 -0.57,1.13 -0.8,-0.01 -0.54,-0.6 0.18,-1.13 -1.17,-1.72 -0.73,0.31 -0.6,0.07 -0.77,0.16 0.03,-1.03 -0.45,-0.74 0.09,-0.82 -0.61,-1.19 -0.78,-1.01 -2.24,0 -0.65,0.53 -0.78,0.06 -0.48,0.61 -0.32,0.79 -1.5,1.24 -1.23,-1.67 -1.09,-1.11 -0.72,-0.36 -0.7,-0.57 -0.31,-1.25 -0.41,-0.62 -0.82,-0.47 1.25,-1.38 0.85,0.05 0.73,-0.48 0.62,0 0.44,-0.38 -0.24,-0.94 0.31,-0.3 0.05,-0.97 1.35,0.03 2.02,0.7 0.62,-0.07 0.21,-0.31 1.52,0.22 0.41,-0.16 0.16,1.05 0.45,-0.01 0.73,-0.38 0.46,0.1 0.78,0.72 1.2,0.23 0.77,-0.62 0.91,-0.38 0.67,-0.4 0.56,0.08 0.62,0.62 0.34,0.79 1.15,1.19 -0.58,0.73 -0.11,0.92 0.6,-0.28 0.35,0.34 -0.15,0.84 0.86,0.82 -0.56,0.21 -0.23,0.97 0.65,1.16 0.69,2.26 -1.04,0.34 -0.27,0.39 0.22,0.54 -0.16,1.23 z", - "GQ": "m 502.12,460.82 -0.53,-0.42 0.97,-3.13 4.56,0.07 0.02,3.35 -4.07,-0.03 z", - "GR": "m 541.95,356.96 1.53,1.16 2.18,-0.19 2.09,0.24 -0.07,0.6 1.53,-0.41 -0.35,1.01 -4.04,0.29 0.03,-0.56 -3.42,-0.67 0.52,-1.47 z m 8.15,-20.96 -0.87,2.33 -0.67,0.41 -1.71,-0.1 -1.46,-0.35 -3.4,0.96 1.94,2.06 -1.42,0.59 -1.56,0 -1.48,-1.88 -0.53,0.8 0.63,2.18 1.4,1.7 -1.06,0.79 1.56,1.65 1.39,1.03 0.04,2 -1.36,-1.15 -1.24,0.21 0.83,1.8 -0.92,0.19 -1,-0.69 1.2,3.95 -0.58,0 -0.45,-1.25 -0.57,-0.02 -0.26,1.32 -0.45,-0.3 0.1,-0.74 -0.56,-1.04 H 537 l 0.12,0.84 -0.25,0.27 -0.62,-0.54 -0.38,-1.01 0.52,-0.57 -0.36,-0.74 -0.41,-0.38 -0.42,-0.09 -0.49,-0.94 0.58,-0.52 0.36,-0.48 0.56,0.1 0.25,-0.41 0.59,-0.16 0.68,0.46 0.55,0.17 0.39,-0.62 -0.94,-0.08 -0.56,-0.19 -1.25,0.28 -1.22,0.05 -1.09,-1.64 -0.18,-0.25 0.17,-0.64 -1.42,-1.15 -0.19,-1.03 1.3,-1.76 0.17,-1.19 0.91,-0.53 0.06,-0.97 1.83,-0.33 1.07,-0.81 1.52,0.07 0.46,-0.65 0.53,-0.12 2.07,0.11 2.25,-1.02 1.98,1.3 2.55,-0.35 0.03,-1.86 1.38,0.93 z", - "GT": "m 222.89,425 -1.44,-0.5 -1.75,-0.05 -1.28,-0.57 -1.51,-1.18 0.07,-0.84 0.32,-0.68 -0.39,-0.54 1.35,-2.36 3.59,-0.01 0.08,-0.98 -0.46,-0.18 -0.31,-0.63 -1.04,-0.67 -1.04,-0.98 1.27,0 0,-1.65 2.62,0 2.59,0.03 -0.02,2.31 -0.22,3.28 0.83,0 0.92,0.53 0.24,-0.44 0.82,0.37 -1.27,1.11 -1.33,0.81 -0.2,0.55 0.22,0.56 -0.58,0.74 -0.66,0.17 0.15,0.34 -0.52,0.32 -0.96,0.72 z", - "GW": "m 433.08,432.69 -1.5,-1.19 -1.18,-0.18 -0.64,-0.81 0.01,-0.43 -0.85,-0.6 -0.18,-0.61 1.49,-0.47 0.93,0.09 0.75,-0.32 5.18,0.12 -0.05,0.97 -0.31,0.3 0.24,0.94 -0.44,0.38 -0.62,0 -0.73,0.48 -0.85,-0.05 z", - "GY": "m 307.95,440.25 1.84,1.03 1.74,1.83 0.07,1.45 1.06,0.07 1.5,1.36 1.11,0.98 -0.45,2.52 -1.7,0.73 0.15,0.65 -0.52,1.45 1.25,2.02 0.89,0.01 0.37,1.57 1.71,2.42 -0.68,0.1 -1.55,-0.23 -0.91,0.74 -1.27,0.49 -0.88,0.12 -0.31,0.54 -1.38,-0.14 -1.73,-1.3 -0.2,-1.29 -0.72,-1.41 0.45,-2.38 0.78,-0.98 -0.65,-1.3 -0.96,-0.42 0.37,-1.23 -0.66,-0.64 -1.46,0.12 -1.89,-2.12 0.76,-0.77 -0.06,-1.3 1.73,-0.45 0.69,-0.52 -0.96,-1.04 0.25,-1.03 z", - "HN": "m 230.68,427.15 -0.48,-0.89 -0.86,-0.25 0.2,-1.15 -0.38,-0.31 -0.58,-0.2 -1.23,0.34 -0.1,-0.39 -0.85,-0.46 -0.6,-0.57 -0.83,-0.24 0.58,-0.74 -0.22,-0.56 0.2,-0.55 1.33,-0.81 1.27,-1.11 0.29,0.12 0.62,-0.51 0.8,-0.04 0.26,0.23 0.44,-0.14 1.3,0.26 1.3,-0.08 0.9,-0.32 0.33,-0.32 0.89,0.15 0.67,0.2 0.73,-0.07 0.56,-0.25 1.28,0.4 0.45,0.06 0.85,0.54 0.81,0.65 1.02,0.44 0.74,0.8 -0.96,-0.06 -0.39,0.39 -0.97,0.38 -0.71,0 -0.62,0.37 -0.56,-0.13 -0.48,-0.44 -0.29,0.08 -0.36,0.69 -0.27,-0.03 -0.05,0.6 -0.98,0.79 -0.51,0.34 -0.29,0.36 -0.83,-0.58 -0.6,0.76 -0.59,-0.02 -0.66,0.07 0.06,1.41 -0.41,0.02 -0.35,0.66 z", - "HR": "m 528.3,319.18 0.68,1.55 0.89,1.14 -1.08,1.49 -1.27,-0.88 -1.94,0.06 -2.41,-0.66 -1.31,0.09 -0.6,0.82 -1.01,-0.91 -0.59,1.64 1.38,1.83 0.6,1.21 1.29,1.45 1.07,0.85 1.06,1.61 2.48,1.44 -0.31,0.64 -2.63,-1.4 -1.63,-1.38 -2.56,-1.14 -2.36,-2.85 0.57,-0.3 -1.28,-1.64 -0.06,-1.34 -1.8,-0.62 -0.86,1.71 -0.83,-1.33 0.07,-1.38 0.1,-0.06 1.95,0.14 0.52,-0.68 0.95,0.65 1.1,0.08 -0.01,-1.12 0.97,-0.41 0.28,-1.62 2.23,-1.08 0.89,0.5 2.1,1.73 2.31,0.77 z", - "HT": "m 270.29,407 1.71,0.13 2.43,0.47 0.25,1.61 -0.22,1.13 -0.68,0.5 0.72,0.88 -0.06,0.8 -1.86,-0.5 -1.32,0.2 -1.71,-0.21 -1.31,0.55 -1.51,-0.92 0.25,-0.95 2.58,0.41 2.12,0.24 1.01,-0.66 -1.28,-1.27 0.02,-1.13 -1.77,-0.46 z", - "HU": "m 520.93,315.36 0.93,-2.65 -0.54,-0.89 1.58,-0.01 0.21,-1.71 1.43,1.07 1.03,0.46 2.36,-0.51 0.22,-0.84 1.12,-0.13 1.36,-0.65 0.3,0.27 1.32,-0.52 0.66,-1 0.92,-0.25 3,1.28 0.6,-0.43 1.55,1.14 0.2,1.12 -1.71,0.87 -1.33,2.8 -1.69,2.76 -2.25,0.76 -1.75,-0.17 -2.15,1.05 -1.05,0.6 -2.31,-0.77 -2.1,-1.73 -0.89,-0.5 -0.55,-1.37 z", - "ID": "m 813.97,492.31 -1.18,0.05 -3.72,-1.98 2.61,-0.56 1.47,0.86 0.98,0.86 -0.16,0.77 z m 10.43,-0.28 -2.4,0.62 -0.34,-0.34 0.25,-0.96 1.21,-1.72 2.77,-1.12 0.28,0.56 0.05,0.86 -1.82,2.1 z m -18.32,-5.77 1.01,0.75 1.73,-0.23 0.7,1.2 -3.24,0.57 -1.94,0.38 -1.51,-0.02 0.96,-1.62 1.54,-0.02 0.75,-1.01 z m 14.03,-0.01 -0.41,1.56 -4.21,0.8 -3.73,-0.35 -0.01,-1.03 2.23,-0.59 1.76,0.84 1.87,-0.21 2.5,-1.02 z m -40.04,-3.69 5.37,0.28 0.62,-1.16 5.2,1.35 1.02,1.82 4.21,0.51 3.44,1.67 -3.2,1.07 -3.08,-1.13 -2.54,0.08 -2.91,-0.21 -2.62,-0.51 -3.25,-1.07 -2.06,-0.28 -1.17,0.35 -5.11,-1.16 -0.49,-1.21 -2.57,-0.21 1.92,-2.68 3.4,0.17 2.26,1.09 1.16,0.21 0.4,1.02 z m 73.18,-1.58 -1.44,1.91 -0.27,-2.11 0.5,-1.01 0.59,-0.95 0.64,0.82 -0.02,1.34 z m -20.96,-7.71 -1.05,0.93 -1.94,-0.51 -0.55,-1.2 2.84,-0.13 0.7,0.91 z m 9.04,-1.01 1.02,2.13 -2.37,-1.15 -2.34,-0.23 -1.58,0.18 -1.94,-0.1 0.67,-1.53 3.46,-0.12 3.08,0.82 z m 10.29,-5.42 0.78,4.51 2.9,1.67 2.34,-2.96 3.22,-1.68 2.49,0 2.4,0.97 2.08,1 3.01,0.53 0.05,9.1 0.05,9.16 -2.5,-2.31 -2.85,-0.57 -0.69,0.8 -3.55,0.09 1.19,-2.29 1.77,-0.78 -0.73,-3.05 -1.35,-2.35 -5.44,-2.37 -2.31,-0.23 -4.21,-2.58 -0.83,1.36 -1.08,0.25 -0.64,-1.02 -0.01,-1.21 -2.14,-1.37 3.02,-1 2,0.05 -0.24,-0.74 -4.1,-0.01 -1.11,-1.66 -2.5,-0.51 -1.19,-1.38 3.78,-0.67 1.44,-0.91 4.5,1.14 0.45,1.02 z m -24.96,-7.16 -2.25,2.76 -2.11,0.54 -2.7,-0.54 -4.67,0.14 -2.45,0.4 -0.4,2.11 2.51,2.48 1.51,-1.26 5.23,-0.95 -0.23,1.28 -1.22,-0.4 -1.22,1.63 -2.47,1.08 2.65,3.57 -0.51,0.96 2.52,3.22 -0.02,1.84 -1.5,0.82 -1.1,-0.98 1.36,-2.29 -2.75,1.08 -0.7,-0.77 0.36,-1.08 -2.02,-1.64 0.21,-2.72 -1.87,0.85 0.24,3.25 0.11,4 -1.78,0.41 -1.2,-0.82 0.8,-2.57 -0.43,-2.69 -1.18,-0.02 -0.87,-1.91 1.16,-1.83 0.4,-2.21 1.41,-4.2 0.59,-1.15 2.38,-2.07 2.19,0.82 3.54,0.39 3.22,-0.12 2.77,-2.02 0.49,0.61 z m 9.67,0.8 -0.15,2.43 -1.45,-0.27 -0.43,1.69 1.16,1.47 -0.79,0.33 -1.13,-1.76 -0.83,-3.56 0.56,-2.23 0.93,-1.01 0.2,1.52 1.66,0.24 0.27,1.15 z m -30.32,-1.94 3.14,2.58 -3.32,0.33 -0.94,1.9 0.12,2.52 -2.7,1.91 -0.06,2.77 -1.08,4.27 -0.41,-0.99 -3.19,1.26 -1.11,-1.71 -2,-0.16 -1.4,-0.89 -3.33,1 -1.02,-1.35 -1.84,0.15 -2.31,-0.32 -0.43,-3.74 -1.4,-0.77 -1.35,-2.38 -0.39,-2.44 0.33,-2.58 1.67,-1.85 0.47,1.86 1.92,1.57 1.81,-0.57 1.79,0.2 1.63,-1.41 1.34,-0.24 2.65,0.78 2.29,-0.59 1.44,-3.88 1.08,-0.97 0.97,-3.17 3.22,0 2.43,0.47 -1.59,2.52 2.06,2.64 -0.49,1.28 z m -33.81,21.42 -3.1,0.06 -2.36,-2.34 -3.6,-2.28 -1.2,-1.69 -2.12,-2.27 -1.39,-2.09 -2.13,-3.9 -2.46,-2.32 -0.82,-2.39 -1.03,-2.17 -2.53,-1.75 -1.47,-2.39 -2.11,-1.56 -2.92,-3.08 -0.25,-1.42 1.81,0.11 4.34,0.54 2.48,2.73 2.17,1.89 1.55,1.16 2.66,3 2.85,0.04 2.36,1.91 1.62,2.33 2.13,1.27 -1.12,2.27 1.61,0.97 1.01,0.07 0.48,1.94 0.98,1.56 2.06,0.25 1.36,1.76 -0.7,3.47 -0.16,4.32 z", - "IE": "m 458.13,284.54 0.46,3.36 -2.12,4.12 -4.97,2.68 -3.97,-0.68 2.27,-4.78 -1.46,-4.77 3.81,-3.75 2.12,-2.27 0.58,2.6 -0.58,2.57 1.74,-0.06 z", - "IL": "m 575.66,367.07 -0.49,1.05 -1.02,-0.46 -0.58,2.2 0.7,0.36 -0.71,0.46 -0.13,0.86 1.32,-0.45 0.07,1.27 -1.4,5.17 -1.84,-5.55 0.81,-1.08 -0.19,-0.19 0.74,-1.53 0.57,-2.5 0.4,-0.84 0.08,-0.03 0.94,0 0.26,-0.58 0.75,-0.05 0.04,1.37 -0.38,0.5 z", - "IN": "m 693.75,357.69 3.01,3.99 -0.28,2.74 1.11,1.71 -0.09,1.69 -2.01,-0.44 0.79,3.63 2.75,2.06 3.9,2.27 -1.78,1.46 -1.09,2.99 2.72,1.2 2.64,1.55 3.66,1.77 3.84,0.41 1.62,1.59 2.16,0.29 3.38,0.73 2.33,-0.05 0.32,-1.24 -0.37,-1.99 0.22,-1.35 1.71,-0.67 0.24,2.48 0.05,0.63 2.55,1.19 1.77,-0.49 2.36,0.21 2.29,-0.09 0.2,-1.93 -1.14,-1 2.26,-0.4 2.55,-2.35 3.23,-2.03 2.35,0.78 2,-1.34 1.32,1.98 -0.95,1.34 3.02,0.47 0.22,1.2 -0.99,0.58 0.23,1.93 -2,-0.57 -3.63,2.16 0.08,1.78 -1.54,2.6 -0.15,1.5 -1.25,2.52 -2.19,-0.7 -0.11,3.15 -0.63,1.03 0.3,1.28 -1.39,0.72 -1.47,-4.8 -0.78,0.01 -0.46,1.94 -1.53,-1.58 0.86,-1.73 1.26,-0.18 1.29,-2.59 -1.61,-0.53 -2.61,0.05 -2.66,-0.42 -0.25,-2.15 -1.34,-0.16 -2.22,-1.34 -0.99,2.11 2.02,1.63 -1.75,1.15 -0.62,1.12 1.72,0.82 -0.47,1.84 0.97,2.28 0.44,2.48 -0.41,1.1 -1.9,-0.04 -3.46,0.62 0.16,2.25 -1.5,1.76 -4.03,2 -3.14,3.46 -2.11,1.85 -2.79,1.91 0,1.34 -1.4,0.72 -2.53,1.03 -1.31,0.16 -0.84,2.2 0.58,3.75 0.15,2.37 -1.18,2.71 -0.02,4.83 -1.45,0.14 -1.27,2.15 0.85,0.93 -2.56,0.8 -0.94,1.92 -1.13,0.81 -2.65,-2.63 -1.3,-3.96 -1.08,-2.86 -0.98,-1.34 -1.49,-2.74 -0.69,-3.58 -0.49,-1.8 -2.55,-3.97 -1.16,-5.64 -0.84,-3.77 0.01,-3.58 -0.54,-2.8 -4.08,1.79 -1.98,-0.36 -3.66,-3.63 1.35,-1.09 -0.83,-1.18 -3.29,-2.58 1.87,-2.04 6.17,0.01 -0.56,-2.64 -1.57,-1.56 -0.32,-2.39 -1.84,-1.4 3.09,-3.3 3.26,0.24 2.93,-3.32 1.76,-3.26 2.72,-3.24 -0.04,-2.33 2.39,-1.91 -2.27,-1.63 -0.97,-2.25 -0.99,-2.95 1.37,-1.46 4.26,0.83 3.12,-0.51 z", - "IQ": "m 602.86,356.02 1.83,1.04 0.22,2 -1.42,1.17 -0.65,2.64 1.95,3.18 3.43,1.82 1.45,2.5 -0.46,2.37 0.89,0 0.03,1.73 1.55,1.69 -1.66,-0.15 -1.89,-0.27 -2.06,3.08 -5.21,-0.26 -7.9,-6.49 -4.18,-2.29 -3.38,-0.89 -1.13,-4.04 6.21,-3.5 1.06,-4.12 -0.27,-2.52 1.54,-0.86 1.44,-2.18 1.2,-0.55 3.26,0.46 0.99,0.89 1.34,-0.59 z", - "IR": "m 626.69,351.78 2.47,-0.68 1.99,-2.02 1.87,0.1 1.23,-0.66 2,0.33 3.1,1.79 2.24,0.39 3.2,3.09 2.09,0.12 0.25,2.91 -1.14,4.25 -0.77,2.45 1.22,0.49 -1.2,1.83 0.92,2.64 0.22,2.09 2.12,0.55 0.23,2.1 -2.54,2.93 1.38,1.68 1.13,1.93 2.68,1.4 0.08,2.77 1.34,0.51 0.23,1.44 -4.04,1.61 -1.06,3.6 -5.27,-0.93 -3.06,-0.71 -3.16,-0.41 -1.2,-3.81 -1.34,-0.56 -2.16,0.56 -2.82,1.51 -3.43,-1.03 -2.83,-2.41 -2.7,-0.9 -1.87,-3.01 -2.07,-4.27 -1.51,0.52 -1.78,-1.07 -1.05,1.26 -1.55,-1.69 -0.03,-1.73 -0.89,0 0.46,-2.37 -1.45,-2.5 -3.43,-1.82 -1.95,-3.18 0.65,-2.64 1.42,-1.17 -0.22,-2 -1.83,-1.04 -1.82,-4.14 -1.53,-2.83 0.54,-1.09 -0.87,-4.12 1.92,-1.03 0.44,1.37 1.42,1.66 1.92,0.47 1.02,-0.1 3.31,-2.66 1.05,-0.27 0.82,1.07 -0.96,1.78 1.75,1.86 0.69,-0.17 0.89,2.61 2.66,0.73 1.95,1.76 3.98,0.6 4.38,-0.92 z", - "IS": "m 434.82,212.68 -0.64,4.48 3.16,4.6 -3.64,5.01 -8.09,4.38 -2.42,1.15 -3.69,-0.93 -7.82,-2.01 2.76,-2.84 -6.1,-3.2 4.96,-1.28 -0.12,-1.97 -5.88,-1.57 1.89,-4.47 4.25,-1.03 4.37,4.68 4.26,-3.75 3.53,1.96 4.57,-3.71 z", - "IT": "m 519.02,348.13 -1.01,2.78 0.42,1.09 -0.59,1.79 -2.14,-1.31 -1.43,-0.38 -3.91,-1.79 0.39,-1.82 3.28,0.32 2.86,-0.39 2.13,-0.29 z m -17.69,-10.82 1.68,2.62 -0.39,4.81 -1.27,-0.23 -1.14,1.2 -1.06,-0.95 -0.11,-4.38 -0.64,-2.1 1.54,0.19 1.39,-1.16 z m 8.87,-21.6 4.01,1.05 -0.3,1.99 0.67,1.71 -2.23,-0.58 -2.28,1.42 0.16,1.97 -0.34,1.12 0.92,1.99 2.63,1.95 1.41,3.17 3.12,3.05 2.2,-0.02 0.68,0.83 -0.79,0.74 2.51,1.35 2.06,1.12 2.4,1.92 0.29,0.68 -0.52,1.31 -1.56,-1.7 -2.44,-0.6 -1.18,2.36 2.03,1.34 -0.33,1.88 -1.17,0.21 -1.5,3.06 -1.17,0.27 0.01,-1.08 0.57,-1.91 0.61,-0.77 -1.09,-2.09 -0.86,-1.83 -1.16,-0.46 -0.83,-1.58 -1.8,-0.67 -1.21,-1.49 -2.07,-0.24 -2.19,-1.68 -2.56,-2.45 -1.91,-2.19 -0.87,-3.8 -1.4,-0.45 -2.28,-1.29 -1.29,0.53 -1.62,1.8 -1.17,0.28 0.32,-1.68 -1.52,-0.49 -0.72,-3.04 0.97,-1.21 -0.83,-1.5 0.12,-1.13 1.21,0.86 1.35,-0.19 1.57,-1.36 0.49,0.64 1.34,-0.13 0.61,-1.63 2.07,0.51 1.24,-0.68 0.22,-1.67 1.7,0.58 0.33,-0.78 2.77,-0.71 0.6,1.39 z", - "JM": "m 258.01,411.21 1.89,0.26 1.49,0.71 0.46,0.8 -1.97,0.05 -0.85,0.49 -1.57,-0.47 -1.6,-1.07 0.33,-0.67 1.18,-0.2 z", - "JO": "m 575.17,368.12 0.49,-1.05 3.12,1.32 5.49,-3.54 1.13,4.04 -0.53,0.49 -5.62,1.65 2.8,3.26 -0.93,0.54 -0.46,1.09 -2.14,0.44 -0.67,1.16 -1.22,0.98 -3.12,-0.51 -0.09,-0.46 1.4,-5.17 -0.07,-1.27 0.42,-0.96 z", - "JP": "m 853.01,362.26 0.36,1.15 -1.58,2.03 -1.15,-1.07 -1.44,0.78 -0.74,1.95 -1.83,-0.95 0.02,-1.58 1.55,-2 1.59,0.39 1.15,-1.42 2.07,0.72 z m 17.77,-10.28 -1.06,2.78 0.49,1.73 -1.46,2.42 -3.58,1.6 -4.93,0.21 -4,3.84 -1.88,-1.29 -0.11,-2.52 -4.88,0.75 -3.32,1.59 -3.28,0.06 2.84,2.46 -1.87,5.61 -1.81,1.37 -1.36,-1.27 0.69,-2.96 -1.77,-0.96 -1.14,-2.28 2.65,-1.03 1.47,-2.11 2.82,-1.75 2.06,-2.33 5.58,-1.02 3,0.7 2.93,-6.17 1.87,1.67 4.11,-3.51 1.59,-1.38 1.76,-4.38 -0.48,-4.1 1.18,-2.33 2.98,-0.68 1.53,5.11 -0.08,2.94 -2.59,3.6 0.05,3.63 z m 8.23,-25.93 1.97,0.83 1.98,-1.65 0.62,4.35 -4.16,1.05 -2.46,3.76 -4.41,-2.58 -1.53,4.12 -3.12,0.06 -0.39,-3.74 1.39,-2.94 3,-0.21 0.82,-5.38 0.83,-3.09 3.29,4.12 2.17,1.3 z", - "KE": "m 590.44,466.03 1.66,2.29 -1.96,1.12 -0.69,1.16 -1.06,0.2 -0.39,1.97 -0.9,1.12 -0.55,1.86 -1.13,0.92 -4.02,-2.79 -0.2,-1.62 -10.16,-5.67 -0.48,-0.31 -0.02,-2.95 0.8,-1.13 1.38,-1.84 1.02,-2.03 -1.23,-3.2 -0.33,-1.4 -1.33,-1.94 1.72,-1.67 1.9,-1.84 1.46,0.47 0,1.57 0.96,0.91 1.95,0 3.55,2.38 0.88,0.02 0.66,-0.07 0.62,0.32 1.87,0.22 0.83,-1.16 2.56,-1.17 1.13,0.94 1.92,0 -2.45,3.17 z", - "KG": "m 674.47,333.36 0.63,-1.66 1.84,-0.54 4.62,1.31 0.43,-2.24 1.59,-0.8 4,1.61 1.02,-0.42 4.65,0.1 4.16,0.4 1.4,1.37 1.73,0.55 -0.39,0.86 -4.42,2.03 -1,1.48 -3.6,0.44 -1.06,2.35 -2.97,-0.49 -1.93,0.72 -2.68,1.72 0.39,0.85 -0.8,0.83 -5.3,0.55 -3.47,-1.17 -3.04,0.28 0.27,-2.1 3.05,0.61 1.03,-1.13 2.13,0.36 3.59,-2.64 -3.32,-1.96 -2,0.93 -2.07,-1.4 2.35,-2.43 z", - "KH": "m 765.69,433.85 -1.14,-1.48 -1.41,-2.94 -0.67,-3.45 1.8,-2.38 3.62,-0.55 2.63,0.41 2.31,1.13 1.27,-1.99 2.49,1.06 0.65,1.92 -0.35,3.42 -4.71,2.19 1.23,1.73 -2.94,0.2 -2.43,1.14 z", - "KP": "m 841.8,332.87 0.39,0.67 -1.06,-0.23 -1.22,1.27 -0.84,1.28 0.11,2.67 -1.45,0.81 -0.5,0.65 -1.06,1.08 -1.87,0.6 -1.21,0.98 -0.09,1.57 -0.33,0.4 1.12,0.58 1.59,1.58 -0.41,0.86 -1.19,0.23 -1.98,0.17 -1.09,1.6 -1.26,-0.12 -0.17,0.32 -1.36,-0.67 -0.34,0.66 -0.82,0.29 -0.1,-0.66 -0.73,-0.32 -0.75,-0.57 0.77,-1.57 0.66,-0.42 -0.25,-0.65 0.71,-1.94 -0.19,-0.59 -1.63,-0.4 -1.32,-0.97 2.28,-2.35 3.09,-1.98 1.93,-2.65 1.33,1.17 2.42,0.14 -0.44,-1.97 4.33,-1.63 1.12,-2.13 z", - "KR": "m 835.38,346.78 2.42,4.18 0.69,2.27 0.02,3.98 -1.05,1.88 -2.54,0.66 -2.24,1.41 -2.53,0.29 -0.31,-1.85 0.52,-2.57 -1.24,-3.6 2.08,-0.59 -1.92,-3 0.17,-0.32 1.26,0.12 1.09,-1.6 1.98,-0.17 1.19,-0.23 z", - "XK": "m 533.72,334.17 -0.13,0.77 -0.36,-0.03 -0.18,-1.37 -0.67,-0.38 -0.6,-1.02 0.52,-0.85 0.67,-0.28 0.39,-1.26 0.5,-0.22 0.4,0.54 0.53,0.24 0.36,0.61 0.46,0.18 0.55,0.7 0.4,-0.02 -0.32,0.93 -0.33,0.45 0.09,0.28 -0.63,0.14 z", - "KW": "m 610.02,376.01 0.58,1.41 -0.25,0.73 0.9,2.41 -1.98,0.08 -0.7,-1.51 -2.5,-0.31 2.06,-3.08 z", - "KZ": "m 674.47,333.36 -1.61,0.7 -3.69,2.61 -1.23,2.65 -1.05,0.02 -0.76,-1.75 -3.57,-0.12 -0.57,-3.06 -1.37,-0.03 0.21,-3.8 -3.35,-2.8 -4.81,0.3 -3.29,0.56 -2.68,-3.5 -2.29,-1.48 -4.35,-2.84 -0.52,-0.35 -7.22,2.35 0.11,14.13 -1.44,0.18 -1.96,-2.93 -1.9,-1.06 -3.18,0.79 -1.24,1.25 -0.16,-0.92 0.69,-1.57 -0.53,-1.32 -3.25,-1.3 -1.27,-3.47 -1.54,-0.98 -0.1,-1.28 2.73,0.37 0.11,-2.88 2.38,-0.64 2.45,0.59 0.51,-3.91 -0.5,-2.51 -2.81,0.2 -2.38,-1 -3.25,1.79 -2.61,0.86 -1.43,-0.66 0.29,-2.1 -1.79,-2.76 -2.08,0.11 -2.38,-2.83 1.62,-3.22 -0.82,-0.87 2.23,-4.77 2.89,2.53 0.35,-3.19 5.78,-4.85 4.38,-0.12 6.19,3.1 3.31,1.79 2.98,-1.87 4.44,-0.08 3.59,2.29 0.82,-1.31 3.93,0.19 0.71,-2.11 -4.55,-3.09 2.69,-2.23 -0.52,-1.25 2.69,-1.21 -2.02,-3.2 1.28,-1.62 10.49,-1.66 1.37,-1.19 7.02,-1.79 2.52,-2.04 5.04,1.06 0.88,5.01 2.93,-1.16 3.6,1.63 -0.23,2.58 2.69,-0.27 7.02,-4.49 -1.02,1.5 3.58,3.66 6.26,11.58 1.5,-2.33 3.86,2.56 4.03,-1.14 1.54,0.8 1.35,2.55 1.96,0.84 1.2,1.85 3.61,-0.58 1.49,2.63 -2.14,2.83 -2.33,0.4 -0.13,4.18 -1.56,1.86 -5.56,-1.35 -2.02,7.26 -1.44,0.89 -5.55,1.58 2.52,6.75 -1.92,1 0.22,2.16 -1.73,-0.55 -1.4,-1.37 -4.16,-0.4 -4.65,-0.1 -1.02,0.42 -4,-1.61 -1.59,0.8 -0.43,2.24 -4.62,-1.31 -1.84,0.54 z", - "LA": "m 770.52,423.46 0.91,-1.3 0.13,-2.44 -2.27,-2.53 -0.18,-2.87 -2.13,-2.38 -2.12,-0.2 -0.56,1.02 -1.65,0.08 -0.84,-0.51 -2.95,1.74 -0.07,-2.62 0.69,-3.11 -1.89,-0.13 -0.16,-1.78 -1.22,-0.92 0.6,-1.1 2.39,-1.94 0.25,0.7 1.49,0.08 -0.42,-3.43 1.45,-0.44 1.64,2.37 1.26,2.72 3.45,0.03 1.09,2.59 -1.79,0.77 -0.81,1.07 3.36,1.76 2.33,3.46 1.77,2.57 2.12,2.02 0.71,2.04 -0.51,2.88 -2.49,-1.06 -1.27,1.99 z", - "LB": "m 575.94,365.18 -0.75,0.05 -0.26,0.58 -0.94,0 1,-2.73 1.39,-2.38 0.06,-0.12 1.26,0.18 0.46,1.32 -1.53,1.27 z", - "LK": "m 704.82,442.62 -0.42,2.92 -1.17,0.8 -2.44,0.64 -1.34,-2.23 -0.49,-4.03 1.27,-4.58 1.93,1.57 1.31,1.98 z", - "LR": "m 453.88,451.47 -0.74,0.02 -2.89,-1.33 -2.54,-2.13 -2.39,-1.53 -1.89,-1.81 0.67,-0.9 0.15,-0.81 1.26,-1.53 1.31,-1.31 0.6,-0.07 0.73,-0.31 1.17,1.72 -0.18,1.13 0.54,0.6 0.8,0.01 0.57,-1.13 0.79,0.07 -0.13,0.82 0.28,1.36 -0.61,1.24 0.82,0.77 0.89,0.19 1.19,1.17 0.08,1.11 -0.27,0.35 z", - "LS": "m 556.75,548 0.98,0.96 -0.86,1.56 -0.48,1.05 -1.56,0.5 -0.52,1.04 -1,0.32 -2.1,-2.49 1.49,-2.03 1.52,-1.25 1.31,-0.64 z", - "LT": "m 539.24,282.34 -0.23,-1.22 0.3,-1.33 -1.24,-0.77 -2.93,-0.86 -0.6,-4.16 3.21,-1.55 4.7,0.33 2.76,-0.5 0.39,1.05 1.49,0.32 2.7,2.42 0.26,2.2 -2.3,1.57 -0.65,2.72 -3.04,1.8 -2.71,-0.04 -0.67,-1.46 z", - "LU": "m 492.45,301.54 0.56,0.98 -0.16,1.89 -0.81,0.1 -0.63,-0.38 0.31,-2.43 z", - "LV": "m 534.54,274 0.1,-3.81 1.38,-3.24 2.64,-1.78 2.22,3.88 2.25,-0.1 0.54,-3.99 2.39,-0.93 1.23,0.65 2.41,1.94 2.32,0.01 1.35,1.19 0.23,2.49 0.91,2.99 -3.02,1.93 -1.7,0.84 -2.7,-2.42 -1.49,-0.32 -0.39,-1.05 -2.76,0.5 -4.7,-0.33 z", - "LY": "m 517.14,398.18 -1.98,1.12 -1.58,-1.66 -4.43,-1.31 -1.23,-1.91 -2.22,-1.42 -1.31,0.56 -0.99,-1.71 -0.11,-1.32 -1.66,-2.26 1.12,-1.29 -0.25,-1.97 0.36,-1.72 -0.2,-1.44 0.49,-2.59 -0.15,-1.48 -0.91,-2.84 1.37,-0.75 0.24,-1.38 -0.3,-1.35 1.93,-1.26 0.86,-1.05 1.37,-0.95 0.16,-2.55 3.29,1.15 1.18,-0.29 2.34,0.56 3.72,1.47 1.31,2.92 2.52,0.64 3.95,1.36 2.99,1.61 1.37,-0.84 1.34,-1.49 -0.65,-2.51 0.88,-1.6 2.02,-1.55 1.93,-0.45 3.79,0.68 0.96,1.48 1.04,0.01 0.89,0.56 2.79,0.39 0.68,1.08 -1.01,1.57 0.43,1.39 -0.72,2 0.84,2.58 0,11.18 0,11.23 0,5.96 -3.22,0.01 -0.04,1.24 -11.18,-5.7 -11.19,-5.77 z", - "MA": "m 451.21,383.39 -0.03,-3.75 4.53,-2.36 2.8,-0.49 2.29,-0.86 1.08,-1.62 3.28,-1.29 0.12,-2.41 1.62,-0.29 1.27,-1.21 3.67,-0.56 0.51,-1.28 -0.74,-0.71 -0.97,-3.53 -0.16,-2.05 -1.06,-2.18 -1.22,-0.04 -2.9,-0.75 -2.67,0.24 -1.69,-1.46 -2.06,-0.02 -0.89,2.11 -1.87,3.51 -2.08,1.39 -2.81,1.53 -1.8,2.24 -0.38,1.74 -1.07,2.82 0.7,4.03 -2.34,2.68 -1.4,0.85 -2.21,2.17 -2.61,0.35 -1.3,1.12 3.62,0.01 8.75,0.03 0,0 0,0 -8.75,-0.03 -3.62,-0.01 z", - "MD": "m 550.14,309.7 0.67,-0.62 1.86,-0.42 2.07,1.31 1.15,0.16 1.27,1.12 -0.2,1.41 1.02,0.67 0.4,1.72 0.98,1.04 -0.19,0.6 0.52,0.42 -0.74,0.29 -1.66,-0.11 -0.27,-0.57 -0.59,0.33 0.2,0.72 -0.77,1.29 -0.49,1.37 -0.7,0.44 -0.51,-1.83 0.3,-1.72 -0.09,-1.79 -1.62,-2.44 -0.89,-1.75 -0.87,-1.24 z", - "ME": "m 531.02,332.48 -0.17,-0.72 -1.22,1.87 0.19,1.19 -0.59,-0.29 -0.78,-1.23 -1.22,-0.75 0.31,-0.64 0.41,-2.1 0.91,-0.89 0.53,-0.36 0.74,0.66 0.41,0.54 0.92,0.41 1.07,0.79 -0.23,0.33 -0.52,0.85 z", - "MG": "m 614.42,498.65 0.74,1.21 0.69,1.89 0.46,3.46 0.72,1.35 -0.28,1.38 -0.49,0.86 -0.96,-1.7 -0.52,0.86 0.53,2.14 -0.25,1.24 -0.77,0.67 -0.18,2.48 -1.1,3.42 -1.38,4.09 -1.74,5.67 -1.07,4.21 -1.27,3.55 -2.28,0.73 -2.45,1.31 -1.61,-0.79 -2.23,-1.1 -0.77,-1.62 -0.19,-2.71 -0.98,-2.42 -0.26,-2.17 0.5,-2.16 1.29,-0.52 0.01,-0.99 1.34,-2.26 0.25,-1.88 -0.65,-1.4 -0.53,-1.85 -0.22,-2.7 0.98,-1.63 0.37,-1.85 1.4,-0.1 1.57,-0.6 1.03,-0.52 1.24,-0.04 1.59,-1.65 2.31,-1.78 0.84,-1.44 -0.38,-1.23 1.19,0.35 1.55,-1.99 0.05,-1.72 0.93,-1.28 z", - "MK": "m 533.23,334.91 0.36,0.03 0.13,-0.77 1.65,-0.59 0.63,-0.14 0.96,-0.22 1.29,-0.06 1.41,1.21 0.2,2.47 -0.54,0.12 -0.46,0.65 -1.52,-0.07 -1.07,0.81 -1.83,0.32 -1.16,-0.9 -0.4,-1.59 z", - "ML": "m 441.38,422.47 0.94,-0.52 0.47,-1.7 0.89,-0.07 1.96,0.8 1.58,-0.57 1.08,0.19 0.43,-0.64 11.25,-0.04 0.62,-2.03 -0.49,-0.36 -1.35,-12.68 -1.35,-13.06 4.29,-0.05 9.46,6.65 9.46,6.55 0.66,1.39 1.75,0.85 1.3,0.48 0.03,1.88 3.11,-0.29 0.01,6.75 -1.54,1.94 -0.24,1.79 -2.49,0.45 -3.82,0.25 -1.04,1.03 -1.8,0.11 -1.79,0.01 -0.7,-0.55 -1.55,0.41 -2.62,1.2 -0.53,0.9 -2.18,1.28 -0.38,0.74 -1.17,0.58 -1.36,-0.38 -0.77,0.7 -0.41,1.96 -2.23,2.36 0.07,0.96 -0.77,1.21 0.19,1.64 -1.16,0.42 -0.65,0.36 -0.44,-1.21 -0.81,0.32 -0.48,-0.06 -0.52,0.83 -2.16,-0.03 -0.78,-0.42 -0.36,0.26 -0.86,-0.82 0.15,-0.84 -0.35,-0.34 -0.6,0.28 0.11,-0.92 0.58,-0.73 -1.15,-1.19 -0.34,-0.79 -0.62,-0.62 -0.56,-0.08 -0.67,0.4 -0.91,0.38 -0.77,0.62 -1.2,-0.23 -0.78,-0.72 -0.46,-0.1 -0.73,0.38 -0.45,0.01 -0.16,-1.05 0.13,-0.89 -0.24,-1.1 -1.05,-0.81 -0.55,-1.64 z", - "MM": "m 754.61,406.2 -1.64,1.28 -1.98,0.14 -1.28,3.19 -1.18,0.53 1.36,2.57 1.78,2.13 1.14,1.92 -1.02,2.52 -0.97,0.53 0.67,1.45 1.87,2.28 0.32,1.6 -0.05,1.33 1.1,2.6 -1.54,2.65 -1.36,2.91 -0.27,-2.1 0.86,-2.18 -0.94,-1.68 0.23,-3.11 -1.14,-1.48 -0.91,-3.44 -0.51,-3.66 -1.21,-2.4 -1.85,1.46 -3.19,2.06 -1.57,-0.26 -1.74,-0.67 0.97,-3.61 -0.58,-2.74 -2.2,-3.39 0.34,-1.07 -1.64,-0.38 -1.99,-2.42 -0.18,-2.41 0.98,0.46 0.05,-2.15 1.39,-0.72 -0.3,-1.28 0.63,-1.03 0.11,-3.15 2.19,0.7 1.25,-2.52 0.15,-1.5 1.54,-2.6 -0.08,-1.78 3.63,-2.16 2,0.57 -0.23,-1.93 0.99,-0.58 -0.22,-1.2 1.64,-0.24 0.94,1.86 1.22,0.75 0.09,2.4 -0.12,2.57 -2.65,2.58 -0.34,3.63 2.96,-0.5 0.67,2.8 1.78,0.59 -0.82,2.5 2.08,1.13 1.22,0.55 2.05,-0.87 0.09,1.24 -2.39,1.94 -0.6,1.1 z", - "MN": "m 721.54,305.13 2.96,-0.74 5.35,-3.74 4.27,-2.07 2.43,1.35 2.93,0.06 1.87,2.05 2.8,0.15 4.06,1.09 2.72,-3.03 -1.14,-2.6 2.91,-4.66 3.14,1.87 2.54,0.53 3.3,1.15 0.53,3.32 3.99,1.84 2.65,-0.81 3.54,-0.57 2.81,0.58 2.75,2.09 1.7,2.2 2.6,-0.04 3.53,0.69 2.58,-1.06 3.69,-0.71 4.11,-3.06 1.68,0.47 1.47,1.46 3.34,-0.36 -1.36,3.25 -1.98,4.22 0.72,1.71 1.59,-0.53 2.76,0.65 2.16,-1.54 2.25,1.33 2.54,2.89 -0.31,1.45 -2.21,-0.46 -4.07,0.54 -1.98,1.16 -2.05,2.66 -4.28,1.55 -2.79,2.1 -2.88,-0.8 -1.58,-0.36 -1.47,2.54 0.89,1.5 0.46,1.28 -1.97,1.3 -2.01,2.05 -3.27,1.33 -4.21,0.15 -4.53,1.31 -3.26,2.01 -1.24,-1.16 -3.39,0 -4.15,-2.29 -2.77,-0.57 -3.73,0.53 -5.79,-0.85 -3.09,0.09 -1.64,-2.27 -1.28,-3.57 -1.73,-0.43 -3.39,-2.45 -3.78,-0.55 -3.33,-0.68 -1.01,-1.73 1.08,-4.73 -1.93,-3.31 -4,-1.57 -2.36,-2.23 z", - "MR": "m 441.38,422.47 -1.85,-1.98 -1.7,-2.13 -1.86,-0.77 -1.34,-0.85 -1.57,0.03 -1.36,0.63 -1.4,-0.25 -0.96,0.93 -0.24,-1.56 0.78,-1.44 0.35,-2.75 -0.31,-2.91 -0.34,-1.47 0.28,-1.47 -0.72,-1.42 -1.48,-1.28 0.61,-1 10.98,0.02 -0.53,-4.35 0.69,-1.55 2.62,-0.27 -0.09,-7.86 9.21,0.17 0,-4.73 10.55,7.53 -4.29,0.05 1.35,13.06 1.35,12.68 0.49,0.36 -0.62,2.03 -11.25,0.04 -0.43,0.64 -1.08,-0.19 -1.58,0.57 -1.96,-0.8 -0.89,0.07 -0.47,1.7 z", - "MW": "m 572.4,495.94 -0.78,2.16 0.78,3.72 0.98,-0.04 1.01,0.92 1.17,2.08 0.24,3.72 -1.21,0.61 -0.86,2.01 -1.83,-1.79 -0.2,-2.04 0.59,-1.35 -0.17,-1.15 -1.1,-0.73 -0.78,0.26 -1.61,-1.38 -1.47,-0.74 0.85,-2.66 0.88,-0.99 -0.54,-2.36 0.56,-2.3 0.48,-0.77 -0.71,-2.4 -1.32,-1.26 2.74,0.52 0.57,0.78 0.95,1.32 z", - "MX": "m 203.14,388.97 -1.09,2.71 -0.49,2.21 -0.21,4.08 -0.27,1.47 0.49,1.64 0.87,1.47 0.56,2.31 1.86,2.21 0.65,1.69 1.1,1.45 2.98,0.79 1.16,1.22 2.46,-0.82 2.13,-0.29 2.1,-0.53 1.77,-0.51 1.78,-1.2 0.67,-1.73 0.23,-2.49 0.49,-0.87 1.89,-0.79 2.97,-0.69 2.48,0.1 1.7,-0.25 0.67,0.63 -0.09,1.44 -1.51,1.77 -0.66,1.81 0.51,0.51 -0.42,1.28 -0.7,2.29 -0.71,-0.75 -0.59,0.05 -0.53,0.04 -1,1.77 -0.51,-0.35 -0.34,0.14 0.02,0.43 -2.59,-0.03 -2.62,0 0,1.65 -1.27,0 1.04,0.98 1.04,0.67 0.31,0.63 0.46,0.18 -0.08,0.98 -3.59,0.01 -1.35,2.36 0.39,0.54 -0.32,0.68 -0.07,0.84 -3.17,-3.11 -1.45,-0.94 -2.29,-0.76 -1.56,0.21 -2.26,1.09 -1.41,0.29 -1.98,-0.76 -2.1,-0.56 -2.62,-1.33 -2.1,-0.41 -3.18,-1.35 -2.34,-1.4 -0.71,-0.78 -1.57,-0.17 -2.87,-0.93 -1.17,-1.34 -3.01,-1.67 -1.4,-1.87 -0.67,-1.45 0.93,-0.29 -0.29,-0.85 0.65,-0.77 0.01,-1.04 -0.94,-1.34 -0.26,-1.2 -0.94,-1.52 -2.47,-3.02 -2.82,-2.39 -1.36,-1.91 -2.41,-1.26 -0.51,-0.76 0.43,-1.92 -1.43,-0.73 -1.66,-1.52 -0.7,-2.19 -1.51,-0.26 -1.62,-1.66 -1.32,-1.55 -0.12,-1 -1.51,-2.42 -0.99,-2.48 0.04,-1.25 -2.03,-1.29 -0.93,0.14 -1.6,-0.9 -0.45,1.33 0.46,1.56 0.27,2.43 0.97,1.33 2.08,2.21 0.46,0.75 0.43,0.22 0.36,1.1 0.5,-0.05 0.57,2.04 0.85,0.8 0.59,1.11 1.77,1.6 0.93,2.89 0.83,1.35 0.78,1.44 0.15,1.62 1.35,0.1 1.13,1.39 1.02,1.36 -0.07,0.54 -1.18,1.11 -0.5,-0.01 -0.74,-1.85 -1.83,-1.73 -2.02,-1.48 -1.44,-0.78 0.09,-2.25 -0.42,-1.68 -1.34,-0.96 -1.93,-1.39 -0.37,0.4 -0.7,-0.82 -1.73,-0.75 -1.65,-1.83 0.2,-0.24 1.15,0.18 1.04,-1.18 0.11,-1.43 -2.16,-2.27 -1.64,-0.89 -1.04,-2.01 -1.04,-2.12 -1.3,-2.61 -1.14,-2.96 3.19,-0.25 3.56,-0.36 -0.26,0.64 4.23,1.61 6.4,2.31 5.58,-0.03 2.22,0 0,-1.35 4.86,0 1.02,1.17 1.44,1.03 1.66,1.43 0.93,1.69 0.7,1.76 1.45,0.97 2.33,0.96 1.76,-2.53 2.3,-0.06 1.97,1.28 1.41,2.18 0.97,1.86 1.65,1.8 0.62,2.19 0.79,1.47 2.18,0.96 1.99,0.68 z", - "MY": "m 758.9,446.32 0.22,1.44 1.85,-0.33 0.92,-1.15 0.64,0.26 1.66,1.69 1.18,1.87 0.16,1.88 -0.3,1.27 0.27,0.96 0.21,1.65 0.99,0.77 1.1,2.46 -0.05,0.94 -1.99,0.19 -2.65,-2.06 -3.32,-2.21 -0.33,-1.42 -1.62,-1.87 -0.39,-2.31 -1.01,-1.52 0.31,-2.04 -0.62,-1.19 0.49,-0.5 2.28,1.22 z m 49.19,4.83 -2.06,0.95 -2.43,-0.47 -3.22,0 -0.97,3.17 -1.08,0.97 -1.44,3.88 -2.29,0.59 -2.65,-0.78 -1.34,0.24 -1.63,1.41 -1.79,-0.2 -1.81,0.57 -1.92,-1.57 -0.47,-1.86 2.05,0.96 2.17,-0.52 0.56,-2.36 1.2,-0.53 3.36,-0.6 2.01,-2.21 1.38,-1.77 1.28,1.45 0.59,-0.95 1.34,0.09 0.16,-1.78 0.13,-1.38 2.16,-1.95 1.41,-2.19 1.13,-0.01 1.44,1.42 0.13,1.22 1.85,0.78 2.34,0.84 -0.2,1.1 -1.88,0.14 0.49,1.35 z", - "MZ": "m 572.4,495.94 2.11,-0.23 3.37,0.8 0.74,-0.36 1.95,-0.07 1,-0.85 1.68,0.04 3.06,-1.1 2.23,-1.64 0.46,1.27 -0.12,2.83 0.35,2.5 0.11,4.48 0.49,1.4 -0.83,2.07 -1.09,2.01 -1.79,1.8 -2.56,1.11 -3.16,1.41 -3.17,3.15 -1.08,0.54 -1.96,2.09 -1.15,0.69 -0.24,2.12 1.33,2.25 0.55,1.76 0.04,0.9 0.49,-0.15 -0.08,2.96 -0.45,1.41 0.66,0.52 -0.42,1.27 -1.17,1.09 -2.31,1.04 -3.37,1.66 -1.23,1.15 0.24,1.3 0.71,0.21 -0.24,1.64 -2.12,-0.02 -0.24,-1.38 -0.42,-1.39 -0.24,-1.11 0.5,-3.43 -0.73,-2.17 -1.34,-4.26 2.95,-3.41 0.74,-2.15 0.43,-0.27 0.31,-1.74 -0.45,-0.88 0.12,-2.2 0.55,-2.04 -0.01,-3.69 -1.45,-0.94 -1.34,-0.21 -0.6,-0.72 -1.3,-0.61 -2.34,0.06 -0.18,-1.08 -0.27,-2.05 8.51,-2.38 1.61,1.38 0.78,-0.26 1.1,0.73 0.17,1.15 -0.59,1.35 0.2,2.04 1.83,1.79 0.86,-2.01 1.21,-0.61 -0.24,-3.72 -1.17,-2.08 -1.01,-0.92 -0.98,0.04 -0.78,-3.72 z", - "NA": "m 521.33,546.79 -2.08,-2.39 -1.1,-2.3 -0.62,-3.03 -0.69,-2.25 -0.94,-4.72 -0.06,-3.63 -0.36,-1.64 -1.09,-1.24 -1.45,-2.47 -1.47,-3.57 -0.61,-1.85 -2.29,-2.87 -0.17,-2.25 1.35,-0.55 1.68,-0.5 1.82,0.09 1.67,1.32 0.42,-0.21 11.37,-0.12 1.94,1.4 6.79,0.41 5.15,-1.19 2.3,-0.67 1.82,0.17 1.1,0.66 0.03,0.24 -1.58,0.66 -0.86,0.01 -1.78,1.15 -1.08,-1.21 -4.32,1.03 -2.09,0.09 -0.08,10.57 -2.76,0.11 0,8.86 -0.01,11.52 -2.5,1.63 -1.5,0.23 -1.77,-0.6 -1.26,-0.23 -0.47,-1.36 -1.11,-0.87 z", - "NC": "m 940.33,523.73 2.3,1.86 1.45,1.38 -1.06,0.73 -1.55,-0.82 -2,-1.35 -1.81,-1.59 -1.85,-2.1 -0.39,-1.01 1.2,0.05 1.58,1.01 1.23,1.01 z", - "NE": "m 481.54,430.13 0.07,-1.95 -3.24,-0.65 -0.08,-1.38 -1.58,-1.87 -0.38,-1.31 0.22,-1.4 1.8,-0.11 1.04,-1.03 3.82,-0.25 2.49,-0.45 0.24,-1.79 1.54,-1.94 -0.01,-6.75 3.95,-1.32 8.12,-5.85 9.61,-5.75 4.43,1.31 1.58,1.66 1.98,-1.12 0.69,4.67 1.05,0.78 0.05,0.95 1.16,1.02 -0.61,1.28 -1.08,5.98 -0.14,3.79 -3.58,2.74 -1.21,3.8 1.17,1.06 -0.01,1.85 1.8,0.07 -0.28,1.34 -0.79,0.17 -0.09,0.9 -0.53,0.07 -1.89,-3.13 -0.66,-0.12 -2.19,1.6 -2.17,-0.83 -1.51,-0.17 -0.81,0.4 -1.65,-0.08 -1.65,1.22 -1.43,0.07 -3.39,-1.48 -1.33,0.7 -1.43,-0.05 -1.05,-1.08 -2.82,-1.07 -3.01,0.34 -0.73,0.62 -0.39,1.65 -0.81,1.15 -0.19,2.54 -2.14,-1.64 -1.01,0.01 z", - "NG": "m 499.34,450.33 -2.91,1 -1.07,-0.14 -1.08,0.62 -2.24,-0.06 -1.5,-1.75 -0.92,-2.02 -1.99,-1.84 -2.11,0.03 -2.47,0 0.16,-4.53 -0.07,-1.79 0.53,-1.77 0.86,-0.87 1.36,-1.75 -0.29,-0.76 0.55,-1.14 -0.63,-1.68 0.11,-0.95 0.19,-2.54 0.81,-1.15 0.39,-1.65 0.73,-0.62 3.01,-0.34 2.82,1.07 1.05,1.08 1.43,0.05 1.33,-0.7 3.39,1.48 1.43,-0.07 1.65,-1.22 1.65,0.08 0.81,-0.4 1.51,0.17 2.17,0.83 2.19,-1.6 0.66,0.12 1.89,3.13 0.53,-0.07 1.11,1.14 -0.31,0.51 -0.15,0.95 -2.36,2.2 -0.74,1.81 -0.4,1.47 -0.59,0.63 -0.57,1.97 -1.5,1.16 -0.43,1.42 -0.63,1.14 -0.26,1.16 -1.93,0.95 -1.57,-1.15 -1.07,0.04 -1.67,1.64 -0.81,0.03 -1.33,2.7 z", - "NI": "m 235.18,432.56 -0.97,-0.9 -1.31,-1.15 -0.62,-0.96 -1.18,-0.89 -1.41,-1.29 0.31,-0.44 0.47,0.43 0.21,-0.21 0.87,-0.11 0.35,-0.66 0.41,-0.02 -0.06,-1.41 0.66,-0.07 0.59,0.02 0.6,-0.76 0.83,0.58 0.29,-0.36 0.51,-0.34 0.98,-0.79 0.05,-0.6 0.27,0.03 0.36,-0.69 0.29,-0.08 0.48,0.44 0.56,0.13 0.62,-0.37 0.71,0 0.97,-0.38 0.39,-0.39 0.96,0.06 -0.24,0.28 -0.14,0.64 0.28,1.05 -0.64,0.98 -0.3,1.15 -0.1,1.27 0.16,0.73 0.07,1.29 -0.43,0.28 -0.26,1.22 0.19,0.75 -0.58,0.73 0.14,0.76 0.42,0.47 -0.67,0.6 -0.82,-0.19 -0.47,-0.58 -0.89,-0.24 -0.64,0.37 -1.85,-0.75 z", - "NL": "m 492.53,286.23 2.33,0.13 0.53,1.58 -0.7,4.23 -0.71,1.71 -1.69,0 0.48,4.69 -1.55,-1.04 -1.77,-1.95 -2.6,0.93 -2.05,-0.35 1.44,-1.24 2.46,-6.74 z", - "NO": "m 554.48,175.86 8.77,6.24 -3.61,2.23 3.07,5.11 -4.77,3.19 -2.26,0.72 1.19,-5.59 -3.6,-3.25 -4.35,2.78 -1.38,5.85 -2.67,3.44 -3.01,-1.87 -3.66,0.38 -3.12,-4.15 -1.68,2.09 -1.74,0.32 -0.41,5.08 -5.28,-1.22 -0.74,4.22 -2.69,-0.03 -1.85,5.24 -2.8,7.87 -4.35,9.5 1.02,2.23 -0.98,2.55 -2.78,-0.11 -1.82,5.91 0.17,8.04 1.79,2.98 -0.93,6.73 -2.33,3.81 -1.24,3.15 -1.88,-3.35 -5.54,6.27 -3.74,1.24 -3.88,-2.71 -1,-5.86 -0.89,-13.26 2.58,-3.88 7.4,-5.18 5.54,-6.59 5.13,-9.3 6.74,-13.76 4.7,-5.67 7.71,-9.89 6.15,-3.59 4.61,0.44 4.27,-6.99 5.11,0.38 5.03,-1.74 z", - "NP": "m 722.58,382.7 -0.22,1.35 0.37,1.99 -0.32,1.24 -2.33,0.05 -3.38,-0.73 -2.16,-0.29 -1.62,-1.59 -3.84,-0.41 -3.66,-1.77 -2.64,-1.55 -2.72,-1.2 1.09,-2.99 1.78,-1.46 1.16,-0.78 2.25,1 2.83,2.09 1.57,0.46 0.94,1.53 2.18,0.63 2.28,1.39 3.17,0.73 z", - "NZ": "m 960.63,588.88 0.64,1.53 1.99,-1.5 0.81,1.57 0,1.57 -1.04,1.74 -1.83,2.8 -1.43,1.54 1.03,1.86 -2.16,0.05 -2.4,1.46 -0.75,2.57 -1.59,4.03 -2.2,1.8 -1.4,1.16 -2.58,-0.09 -1.82,-1.34 -3.05,-0.28 -0.47,-1.48 1.51,-2.96 3.53,-3.87 1.81,-0.73 2.01,-1.47 2.4,-2.01 1.68,-1.98 1.25,-2.81 1.06,-0.95 0.42,-2.07 1.97,-1.7 0.61,1.56 z m 4.46,-17.02 2.03,3.67 0.06,-2.38 1.27,0.95 0.42,2.65 2.26,1.15 1.89,0.28 1.6,-1.35 1.42,0.41 -0.68,3.15 -0.85,2.09 -2.14,-0.07 -0.75,1.1 0.26,1.56 -0.41,0.68 -1.06,1.97 -1.39,2.53 -2.17,1.49 -0.48,-0.98 -1.17,-0.54 1.62,-3.04 -0.92,-2.01 -3.02,-1.45 0.08,-1.31 2.03,-1.25 0.47,-2.74 -0.13,-2.28 -1.14,-2.34 0.08,-0.61 -1.34,-1.43 -2.21,-3.04 -1.17,-2.41 1.04,-0.27 1.53,1.89 2.18,0.89 0.79,3.04 z", - "OM": "m 640.54,403.43 -1.05,2.04 -1.27,-0.16 -0.58,0.71 -0.45,1.5 0.34,1.98 -0.26,0.36 -1.29,-0.01 -1.75,1.1 -0.27,1.43 -0.64,0.62 -1.74,-0.02 -1.1,0.74 0.01,1.18 -1.36,0.81 -1.55,-0.27 -1.88,0.98 -1.3,0.16 -0.92,-2.04 -2.19,-4.84 8.41,-2.96 1.87,-5.97 -1.29,-2.14 0.07,-1.22 0.82,-1.26 0.01,-1.25 1.27,-0.6 -0.5,-0.42 0.23,-2 1.43,-0.01 1.26,2.09 1.57,1.11 2.06,0.4 1.66,0.55 1.27,1.74 0.76,1 1,0.38 -0.01,0.67 -1.02,1.79 -0.45,0.84 -1.17,0.99 z m -6.92,-14.54 -0.37,0.56 -0.53,-1.06 0.82,-1.06 0.35,0.27 -0.27,1.29 z", - "PA": "m 257.13,443.46 -0.93,-0.81 -0.6,-1.52 0.69,-0.75 -0.71,-0.19 -0.52,-0.93 -1.4,-0.78 -1.23,0.18 -0.56,0.98 -1.14,0.7 -0.61,0.1 -0.27,0.59 1.33,1.52 -0.76,0.36 -0.41,0.42 -1.3,0.14 -0.49,-1.68 -0.36,0.48 -0.93,-0.16 -0.56,-1.14 -1.15,-0.18 -0.73,-0.33 -1.2,0 -0.09,0.61 -0.32,-0.42 0.15,-0.56 0.23,-0.57 -0.11,-0.51 0.42,-0.34 -0.58,-0.42 -0.02,-1.13 1.09,-0.25 1,1.01 -0.06,0.6 1.12,0.12 0.27,-0.23 0.77,0.7 1.38,-0.21 1.19,-0.71 1.7,-0.57 0.96,-0.84 1.55,0.16 -0.11,0.28 1.57,0.1 1.25,0.49 0.91,0.84 1.06,0.78 -0.34,0.42 0.65,1.65 -0.53,0.84 -0.91,-0.2 z", - "PE": "m 280.38,513.39 -0.75,1.51 -1.44,0.74 -2.81,-1.68 -0.25,-1.2 -5.55,-2.92 -5.03,-3.17 -2.17,-1.78 -1.16,-2.37 0.46,-0.83 -2.37,-3.75 -2.77,-5.24 -2.64,-5.62 -1.15,-1.29 -0.88,-2.06 -2.18,-1.84 -2,-1.13 0.91,-1.25 -1.36,-2.67 0.87,-1.95 2.24,-1.77 0.33,1.17 -0.8,0.66 0.07,1.02 1.16,-0.22 1.14,0.3 1.17,1.41 1.59,-1.15 0.53,-1.88 1.72,-2.43 3.37,-1.1 3.06,-2.92 0.87,-1.81 -0.39,-2.11 0.75,-0.27 1.86,1.32 0.89,1.32 1.3,0.72 1.65,2.92 2.09,0.35 1.55,-0.74 1.01,0.48 1.68,-0.24 2.15,1.31 -1.81,2.84 0.84,0.06 1.4,1.49 -2.53,-0.13 -0.37,0.42 -2.3,0.53 -3.2,1.91 -0.21,1.3 -0.71,0.98 0.28,1.51 -1.7,0.81 0,1.19 -0.74,0.51 1.17,2.53 1.56,1.72 -0.59,1.21 1.86,0.16 1.06,1.51 2.47,0.07 2.3,-1.66 -0.19,4.3 1.28,0.33 1.58,-0.49 2.43,4.58 -0.61,0.96 -0.13,2.02 -0.06,2.44 -1.1,1.44 0.51,1.07 -0.65,0.97 1.21,2.44 z", - "PG": "m 912.57,482.67 -0.79,0.28 -1.21,-1.08 -1.23,-1.78 -0.6,-2.13 0.39,-0.27 0.3,0.83 0.85,0.63 1.36,1.77 1.32,0.95 -0.39,0.8 z m -10.93,-3.75 -1.47,0.23 -0.44,0.79 -1.53,0.68 -1.44,0.66 -1.49,0 -2.3,-0.81 -1.6,-0.78 0.23,-0.87 2.51,0.41 1.53,-0.22 0.42,-1.34 0.4,-0.07 0.27,1.49 1.6,-0.21 0.79,-0.96 1.57,-1 -0.31,-1.65 1.68,-0.05 0.57,0.46 -0.06,1.55 -0.93,1.69 z m -13.43,5.35 2.5,1.84 1.82,2.99 1.61,-0.09 -0.11,1.25 2.17,0.48 -0.84,0.53 2.98,1.19 -0.31,0.82 -1.86,0.2 -0.69,-0.73 -2.41,-0.32 -2.83,-0.43 -2.18,-1.8 -1.59,-1.55 -1.46,-2.46 -3.66,-1.23 -2.38,0.8 -1.71,0.93 0.36,2.08 -2.2,0.97 -1.57,-0.47 -2.9,-0.12 -0.05,-9.16 -0.05,-9.1 4.87,1.92 5.18,1.6 1.93,1.43 1.56,1.41 0.43,1.65 4.67,1.73 0.68,1.49 -2.58,0.3 0.62,1.85 z m 16.67,-8.09 -0.88,0.74 -0.53,-1.65 -0.65,-1.08 -1.27,-0.91 -1.6,-1.19 -2.02,-0.82 0.78,-0.67 1.51,0.78 0.95,0.61 1.18,0.67 1.12,1.17 1.07,0.89 0.34,1.46 z", - "PH": "m 829.84,440.11 0.29,1.87 0.17,1.58 -0.96,2.57 -1.02,-2.86 -1.31,1.42 0.9,2.06 -0.8,1.31 -3.3,-1.63 -0.79,-2.03 0.86,-1.33 -1.78,-1.33 -0.88,1.17 -1.32,-0.11 -2.08,1.57 -0.46,-0.82 1.1,-2.37 1.77,-0.79 1.53,-1.06 0.99,1.27 2.13,-0.77 0.46,-1.26 1.98,-0.08 -0.17,-2.18 2.27,1.34 0.24,1.42 0.18,1.04 z m -6.71,-5.26 -1.01,0.93 -0.88,1.79 -0.88,0.84 -1.73,-1.95 0.58,-0.76 0.7,-0.79 0.31,-1.76 1.55,-0.17 -0.45,1.91 2.08,-2.74 -0.27,2.7 z m -15.36,2.72 -3.73,2.67 1.38,-1.97 2.03,-1.74 1.68,-1.96 1.47,-2.82 0.5,2.31 -1.85,1.56 -1.48,1.95 z m 9.48,-7.3 1.68,0.88 1.78,0 -0.05,1.19 -1.3,1.2 -1.78,0.85 -0.1,-1.32 0.2,-1.45 -0.43,-1.35 z m 10.14,-0.77 0.79,3.18 -2.16,-0.75 0.06,0.95 0.69,1.75 -1.33,0.63 -0.12,-1.99 -0.84,-0.15 -0.44,-1.72 1.65,0.23 -0.04,-1.08 -1.71,-2.18 2.69,0.06 0.76,1.07 z m -11.14,-2.59 -0.74,2.47 -1.2,-1.42 -1.43,-2.18 2.4,0.1 0.97,1.03 z m -0.58,-15.74 1.73,0.84 0.86,-0.76 0.25,0.75 -0.46,1.22 0.96,2.09 -0.74,2.42 -1.65,0.96 -0.44,2.33 0.63,2.29 1.49,0.32 1.24,-0.34 3.5,1.59 -0.27,1.56 0.92,0.69 -0.29,1.32 -2.18,-1.4 -1.04,-1.5 -0.72,1.05 -1.79,-1.72 -2.55,0.42 -1.4,-0.63 0.14,-1.19 0.88,-0.73 -0.84,-0.67 -0.36,1.04 -1.38,-1.65 -0.42,-1.26 -0.1,-2.77 1.13,0.96 0.29,-4.55 0.91,-2.66 1.7,-0.02 z", - "PL": "m 517.61,297.22 -1.15,-2.86 0.22,-1.56 -0.7,-2.45 -1.01,-1.65 0.78,-1.25 -0.66,-2.39 1.92,-1.39 4.37,-2.22 3.54,-1.64 2.79,0.82 0.21,1.18 2.71,0.06 3.45,0.55 5.16,-0.08 1.44,0.52 0.67,1.46 0.12,2.09 0.78,1.78 -0.02,1.85 -1.68,0.94 0.87,2.12 0.05,2.01 1.41,3.89 -0.3,1.24 -1.39,0.51 -2.55,3.61 0.72,1.92 -0.61,-0.25 -2.66,-1.64 -2.02,0.6 -1.32,-0.44 -1.66,0.92 -1.41,-1.52 -1.16,0.58 -0.16,-0.26 -1.29,-2.13 -2.08,-0.26 -0.27,-1.37 -1.92,-0.49 -0.42,1.13 -1.52,-0.9 0.17,-1.21 -2.09,-0.39 z", - "PK": "m 686.24,352.01 2.07,1.63 0.83,2.66 4.61,1.39 -2.71,2.86 -3.12,0.51 -4.26,-0.83 -1.37,1.46 0.99,2.95 0.97,2.25 2.27,1.63 -2.39,1.91 0.04,2.33 -2.72,3.24 -1.76,3.26 -2.93,3.32 -3.26,-0.24 -3.09,3.3 1.84,1.4 0.32,2.39 1.57,1.56 0.56,2.64 -6.17,-0.01 -1.87,2.04 -2.05,-0.77 -0.84,-2.2 -2.17,-2.34 -5.16,0.58 -4.56,0.05 -3.95,0.44 1.06,-3.6 4.04,-1.61 -0.23,-1.44 -1.34,-0.51 -0.08,-2.77 -2.68,-1.4 -1.13,-1.93 -1.38,-1.68 4.69,1.64 2.81,-0.48 1.67,0.4 0.57,-0.7 1.95,0.28 3.65,-1.33 0.1,-2.75 1.56,-1.84 2.09,0 0.3,-0.91 2.15,-0.43 1.03,0.3 1.1,-0.92 -0.15,-1.98 1.19,-2 1.78,-0.85 -1.1,-2.22 2.67,0.11 0.77,-1.22 -0.12,-1.3 1.4,-1.43 -0.33,-1.7 -0.66,-1.46 1.64,-1.51 3.01,-0.73 3.22,-0.4 1.42,-0.65 z", - "PR": "m 289.66,411.14 1.43,0.26 0.51,0.58 -0.72,0.74 -2.11,-0.02 -1.64,0.1 -0.16,-1.25 0.39,-0.43 z", - "PS": "m 575.17,368.12 0,2.01 -0.42,0.96 -1.32,0.45 0.13,-0.86 0.71,-0.46 -0.7,-0.36 0.58,-2.2 z", - "PT": "m 450.17,334.81 1.02,-0.95 1.14,-0.55 0.71,1.84 1.65,-0.01 0.48,-0.47 1.64,0.13 0.78,1.88 -1.3,1 -0.03,2.88 -0.46,0.53 -0.11,1.72 -1.21,0.3 1.12,2.17 -0.77,2.35 0.96,1.06 -0.38,0.96 -1.04,1.32 0.23,1.16 -1.12,0.91 -1.48,-0.49 -1.45,0.38 0.43,-2.74 -0.26,-2.18 -1.26,-0.33 -0.67,-1.35 0.23,-2.36 1.11,-1.31 0.2,-1.47 0.59,-2.21 -0.07,-1.57 -0.56,-1.34 z", - "PY": "m 299.74,527.24 1.11,-3.59 0.07,-1.6 1.34,-2.62 4.89,-0.86 2.6,0.05 2.62,1.51 0.04,0.91 0.83,1.66 -0.18,4.06 2.96,0.58 1.14,-0.59 1.89,0.82 0.53,0.9 0.26,2.77 0.33,1.18 1.04,0.13 1.05,-0.49 1.01,0.55 0,1.68 -0.38,1.82 -0.55,1.78 -0.46,2.75 -2.54,2.4 -2.22,0.5 -3.15,-0.48 -2.82,-0.85 2.76,-4.73 -0.41,-1.37 -2.88,-1.2 -3.43,-2.26 -2.29,-0.46 z", - "QA": "m 617.97,392.41 -0.19,-2.24 0.76,-1.62 0.76,-0.34 0.85,0.97 0.05,1.81 -0.61,1.81 -0.78,0.22 z", - "RO": "m 539.18,311.11 1.21,-0.89 1.74,0.46 1.79,0.02 1.3,1.01 0.96,-0.64 2.07,-0.4 0.71,-0.98 1.18,0.01 0.85,0.4 0.87,1.24 0.89,1.75 1.62,2.44 0.09,1.79 -0.3,1.72 0.51,1.83 1.25,0.73 1.31,-0.64 1.28,0.68 0.06,1.03 -1.36,0.84 -0.85,-0.36 -0.78,4.71 -1.65,-0.41 -2.04,-1.41 -3.3,0.9 -1.39,0.99 -4.12,-0.2 -2.16,-0.61 -1.08,0.29 -0.81,-1.6 -0.51,-0.68 0.65,-0.66 -0.7,-0.49 -0.88,0.88 -1.63,-1.14 -0.22,-1.63 -1.71,-0.94 -0.31,-1.27 -1.52,-1.58 2.25,-0.76 1.69,-2.76 1.33,-2.8 z", - "RS": "m 534.03,321.15 1.71,0.94 0.22,1.63 1.63,1.14 0.88,-0.88 0.7,0.49 -0.65,0.66 0.51,0.68 -0.69,0.88 0.25,1.42 1.36,1.66 -1.07,1.19 -0.47,1.21 0.31,0.45 -0.47,0.54 -1.29,0.06 -0.96,0.22 -0.09,-0.28 0.33,-0.45 0.32,-0.93 -0.4,0.02 -0.55,-0.7 -0.46,-0.18 -0.36,-0.61 -0.53,-0.24 -0.4,-0.54 -0.5,0.22 -0.39,1.26 -0.67,0.28 0.23,-0.33 -1.07,-0.79 -0.92,-0.41 -0.41,-0.54 -0.74,-0.66 0.66,-0.17 0.41,-1.82 -1.35,-1.5 0.7,-1.72 -1.02,0.01 1.08,-1.49 -0.89,-1.14 -0.68,-1.55 2.15,-1.05 1.75,0.17 1.52,1.58 z", - "RU": "m 1008.52,216 -2.78,2.97 -4.6,0.7 -0.07,6.46 -1.12,1.35 -2.63,-0.19 -2.14,-2.26 -3.73,-1.92 -0.63,-2.89 -2.85,-1.1 -3.19,0.87 -1.52,-2.37 0.61,-2.55 -3.36,1.64 1.26,3.19 -1.59,2.83 -0.02,0.04 -3.6,2.89 -3.63,-0.48 2.53,3.44 1.67,5.2 1.29,1.67 0.33,2.53 -0.72,1.6 -5.23,-1.32 -7.84,4.51 -2.49,0.69 -4.29,4.1 -4.07,3.5 -1.03,2.55 -4.01,-3.9 -7.31,4.42 -1.28,-2.08 -2.7,2.39 -3.75,-0.76 -0.9,3.63 -3.36,5.22 0.1,2.14 3.19,1.17 -0.38,7.46 -2.6,0.19 -1.2,4.15 1.17,2.1 -4.9,2.47 -0.97,5.4 -4.18,1.14 -0.84,4.66 -4.04,4.18 -1.04,-3.08 -1.2,-6.69 -1.56,-10.65 1.35,-6.95 2.37,-3.07 0.15,-2.44 4.36,-1.18 5.01,-6.78 4.83,-5.73 5.04,-4.57 2.25,-8.37 -3.41,0.51 -1.68,4.92 -7.11,6.36 -2.3,-7.14 -7.24,2 -7.02,9.56 2.32,3.38 -6.26,1.42 -4.33,0.56 0.2,-3.95 -4.36,-0.84 -3.47,2.7 -8.57,-0.94 -9.22,1.62 -9.08,10.33 -10.75,11.78 4.42,0.61 1.38,3 2.72,1.05 1.79,-2.38 3.08,0.31 4.05,5.19 0.09,3.92 -2.19,4.51 -0.24,5.27 -1.26,6.85 -4.23,6.01 -0.94,2.82 -3.81,4.66 -3.78,4.53 -1.81,2.28 -3.74,2.25 -1.77,0.05 -1.76,-1.86 -3.76,2.79 -0.44,1.26 -0.39,-0.66 -0.02,-1.93 1.43,-0.1 0.4,-4.55 -0.74,-3.36 2.41,-1.4 3.4,0.7 1.89,-3.89 0.96,-4.46 1.09,-1.51 1.47,-3.76 -4.63,1.24 -2.43,1.65 -4.26,0 -1.13,-3.95 -3.32,-3.03 -4.88,-1.38 -1.04,-4.28 -0.98,-2.73 -1.05,-1.94 -1.73,-4.61 -2.46,-1.71 -4.2,-1.39 -3.72,0.13 -3.48,0.84 -2.32,2.31 1.54,1.1 0.04,2.52 -1.56,1.45 -2.53,4.72 0.03,1.93 -3.95,2.74 -3.37,-1.63 -3.35,0.36 -1.47,-1.46 -1.68,-0.47 -4.11,3.06 -3.69,0.71 -2.58,1.06 -3.53,-0.7 -2.6,0.04 -1.7,-2.2 -2.75,-2.09 -2.81,-0.58 -3.55,0.57 -2.65,0.81 -3.98,-1.84 -0.53,-3.32 -3.3,-1.15 -2.54,-0.53 -3.14,-1.87 -2.9,4.66 1.14,2.6 -2.73,3.03 -4.05,-1.09 -2.8,-0.16 -1.87,-2.04 -2.92,-0.06 -2.44,-1.35 -4.26,2.07 -5.35,3.74 -2.96,0.74 -1.1,0.35 -1.49,-2.63 -3.61,0.58 -1.19,-1.84 -1.96,-0.85 -1.35,-2.55 -1.55,-0.8 -4.03,1.14 -3.86,-2.57 -1.49,2.33 -6.27,-11.58 -3.58,-3.66 1.03,-1.5 -7.03,4.49 -2.69,0.27 0.23,-2.58 -3.6,-1.63 -2.93,1.17 -0.88,-5.01 -5.04,-1.06 -2.52,2.03 -7.02,1.79 -1.37,1.19 -10.49,1.66 -1.29,1.62 2.02,3.21 -2.69,1.2 0.53,1.25 -2.69,2.22 4.54,3.1 -0.7,2.11 -3.94,-0.19 -0.81,1.31 -3.59,-2.29 -4.45,0.09 -2.98,1.87 -3.32,-1.79 -6.18,-3.1 -4.38,0.12 -5.79,4.85 -0.35,3.19 -2.88,-2.53 -2.24,4.77 0.82,0.87 -1.62,3.21 2.38,2.84 2.08,-0.12 1.79,2.76 -0.28,2.1 1.42,0.66 -1.28,2.39 -2.72,0.66 -2.79,4.09 2.55,3.7 -0.28,2.59 3.06,4.46 -1.67,1.51 -0.48,0.95 -1.24,-0.25 -1.93,-2.27 -0.79,-0.13 -1.76,-0.87 -0.86,-1.55 -2.62,-0.79 -1.7,0.6 -0.49,-0.71 -3.82,-1.83 -4.13,-0.62 -2.37,-0.66 -0.34,0.45 -3.57,-3.27 -3.2,-1.48 -2.42,-2.32 2.04,-0.64 2.33,-3.35 -1.57,-1.6 4.13,-1.67 -0.07,-0.9 -2.52,0.66 0.09,-1.83 1.45,-1.16 2.71,-0.31 0.44,-1.4 -0.62,-2.33 1.14,-2.23 -0.03,-1.26 -4.13,-1.41 -1.64,0.05 -1.73,-2.04 -2.15,0.69 -3.56,-1.54 0.06,-0.87 -1,-1.93 -2.24,-0.22 -0.23,-1.39 0.7,-0.91 -1.79,-2.58 -2.91,0.44 -0.85,-0.23 -0.71,1.04 -1.05,-0.18 -0.69,-2.94 -0.66,-1.54 0.54,-0.44 2.26,0.16 1.09,-1.02 -0.81,-1.25 -1.89,-0.83 0.17,-0.86 -1.14,-0.87 -1.76,-3.15 0.6,-1.31 -0.27,-2.31 -2.74,-1.18 -1.47,0.59 -0.4,-1.24 -2.95,-1.26 -0.9,-2.99 -0.24,-2.49 -1.35,-1.19 1.2,-1.66 -0.83,-4.96 2,-3.13 -0.42,-0.96 3.19,-3.07 -2.94,-2.68 6,-7.41 2.6,-3.45 1.05,-3.1 -4.15,-4.26 1.15,-4.15 -2.52,-4.85 1.89,-5.76 -3.26,-7.96 2.59,-5.48 -4.29,-4.99 0.41,-5.4 2.26,-0.72 4.77,-3.19 2.89,-2.81 4.61,4.86 7.68,1.88 10.59,8.65 2.15,3.51 0.19,4.8 -3.11,3.69 -4.58,1.85 -12.52,-5.31 -2.06,0.9 4.57,5.1 0.18,3.15 0.18,6.75 3.61,1.97 2.19,1.66 0.36,-3.11 -1.69,-2.8 1.78,-2.51 6.78,4.1 2.36,-1.59 -1.89,-4.88 6.53,-6.74 2.59,0.4 2.62,2.43 1.63,-4.81 -2.34,-4.28 1.37,-4.41 -2.06,-4.69 7.84,2.44 1.6,4.18 -3.55,0.91 0.02,4.04 2.21,2.44 4.33,-1.54 0.69,-4.61 5.86,-3.52 9.79,-6.54 2.11,0.38 -2.76,4.64 3.48,0.78 2.01,-2.58 5.25,-0.21 4.16,-3.19 3.2,4.62 3.19,-5.09 -2.94,-4.58 1.46,-2.66 8.28,2.44 3.88,2.49 10.16,8.8 1.88,-3.97 -2.85,-4.11 -0.08,-1.68 -3.38,-0.78 0.92,-3.83 -1.5,-6.49 -0.08,-2.74 5.17,-7.99 1.84,-8.42 2.08,-1.88 7.42,2.51 0.58,5.18 -2.66,7.28 1.74,2.78 0.9,5.94 -0.64,11.07 3.09,4.73 -1.2,5.01 -5.49,10.2 3.21,1.02 1.12,-2.51 3.08,-1.82 0.74,-3.55 2.43,-3.49 -1.63,-4.26 1.31,-5.08 -3.07,-0.64 -0.67,-4.42 2.24,-8.28 -3.64,-7.03 5.02,-6.04 -0.65,-6.62 1.4,-0.22 1.47,5.19 -1.11,8.67 3,1.59 -1.28,-6.37 4.69,-3.58 5.82,-0.49 5.18,5.18 -2.49,-7.62 -0.28,-10.28 4.88,-2.02 6.74,0.44 6.08,-1.32 -2.28,-5.38 3.25,-7.02 3.22,-0.3 5.45,-5.51 7.4,-1.51 0.94,-3.15 7.36,-1.08 2.29,2.61 6.29,-6.24 5.15,0.2 0.77,-5.24 2.68,-5.33 6.62,-5.31 4.81,4.21 -3.82,3.13 6.35,1.92 0.76,6.03 2.56,-2.94 8.2,0.16 6.32,5.84 2.25,4.35 -0.7,5.85 -3.1,3.24 -7.37,5.92 -2.11,3.08 3.48,1.43 4.15,2.55 2.52,-1.91 1.43,6.39 1.23,-2.56 4.48,-1.57 9,1.65 0.68,4.58 11.72,1.43 0.16,-7.47 5.95,1.74 4.48,-0.05 4.53,5.14 1.29,6.04 -1.66,3.84 3.52,6.98 4.41,3.49 2.71,-9.18 4.5,4 4.78,-2.38 5.43,2.72 2.07,-2.47 4.59,1.24 -2.02,-8.4 3.7,-4.07 25.32,6.06 2.39,5.35 7.34,6.65 11.32,-1.62 5.58,1.41 2.33,3.5 -0.34,6.02 3.45,2.29 3.75,-1.64 4.97,-0.21 5.29,1.57 5.31,-0.89 4.88,6.99 3.47,-2.48 -2.27,-5.07 1.25,-3.62 8.95,2.29 5.83,-0.49 8.06,3.84 3.92,3.44 6.87,5.86 7.35,7.34 -0.24,4.44 1.89,1.74 -0.65,-5.15 7.61,1.07 5.55,6.53 z m -127.43,90.5 -2.82,-7.68 -1.16,-4.51 0.07,-4.5 -0.97,-4.5 -0.73,-3.15 -1.25,0.67 1.11,2.21 -2.59,2.17 -0.25,6.3 1.64,4.41 -0.12,5.85 -0.65,3.24 0.32,4.54 -0.31,4.01 0.52,3.4 1.84,-3.13 2.13,2.44 0.08,-2.84 -2.73,-4.23 1.72,-6.11 4.15,1.41 z m -343.02,-27.48 -2.94,-0.86 -3.87,1.58 -0.64,2.13 3.45,0.55 5.16,-0.07 -0.22,-1.23 0.3,-1.33 -1.24,-0.77 z M 980.2,178.9 l 3.66,-0.52 2.89,-2.06 0.24,-1.19 -4.06,-2.51 -2.38,-0.02 -0.36,0.37 -3.57,3.64 0.5,2.73 3.08,-0.44 z m -109.88,-27.09 -2.66,3.92 0.49,0.52 5.75,1.08 4.25,-0.07 -0.34,-2.57 -3.98,-3.81 -3.51,0.93 z m 24.57,-9.53 3.24,-4.25 -7.04,-2.88 -5.23,-1.68 -0.67,3.59 5.21,4.27 4.49,0.95 z m -25.13,-1.69 10.33,0.3 2.21,-8.14 -10.13,-6.07 -7.4,-0.51 -3.7,2.18 -1.51,7.75 5.55,7.01 4.65,-2.52 z m -247.12,25.94 -2.87,1.96 0.41,4.83 5.08,2.35 0.74,3.82 9.16,1.1 1.66,-0.74 -5.36,-7.11 -0.57,-7.52 4.39,-9.14 4.18,-9.82 8.71,-10.17 8.56,-5.34 9.93,-5.74 1.88,-3.71 -1.95,-4.83 -5.46,1.6 -4.8,4.49 -9.33,2.22 -9.26,7.41 -6.27,5.85 0.76,4.87 -6.71,9.03 2.58,1.22 -5.56,8.27 0.1,5.1 z m 147.48,-67.94 0.83,-5.72 -7.11,-8.34 -2.11,-0.98 -2.3,1.7 -5.12,18.6 15.81,-5.26 z m -164.23,-29.31 3.04,3.88 3.28,-2.69 0.39,-2.72 2.52,-1.27 3.76,-2.23 1.08,-2.62 -4.16,-3.85 -2.64,2.9 -1.61,4.12 -0.57,-4.65 -4.26,0.21 -5.47,3.14 6.24,0.52 -1.6,5.26 z m 131.25,13.04 4.65,5.73 7.81,4.2 6.12,-1.8 0.69,-13.62 -6.46,-16.04 -5.45,-9.02 -6.07,4.11 -7.28,11.83 3.83,3.27 2.16,11.34 z", - "RW": "m 560.79,466.8 1.12,1.57 -0.17,1.64 -0.8,0.35 -1.49,-0.18 -0.86,1.59 -1.71,-0.22 0.26,-1.53 0.39,-0.21 0.1,-1.66 0.81,-0.78 0.68,0.29 z", - "SA": "m 595.45,417.47 -0.36,-1.24 -0.85,-0.88 -0.22,-1.17 -1.44,-1.04 -1.5,-2.46 -0.79,-2.41 -1.94,-2.04 -1.25,-0.48 -1.86,-2.85 -0.32,-2.08 0.12,-1.79 -1.61,-3.36 -1.31,-1.19 -1.52,-0.63 -0.92,-1.76 0.15,-0.69 -0.78,-1.6 -0.82,-0.69 -1.09,-2.32 -1.71,-2.52 -1.43,-2.16 -1.39,0.01 0.43,-1.74 0.13,-1.11 0.34,-1.28 3.12,0.51 1.22,-0.98 0.67,-1.16 2.14,-0.44 0.46,-1.09 0.93,-0.54 -2.8,-3.26 5.62,-1.65 0.53,-0.49 3.38,0.89 4.18,2.29 7.9,6.49 5.21,0.26 2.5,0.31 0.7,1.51 1.98,-0.08 1.1,2.73 1.38,0.71 0.48,1.11 1.91,1.31 0.17,1.29 -0.28,1.03 0.36,1.04 0.8,0.87 0.38,1.01 0.42,0.75 0.84,0.61 0.78,-0.22 0.53,1.17 0.11,0.71 1.08,3.08 8.42,1.52 0.57,-0.64 1.28,2.14 -1.87,5.97 -8.41,2.96 -8.08,1.13 -2.62,1.32 -2.01,3.07 -1.31,0.48 -0.7,-0.97 -1.07,0.15 -2.71,-0.29 -0.52,-0.3 -3.23,0.07 -0.76,0.27 -1.15,-0.76 -0.75,1.43 0.29,1.23 z", - "SB": "m 930.06,493 0.78,0.97 -1.96,-0.02 -1.07,-1.74 1.67,0.69 0.58,0.1 z m -3.55,-1.73 -1.09,0.06 -1.72,-0.29 -0.59,-0.44 0.18,-1.12 1.85,0.44 0.91,0.59 0.46,0.76 z m 2.32,-0.77 -0.42,0.52 -2.08,-2.45 -0.58,-1.68 h 0.95 l 1.01,2.25 1.12,1.36 z m -5.06,-3.56 0.12,0.57 -2.2,-1.19 -1.54,-1.01 -1.05,-0.94 0.42,-0.29 1.29,0.67 2.3,1.29 0.66,0.9 z m -6.55,-2.78 -0.56,0.16 -1.23,-0.64 -1.15,-1.15 0.14,-0.47 1.67,1.18 1.13,0.92 z", - "SD": "m 570.73,437.15 -0.39,-0.05 0.05,-1.41 -0.34,-0.97 -1.44,-1.12 -0.34,-2.05 0.34,-2.1 -1.3,-0.19 -0.19,0.63 -1.69,0.15 0.68,0.83 0.24,1.71 -1.54,1.56 -1.4,2.04 -1.44,0.29 -2.36,-1.65 -1.06,0.58 -0.29,0.83 -1.44,0.53 -0.1,0.58 -2.79,0 -0.39,-0.58 -2.02,-0.1 -1.01,0.49 -0.77,-0.25 -1.44,-1.65 -0.48,-0.77 -2.03,0.39 -0.77,1.31 -0.72,2.52 -0.96,0.53 -0.86,0.31 -0.23,-0.14 -0.97,-0.81 -0.18,-0.87 0.45,-1.18 0,-1.15 -1.62,-1.77 -0.32,-1.22 0.03,-0.69 -1.03,-0.83 -0.03,-1.66 -0.58,-1.1 -0.99,0.17 0.28,-1.05 0.73,-1.2 -0.32,-1.18 0.92,-0.88 -0.58,-0.67 0.74,-1.78 1.28,-2.13 2.42,0.2 -0.14,-11.61 0.04,-1.24 3.22,-0.01 0,-5.96 11.27,0 10.88,0 11.12,0 0.9,2.94 -0.61,0.54 0.41,3.06 1.03,3.52 1.06,0.73 1.54,1.08 -1.42,1.67 -2.07,0.48 -0.88,0.9 -0.27,1.93 -1.21,4.25 0.3,1.15 -0.45,2.47 -1.14,2.81 -1.69,1.42 -1.2,2.17 -0.29,1.16 -1.32,0.8 -0.83,2.96 z", - "SE": "m 537.7,217.74 -2.72,4.69 0.44,4.02 -4.46,5.13 -5.41,5.34 -2.05,8.41 2,4.07 2.68,3.14 -2.57,6.23 -2.92,1.26 -1.07,8.84 -1.59,4.76 -3.4,-0.49 -1.59,3.95 -3.25,0.23 -0.89,-4.71 -2.35,-5.81 -2.13,-7.5 1.24,-3.15 2.33,-3.81 0.93,-6.73 -1.79,-2.98 -0.18,-8.04 1.83,-5.91 2.78,0.11 0.97,-2.55 -1.02,-2.23 4.35,-9.5 2.81,-7.87 1.85,-5.24 2.69,0.02 0.75,-4.21 5.28,1.22 0.41,-5.08 1.74,-0.33 3.74,3.81 4.37,5.15 0.08,11.12 0.94,2.7 z", - "SI": "m 514.21,316.76 2.32,0.31 1.42,-0.92 2.45,-0.1 0.53,-0.69 0.47,0.05 0.55,1.37 -2.23,1.08 -0.28,1.62 -0.97,0.41 0.01,1.12 -1.1,-0.08 -0.95,-0.65 -0.52,0.68 -1.95,-0.14 0.62,-0.36 -0.67,-1.71 z", - "SJ": "m 544.83,104.74 -6.26,5.36 -4.95,-3.02 1.94,-3.42 -1.69,-4.34 5.81,-2.78 1.11,5.18 4.04,3.02 z m -18.15,-26.68 9.23,11.29 -7.06,5.66 -1.56,10.09 -2.46,2.49 -1.33,10.51 -3.38,0.48 -6.03,-7.64 2.54,-4.62 -4.2,-3.86 -5.46,-11.82 -2.18,-11.79 7.64,-5.69 1.54,5.56 3.99,-0.22 1.06,-5.43 4.12,-0.56 3.54,5.55 z m 20.17,-11.46 5.5,5.8 -4.16,8.52 -8.13,1.81 -8.27,-2.56 -0.5,-4.32 -4.02,-0.28 -3.07,-7.48 8.66,-4.72 4.07,4.08 2.84,-5.09 7.08,4.24 z", - "SK": "m 528.36,304.27 0.16,0.26 1.16,-0.58 1.41,1.52 1.66,-0.92 1.32,0.44 2.02,-0.6 2.66,1.64 -0.77,1.11 -0.55,1.71 -0.6,0.43 -3,-1.28 -0.92,0.25 -0.66,1 -1.32,0.52 -0.3,-0.27 -1.36,0.65 -1.12,0.13 -0.22,0.84 -2.36,0.51 -1.03,-0.46 -1.43,-1.07 -0.28,-1.45 0.23,-0.54 0.39,-0.93 1.25,0.07 0.95,-0.44 0.08,-0.39 0.54,-0.21 0.18,-0.97 0.64,-0.19 0.44,-0.77 z", - "SL": "m 443.43,444.69 -0.76,-0.21 -2.01,-1.13 -1.46,-1.5 -0.49,-1.03 -0.35,-2.08 1.5,-1.24 0.32,-0.79 0.48,-0.61 0.78,-0.06 0.65,-0.53 2.24,0 0.78,1.01 0.61,1.19 -0.09,0.82 0.45,0.74 -0.03,1.03 0.77,-0.16 -1.31,1.31 -1.26,1.53 -0.15,0.81 z", - "SN": "m 428.64,425.41 -1.16,-2.24 -1.4,-1.02 1.24,-0.55 1.36,-2.03 0.66,-1.49 0.96,-0.93 1.4,0.25 1.36,-0.63 1.57,-0.03 1.34,0.85 1.86,0.77 1.7,2.13 1.85,1.98 0.13,1.79 0.55,1.64 1.05,0.81 0.24,1.1 -0.13,0.89 -0.41,0.16 -1.52,-0.22 -0.21,0.31 -0.62,0.07 -2.02,-0.7 -1.35,-0.03 -5.18,-0.12 -0.75,0.32 -0.93,-0.09 -1.49,0.47 -0.46,-2.19 2.55,0.06 0.68,-0.4 0.5,-0.03 1.04,-0.66 1.2,0.61 1.22,0.05 1.21,-0.65 -0.56,-0.82 -0.93,0.48 -0.87,-0.01 -1.1,-0.71 -0.89,0.05 -0.64,0.67 z", - "SO": "m 618.88,430.68 -0.07,-0.79 -1.06,0.01 -1.33,0.98 -1.49,0.28 -1.29,0.42 -0.89,0.06 -1.6,0.1 -1,0.52 -1.39,0.19 -2.47,0.88 -3.05,0.33 -2.65,0.73 -1.39,-0.01 -1.26,-1.19 -0.55,-1.17 -0.91,-0.53 -1.04,1.52 -0.61,1.01 1.04,1.56 1.03,1.36 1.07,1.01 9.17,3.34 2.36,-0.02 -7.93,8.42 -3.65,0.12 -2.5,1.97 -1.79,0.05 -0.77,0.88 -2.45,3.17 0.03,10.15 1.66,2.29 0.63,-0.66 0.65,-1.46 3.07,-3.38 2.61,-2.12 4.2,-2.76 2.8,-2.26 3.3,-3.81 2.39,-3.13 2.41,-4.1 1.73,-3.59 1.35,-3.15 0.79,-3.05 0.6,-1.02 -0.01,-1.5 z", - "SR": "m 315.27,446.97 3.36,0.56 0.3,-0.51 2.27,-0.2 3.01,0.76 -1.46,2.4 0.22,1.91 1.11,1.66 -0.49,1.2 -0.25,1.27 -0.72,1.17 -1.6,-0.59 -1.33,0.29 -1.13,-0.25 -0.28,0.81 0.47,0.55 -0.25,0.57 -1.53,-0.23 -1.71,-2.42 -0.37,-1.57 -0.89,-0.01 -1.25,-2.02 0.52,-1.45 -0.15,-0.65 1.7,-0.73 z", - "SS": "m 570.73,437.15 0.03,2.2 -0.42,0.86 -1.48,0.07 -0.96,1.61 1.72,0.2 1.42,1.37 0.5,1.12 1.28,0.65 1.65,3.05 -1.9,1.84 -1.72,1.67 -1.73,1.28 -1.97,0 -2.26,0.65 -1.78,-0.63 -1.15,0.77 -2.47,-1.86 -0.67,-1.19 -1.56,0.59 -1.3,-0.19 -0.75,0.47 -1.26,-0.33 -1.69,-2.31 -0.45,-0.89 -2.1,-1.11 -0.71,-1.68 -1.17,-1.21 -1.88,-1.46 -0.03,-0.92 -1.53,-1.13 -1.91,-1.1 0.86,-0.31 0.96,-0.53 0.72,-2.52 0.77,-1.31 2.03,-0.39 0.48,0.77 1.44,1.65 0.77,0.25 1.01,-0.49 2.02,0.1 0.39,0.58 2.79,0 0.1,-0.58 1.44,-0.53 0.29,-0.83 1.06,-0.58 2.36,1.65 1.44,-0.29 1.4,-2.04 1.54,-1.56 -0.24,-1.71 -0.68,-0.83 1.69,-0.15 0.19,-0.63 1.3,0.19 -0.34,2.1 0.34,2.05 1.44,1.12 0.34,0.97 -0.05,1.41 z", - "SV": "m 229.34,426.01 -0.31,0.67 -1.62,-0.04 -1.01,-0.27 -1.16,-0.57 -1.56,-0.18 -0.79,-0.62 0.09,-0.42 0.96,-0.72 0.52,-0.32 -0.15,-0.34 0.66,-0.17 0.83,0.24 0.6,0.57 0.85,0.46 0.1,0.39 1.23,-0.34 0.58,0.2 0.38,0.31 z", - "SY": "m 584.27,364.85 -5.49,3.54 -3.12,-1.32 -0.06,-0.02 0.38,-0.5 -0.04,-1.37 0.69,-1.83 1.53,-1.27 -0.46,-1.32 -1.26,-0.18 -0.26,-2.61 0.68,-1.41 0.75,-0.75 0.75,-0.76 0.16,-1.94 0.91,0.68 3.09,-0.97 1.49,0.65 2.31,-0.01 3.22,-1.31 1.52,0.06 3.19,-0.54 -1.44,2.18 -1.54,0.86 0.27,2.52 -1.06,4.12 z", - "SZ": "m 565.43,540.99 -0.57,1.39 -1.64,0.33 -1.68,-1.69 -0.02,-1.08 0.76,-1.17 0.27,-0.9 0.81,-0.22 1.41,0.57 0.42,1.39 z", - "TD": "m 516.15,427.51 0.28,-1.34 -1.8,-0.07 0.01,-1.85 -1.17,-1.06 1.21,-3.8 3.58,-2.74 0.14,-3.79 1.08,-5.98 0.61,-1.28 -1.16,-1.02 -0.05,-0.95 -1.05,-0.78 -0.69,-4.67 2.83,-1.66 11.19,5.77 11.18,5.7 0.14,11.61 -2.42,-0.2 -1.28,2.13 -0.74,1.78 0.58,0.67 -0.92,0.88 0.32,1.18 -0.73,1.2 -0.28,1.05 0.99,-0.17 0.58,1.1 0.03,1.66 1.03,0.83 -0.03,0.69 -1.77,0.49 -1.43,1.14 -2.02,3.09 -2.64,1.31 -2.71,-0.18 -0.79,0.26 0.28,0.99 -1.47,0.99 -1.19,1.1 -3.53,1.07 -0.7,-0.63 -0.46,-0.06 -0.52,0.72 -2.32,0.22 0.44,-0.77 -0.88,-1.93 -0.4,-1.17 -1.22,-0.48 -1.65,-1.65 0.61,-1.33 1.28,0.28 0.79,-0.2 1.56,0.03 -1.52,-2.57 0.1,-1.89 -0.19,-1.89 z", - "TF": "m 668.79,619.28 1.8,1.33 2.65,0.54 0.1,0.81 -0.78,1.96 -4.31,0.28 -0.07,-2.29 0.42,-1.76 z", - "TG": "m 480.73,446.5 -2.25,0.59 -0.63,-0.98 -0.75,-1.78 -0.22,-1.4 0.62,-2.53 -0.7,-1.03 -0.27,-2.22 0,-2.05 -1.17,-1.46 0.21,-0.89 2.46,0.06 -0.36,1.5 0.85,0.83 0.98,0.99 0.1,1.39 0.57,0.58 -0.13,6.46 z", - "TH": "m 763.14,429.43 -2.52,-1.31 -2.4,0.06 0.41,-2.25 -2.47,0.02 -0.22,3.14 -1.51,4.15 -0.91,2.5 0.19,2.05 1.82,0.09 1.14,2.57 0.51,2.43 1.56,1.61 1.7,0.33 1.45,1.45 -0.91,1.15 -1.86,0.34 -0.22,-1.44 -2.28,-1.23 -0.49,0.5 -1.11,-1.07 -0.48,-1.39 -1.49,-1.59 -1.36,-1.33 -0.46,1.65 -0.53,-1.56 0.31,-1.76 0.82,-2.71 1.36,-2.91 1.54,-2.65 -1.1,-2.6 0.05,-1.33 -0.32,-1.6 -1.87,-2.28 -0.67,-1.45 0.97,-0.53 1.02,-2.52 -1.14,-1.92 -1.78,-2.13 -1.36,-2.57 1.18,-0.53 1.28,-3.19 1.98,-0.14 1.64,-1.28 1.6,-0.69 1.22,0.92 0.16,1.78 1.89,0.13 -0.69,3.11 0.07,2.62 2.95,-1.74 0.84,0.51 1.65,-0.08 0.56,-1.02 2.12,0.2 2.13,2.38 0.18,2.87 2.27,2.53 -0.13,2.44 -0.91,1.3 -2.63,-0.41 -3.62,0.55 -1.8,2.38 z", - "TJ": "m 674.62,340.87 -1.03,1.13 -3.05,-0.61 -0.27,2.1 3.04,-0.28 3.47,1.17 5.3,-0.55 0.71,3.33 0.92,-0.36 1.7,0.81 -0.09,1.38 0.42,2.01 -2.9,0 -1.93,-0.26 -1.74,1.57 -1.25,0.34 -0.98,0.74 -1.11,-1.15 0.27,-2.95 -0.85,-0.17 0.3,-1.09 -1.51,-0.8 -1.21,1.23 -0.3,1.43 -0.43,0.52 -1.68,-0.07 -0.9,1.6 -0.95,-0.67 -2.03,1.12 -0.85,-0.42 1.57,-3.57 -0.6,-2.66 -2.06,-0.86 0.73,-1.59 2.34,0.17 1.33,-2.01 0.89,-2.35 3.75,-0.86 -0.58,1.71 0.4,1.02 z", - "TL": "m 825.9,488.5 0.33,-0.66 2.41,-0.63 1.96,-0.1 0.87,-0.35 1.06,0.35 -1.03,0.76 -2.92,1.23 -2.35,0.82 -0.05,-0.86 z", - "TM": "m 647.13,357.15 -0.25,-2.91 -2.09,-0.12 -3.2,-3.09 -2.24,-0.39 -3.1,-1.79 -2,-0.33 -1.23,0.66 -1.87,-0.1 -1.99,2.02 -2.47,0.68 -0.52,-2.49 0.41,-3.73 -2.19,-1.22 0.72,-2.48 -1.86,-0.22 0.62,-3.09 2.64,0.91 2.47,-1.19 -2.05,-2.23 -0.8,-2.14 -2.26,0.96 -0.28,2.73 -0.88,-2.41 1.24,-1.25 3.18,-0.79 1.9,1.06 1.96,2.93 1.44,-0.18 3.16,-0.05 -0.46,-1.88 2.4,-1.3 2.36,-2.2 3.78,2 0.3,2.99 1.07,0.77 3.03,-0.17 0.94,0.67 1.38,3.79 3.21,2.51 1.83,1.69 2.93,1.75 3.73,1.52 -0.08,2.16 -0.84,-0.11 -1.33,-0.94 -0.44,1.25 -2.36,0.68 -0.56,2.79 -1.58,1.05 -2.21,0.52 -0.59,1.55 -2.11,0.46 z", - "TN": "m 502.09,374.94 -1.2,-5.86 -1.72,-1.33 -0.03,-0.81 -2.29,-1.98 -0.25,-2.53 1.73,-1.88 0.66,-2.82 -0.45,-3.28 0.57,-1.79 3.06,-1.41 1.96,0.42 -0.08,1.77 2.38,-1.29 0.2,0.67 -1.41,1.71 -0.01,1.6 0.97,0.85 -0.37,2.96 -1.85,1.71 0.53,1.83 1.45,0.06 0.71,1.59 1.07,0.52 -0.16,2.55 -1.37,0.95 -0.86,1.05 -1.93,1.26 0.3,1.35 -0.24,1.38 z", - "TR": "m 579,336.85 4.02,1.43 3.27,-0.57 2.41,0.33 3.31,-1.94 2.99,-0.18 2.7,1.83 0.48,1.3 -0.27,1.79 2.08,0.91 1.1,1.06 -1.92,1.03 0.88,4.11 -0.55,1.1 1.53,2.82 -1.34,0.59 -0.98,-0.89 -3.26,-0.45 -1.2,0.55 -3.19,0.54 -1.51,-0.06 -3.23,1.31 -2.31,0.01 -1.49,-0.66 -3.09,0.97 -0.92,-0.68 -0.15,1.94 -0.75,0.76 -0.75,0.76 -1.03,-1.57 1.06,-1.3 -1.71,0.3 -2.35,-0.8 -1.93,2 -4.26,0.39 -2.27,-1.86 -3.02,-0.12 -0.65,1.44 -1.94,0.41 -2.71,-1.85 -3.06,0.06 -1.66,-3.48 -2.05,-1.96 1.36,-2.78 -1.78,-1.72 3.11,-3.48 4.32,-0.15 1.18,-2.81 5.34,0.49 3.37,-2.42 3.27,-1.06 4.64,-0.08 4.91,2.64 z m -27.25,2.39 -2.34,1.98 -0.88,-1.71 0.04,-0.76 0.67,-0.41 0.87,-2.33 -1.37,-0.99 2.86,-1.18 2.41,0.5 0.33,1.44 2.45,1.2 -0.51,0.91 -3.33,0.2 -1.2,1.15 z", - "TT": "m 302.56,433.49 1.61,-0.37 0.59,0.1 -0.11,2.11 -2.34,0.31 -0.51,-0.25 0.82,-0.78 z", - "TW": "m 816.95,393.52 -1.69,4.87 -1.2,2.48 -1.48,-2.55 -0.32,-2.25 1.65,-3 2.25,-2.32 1.28,0.91 z", - "TZ": "m 570.56,466.28 0.48,0.31 10.16,5.67 0.2,1.62 4.02,2.79 -1.29,3.45 0.16,1.59 1.8,1.02 0.08,0.73 -0.77,1.7 0.16,0.85 -0.18,1.35 0.98,1.76 1.16,2.79 1.02,0.62 -2.23,1.64 -3.06,1.1 -1.68,-0.04 -1,0.85 -1.95,0.07 -0.74,0.36 -3.37,-0.8 -2.11,0.23 -0.78,-3.86 -0.95,-1.32 -0.57,-0.78 -2.74,-0.52 -1.6,-0.85 -1.78,-0.47 -1.12,-0.48 -1.17,-0.71 -1.51,-3.55 -1.63,-1.57 -0.56,-1.62 0.28,-1.46 -0.5,-2.57 1.16,-0.13 1.01,-1.01 1.1,-1.46 0.69,-0.58 -0.03,-0.91 -0.6,-0.63 -0.16,-1.1 0.8,-0.35 0.17,-1.64 -1.12,-1.57 0.99,-0.34 3.07,0.04 z", - "UA": "m 564.63,292.74 1.04,0.19 0.71,-1.04 0.85,0.23 2.91,-0.44 1.79,2.57 -0.7,0.92 0.23,1.39 2.24,0.21 1,1.93 -0.06,0.87 3.56,1.54 2.15,-0.69 1.73,2.04 1.64,-0.04 4.13,1.4 0.03,1.27 -1.13,2.23 0.61,2.33 -0.44,1.39 -2.71,0.31 -1.44,1.16 -0.09,1.83 -2.24,0.33 -1.87,1.32 -2.62,0.21 -2.42,1.52 -1.32,1.03 1.49,1.47 1.37,0.96 2.86,-0.24 -0.55,1.42 -3.07,0.68 -3.81,2.27 -1.55,-0.79 0.61,-1.85 -3.06,-1.16 0.5,-0.77 3.16,-1.63 -0.4,-0.81 -0.45,0.41 -0.44,-0.22 -4.36,-1.02 -0.19,-1.51 -2.6,0.5 -1.04,2.23 -2.17,2.95 -1.28,-0.68 -1.31,0.64 -1.25,-0.73 0.7,-0.44 0.49,-1.37 0.77,-1.29 -0.2,-0.72 0.59,-0.32 0.27,0.56 1.66,0.11 0.74,-0.29 -0.52,-0.42 0.19,-0.6 -0.98,-1.04 -0.4,-1.72 -1.02,-0.67 0.2,-1.41 -1.27,-1.12 -1.15,-0.16 -2.07,-1.31 -1.86,0.42 -0.67,0.62 -1.18,-0.01 -0.71,0.98 -2.07,0.4 -0.95,0.64 -1.31,-1.01 -1.79,-0.02 -1.74,-0.46 -1.21,0.89 -0.2,-1.12 -1.55,-1.14 0.55,-1.71 0.77,-1.1 0.62,0.24 -0.73,-1.92 2.55,-3.61 1.39,-0.51 0.3,-1.24 -1.41,-3.89 1.34,-0.17 1.54,-1.23 2.17,-0.1 2.83,0.36 3.13,1.08 2.21,0.09 1.05,0.65 1.05,-0.78 0.74,1.05 2.53,-0.22 1.11,0.43 0.19,-2.26 0.86,-1 z", - "UG": "m 564.85,466.5 -3.07,-0.04 -0.99,0.34 -1.67,0.86 -0.68,-0.29 0.02,-2.1 0.65,-1.06 0.16,-2.24 0.59,-1.29 1.07,-1.46 1.08,-0.74 0.9,-0.99 -1.12,-0.37 0.17,-3.26 1.15,-0.77 1.78,0.63 2.26,-0.65 1.97,0 1.73,-1.28 1.33,1.94 0.33,1.4 1.23,3.2 -1.02,2.03 -1.38,1.84 -0.8,1.13 0.02,2.95 z", - "US": "m 109.5,280.05 0,0 -1.54,-1.83 -2.47,-1.57 -0.79,-4.36 -3.61,-4.13 -1.51,-4.94 -2.69,-0.34 -4.46,-0.13 -3.29,-1.54 -5.8,-5.64 -2.68,-1.05 -4.9,-1.99 -3.88,0.48 -5.51,-2.59 -3.33,-2.43 -3.11,1.21 0.58,3.93 -1.55,0.36 -3.24,1.16 -2.47,1.86 -3.11,1.16 -0.4,-3.24 1.26,-5.53 2.98,-1.77 -0.77,-1.46 -3.57,3.22 -1.91,3.77 -4.04,3.95 2.05,2.65 -2.65,3.85 -3.01,2.21 -2.81,1.59 -0.69,2.29 -4.38,2.63 -0.89,2.36 -3.28,2.13 -1.92,-0.38 -2.62,1.38 -2.85,1.67 -2.33,1.63 -4.81,1.38 -0.44,-0.81 3.07,-2.27 2.74,-1.51 2.99,-2.71 3.48,-0.56 1.38,-2.06 3.89,-3.05 0.63,-1.03 2.07,-1.83 0.48,-4 1.43,-3.17 -3.23,1.64 -0.9,-0.93 -1.52,1.95 -1.83,-2.73 -0.76,1.94 -1.05,-2.7 -2.8,2.17 -1.72,0 -0.24,-3.23 0.51,-2.02 -1.81,-1.98 -3.65,1.07 -2.37,-2.63 -1.92,-1.36 -0.01,-3.25 -2.16,-2.48 1.08,-3.41 2.29,-3.37 1,-3.15 2.27,-0.45 1.92,0.99 2.26,-3.01 2.04,0.54 2.14,-1.96 -0.52,-2.92 -1.57,-1.16 2.08,-2.52 -1.72,0.07 -2.98,1.43 -0.85,1.43 -2.21,-1.43 -3.97,0.73 -4.11,-1.56 -1.18,-2.65 -3.55,-3.91 3.94,-2.87 6.25,-3.41 h 2.31 l -0.38,3.48 5.92,-0.27 -2.28,-4.34 -3.45,-2.72 -1.99,-3.64 -2.69,-3.17 -3.85,-2.38 1.57,-4.03 4.97,-0.25 3.54,-3.58 0.67,-3.92 2.86,-3.91 2.73,-0.95 5.31,-3.76 2.58,0.57 4.31,-4.61 4.24,1.83 2.03,3.87 1.25,-1.65 4.74,0.51 -0.17,1.95 4.29,1.43 2.86,-0.84 5.91,2.64 5.39,0.78 2.16,1.07 3.73,-1.34 4.25,2.46 3.05,1.13 -0.02,27.65 -0.01,35.43 2.76,0.17 2.73,1.56 1.96,2.44 2.49,3.6 2.73,-3.05 2.81,-1.79 1.49,2.85 1.89,2.23 2.57,2.42 1.75,3.79 2.87,5.88 4.77,3.2 0.08,3.12 -1.6,2.32 z m 175.93,34.43 -1.25,-1.19 -1.88,0.7 -0.93,-1.08 -2.14,3.1 -0.86,3.15 -1,1.82 -1.19,0.62 -0.9,0.2 -0.28,0.98 -5.17,0 -4.26,0.03 -1.27,0.73 -2.87,2.73 0.29,0.54 0.17,1.51 -2.1,1.27 -2.3,-0.32 -2.2,-0.14 -1.33,0.44 0.25,1.15 0,0 0.05,0.37 -2.42,2.27 -2.11,1.09 -1.44,0.51 -1.66,1.03 -2.03,0.5 -1.4,-0.19 -1.73,-0.77 0.96,-1.45 0.62,-1.32 1.32,-2.09 -0.14,-1.57 -0.5,-2.24 -1.04,-0.39 -1.74,1.7 -0.56,-0.03 -0.14,-0.97 1.54,-1.56 0.26,-1.79 -0.23,-1.79 -2.08,-1.55 -2.38,-0.8 -0.39,1.52 -0.62,0.4 -0.5,1.95 -0.26,-1.33 -1.12,0.95 -0.7,1.32 -0.73,1.92 -0.14,1.64 0.93,2.38 -0.08,2.51 -1.14,1.84 -0.57,0.52 -0.76,0.41 -0.95,0.02 -0.26,-0.25 -0.76,-1.98 -0.02,-0.98 0.08,-0.94 -0.35,-1.87 0.53,-2.18 0.63,-2.71 1.46,-3.03 -0.42,0.01 -2.06,2.54 -0.38,-0.46 1.1,-1.42 1.67,-2.57 1.91,-0.36 2.19,-0.8 2.21,0.42 0.09,0.02 2.47,-0.36 -1.4,-1.61 -0.75,-0.13 -0.86,-0.16 -0.59,-1.14 -2.75,0.36 -2.49,0.9 -1.97,-1.55 -1.59,-0.52 0.9,-2.17 -2.48,1.37 -2.25,1.33 -2.16,1.04 -1.72,-1.4 -2.81,0.85 0.01,-0.6 1.9,-1.73 1.99,-1.65 2.86,-1.37 -3.45,-1.09 -2.27,0.55 -2.72,-1.3 -2.86,-0.67 -1.96,-0.26 -0.87,-0.72 -0.5,-2.35 -0.95,0.02 -0.01,1.64 -5.8,0 -9.59,0 -9.53,0 -8.42,0 h -8.41 -8.27 -8.55 -2.76 -8.32 -7.96 l 0.95,3.47 0.45,3.41 -0.69,1.09 -1.49,-3.91 -4.05,-1.42 -0.34,0.82 0.82,1.94 0.89,3.53 0.51,5.42 -0.34,3.59 -0.34,3.54 -1.1,3.61 0.9,2.9 0.1,3.2 -0.61,3.05 1.49,1.99 0.39,2.95 2.17,2.99 1.24,1.17 -0.1,0.82 2.34,4.85 2.72,3.45 0.34,1.87 0.71,0.55 2.6,0.33 1,0.91 1.57,0.17 0.31,0.96 1.31,0.4 1.82,1.92 0.47,1.7 3.19,-0.25 3.56,-0.36 -0.26,0.65 4.23,1.6 6.4,2.31 5.58,-0.02 2.22,0 0.01,-1.35 4.86,0 1.02,1.16 1.43,1.03 1.67,1.43 0.93,1.69 0.7,1.77 1.45,0.97 2.33,0.96 1.77,-2.53 2.29,-0.06 1.98,1.28 1.41,2.18 0.97,1.86 1.65,1.8 0.62,2.19 0.79,1.47 2.19,0.96 1.99,0.68 1.09,-0.09 -0.53,-1.06 -0.14,-1.5 0.03,-2.16 0.65,-1.42 1.53,-1.51 2.79,-1.37 2.55,-2.37 2.36,-0.75 1.74,-0.23 2.04,0.74 2.45,-0.4 2.09,1.69 2.03,0.1 1.05,-0.61 1.04,0.47 0.53,-0.42 -0.6,-0.63 0.05,-1.3 -0.5,-0.86 1.16,-0.5 2.14,-0.22 2.49,0.36 3.17,-0.41 1.76,0.8 1.36,1.5 0.5,0.16 2.83,-1.46 1.09,0.49 2.19,2.68 0.79,1.75 -0.58,2.1 0.42,1.23 1.3,2.4 1.49,2.68 1.07,0.71 0.44,1.35 1.38,0.37 0.84,-0.39 0.7,-1.89 0.12,-1.21 0.09,-2.1 -1.33,-3.65 -0.02,-1.37 -1.25,-2.25 -0.94,-2.75 -0.5,-2.25 0.43,-2.31 1.32,-1.94 1.58,-1.57 3.08,-2.16 0.4,-1.12 1.42,-1.23 1.4,-0.22 1.84,-1.98 2.9,-1.01 1.78,-2.53 -0.39,-3.46 -0.29,-1.21 -0.8,-0.24 -0.12,-3.35 -1.93,-1.14 1.85,0.56 -0.6,-2.26 0.54,-1.55 0.33,2.97 1.43,1.36 -0.87,2.4 0.26,0.14 1.58,-2.81 0.9,-1.38 -0.04,-1.35 -0.7,-0.64 -0.58,-1.94 0.92,0.9 0.62,0.19 0.21,0.92 2.04,-2.78 0.61,-2.62 -0.83,-0.17 0.85,-1.02 -0.08,0.45 1.79,-0.01 3.93,-1.11 -0.83,-0.7 -4.12,0.7 2.34,-1.07 1.63,-0.18 1.22,-0.19 2.07,-0.65 1.35,0.07 1.89,-0.61 0.22,-1.07 -0.84,-0.84 0.29,1.37 -1.16,-0.09 -0.93,-1.99 0.03,-2.01 0.48,-0.86 1.48,-2.28 2.96,-1.15 2.88,-1.34 2.99,-1.9 -0.48,-1.29 -1.83,-2.25 -0.03,-5.56 z m -239.56,-50.44 -1.5,0.8 -2.55,1.86 0.43,2.42 1.43,1.32 2.8,-1.95 2.43,-2.47 -1.19,-1.63 -1.85,-0.35 z m -45.62,-28.57 2.04,-1.26 0.23,-0.68 -2.27,-0.67 v 2.61 z m 8.5,15.37 -2.77,0.97 1.7,1.52 1.84,1.04 1.72,-0.87 -0.27,-2.15 -2.22,-0.51 z m 97.35,32.5 -2.69,0.38 -1.32,-0.62 -0.17,1.52 0.52,2.07 1.42,1.46 1.04,2.13 1.69,2.1 1.12,0.01 -2.44,-3.7 0.83,-5.35 z m -68.72,120.68 -1,-0.28 -0.27,0.26 0.02,0.19 0.32,0.24 0.48,0.63 0.94,-0.21 0.23,-0.36 -0.72,-0.47 z m -2.99,-0.54 1.5,0.09 0.09,-0.32 -1.38,-0.13 -0.21,0.36 z m 5.89,3.29 -0.5,-0.26 -1.07,-0.5 -0.21,-0.06 -0.16,0.28 0.19,0.58 -0.49,0.48 -0.14,0.33 0.46,1.08 -0.08,0.83 0.7,0.42 0.41,-0.49 0.9,-0.46 1.1,-0.63 0.07,-0.16 -0.71,-1.04 -0.47,-0.4 z m -7.86,-5.14 -0.75,0.41 0.11,0.12 0.36,0.68 0.98,0.11 0.2,0.04 0.15,-0.17 -0.81,-0.99 -0.24,-0.2 z m -4.4,-1.56 -0.43,0.3 -0.15,0.22 0.94,0.55 0.33,-0.3 -0.06,-0.7 -0.63,-0.07 z", - "UY": "m 313.93,552.04 1.82,-0.34 2.81,2.5 1.04,-0.09 2.89,2.08 2.2,1.82 1.62,2.25 -1.24,1.57 0.78,1.9 -1.21,2.12 -3.17,1.88 -2.07,-0.68 -1.52,0.37 -2.59,-1.46 -1.9,0.11 -1.71,-1.87 0.22,-2.16 0.61,-0.74 -0.03,-3.3 0.75,-3.37 z", - "UZ": "m 662.01,351.2 0.08,-2.16 -3.73,-1.52 -2.93,-1.75 -1.83,-1.69 -3.21,-2.51 -1.38,-3.79 -0.94,-0.67 -3.03,0.17 -1.07,-0.77 -0.3,-2.99 -3.78,-2 -2.36,2.2 -2.4,1.3 0.46,1.88 -3.16,0.05 -0.11,-14.13 7.22,-2.35 0.52,0.35 4.35,2.84 2.29,1.48 2.68,3.5 3.29,-0.56 4.81,-0.3 3.35,2.8 -0.21,3.8 1.37,0.03 0.57,3.06 3.57,0.12 0.76,1.75 1.05,-0.02 1.23,-2.65 3.69,-2.61 1.61,-0.7 0.83,0.37 -2.35,2.43 2.07,1.4 2,-0.93 3.32,1.96 -3.59,2.64 -2.13,-0.36 -1.16,0.1 -0.4,-1.02 0.58,-1.71 -3.75,0.86 -0.89,2.35 -1.33,2.01 -2.34,-0.17 -0.73,1.59 2.06,0.86 0.6,2.66 -1.57,3.57 -2.12,-0.74 z", - "VE": "m 275.5,430.6 -0.08,0.67 -1.65,0.33 0.92,1.29 -0.04,1.49 -1.23,1.64 1.06,2.24 1.21,-0.18 0.63,-2.04 -0.87,-1 -0.14,-2.14 3.49,-1.16 -0.39,-1.34 0.98,-0.9 1.01,2 1.97,0.05 1.82,1.58 0.11,0.94 2.51,0.02 3,-0.29 1.61,1.27 2.14,0.35 1.57,-0.88 0.03,-0.72 3.48,-0.17 3.36,-0.04 -2.38,0.84 0.95,1.34 2.25,0.21 2.12,1.39 0.45,2.26 1.46,-0.07 1.1,0.67 -2.22,1.65 -0.25,1.03 0.96,1.04 -0.69,0.52 -1.73,0.45 0.06,1.3 -0.76,0.77 1.89,2.12 0.38,0.79 -1.03,1.07 -3.14,1.04 -2.01,0.44 -0.81,0.66 -2.23,-0.7 -2.08,-0.36 -0.52,0.26 1.25,0.72 -0.11,1.87 0.39,1.76 2.37,0.24 0.16,0.58 -2.01,0.8 -0.32,1.18 -1.16,0.45 -2.08,0.65 -0.54,0.86 -2.18,0.18 -1.55,-1.48 -0.85,-2.77 -0.75,-0.98 -1.02,-0.61 1.42,-1.39 -0.09,-0.63 -0.8,-0.83 -0.56,-1.85 0.22,-2.01 0.62,-0.94 0.51,-1.5 -0.99,-0.49 -1.6,0.32 -2.02,-0.15 -1.13,0.3 -1.98,-2.41 -1.63,-0.36 -3.6,0.27 -0.67,-0.98 -0.69,-0.23 -0.1,-0.59 0.33,-1.04 -0.22,-1.13 -0.62,-0.62 -0.36,-1.3 -1.44,-0.18 0.77,-1.66 0.35,-2.01 0.81,-1.06 1.09,-0.81 0.71,-1.42 z", - "VN": "m 778.46,402.12 -3.74,2.56 -2.34,2.81 -0.62,2.05 2.15,3.09 2.62,3.82 2.54,1.79 1.71,2.33 1.28,5.32 -0.38,5.02 -2.33,1.87 -3.22,1.83 -2.28,2.36 -3.5,2.62 -1.02,-1.81 0.79,-1.91 -2.08,-1.61 2.43,-1.14 2.94,-0.2 -1.23,-1.73 4.71,-2.19 0.35,-3.42 -0.65,-1.92 0.51,-2.88 -0.71,-2.04 -2.12,-2.02 -1.77,-2.57 -2.33,-3.46 -3.36,-1.76 0.81,-1.07 1.79,-0.77 -1.09,-2.59 -3.45,-0.03 -1.26,-2.72 -1.64,-2.37 1.51,-0.74 2.23,0.02 2.73,-0.35 2.39,-1.62 1.35,1.14 2.57,0.55 -0.45,1.74 1.34,1.22 z", - "VU": "m 946.12,510.15 -0.92,0.38 -0.94,-1.27 0.1,-0.78 1.76,1.67 z m -2.07,-4.44 0.46,2.33 -0.75,-0.36 -0.58,0.16 -0.4,-0.8 -0.06,-2.21 1.33,0.88 z", - "YE": "m 624.41,416.58 -2.03,0.79 -0.54,1.28 -0.07,0.99 -2.79,1.22 -4.48,1.35 -2.51,2.03 -1.23,0.15 -0.84,-0.17 -1.64,1.2 -1.79,0.55 -2.35,0.15 -0.71,0.16 -0.61,0.75 -0.74,0.21 -0.43,0.73 -1.39,-0.06 -0.9,0.38 -1.94,-0.14 -0.73,-1.67 0.08,-1.57 -0.45,-0.85 -0.55,-2.12 -0.81,-1.19 0.56,-0.14 -0.29,-1.32 0.34,-0.56 -0.12,-1.26 1.23,-0.93 -0.29,-1.23 0.75,-1.43 1.15,0.76 0.76,-0.27 3.23,-0.07 0.52,0.3 2.71,0.29 1.07,-0.15 0.7,0.97 1.31,-0.48 2.01,-3.07 2.62,-1.32 8.08,-1.13 2.2,4.84 z", - "ZA": "m 563.88,548.96 -0.55,0.46 -1.19,1.63 -0.78,1.66 -1.59,2.33 -3.17,3.38 -1.98,1.98 -2.12,1.51 -2.93,1.3 -1.43,0.17 -0.36,0.93 -1.7,-0.5 -1.39,0.64 -3.04,-0.65 -1.7,0.41 -1.16,-0.18 -2.89,1.33 -2.39,0.54 -1.73,1.28 -1.28,0.08 -1.19,-1.21 -0.95,-0.06 -1.21,-1.51 -0.13,0.47 -0.37,-0.91 0.02,-1.96 -0.91,-2.23 0.9,-0.6 -0.07,-2.53 -1.84,-3.05 -1.41,-2.74 0,-0.01 -2.01,-4.15 1.34,-1.57 1.11,0.87 0.47,1.36 1.26,0.23 1.76,0.6 1.51,-0.23 2.5,-1.63 0,-11.52 0.76,0.46 1.66,2.93 -0.26,1.89 0.63,1.1 2.01,-0.32 1.4,-1.39 1.33,-0.93 0.69,-1.48 1.37,-0.72 1.18,0.38 1.34,0.87 2.28,0.15 1.79,-0.72 0.28,-0.96 0.49,-1.47 1.53,-0.25 0.84,-1.15 0.93,-2.03 2.52,-2.26 3.97,-2.22 1.14,0.03 1.36,0.51 0.94,-0.36 1.49,0.3 1.34,4.26 0.73,2.17 -0.5,3.43 0.24,1.11 -1.42,-0.57 -0.81,0.22 -0.26,0.9 -0.77,1.17 0.03,1.08 1.67,1.7 1.64,-0.34 0.57,-1.39 2.13,0.03 -0.7,2.28 -0.33,2.62 -0.73,1.43 -1.9,1.62 z m -7.13,-0.96 -1.22,-0.98 -1.31,0.65 -1.52,1.25 -1.5,2.03 2.1,2.48 1,-0.32 0.52,-1.03 1.56,-0.5 0.48,-1.05 0.86,-1.56 -0.97,-0.97 z", - "ZM": "m 567.36,489.46 1.32,1.26 0.71,2.4 -0.48,0.77 -0.56,2.3 0.54,2.36 -0.88,0.99 -0.85,2.66 1.47,0.74 -8.51,2.38 0.27,2.05 -2.13,0.4 -1.59,1.15 -0.34,1.01 -1.01,0.22 -2.44,2.4 -1.55,1.89 -0.95,0.07 -0.91,-0.34 -3.13,-0.32 -0.5,-0.22 -0.03,-0.24 -1.1,-0.66 -1.82,-0.17 -2.3,0.67 -1.83,-1.82 -1.89,-2.38 0.13,-9.16 5.84,0.04 -0.24,-0.99 0.42,-1.07 -0.49,-1.33 0.32,-1.38 -0.3,-0.88 0.97,0.07 0.16,0.88 1.31,-0.07 1.78,0.26 0.94,1.29 2.24,0.4 1.72,-0.9 0.63,1.49 2.15,0.4 1.03,1.22 1.15,1.57 2.15,0.03 -0.24,-3.08 -0.77,0.51 -1.96,-1.1 -0.76,-0.51 0.35,-2.85 0.5,-3.35 -0.63,-1.25 0.8,-1.8 0.75,-0.33 3.77,-0.48 1.1,0.29 1.17,0.71 1.12,0.48 1.78,0.47 z", - "ZW": "m 562.96,527.25 -1.49,-0.3 -0.95,0.36 -1.35,-0.51 -1.14,-0.03 -1.79,-1.36 -2.17,-0.46 -0.82,-1.9 -0.01,-1.05 -1.2,-0.32 -3.17,-3.25 -0.89,-1.71 -0.56,-0.52 -1.08,-2.35 3.13,0.32 0.91,0.34 0.95,-0.07 1.55,-1.89 2.44,-2.4 1.01,-0.22 0.34,-1.01 1.59,-1.15 2.13,-0.4 0.18,1.08 2.34,-0.06 1.3,0.61 0.6,0.72 1.34,0.21 1.45,0.94 0.01,3.69 -0.55,2.04 -0.12,2.2 0.45,0.88 -0.31,1.74 -0.43,0.27 -0.74,2.15 z" - } - } - } - }); - - return Mapael; - -})); diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_mercator.min.js b/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_mercator.min.js deleted file mode 100644 index a0ed0502..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_mercator.min.js +++ /dev/null @@ -1,14 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires Mapael - * - * Map of World by country - * Mercator projection - * - * @source http://www.amcharts.com/svg-maps/?map=world - */ -!function(a){"object"==typeof exports?module.exports=a(require("jquery"),require("mapael")):"function"==typeof define&&define.amd?define(["jquery","mapael"],a):a(jQuery,jQuery.mapael)}(function(a,b){"use strict";return a.extend(!0,b,{maps:{world_countries_mercator:{width:1008.77,height:651.44,leftLongitude:-169.6,rightLongitude:190.25,topLatitude:83.68,bottomLatitude:-55.55,_projectLongitude:function(a){return a*Math.PI/180},_projectLatitude:function(a){var b=Math.sin(a*Math.PI/180);return.5*Math.log((1+b)/(1-b))},getCoords:function(a,b){var c=this;void 0===c._xLeftPrime&&(c._xLeftPrime=c._projectLongitude(c.leftLongitude)),void 0===c._xRightPrime&&(c._xRightPrime=c._projectLongitude(c.rightLongitude)),void 0===c._yTopPrime&&(c._yTopPrime=c._projectLatitude(c.topLatitude)),void 0===c._yBottomPrime&&(c._yBottomPrime=c._projectLatitude(c.bottomLatitude));var d=c._projectLongitude(b),e=c._projectLatitude(a),f=(d-c._xLeftPrime)*(c.width/(c._xRightPrime-c._xLeftPrime)),g=(c._yTopPrime-e)*(c.height/(c._yTopPrime-c._yBottomPrime));return{x:f,y:g}},elems:{AE:"m 620.12,393.97 0.5,-0.15 0.11,0.84 2.19,-0.48 2.32,0.08 1.69,0.09 1.92,-2.07 2.1,-1.98 1.77,-1.9 0.53,1.05 0.38,2.44 -1.43,0.01 -0.23,2 0.5,0.42 -1.27,0.6 -0.01,1.25 -0.82,1.26 -0.07,1.21 -0.57,0.64 -8.42,-1.52 -1.08,-3.08 z",AF:"m 647.13,357.15 2.86,1.3 2.11,-0.46 0.59,-1.55 2.21,-0.52 1.58,-1.05 0.56,-2.79 2.36,-0.68 0.44,-1.25 1.33,0.94 0.84,0.11 1.56,0.03 2.12,0.74 0.85,0.42 2.03,-1.12 0.95,0.67 0.9,-1.6 1.68,0.07 0.43,-0.52 0.3,-1.43 1.21,-1.23 1.51,0.8 -0.3,1.09 0.85,0.17 -0.27,2.95 1.11,1.15 0.98,-0.74 1.25,-0.34 1.74,-1.57 1.93,0.26 2.9,0 0.5,1.01 -1.64,0.39 -1.42,0.65 -3.22,0.4 -3.01,0.73 -1.64,1.51 0.66,1.46 0.33,1.7 -1.4,1.43 0.12,1.3 -0.77,1.22 -2.67,-0.11 1.1,2.22 -1.78,0.85 -1.19,2 0.15,1.98 -1.1,0.92 -1.03,-0.3 -2.15,0.43 -0.3,0.91 -2.09,0 -1.56,1.84 -0.1,2.75 -3.65,1.33 -1.95,-0.28 -0.57,0.7 -1.67,-0.4 -2.81,0.48 -4.69,-1.64 2.54,-2.93 -0.23,-2.1 -2.12,-0.55 -0.22,-2.09 -0.92,-2.64 1.2,-1.83 -1.22,-0.49 0.77,-2.45 z",AL:"m 533.23,334.91 -0.35,1.27 0.4,1.59 1.16,0.9 -0.06,0.97 -0.91,0.54 -0.17,1.19 -1.3,1.76 -0.48,-0.25 -0.05,-0.8 -1.56,-1.23 -0.24,-1.75 0.24,-2.53 0.38,-1.16 -0.47,-0.59 -0.19,-1.19 1.22,-1.87 0.17,0.72 0.76,-0.34 0.6,1.02 0.67,0.38 z",AM:"m 597.7,337.75 3.9,-0.58 0.58,0.98 1.07,0.64 -0.57,0.92 1.5,1.26 -0.79,1.16 1.19,0.99 1.26,0.59 0.06,2.5 -1.02,0.1 -1.14,-2.08 0.01,-0.55 -1.24,0.01 -0.83,-0.98 -0.58,0.1 -1.11,-1.06 -2.08,-0.91 0.27,-1.79 z",AO:"m 521.28,480.03 0.69,2.09 0.8,1.68 0.64,0.91 1.07,1.47 1.85,-0.23 0.93,-0.4 1.55,0.4 0.42,-0.7 0.7,-1.64 1.74,-0.11 0.15,-0.49 1.43,-0.01 -0.24,1.01 3.4,-0.02 0.05,1.77 0.57,1.09 -0.41,1.7 0.21,1.74 0.94,1.05 -0.15,3.37 0.69,-0.26 1.22,0.07 1.74,-0.42 1.28,0.17 0.3,0.88 -0.32,1.38 0.49,1.34 -0.42,1.07 0.24,0.99 -5.84,-0.04 -0.13,9.16 1.89,2.38 1.83,1.82 -5.15,1.19 -6.79,-0.41 -1.94,-1.4 -11.37,0.13 -0.42,0.21 -1.67,-1.32 -1.82,-0.09 -1.68,0.5 -1.35,0.56 -0.26,-1.83 0.39,-2.55 0.97,-2.65 0.15,-1.24 0.91,-2.59 0.67,-1.17 1.61,-1.87 0.9,-1.27 0.29,-2.11 -0.15,-1.61 -0.84,-1.01 -0.75,-1.72 -0.69,-1.69 0.15,-0.59 0.86,-1.12 -0.85,-2.72 -0.57,-1.88 -1.4,-1.77 0.27,-0.54 1.16,-0.38 0.81,0.05 0.98,-0.34 8.27,0.01 z m -10.91,-0.54 -0.71,0.3 -0.75,-2.1 1.13,-1.21 0.85,-0.47 1.05,0.96 -1.02,0.59 -0.46,0.72 -0.09,1.21 z",AR:"m 291.85,649.16 -2.66,0.25 -1.43,-1.73 -1.69,-0.13 -3,0 0,-10.57 1.08,2.15 1.4,3.53 3.65,2.87 3.93,1.21 -1.28,2.42 z m 1.5,-122.44 1.65,2.18 1.09,-2.43 3.2,0.12 0.45,0.64 5.15,4.94 2.29,0.46 3.43,2.26 2.89,1.2 0.4,1.36 -2.76,4.73 2.83,0.85 3.15,0.48 2.22,-0.5 2.54,-2.4 0.46,-2.74 1.39,-0.59 1.41,1.79 -0.06,2.49 -2.36,1.73 -1.88,1.28 -3.16,3.08 -3.74,4.37 -0.7,2.59 -0.75,3.37 0.03,3.3 -0.61,0.74 -0.22,2.17 -0.19,1.76 3.56,2.91 -0.38,2.37 1.75,1.51 -0.14,1.7 -2.69,4.52 -4.16,1.91 -5.62,0.75 -3.08,-0.36 0.59,2.15 -0.57,2.72 0.52,1.85 -1.68,1.3 -2.87,0.51 -2.7,-1.35 -1.08,0.97 0.39,3.71 1.89,1.14 1.54,-1.19 0.84,1.96 -2.58,1.18 -2.25,2.38 -0.41,3.91 -0.66,2.11 -2.65,0.01 -2.2,2.04 -0.8,3.01 2.76,2.98 2.68,0.83 -0.96,3.73 -3.31,2.38 -1.82,5.03 -2.56,1.72 -1.15,2.06 0.91,4.64 1.87,2.63 -1.18,-0.23 -2.6,-0.71 -6.78,-0.61 -1.16,-2.63 0.05,-3.33 -1.87,0.28 -0.99,-1.6 -0.25,-4.6 2.15,-1.88 0.89,-2.68 -0.33,-2.11 1.49,-3.52 1.02,-5.35 -0.3,-2.33 1.22,-0.75 -0.3,-1.48 -1.3,-0.78 0.92,-1.63 -1.27,-1.46 -0.65,-4.4 1.13,-0.77 -0.47,-4.54 0.66,-3.75 0.75,-3.22 1.68,-1.3 -0.85,-3.46 -0.01,-3.22 2.12,-2.26 -0.06,-2.87 1.6,-3.31 0.01,-3.09 -0.73,-0.61 -1.29,-5.69 1.73,-3.34 -0.27,-3.11 1,-2.9 1.84,-2.96 1.98,-1.95 -0.84,-1.23 0.59,-1 -0.09,-5.14 3.05,-1.51 0.96,-3.16 -0.34,-0.76 2.34,-2.72 3.62,0.72 z",AT:"m 523.11,310.1 -0.21,1.71 -1.58,0.01 0.54,0.89 -0.93,2.65 -0.53,0.69 -2.45,0.1 -1.42,0.92 -2.32,-0.31 -4.01,-1.05 -0.62,-1.43 -2.77,0.72 -0.33,0.77 -1.7,-0.58 -1.43,-0.11 -1.27,-0.74 0.43,-1.01 -0.11,-0.74 0.85,-0.22 1.42,1.14 0.4,-1.09 2.47,0.18 2.01,-0.74 1.34,0.12 0.87,0.85 0.27,-0.7 -0.4,-2.72 1.01,-0.54 0.98,-1.95 2.09,1.37 1.57,-1.74 0.99,-0.32 2.18,1.3 1.31,-0.22 1.3,0.8 -0.23,0.54 z",AU:"m 883.18,588.41 2.71,1.28 1.53,-0.51 2.19,-0.71 1.68,0.25 0.2,4.43 -0.96,1.3 -0.29,3.06 -0.98,-1.05 -1.95,2.67 -0.58,-0.21 -1.72,-0.12 -1.73,-3.28 -0.38,-2.5 -1.62,-3.25 0.07,-1.7 1.83,0.34 z m -5.15,-86.06 1.01,2.25 1.8,-1.08 0.93,1.22 1.35,1.13 -0.29,1.28 0.6,2.48 0.43,1.45 0.71,0.35 0.76,2.5 -0.27,1.52 0.91,1.99 3.04,1.54 1.98,1.41 1.88,1.29 -0.37,0.72 1.6,1.87 1.09,3.25 1.12,-0.66 1.14,1.31 0.69,-0.46 0.48,3.21 1.99,1.87 1.3,1.17 2.19,2.49 0.79,2.49 0.07,1.77 -0.19,1.94 1.34,2.68 -0.16,2.81 -0.49,1.48 -0.76,2.87 0.06,1.86 -0.55,2.34 -1.24,3 -2.08,1.63 -1.02,2.59 -0.94,1.67 -0.83,2.93 -1.08,1.71 -0.71,2.58 -0.36,2.4 0.14,1.11 -1.61,1.22 -3.14,0.13 -2.59,1.45 -1.29,1.38 -1.69,1.54 -2.32,-1.58 -1.72,-0.63 0.44,-1.85 -1.53,0.67 -2.46,2.58 -2.42,-0.97 -1.59,-0.56 -1.6,-0.25 -2.71,-1.03 -1.81,-2.18 -0.52,-2.66 -0.65,-1.75 -1.38,-1.4 -2.7,-0.41 0.92,-1.66 -0.68,-2.52 -1.37,2.35 -2.5,0.63 1.47,-1.88 0.42,-1.95 1.08,-1.65 -0.22,-2.47 -2.28,2.85 -1.75,1.15 -1.07,2.69 -2.19,-1.4 0.09,-1.79 -1.75,-2.43 -1.48,-1.25 0.53,-0.77 -3.6,-2 -1.97,-0.09 -2.7,-1.6 -5.02,0.31 -3.63,1.18 -3.19,1.1 -2.68,-0.22 -2.97,1.7 -2.43,0.77 -0.54,1.75 -1.04,1.36 -2.38,0.08 -1.76,0.3 -2.48,-0.61 -2.02,0.37 -1.92,0.15 -1.67,1.8 -0.82,-0.15 -1.41,0.96 -1.35,1.08 -2.05,-0.13 -1.88,0 -2.97,-2.17 -1.51,-0.64 0.06,-1.93 1.39,-0.46 0.48,-0.76 -0.1,-1.2 0.34,-2.3 -0.31,-1.95 -1.48,-3.29 -0.46,-1.85 0.12,-1.83 -1.12,-2.08 -0.07,-0.93 -1.24,-1.26 -0.35,-2.47 -1.6,-2.48 -0.39,-1.33 1.23,1.35 -0.95,-2.88 1.39,0.9 0.83,1.2 -0.05,-1.59 -1.39,-2.43 -0.27,-0.97 -0.65,-0.92 0.3,-1.77 0.57,-0.75 0.38,-1.52 -0.3,-1.77 1.16,-2.17 0.21,2.29 1.18,-2.07 2.28,-1 1.37,-1.28 2.14,-1.1 1.27,-0.23 0.77,0.37 2.21,-1.11 1.7,-0.33 0.42,-0.65 0.74,-0.27 1.55,0.07 2.95,-0.87 1.52,-1.31 0.72,-1.58 1.64,-1.49 0.13,-1.17 0.07,-1.59 1.96,-2.47 1.18,2.51 1.19,-0.58 -1,-1.38 0.88,-1.41 1.24,0.63 0.34,-2.21 1.53,-1.42 0.68,-1.14 1.41,-0.49 0.04,-0.8 1.23,0.34 0.05,-0.72 1.23,-0.41 1.36,-0.39 2.07,1.32 1.56,1.71 1.75,0.02 1.78,0.27 -0.59,-1.58 1.34,-2.3 1.26,-0.75 -0.44,-0.71 1.22,-1.63 1.7,-1.01 1.43,0.34 2.36,-0.54 -0.05,-1.45 -2.05,-0.94 1.49,-0.41 1.86,0.7 1.49,1.17 2.36,0.73 0.8,-0.29 1.74,0.88 1.64,-0.82 1.05,0.25 0.66,-0.55 1.29,1.41 -0.75,1.53 -1.06,1.16 -0.96,0.1 0.33,1.15 -0.82,1.43 -1,1.41 0.2,0.81 2.23,1.6 2.16,0.93 1.44,1 2.03,1.72 0.79,0 1.47,0.75 0.43,0.9 2.68,0.99 1.85,-1 0.55,-1.57 0.57,-1.29 0.35,-1.59 0.85,-2.3 -0.39,-1.39 0.2,-0.84 -0.32,-1.64 0.37,-2.16 0.54,-0.58 -0.44,-0.95 0.68,-1.51 0.53,-1.56 0.07,-0.81 1.04,-1.06 0.79,1.39 0.19,1.78 0.7,0.34 0.12,1.2 1.02,1.45 0.21,1.62 -0.08,1.01 z",AZ:"m 601.68,342.71 0.83,0.97 1.24,-0.01 -0.01,0.56 1.14,2.08 -1.92,-0.48 -1.42,-1.66 -0.44,-1.37 0.58,-0.09 z m 6.65,-5.43 1.24,0.25 0.48,-0.95 1.67,-1.51 1.47,1.97 1.43,2.62 1.31,0.17 0.86,0.99 -2.31,0.29 -0.49,2.82 -0.48,1.26 -1.03,0.84 0.08,1.77 -0.7,0.18 -1.75,-1.87 0.97,-1.78 -0.83,-1.06 -1.05,0.27 -3.31,2.66 -0.06,-2.5 -1.26,-0.59 -1.19,-0.99 0.79,-1.16 -1.49,-1.26 0.56,-0.92 -1.07,-0.64 -0.58,-0.97 0.69,-0.61 2.09,1.07 1.51,0.22 0.38,-0.43 -1.38,-2.02 0.73,-0.52 0.79,0.13 1.93,2.27 z",BA:"m 528.79,323.36 1.02,-0.01 -0.7,1.72 1.35,1.5 -0.41,1.82 -0.66,0.17 -0.53,0.36 -0.91,0.89 -0.41,2.1 -2.48,-1.44 -1.06,-1.61 -1.07,-0.85 -1.29,-1.45 -0.6,-1.21 -1.38,-1.83 0.59,-1.64 1.01,0.91 0.6,-0.82 1.31,-0.09 2.41,0.66 1.94,-0.06 z",BD:"m 735.34,400.66 -0.05,2.15 -0.98,-0.46 0.18,2.41 -0.8,-1.56 -0.16,-1.52 -0.54,-1.45 -1.17,-1.76 -2.58,-0.12 0.26,1.25 -0.88,1.67 -1.2,-0.61 -0.41,0.55 -0.79,-0.33 -1.08,-0.27 -0.44,-2.48 -0.97,-2.28 0.47,-1.84 -1.72,-0.82 0.62,-1.12 1.75,-1.15 -2.02,-1.63 0.99,-2.11 2.22,1.34 1.34,0.16 0.25,2.15 2.66,0.42 2.61,-0.05 1.61,0.53 -1.29,2.59 -1.26,0.18 -0.86,1.73 1.53,1.58 0.46,-1.94 0.78,-0.01 z",BE:"m 484.8,296.16 2.05,0.35 2.6,-0.93 1.77,1.95 1.55,1.04 -0.32,2.97 -0.73,0.16 -0.31,2.43 -2.45,-1.97 -1.44,0.34 -1.96,-2.06 -1.3,-1.77 -1.3,-0.07 -0.41,-1.56 z",BF:"m 467.58,436.65 -1.92,-0.73 -1.32,0.11 -0.98,0.71 -1.26,-0.6 -0.49,-0.93 -1.26,-0.62 -0.19,-1.64 0.77,-1.21 -0.07,-0.96 2.23,-2.36 0.41,-1.96 0.77,-0.7 1.36,0.38 1.17,-0.58 0.38,-0.74 2.18,-1.28 0.53,-0.9 2.62,-1.2 1.55,-0.41 0.7,0.55 1.79,-0.01 -0.22,1.4 0.38,1.31 1.58,1.87 0.08,1.38 3.24,0.65 -0.07,1.95 -0.61,0.86 -1.37,0.26 -0.57,1.24 -0.96,0.32 -2.46,-0.06 -1.3,-0.22 -0.9,0.46 -1.24,-0.21 -4.87,0.13 -0.07,1.61 z",BG:"m 539.03,325.81 0.81,1.6 1.08,-0.29 2.16,0.61 4.12,0.2 1.39,-0.99 3.3,-0.9 2.04,1.41 1.65,0.41 -1.46,1.59 -1.02,2.73 0.9,2.16 -2.41,-0.51 -2.86,1.18 -0.03,1.86 -2.55,0.35 -1.97,-1.3 -2.25,1.03 -2.07,-0.11 -0.2,-2.47 -1.41,-1.21 0.47,-0.54 -0.31,-0.45 0.47,-1.21 1.07,-1.19 -1.36,-1.66 -0.25,-1.42 z",BI:"m 557.77,476.18 -0.18,-3.37 -0.71,-1.26 1.71,0.22 0.86,-1.59 1.49,0.18 0.16,1.1 0.6,0.63 0.03,0.91 -0.69,0.58 -1.1,1.46 -1.01,1.01 z",BJ:"m 483.05,446.17 -2.32,0.33 -0.69,-1.94 0.13,-6.46 -0.57,-0.58 -0.1,-1.39 -0.98,-0.99 -0.85,-0.83 0.36,-1.5 0.96,-0.32 0.57,-1.24 1.37,-0.26 0.61,-0.86 0.94,-0.83 1.01,-0.01 2.14,1.64 -0.11,0.95 0.63,1.68 -0.55,1.14 0.29,0.76 -1.36,1.75 -0.86,0.87 -0.53,1.77 0.07,1.79 z",BN:"m 795.71,451.02 1.11,-1.05 2.39,-1.53 -0.13,1.38 -0.16,1.78 -1.34,-0.09 -0.59,0.95 z",BO:"m 299.29,526.6 -3.2,-0.13 -1.09,2.43 -1.65,-2.18 -3.67,-0.73 -2.33,2.72 -2.03,0.41 -1.1,-4.15 -1.5,-3.34 0.88,-2.87 -1.47,-1.25 -0.37,-2.12 -1.38,-2 1.77,-3.14 -1.21,-2.44 0.65,-0.97 -0.51,-1.07 1.1,-1.44 0.06,-2.44 0.13,-2.02 0.61,-0.96 -2.43,-4.58 2.09,0.24 1.44,-0.07 0.63,-0.85 2.45,-1.15 1.47,-1.06 3.67,-0.48 -0.29,2.12 0.34,1.09 -0.23,1.9 3.05,2.55 3.14,0.47 1.1,1.07 1.9,0.57 1.16,0.83 1.76,-0.03 1.63,0.85 0.12,1.66 0.55,0.84 0.04,1.25 -0.82,0.04 1.08,3.37 5.37,0.12 -0.41,1.68 0.3,1.15 1.53,0.82 0.67,1.82 -0.5,2.32 -0.77,1.29 0.27,1.69 -0.88,0.61 -0.04,-0.91 -2.62,-1.51 -2.6,-0.05 -4.89,0.86 -1.34,2.62 -0.07,1.6 -1.11,3.59 z",BR:"m 313.93,552.04 3.74,-4.37 3.17,-3.08 1.88,-1.28 2.36,-1.73 0.06,-2.49 -1.41,-1.79 -1.39,0.59 0.55,-1.78 0.38,-1.82 0,-1.68 -1.01,-0.55 -1.05,0.49 -1.04,-0.13 -0.33,-1.18 -0.26,-2.77 -0.53,-0.9 -1.89,-0.82 -1.14,0.59 -2.96,-0.58 0.18,-4.06 -0.83,-1.66 0.88,-0.61 -0.27,-1.69 0.77,-1.29 0.5,-2.32 -0.67,-1.82 -1.53,-0.82 -0.3,-1.15 0.41,-1.68 -5.37,-0.12 -1.08,-3.37 0.82,-0.04 -0.04,-1.25 -0.55,-0.84 -0.12,-1.66 -1.63,-0.85 -1.76,0.03 -1.16,-0.83 -1.9,-0.57 -1.1,-1.07 -3.14,-0.47 -3.05,-2.55 0.23,-1.9 -0.34,-1.09 0.29,-2.12 -3.67,0.48 -1.47,1.06 -2.45,1.15 -0.63,0.85 -1.44,0.07 -2.09,-0.24 -1.58,0.49 -1.28,-0.33 0.19,-4.3 -2.3,1.66 -2.47,-0.07 -1.06,-1.51 -1.86,-0.16 0.59,-1.21 -1.56,-1.72 -1.17,-2.53 0.74,-0.51 0,-1.19 1.7,-0.81 -0.28,-1.51 0.71,-0.98 0.21,-1.3 3.2,-1.91 2.3,-0.53 0.37,-0.42 2.53,0.13 1.26,-7.65 0.07,-1.21 -0.44,-1.59 -1.24,-1.02 0.01,-2.02 1.58,-0.46 0.56,0.29 0.09,-1.07 -1.64,-0.29 -0.03,-1.74 5.46,0.06 0.93,-0.96 0.78,0.88 0.54,1.65 0.53,-0.35 1.55,1.48 2.18,-0.18 0.54,-0.86 2.08,-0.65 1.16,-0.45 0.32,-1.18 2.01,-0.8 -0.16,-0.58 -2.37,-0.24 -0.39,-1.76 0.11,-1.87 -1.25,-0.72 0.52,-0.26 2.08,0.36 2.23,0.7 0.81,-0.66 2.01,-0.44 3.14,-1.04 1.03,-1.07 -0.38,-0.79 1.46,-0.12 0.66,0.64 -0.37,1.23 0.96,0.42 0.65,1.3 -0.78,0.98 -0.45,2.38 0.72,1.41 0.2,1.29 1.73,1.3 1.38,0.14 0.31,-0.54 0.88,-0.12 1.27,-0.49 0.91,-0.74 1.55,0.23 0.68,-0.1 1.53,0.23 0.25,-0.57 -0.47,-0.55 0.28,-0.81 1.13,0.25 1.33,-0.29 1.6,0.59 1.23,0.58 0.87,-0.76 0.62,0.12 0.39,0.79 1.34,-0.2 1.07,-1.06 0.86,-2.06 1.66,-2.55 0.96,-0.13 0.69,1.54 1.57,4.88 1.5,0.46 0.08,1.92 -2.11,2.29 0.87,0.84 4.96,0.44 0.1,2.79 2.13,-1.83 3.53,1.01 4.65,1.7 1.37,1.63 -0.46,1.54 3.26,-0.86 5.46,1.48 4.19,-0.11 4.14,2.31 3.58,3.13 2.16,0.8 2.4,0.12 1.02,0.88 0.95,3.57 0.47,1.69 -1.12,4.66 -1.43,1.84 -3.95,3.94 -1.79,3.21 -2.07,2.48 -0.7,0.06 -0.79,2.1 0.2,5.4 -0.78,4.48 -0.3,1.93 -0.88,1.15 -0.5,3.94 -2.84,3.88 -0.48,3.09 -2.27,1.31 -0.66,1.81 -3.04,-0.01 -4.41,1.17 -1.98,1.35 -3.14,0.89 -3.3,2.44 -2.37,3.06 -0.41,2.32 0.47,1.73 -0.53,3.18 -0.63,1.55 -1.96,1.75 -3.11,5.68 -2.47,2.59 -1.91,1.54 -1.27,3.16 -1.86,1.91 -0.78,-1.9 1.24,-1.57 -1.62,-2.25 -2.2,-1.82 -2.89,-2.08 -1.04,0.09 -2.81,-2.5 z",BS:"m 258.11,395.45 -0.69,0.15 -0.71,-1.76 -1.05,-0.89 0.61,-1.95 0.84,0.12 0.98,2.55 0.02,1.78 z m -0.8,-8.69 -3.06,0.5 -0.2,-1.15 1.32,-0.25 1.85,0.09 0.09,0.81 z m 2.3,-0.03 -0.48,2.21 -0.52,-0.4 0.05,-1.63 -1.26,-1.23 -0.01,-0.36 2.22,1.41 z",BT:"m 732.61,383.03 1.14,1 -0.2,1.93 -2.29,0.09 -2.36,-0.21 -1.77,0.49 -2.55,-1.19 -0.05,-0.63 1.85,-2.34 1.51,-0.8 2.01,0.73 1.48,0.08 z",BW:"m 547.42,516.2 0.56,0.52 0.89,1.71 3.17,3.25 1.2,0.32 0.01,1.05 0.82,1.9 2.17,0.46 1.79,1.36 -3.97,2.22 -2.52,2.26 -0.93,2.03 -0.84,1.15 -1.53,0.25 -0.49,1.47 -0.29,0.96 -1.79,0.72 -2.28,-0.15 -1.34,-0.86 -1.18,-0.38 -1.37,0.72 -0.69,1.48 -1.33,0.93 -1.4,1.39 -2.01,0.32 -0.62,-1.09 0.26,-1.9 -1.67,-2.93 -0.75,-0.46 0,-8.86 2.76,-0.11 0.08,-10.57 2.09,-0.09 4.32,-1.03 1.08,1.21 1.78,-1.15 0.86,-0.01 1.58,-0.66 0.5,0.22 z",BY:"m 541.35,284.32 2.71,0.04 3.04,-1.8 0.65,-2.72 2.3,-1.57 -0.26,-2.2 1.7,-0.84 3.02,-1.93 2.95,1.26 0.4,1.23 1.47,-0.59 2.74,1.18 0.27,2.31 -0.6,1.32 1.76,3.15 1.14,0.87 -0.17,0.86 1.89,0.83 0.81,1.25 -1.09,1.02 -2.26,-0.16 -0.54,0.44 0.66,1.54 0.69,2.93 -2.41,0.27 -0.86,1 -0.19,2.26 -1.11,-0.43 -2.53,0.22 -0.74,-1.05 -1.05,0.78 -1.05,-0.65 -2.21,-0.09 -3.13,-1.08 -2.83,-0.36 -2.17,0.1 -1.54,1.23 -1.34,0.17 -0.05,-2.01 -0.87,-2.12 1.68,-0.94 0.02,-1.85 -0.78,-1.78 z",BZ:"m 225.56,413.21 -0.02,-0.43 0.34,-0.14 0.51,0.35 1,-1.77 0.53,-0.04 0.01,0.43 0.53,0.01 -0.04,0.8 -0.46,1.27 0.25,0.45 -0.29,1.05 0.17,0.27 -0.32,1.47 -0.55,0.78 -0.51,0.09 -0.56,1 -0.83,0 0.22,-3.28 z",CA:"m 199.18,96.48 -0.22,-5.9 3.63,0.58 1.63,0.96 3.35,4.92 -0.76,4.97 -4.15,2.77 -2.28,-3.12 -1.2,-5.18 z m 13.21,12.65 0.33,-1.49 -1.97,-2.45 -5.65,-0.19 0.75,3.68 5.25,0.83 1.29,-0.38 z m 36.35,46.95 3.08,5.1 0.81,0.57 3.07,-1.27 3.02,0.2 2.98,0.28 -0.25,-2.64 -4.84,-5.38 -6.42,-1.08 -1.35,0.67 -0.1,3.55 z m -65.43,-62.7 -2.71,4.19 6.24,0.52 4.61,4.44 4.58,1.5 -1.09,-5.68 -2.14,-6.73 -7.58,-5.35 -5.5,-2.04 0.2,5.69 3.39,3.46 z m 25.9,-10.24 5.13,-0.12 -2.22,4 -0.04,5.3 3.01,5.76 5.81,1.77 4.96,-0.99 5.18,-10.73 3.85,-4.45 -3.38,-4.97 -2.21,-10.65 -4.6,-3.19 -4.72,-3.68 -3.58,-9.56 -6.52,0.94 1.23,4.15 -2.87,1.25 -1.94,5.32 -1.94,7.46 1.78,7.26 3.07,5.13 z m -63.75,53.38 3.92,1.95 12.67,-1.3 -5.82,4.77 0.36,3.43 4.26,-0.24 7.07,-4.58 9.5,-1.67 1.71,-5.22 -0.49,-5.57 -2.94,-0.5 -2.5,1.93 -1.1,-4.13 -0.95,-5.7 -2.9,-1.42 -2.57,4.41 4.01,11.05 -4.9,-0.85 -4.98,-6.79 -7.89,-4 -2.64,3.32 -3.82,11.11 z m 22.56,-42.06 -3.65,-2.9 -1.5,-0.66 -2.88,4.28 -0.05,2 4.66,0.01 3.42,-2.73 z m -1.46,12.35 0.93,-3.99 -3.95,-2.12 -4.09,1.39 -2.27,4.26 4.16,4.21 5.22,-3.75 z m 29.09,33.24 4.62,-1.11 1.28,-8.25 -0.09,-5.95 -2.14,-5.56 -0.22,1.6 -3.94,-0.7 -4.22,4.09 -3.02,-0.37 0.18,8.92 4.6,-0.87 -0.06,6.47 3.01,1.73 z m -3.28,45.61 -5.06,-3.93 -4.71,-4.21 -0.87,-6.18 -1.76,-8.92 -3.14,-3.84 -2.79,-1.55 -2.47,1.42 1.99,9.59 -1.41,3.73 -2.29,-8.98 -2.56,-3.11 -3.17,4.81 -3.9,-4.76 -6.24,2.87 1.4,-4.46 -2.87,-1.87 -7.51,5.84 -1.95,3.71 -2.35,6.77 4.9,2.32 4.33,-0.12 -6.5,3.46 1.48,3.13 3.98,0.17 5.99,-0.67 5.42,1.96 -3.66,1.44 -3.95,-0.37 -4.33,1.41 -1.87,0.87 3.45,6.35 2.49,-0.88 3.83,2.15 1.52,3.65 4.99,-0.73 7.1,-1.16 5.26,-2.65 3.26,-0.48 4.82,2.12 5.07,1.22 0.94,-2.86 -1.79,-3.05 4.6,-0.64 0.33,-3.57 z m 7.74,-0.98 -1.96,3.54 -2.47,2.49 3.83,3.54 2.28,-0.85 3.78,2.36 1.74,-2.73 -1.71,-3.03 -0.84,-1.53 -1.68,-1.46 -2.97,-2.33 z m -17.61,-29.45 -2.13,-2.17 -3.76,0.4 -0.95,1.38 4.37,6.75 2.47,-6.36 z m 28.69,13.17 3.01,-6.93 3.34,-1.85 4.19,-8.74 -5.36,-2.47 -5.84,-0.36 -2.78,2.77 -1.47,4.23 -0.04,4.82 1.75,8.19 3.2,0.34 z m 17.15,-23 5.76,-0.18 8.04,-1.61 3.59,1.28 4.18,-2.26 1.75,-2.84 -0.63,-4.52 -3,-4.23 -4.56,-0.8 -5.71,0.97 -4.46,2.44 -4.09,-0.94 -3.78,-0.5 -1.78,-2.7 -3.22,-2.61 0.64,-4.43 -2.42,-3.98 -5.52,0.03 -3.11,-3.99 -5.78,-0.8 -1.06,5.1 3.25,3.74 5.8,1.45 2.81,5.09 0.34,5.6 0.97,5.99 7.45,3.42 4.54,1.28 z m -89.02,-18.27 5.21,-5.05 2.62,-0.59 2.16,-4.23 0.38,-9.77 -3.85,1.91 -4.3,-0.18 -5.76,8.19 -4.76,8.98 3.8,2.51 4.5,-1.77 z m 72.18,16.17 1.53,-4.14 -1.02,-3.46 -2.45,-3.92 -4.03,3.02 -1.49,4.92 3.4,2.79 4.06,0.79 z m -8.31,11.44 -0.73,-2.88 -5,1.26 -3.34,-2.11 -3.32,4.8 3.09,6.28 -5.72,-1.17 -0.06,3.01 6.97,7.05 1.94,3.38 2.7,0.73 4.6,-3.41 0.5,-8.21 -4.24,-4.07 2.61,-4.66 z m -73.99,153.74 -1.16,-2.34 -2.8,-1.77 -1.39,-2.05 -0.95,-1.5 -2.64,-0.46 -1.72,-0.67 -2.94,-0.96 -0.24,1.02 1.08,2.38 2.89,0.78 0.5,1.23 2.51,1.5 0.84,1.51 4.6,1.92 1.42,-0.59 z m 121.7,-77.63 -2,-2.11 -2.06,0.5 -0.25,-3.06 -3.21,-2.04 -3.07,-2.27 -1.63,-1.75 -1.43,1.03 -0.52,-2.96 -2.03,-0.55 -0.96,6.13 -0.36,5.11 -2.44,3.14 3.8,-0.6 0.96,3.65 3.99,-3.23 2.78,-3.38 1.57,2.86 4.36,1.51 2.5,-1.98 z m -120.53,-52.55 7.38,-4.18 v -3.87 l 3.48,-6.41 6.88,-6.69 3.52,-2.47 -3.01,-4.2 -2.72,-2.95 -7.16,-0.57 -4,-2.16 -9.48,1.63 2.74,6.23 -2.43,6.43 -1.94,6.87 -1.2,3.86 6.47,4.69 1.47,3.79 z m 134.24,27.31 0.32,-1.01 -0.03,-3.17 -2.19,-2.08 -2.57,1.05 -1.19,4.17 0.7,3.56 3.14,-0.36 1.82,-2.16 z m 23.82,7.54 4.41,6.6 3.45,2.85 4.92,-7.87 0.87,-4.93 -4.41,-0.47 -4.03,-6.7 -4.45,-1.64 -6.6,-4.97 5.15,-3.63 -2.65,-7.54 -2.44,-3.35 -6.77,-3.35 -2.92,-5.55 -5.21,1.99 -0.36,-3.86 -3.86,-4.32 -6.22,-4.71 -2.65,3.71 -5.55,2.66 0.42,-6.06 -4.81,-10.05 -7.11,4.06 -2.59,7.7 -2.21,-5.92 2.06,-6.37 -7.24,2.65 -2.88,3.99 -2.15,8.42 0.89,9.05 3.98,0.04 -2.93,3.92 2.33,2.96 4.55,1.25 5.93,2.42 10.2,1.82 5.08,-1.04 1.5,-2.42 2.21,2.79 2.47,0.46 2.97,4.96 -1.8,1.98 5.68,2.63 4.29,3.68 1.08,2.55 0.77,3.24 -3.63,6.93 -0.98,3.44 0.94,2.42 -5.77,0.86 -5.27,0.12 -1.85,4.87 2.37,2.23 8.11,-1.03 -0.04,-1.89 4.08,3.15 4.18,3.28 -0.98,1.77 3.4,3.02 6.02,3.53 7.6,2.39 -0.46,-2.09 -2.92,-3.67 -3.96,-5.37 7.03,5 3.54,1.66 0.97,-4.44 -1.82,-6.3 -1.16,-1.73 -3.81,-3.03 -2.95,-3.91 0.35,-3.94 3.64,-0.9 z M 222.6,51.59 l 2.34,7.29 4.96,5.88 9.81,-1.09 6.31,1.97 -4.38,6.05 -2.21,-1.78 -7.66,-0.71 1.19,8.31 3.96,6.04 -0.8,5.2 -4.97,3.46 -2.27,5.47 4.55,2.65 3.82,8.55 -7.5,-5.7 -1.71,0.94 1.38,9.38 -5.18,2.83 0.35,5.85 5.3,0.63 4.17,1.44 8.24,-1.84 7.33,3.27 7.49,-7.19 -0.06,-3.02 -4.79,0.48 -0.39,-2.84 3.92,-3.83 1.33,-5.15 4.33,-3.83 2.66,-4.76 -2.32,-7.1 1.94,-2.65 -3.86,-1.89 8.49,-1.63 1.79,-3.15 5.78,-2.6 4.8,-13.47 4.57,-4.94 6.62,-11.12 -6.1,0.1 2.54,-4.3 6.78,-3.99 6.84,-8.9 0.12,-5.73 -5.13,-6.04 -6.02,-2.93 -7.49,-1.82 -6.07,-1.49 -6.07,-1.5 -8.1,3.98 -1.49,-2.53 -8.57,0.98 -5.03,2.57 -3.7,3.65 -2.13,11.74 -3.06,-6.01 -3.48,-1.14 -4.12,7.97 -5.5,3.35 -3.27,0.66 -4.17,3.84 0.61,6.65 3.28,5.49 z m 74.4,265 -0.98,-1.98 -1.06,1.26 0.7,1.36 3.56,1.71 1.04,-0.26 1.38,-1.66 -2.6,0.11 -2.04,-0.54 z m -57,-77.86 0.61,1.63 1.98,0.14 3.28,-3.34 0.06,-1.19 -3.85,-0.06 -2.08,2.82 z m 62.13,66.44 -2.87,-1.8 -3.69,-1.09 -0.97,0.37 2.61,2.04 3.63,1.34 1.36,-0.08 -0.07,-0.78 z m 24.88,4.79 -0.36,-2.24 -1.96,0.72 0.87,-3.11 -2.8,-1.32 -1.29,1.05 -2.49,-1.18 0.98,-1.51 -1.88,-0.93 -1.83,1.47 1.86,-3.82 1.5,-2.8 0.54,-1.22 -1.3,-0.2 -2.43,1.55 -1.74,2.53 -2.9,6.92 -2.35,2.56 1.22,1.14 -1.75,1.47 0.43,1.23 5.44,0.13 3.01,-0.25 2.69,1.01 -1.98,1.93 1.67,0.14 3.25,-3.58 0.78,0.53 -0.61,3.37 1.84,0.77 1.27,-0.15 1.18,-3.61 -0.86,-2.6 z m -21.19,4.76 -2.81,4.56 -4.63,0.58 -3.64,-2.01 -0.92,-3.07 -0.89,-4.46 2.65,-2.83 -2.48,-2.09 -4.19,0.43 -5.88,3.53 -4.5,5.45 -2.38,0.67 3.23,-3.8 4.04,-5.57 3.57,-1.9 2.35,-3.11 2.9,-0.3 4.21,0.03 6,0.92 4.74,-0.71 3.53,-3.62 4.62,-1.59 2.01,-1.58 2.04,-1.71 -0.2,-5.19 -1.13,-1.77 -2.18,-0.63 -1.11,-4.05 -1.8,-1.55 -4.47,-1.26 -2.52,-2.82 -3.73,-2.83 1.13,-3.2 -3.1,-6.26 -3.65,-6.89 -2.18,-4.98 -1.86,2.61 -2.68,6.05 -4.06,2.97 -2.03,-3.16 -2.56,-0.85 -0.93,-6.99 0.08,-4.8 -5,-0.44 -0.85,-2.27 -3.45,-3.44 -2.61,-2.04 -2.32,1.58 -2.88,-0.58 -4.81,-1.65 -1.95,1.4 0.94,9.18 1.22,5.12 -3.31,5.75 3.41,4.02 1.9,4.44 0.23,3.42 -1.55,3.5 -3.18,3.46 -4.49,2.28 1.98,2.53 1.46,7.4 -1.52,4.68 -2.16,1.46 -4.17,-4.28 -2.03,-5.17 -0.87,-4.76 0.46,-4.19 -3.05,-0.47 -4.63,-0.28 -2.97,-2.08 -3.51,-1.37 -2.01,-2.38 -2.8,-1.94 -5.21,-2.23 -3.92,1.02 -1.31,-3.95 -1.26,-4.99 -4.12,-0.9 0.15,-6.41 1.09,-4.48 3.04,-6.6 3.43,-4.9 3.26,-0.77 0.19,-4.05 2.21,-2.68 4.01,-0.42 3.25,-4.39 0.82,-2.9 2.7,-5.73 0.84,-3.5 2.9,2.11 3.9,-1.08 5.49,-4.96 0.36,-3.54 -1.98,-3.98 2.09,-4.06 -0.17,-3.87 -3.76,-3.95 -4.14,-1.19 -3.98,-0.62 -0.15,8.71 -2.04,6.56 -2.93,5.3 -2.71,-4.95 0.84,-5.61 -3.35,-5.02 -3.75,6.09 0.01,-7.99 -5.21,-1.63 2.49,-4.01 -3.81,-9.59 -2.84,-3.91 -3.7,-1.44 -3.32,6.43 -0.22,9.34 3.27,3.29 3,4.91 -1.27,7.71 -2.26,-0.2 -1.78,5.88 0.02,-7 -4.34,-2.58 -2.49,1.33 0.32,4.67 -4.09,-0.18 -4.35,1.17 -4.95,-3.35 -3.13,0.6 -2.82,-4.11 -2.26,-1.84 -2.24,0.77 -3.41,0.35 -1.81,2.61 2.86,3.19 -3.05,3.72 -2.99,-4.42 -2.39,1.3 -7.57,0.87 -5.07,-1.59 3.94,-3.74 -3.78,-3.9 -2.75,0.5 -3.86,-1.32 -6.56,-2.89 -4.29,-3.37 -3.4,-0.47 -1.06,2.36 -3.44,1.31 -0.38,-6.15 -3.73,5.5 -4.74,-7.32 -1.94,-0.89 -0.63,3.91 -2.09,1.9 -1.93,-3.39 -4.59,2.05 -4.2,3.55 -4.17,-0.98 -3.4,2.5 -2.46,3.28 -2.92,-0.72 -4.41,-3.8 -5.23,-1.94 -0.02,27.65 -0.01,35.43 2.76,0.17 2.73,1.56 1.96,2.44 2.49,3.6 2.73,-3.05 2.81,-1.79 1.49,2.85 1.89,2.23 2.57,2.42 1.75,3.79 2.87,5.88 4.77,3.2 0.08,3.12 -1.56,2.35 0.06,2.48 3.39,3.45 0.49,3.76 3.59,1.96 -0.4,2.79 1.56,3.96 5.08,1.82 2,1.89 5.43,4.23 0.38,0.01 h 7.96 8.32 2.76 8.55 8.27 8.41 l 8.42,0 9.53,0 9.59,0 5.8,0 0.01,-1.64 0.95,-0.02 0.5,2.35 0.87,0.72 1.96,0.26 2.86,0.67 2.72,1.3 2.27,-0.55 3.45,1.09 1.14,-1.66 1.59,-0.66 0.62,-1.03 0.63,-0.55 2.61,0.86 1.93,0.1 0.67,0.57 0.94,2.38 3.15,0.63 -0.49,1.18 1.11,1.21 -0.48,1.56 1.18,0.51 -0.59,1.37 0.75,0.13 0.53,-0.6 0.55,0.9 2.1,0.5 2.13,0.04 2.27,0.41 2.51,0.78 0.91,1.26 1.82,3.04 -0.9,1.3 -2.28,-0.54 -1.42,-2.44 0.36,2.49 -1.34,2.17 0.15,1.84 -0.23,1.07 -1.81,1.27 -1.32,2.09 -0.62,1.32 1.54,0.24 2.08,-1.2 1.23,-1.06 0.83,-0.17 1.54,0.38 0.75,-0.59 1.37,-0.48 2.44,-0.47 v 0 l 0,0 -0.25,-1.15 -0.13,0.04 -0.86,0.2 -1.12,-0.36 0.84,-1.32 0.85,-0.46 1.98,-0.56 2.37,-0.53 1.24,0.73 0.78,-0.85 0.89,-0.54 0.6,0.29 0.03,0.06 2.87,-2.73 1.27,-0.73 4.26,-0.03 5.17,0 0.28,-0.98 0.9,-0.2 1.19,-0.62 1,-1.82 0.86,-3.15 2.14,-3.1 0.93,1.08 1.88,-0.7 1.25,1.19 0,5.52 1.83,2.25 3.12,-0.48 4.49,-0.13 -4.87,3.26 0.11,3.29 2.13,0.28 3.13,-2.79 2.78,-1.58 6.21,-2.35 3.47,-2.62 -1.81,-1.46 -0.29,-2.92 z m -53.66,-71.1 1.1,-3.12 -0.71,-1.23 -1.15,-0.13 -1.08,1.8 -0.13,0.41 0.74,1.77 1.23,0.5 z m -142.66,36.43 0,0 1.56,-2.35 -1.56,2.35 z m -3.4,3.29 -2.69,0.38 -1.32,-0.62 -0.17,1.52 0.52,2.07 1.42,1.46 1.04,2.13 1.69,2.1 1.12,0.01 -2.44,-3.7 0.83,-5.35 z",CD:"m 561.96,453.86 -0.17,3.26 1.12,0.37 -0.9,0.99 -1.08,0.74 -1.07,1.46 -0.59,1.29 -0.16,2.24 -0.65,1.06 -0.02,2.1 -0.81,0.78 -0.1,1.66 -0.39,0.21 -0.26,1.53 0.71,1.26 0.18,3.37 0.5,2.57 -0.28,1.46 0.56,1.62 1.63,1.57 1.51,3.55 -1.1,-0.29 -3.77,0.48 -0.75,0.33 -0.8,1.8 0.63,1.25 -0.5,3.35 -0.35,2.85 0.76,0.51 1.96,1.1 0.77,-0.51 0.24,3.08 -2.15,-0.03 -1.15,-1.57 -1.03,-1.22 -2.15,-0.4 -0.63,-1.49 -1.72,0.9 -2.24,-0.4 -0.94,-1.29 -1.78,-0.26 -1.31,0.07 -0.16,-0.88 -0.97,-0.07 -1.28,-0.17 -1.73,0.42 -1.22,-0.07 -0.7,0.26 0.15,-3.37 -0.93,-1.05 -0.21,-1.73 0.41,-1.7 -0.56,-1.09 -0.05,-1.76 -3.41,0.02 0.25,-1.01 -1.43,0.01 -0.15,0.49 -1.74,0.11 -0.71,1.63 -0.42,0.71 -1.55,-0.4 -0.92,0.4 -1.86,0.22 -1.07,-1.47 -0.64,-0.91 -0.81,-1.68 -0.69,-2.09 -8.27,-0.03 -0.99,0.33 -0.81,-0.05 -1.16,0.38 -0.39,-0.87 0.71,-0.3 0.09,-1.22 0.46,-0.72 1.02,-0.58 0.74,0.28 0.96,-1.07 1.52,0.03 0.18,0.79 1.05,0.5 1.65,-1.76 1.63,-1.36 0.71,-0.89 -0.09,-2.3 1.22,-2.71 1.28,-1.43 1.85,-1.34 0.32,-0.89 0.07,-1.02 0.46,-0.97 -0.15,-1.58 0.35,-2.47 0.55,-1.74 0.84,-1.49 0.16,-1.68 0.25,-1.95 1.1,-1.42 1.5,-0.9 2.31,0.95 1.78,1.03 2.05,0.28 2.09,0.54 0.84,-1.68 0.39,-0.22 1.27,0.28 3.13,-1.39 1.1,0.59 0.91,-0.08 0.42,-0.68 1.04,-0.24 2.11,0.29 1.8,0.06 0.93,-0.29 1.69,2.31 1.26,0.33 0.75,-0.47 1.3,0.19 1.56,-0.59 0.67,1.19 z",CF:"m 518.34,442.91 2.32,-0.22 0.52,-0.72 0.46,0.06 0.7,0.63 3.53,-1.07 1.19,-1.1 1.47,-0.99 -0.28,-0.99 0.79,-0.26 2.71,0.18 2.64,-1.31 2.02,-3.09 1.43,-1.14 1.77,-0.49 0.32,1.22 1.62,1.77 0,1.15 -0.45,1.18 0.18,0.87 0.97,0.81 2.14,1.24 1.53,1.13 0.03,0.92 1.88,1.46 1.17,1.21 0.71,1.68 2.1,1.11 0.45,0.89 -0.93,0.29 -1.8,-0.06 -2.11,-0.29 -1.04,0.24 -0.42,0.68 -0.91,0.08 -1.1,-0.59 -3.13,1.39 -1.27,-0.28 -0.39,0.22 -0.84,1.68 -2.09,-0.54 -2.05,-0.28 -1.78,-1.03 -2.31,-0.95 -1.5,0.9 -1.1,1.42 -0.25,1.95 -1.8,-0.16 -1.9,-0.47 -1.67,1.48 -1.47,2.6 -0.3,-0.81 -0.12,-1.27 -1.28,-0.9 -1.04,-1.44 -0.24,-1 -1.32,-1.46 0.22,-0.83 -0.28,-1.18 0.22,-2.17 0.67,-0.51 z",CG:"m 511.94,476.97 -1.05,-0.96 -0.85,0.47 -1.13,1.2 -2.3,-2.95 2.13,-1.54 -1.05,-1.85 0.96,-0.7 1.89,-0.34 0.22,-1.24 1.5,1.34 2.48,0.12 0.86,-1.32 0.35,-1.85 -0.31,-2.18 -1.32,-1.64 1.21,-3.23 -0.7,-0.55 -2.08,0.22 -0.79,-1.43 0.21,-1.22 3.53,0.11 2.27,0.73 2.23,0.66 0.2,-1.5 1.47,-2.6 1.67,-1.48 1.9,0.47 1.8,0.16 -0.16,1.68 -0.84,1.49 -0.55,1.74 -0.35,2.47 0.15,1.58 -0.46,0.97 -0.07,1.02 -0.32,0.89 -1.85,1.34 -1.28,1.43 -1.22,2.71 0.09,2.3 -0.71,0.89 -1.63,1.36 -1.65,1.76 -1.05,-0.5 -0.18,-0.79 -1.52,-0.03 -0.96,1.07 z",CH:"m 502.4,312.59 0.11,0.74 -0.43,1.01 1.27,0.74 1.43,0.11 -0.22,1.67 -1.23,0.69 -2.08,-0.51 -0.61,1.63 -1.33,0.13 -0.49,-0.64 -1.57,1.36 -1.35,0.19 -1.21,-0.86 -0.96,-1.77 -1.34,0.64 0.04,-1.84 2.05,-2.31 -0.09,-1.05 1.28,0.39 0.77,-0.71 2.38,0.03 0.58,-0.9 z",CI:"m 467.49,449.71 -1.27,0.03 -1.96,-0.55 -1.79,0.03 -3.33,0.49 -1.94,0.81 -2.78,1.02 -0.54,-0.07 0.21,-2.3 0.27,-0.35 -0.08,-1.11 -1.19,-1.17 -0.89,-0.19 -0.82,-0.77 0.61,-1.24 -0.28,-1.36 0.13,-0.82 0.45,0 0.16,-1.23 -0.22,-0.54 0.27,-0.39 1.04,-0.34 -0.69,-2.26 -0.65,-1.16 0.23,-0.97 0.56,-0.21 0.36,-0.26 0.78,0.42 2.16,0.03 0.52,-0.83 0.48,0.06 0.81,-0.32 0.44,1.21 0.65,-0.36 1.16,-0.42 1.26,0.62 0.49,0.93 1.26,0.6 0.98,-0.71 1.32,-0.11 1.92,0.73 0.74,4.01 -1.18,2.36 -0.73,3.17 1.21,2.41 z",CL:"m 283.06,636.98 0,10.57 3,0 1.69,0.13 -0.93,1.98 -2.4,1.53 -1.38,-0.16 -1.66,-0.4 -2.04,-1.48 -2.94,-0.71 -3.53,-2.71 -2.86,-2.57 -3.86,-5.25 2.31,0.97 3.94,3.13 3.72,1.7 1.45,-2.17 0.91,-3.2 2.58,-1.91 2,0.55 z m 1.16,-112.01 1.1,4.15 2.02,-0.41 0.34,0.76 -0.96,3.16 -3.05,1.51 0.09,5.14 -0.59,1 0.84,1.23 -1.98,1.95 -1.84,2.96 -1,2.9 0.27,3.11 -1.73,3.34 1.29,5.69 0.73,0.61 -0.01,3.09 -1.6,3.31 0.06,2.87 -2.12,2.26 0.01,3.22 0.85,3.46 -1.68,1.3 -0.75,3.22 -0.66,3.75 0.47,4.54 -1.13,0.77 0.65,4.4 1.27,1.46 -0.92,1.63 1.3,0.78 0.3,1.48 -1.22,0.75 0.3,2.33 -1.02,5.35 -1.49,3.52 0.33,2.11 -0.89,2.68 -2.15,1.88 0.25,4.6 0.99,1.6 1.87,-0.28 -0.05,3.33 1.16,2.63 6.78,0.61 2.6,0.71 -2.49,-0.03 -1.35,1.13 -2.53,1.67 -0.45,4.38 -1.19,0.11 -3.16,-1.54 -3.21,-3.25 0,0 -3.49,-2.63 -0.88,-2.87 0.79,-2.62 -1.41,-2.94 -0.36,-7.34 1.19,-4.03 2.96,-3.19 -4.26,-1.19 2.67,-3.57 0.95,-6.56 3.12,1.37 1.46,-7.97 -1.88,-1 -0.88,4.75 -1.77,-0.54 0.88,-5.42 0.96,-6.84 1.29,-2.48 -0.81,-3.5 -0.23,-3.98 1.18,-0.11 1.72,-5.6 1.94,-5.43 1.19,-4.97 -0.65,-4.91 0.84,-2.67 -0.34,-3.96 1.64,-3.87 0.51,-6.04 0.9,-6.37 0.88,-6.75 -0.21,-4.87 -0.58,-4.15 1.44,-0.75 0.75,-1.5 1.37,1.99 0.37,2.12 1.47,1.25 -0.88,2.87 1.51,3.34 z",CM:"m 512.17,457.32 -0.35,-0.15 -1.66,0.36 -1.71,-0.38 -1.33,0.19 -4.56,-0.07 0.41,-2.2 -1.1,-1.84 -1.28,-0.48 -0.57,-1.25 -0.72,-0.4 0.04,-0.77 0.72,-1.98 1.33,-2.7 0.81,-0.03 1.67,-1.64 1.07,-0.04 1.57,1.15 1.93,-0.95 0.26,-1.16 0.63,-1.14 0.43,-1.42 1.5,-1.16 0.57,-1.97 0.59,-0.63 0.4,-1.47 0.74,-1.81 2.36,-2.2 0.15,-0.95 0.31,-0.51 -1.11,-1.14 0.09,-0.9 0.79,-0.17 1.11,1.83 0.19,1.89 -0.1,1.89 1.52,2.57 -1.56,-0.03 -0.79,0.2 -1.28,-0.28 -0.61,1.33 1.65,1.65 1.22,0.48 0.4,1.17 0.88,1.93 -0.44,0.77 -1.41,2.84 -0.67,0.51 -0.22,2.17 0.28,1.18 -0.22,0.83 1.32,1.46 0.24,1 1.04,1.44 1.28,0.9 0.12,1.27 0.3,0.81 -0.2,1.5 -2.23,-0.66 -2.27,-0.73 z",CN:"m 784.88,410.66 -2.42,1.41 -2.3,-0.91 -0.08,-2.53 1.38,-1.34 3.06,-0.83 1.61,0.07 0.63,1.13 -1.23,1.3 -0.65,1.7 z m 48.56,-107.52 4.88,1.38 3.32,3.03 1.13,3.95 4.26,0 2.43,-1.65 4.63,-1.24 -1.47,3.76 -1.09,1.51 -0.96,4.46 -1.89,3.89 -3.4,-0.7 -2.41,1.4 0.74,3.36 -0.4,4.55 -1.43,0.1 0.02,1.93 -1.81,-2.24 -1.11,2.13 -4.33,1.62 0.44,1.97 -2.42,-0.14 -1.33,-1.17 -1.93,2.64 -3.09,1.98 -2.28,2.35 -3.92,1.06 -2.06,1.69 -3.02,0.98 1.49,-1.67 -0.59,-1.41 2.22,-2.45 -1.48,-1.93 -2.44,1.3 -3.17,2.54 -1.73,2.34 -2.75,0.17 -1.43,1.68 1.48,2.41 2.29,0.58 0.09,1.58 2.22,1.02 3.14,-2.51 2.49,1.37 1.81,0.09 0.46,1.84 -3.97,0.97 -1.31,1.87 -2.73,1.73 -1.44,2.39 3.02,1.86 1.1,3.31 1.71,3.05 1.9,2.53 -0.05,2.43 -1.76,0.89 0.67,1.73 1.65,1 -0.43,2.61 -0.71,2.52 -1.57,0.28 -2.05,3.41 -2.27,4.09 -2.6,3.68 -3.86,2.82 -3.9,2.55 -3.16,0.35 -1.71,1.34 -0.97,-0.98 -1.59,1.5 -3.92,1.5 -2.97,0.46 -0.96,3.15 -1.55,0.17 -0.74,-2.16 0.66,-1.16 -3.76,-0.96 -1.33,0.49 -2.82,-0.78 -1.33,-1.22 0.44,-1.74 -2.56,-0.55 -1.35,-1.14 -2.39,1.62 -2.73,0.35 -2.24,-0.02 -1.5,0.74 -1.45,0.44 0.42,3.43 -1.5,-0.08 -0.25,-0.7 -0.08,-1.24 -2.06,0.87 -1.21,-0.55 -2.08,-1.13 0.82,-2.51 -1.78,-0.59 -0.67,-2.8 -2.96,0.51 0.34,-3.63 2.66,-2.58 0.11,-2.57 -0.08,-2.4 -1.22,-0.75 -0.94,-1.86 -1.64,0.24 -3.02,-0.47 0.95,-1.33 -1.31,-1.99 -2,1.35 -2.36,-0.78 -3.23,2.03 -2.55,2.36 -2.26,0.39 -1.23,-0.85 -1.48,-0.08 -2,-0.73 -1.51,0.8 -1.85,2.34 -0.24,-2.48 -1.71,0.66 -3.27,-0.31 -3.17,-0.73 -2.28,-1.39 -2.18,-0.63 -0.94,-1.53 -1.58,-0.46 -2.83,-2.09 -2.25,-0.99 -1.16,0.77 -3.9,-2.26 -2.75,-2.07 -0.79,-3.63 2.01,0.44 0.09,-1.69 -1.12,-1.71 0.28,-2.74 -3.01,-3.99 -4.61,-1.39 -0.83,-2.66 -2.07,-1.63 -0.5,-1.01 -0.42,-2.01 0.1,-1.38 -1.7,-0.81 -0.92,0.36 -0.71,-3.32 0.8,-0.83 -0.39,-0.85 2.68,-1.73 1.94,-0.72 2.97,0.49 1.06,-2.35 3.6,-0.44 1,-1.48 4.42,-2.03 0.39,-0.85 -0.22,-2.17 1.92,-1 -2.52,-6.75 5.55,-1.58 1.44,-0.89 2.02,-7.26 5.56,1.35 1.56,-1.86 0.13,-4.19 2.33,-0.39 2.13,-2.83 1.1,-0.35 0.74,2.97 2.36,2.23 4,1.57 1.93,3.32 -1.08,4.73 1.01,1.73 3.33,0.68 3.78,0.55 3.39,2.45 1.73,0.43 1.28,3.57 1.65,2.27 3.09,-0.09 5.79,0.85 3.73,-0.53 2.77,0.57 4.15,2.29 3.39,0 1.24,1.16 3.26,-2.01 4.53,-1.31 4.2,-0.14 3.28,-1.34 2.01,-2.05 1.96,-1.3 -0.45,-1.28 -0.9,-1.5 1.47,-2.54 1.58,0.36 2.88,0.8 2.79,-2.1 4.28,-1.55 2.05,-2.66 1.97,-1.16 4.07,-0.54 2.21,0.46 0.31,-1.45 -2.54,-2.89 -2.25,-1.33 -2.16,1.54 -2.77,-0.65 -1.59,0.53 -0.72,-1.71 1.98,-4.23 1.37,-3.25 3.37,1.63 3.95,-2.74 -0.03,-1.93 2.53,-4.73 1.56,-1.45 -0.04,-2.52 -1.54,-1.1 2.32,-2.31 3.48,-0.84 3.72,-0.13 4.2,1.39 2.46,1.71 1.73,4.61 1.05,1.94 0.98,2.73 1.05,4.31 z",CO:"m 264.17,464.06 -1.2,-0.66 -1.38,-0.92 -0.8,0.44 -2.38,-0.39 -0.68,-1.2 -0.52,0.05 -2.81,-1.59 -0.38,-0.87 1.05,-0.21 -0.12,-1.39 0.65,-1.01 1.39,-0.19 1.19,-1.75 1.07,-1.46 -1.04,-0.67 0.53,-1.62 -0.63,-2.56 0.6,-0.73 -0.44,-2.37 -1.14,-1.5 0.36,-1.36 0.91,0.2 0.53,-0.84 -0.65,-1.65 0.34,-0.42 1.44,0.09 2.11,-1.97 1.15,-0.3 0.03,-0.93 0.52,-2.39 1.61,-1.32 1.76,-0.05 0.22,-0.59 2.2,0.23 2.21,-1.43 1.09,-0.64 1.35,-1.37 1,0.17 0.73,0.75 -0.54,0.96 -1.8,0.48 -0.71,1.42 -1.09,0.81 -0.81,1.06 -0.35,2.01 -0.77,1.66 1.44,0.18 0.36,1.3 0.62,0.62 0.22,1.13 -0.33,1.04 0.1,0.59 0.69,0.23 0.67,0.98 3.6,-0.27 1.63,0.36 1.98,2.41 1.13,-0.3 2.02,0.15 1.6,-0.32 0.99,0.49 -0.51,1.5 -0.62,0.94 -0.22,2.01 0.56,1.85 0.8,0.83 0.09,0.63 -1.42,1.39 1.02,0.61 0.75,0.98 0.85,2.77 -0.53,0.35 -0.54,-1.65 -0.78,-0.88 -0.93,0.96 -5.46,-0.06 0.03,1.74 1.64,0.29 -0.09,1.07 -0.56,-0.29 -1.58,0.46 -0.01,2.02 1.24,1.02 0.44,1.59 -0.07,1.21 -1.26,7.65 -1.4,-1.49 -0.84,-0.06 1.81,-2.84 -2.15,-1.31 -1.68,0.24 -1.01,-0.48 -1.55,0.74 -2.09,-0.35 -1.65,-2.92 -1.3,-0.72 -0.89,-1.32 -1.86,-1.32 z", -CR:"m 242.88,440.65 -1.52,-0.63 -0.57,-0.59 0.32,-0.49 -0.1,-0.62 -0.78,-0.68 -1.1,-0.55 -0.97,-0.36 -0.18,-0.83 -0.74,-0.51 0.18,0.83 -0.56,0.67 -0.64,-0.78 -0.9,-0.28 -0.38,-0.57 0.02,-0.86 0.37,-0.9 -0.79,-0.4 0.64,-0.54 0.42,-0.37 1.85,0.75 0.64,-0.37 0.89,0.24 0.47,0.58 0.82,0.19 0.67,-0.6 0.72,1.54 1.08,1.14 1.32,1.21 -1.09,0.25 0.02,1.13 0.58,0.42 -0.42,0.34 0.11,0.51 -0.23,0.57 z",CU:"m 244.83,397.19 2.43,0.22 2.2,0.03 2.63,1.03 1.12,1.11 2.62,-0.34 0.99,0.7 2.38,1.87 1.74,1.35 0.92,-0.04 1.68,0.61 -0.21,0.84 2.07,0.12 2.12,1.22 -0.33,0.69 -1.87,0.38 -1.89,0.15 -1.93,-0.24 -4.01,0.29 1.88,-1.66 -1.14,-0.77 -1.81,-0.2 -0.97,-0.86 -0.67,-1.7 -1.58,0.11 -2.62,-0.8 -0.84,-0.63 -3.65,-0.47 -0.98,-0.59 1.05,-0.75 -2.75,-0.15 -2.01,1.56 -1.17,0.04 -0.4,0.74 -1.38,0.33 -1.2,-0.29 1.48,-0.93 0.6,-1.09 1.27,-0.67 1.43,-0.59 2.13,-0.29 z",CY:"m 570.56,358.54 1.89,-1.46 -2.55,1.02 -2.02,-0.05 -0.4,0.83 -0.2,0.02 -1.33,0.12 0.65,1.37 1.37,0.44 2.88,-1.38 -0.09,-0.27 z",CZ:"m 523.06,308.11 -1.3,-0.8 -1.31,0.22 -2.18,-1.3 -0.99,0.32 -1.57,1.74 -2.09,-1.37 -1.58,-1.83 -1.43,-1.04 -0.3,-1.82 -0.49,-1.3 2.04,-0.95 1.04,-1.1 2.01,-0.86 0.71,-0.84 0.74,0.51 1.25,-0.47 1.33,1.43 2.09,0.39 -0.17,1.21 1.52,0.9 0.42,-1.13 1.92,0.49 0.27,1.37 2.08,0.26 1.29,2.13 -0.83,0.01 -0.44,0.77 -0.64,0.19 -0.18,0.97 -0.54,0.21 -0.08,0.39 -0.95,0.44 -1.25,-0.07 z",DE:"m 503.32,279.17 0.05,1.88 2.84,1.12 -0.03,1.7 2.85,-0.9 1.57,-1.31 3.17,1.89 1.32,1.51 0.66,2.39 -0.78,1.25 1.01,1.65 0.7,2.45 -0.22,1.56 1.15,2.86 -1.25,0.47 -0.74,-0.51 -0.71,0.84 -2.01,0.86 -1.04,1.1 -2.04,0.95 0.49,1.3 0.3,1.82 1.43,1.04 1.58,1.83 -0.98,1.95 -1.01,0.54 0.4,2.72 -0.27,0.7 -0.87,-0.85 -1.34,-0.12 -2.01,0.74 -2.47,-0.18 -0.4,1.09 -1.42,-1.14 -0.85,0.22 -3,-1.26 -0.58,0.9 -2.38,-0.03 0.35,-2.98 1.42,-2.9 -4.04,-0.78 -1.32,-1.13 0.16,-1.89 -0.56,-0.98 0.32,-2.97 -0.48,-4.69 1.69,0 0.71,-1.71 0.7,-4.23 -0.53,-1.58 0.55,-1 2.34,-0.26 0.52,1.04 1.91,-2.33 -0.64,-1.79 -0.13,-2.75 2.12,0.64 z",DJ:"m 596.3,427.97 0.66,0.88 -0.09,1.19 -1.6,0.68 1.21,0.77 -1.04,1.52 -0.62,-0.5 -0.67,0.2 -1.57,-0.05 -0.05,-0.86 -0.21,-0.79 0.94,-1.33 0.99,-1.26 1.2,0.25 z",DK:"m 511.08,276.09 -1.68,3.97 -2.93,-2.76 -0.39,-2.05 4.11,-1.66 0.89,2.5 z m -4.98,-4.25 -0.69,1.9 -0.83,-0.55 -2.02,3.59 0.76,2.39 -1.79,0.74 -2.12,-0.64 -1.14,-2.72 -0.08,-5.12 0.47,-1.38 0.8,-1.54 2.47,-0.32 0.98,-1.43 2.26,-1.47 -0.1,2.68 -0.83,1.68 0.34,1.43 1.52,0.76 z",DO:"m 274.43,407.6 0.35,-0.51 2.19,0.02 1.66,0.76 0.74,-0.08 0.51,1.05 1.53,-0.06 -0.09,0.88 1.25,0.11 1.38,1.08 -1.04,1.2 -1.34,-0.64 -1.28,0.12 -0.92,-0.14 -0.51,0.54 -1.08,0.18 -0.42,-0.72 -0.93,0.43 -1.12,2 -0.72,-0.46 -0.15,-0.84 0.06,-0.8 -0.72,-0.88 0.68,-0.5 0.22,-1.13 z",DZ:"m 509.15,396.33 -9.61,5.75 -8.12,5.85 -3.95,1.32 -3.11,0.29 -0.03,-1.88 -1.3,-0.48 -1.75,-0.85 -0.66,-1.39 -9.46,-6.55 -9.46,-6.65 -10.55,-7.53 0.06,-0.61 0,-0.21 -0.03,-3.75 4.53,-2.36 2.8,-0.49 2.29,-0.86 1.08,-1.62 3.28,-1.29 0.12,-2.41 1.62,-0.29 1.27,-1.21 3.67,-0.56 0.51,-1.28 -0.74,-0.71 -0.97,-3.53 -0.16,-2.05 -1.06,-2.18 2.69,-1.87 3.04,-0.6 1.77,-1.43 2.7,-1.05 4.75,-0.62 4.64,-0.29 1.41,0.52 2.64,-1.37 3,-0.03 1.14,0.81 1.91,-0.21 -0.57,1.79 0.45,3.28 -0.66,2.82 -1.73,1.88 0.25,2.53 2.29,1.98 0.03,0.81 1.72,1.33 1.2,5.86 0.91,2.84 0.15,1.48 -0.49,2.59 0.2,1.44 -0.36,1.72 0.25,1.97 -1.12,1.29 1.66,2.26 0.11,1.32 0.99,1.71 1.31,-0.56 2.22,1.42 z",EC:"m 250.35,473.12 1.49,-2.08 -0.61,-1.22 -1.07,1.3 -1.68,-1.23 0.57,-0.78 -0.47,-2.53 0.98,-0.42 0.52,-1.73 1.06,-1.8 -0.2,-1.13 1.54,-0.6 1.92,-1.11 2.81,1.59 0.52,-0.05 0.68,1.2 2.38,0.39 0.8,-0.44 1.38,0.92 1.2,0.66 0.39,2.11 -0.87,1.81 -3.06,2.92 -3.37,1.1 -1.72,2.43 -0.53,1.88 -1.59,1.15 -1.17,-1.41 -1.14,-0.3 -1.16,0.22 -0.07,-1.02 0.8,-0.66 z",EE:"m 543.67,264.96 0.33,-3.12 -1.03,0.67 -1.78,-1.9 -0.25,-3.11 3.55,-1.53 3.53,-0.81 3.04,0.92 2.9,-0.17 0.42,0.96 -1.99,3.14 0.83,4.96 -1.2,1.66 -2.32,-0.01 -2.41,-1.94 -1.23,-0.65 z",EG:"m 573.42,377.53 -0.79,1.29 -0.6,2.4 -0.76,1.64 -0.66,0.56 -0.93,-1.02 -1.27,-1.42 -2,-4.57 -0.28,0.29 1.16,3.37 1.72,3.18 2.12,4.88 1.03,1.68 0.9,1.74 2.52,3.4 -0.56,0.53 0.09,1.97 3.27,2.71 0.49,0.62 -11.12,0 -10.88,0 -11.27,0 0,-11.23 0,-11.18 -0.84,-2.58 0.72,-2 -0.43,-1.39 1.01,-1.57 3.73,-0.05 2.7,0.86 2.78,0.97 1.3,0.5 2.16,-1.03 1.15,-0.93 2.48,-0.27 1.99,0.41 0.77,1.62 0.65,-1.07 2.24,0.77 2.19,0.19 1.38,-0.82 z",EH:"m 438.82,383.31 3.62,0.01 8.75,0.03 0,0 0,0 -8.75,-0.03 -3.62,-0.01 -0.11,0.09 -0.05,0.04 -1.78,3.2 -1.86,1.14 -1.02,1.91 -0.06,1.65 -0.75,1.79 -0.94,0.49 -1.56,1.94 -0.96,2.15 0.18,1.02 -0.92,1.57 -1.08,0.82 -0.13,1.39 -0.12,1.27 0.61,-1 10.98,0.02 -0.53,-4.35 0.69,-1.55 2.62,-0.27 -0.09,-7.86 9.21,0.17 0,-4.73 0.06,-0.61 0,-0.21 z",ER:"m 594.25,428.42 -0.96,-0.93 -1.15,-1.67 -1.24,-0.92 -0.73,-1 -2.44,-1.15 -1.92,-0.03 -0.68,-0.61 -1.64,0.68 -1.7,-1.31 -0.88,2.15 -3.26,-0.6 -0.3,-1.15 1.21,-4.25 0.27,-1.93 0.88,-0.9 2.07,-0.48 1.42,-1.67 1.63,3.38 0.77,2.67 1.54,1.41 3.82,2.72 1.56,1.64 1.52,1.66 0.88,0.98 1.38,0.86 -0.85,0.7 z",ES:"m 450.17,334.81 0.14,-2.68 -1.14,-1.66 3.96,-2.77 3.43,0.7 3.77,-0.03 2.98,0.66 2.33,-0.2 4.53,0.12 1.12,1.49 5.16,1.73 1.02,-0.82 3.16,1.72 3.25,-0.49 0.15,2.19 -2.66,2.49 -3.59,0.78 -0.25,1.24 -1.73,2.03 -1.08,2.96 1.09,2.05 -1.62,1.6 -0.6,2.3 -2.12,0.7 -1.99,2.69 -3.55,0.05 -2.68,-0.06 -1.75,1.22 -1.07,1.31 -1.38,-0.29 -1.03,-1.17 -0.8,-2 -2.62,-0.54 -0.23,-1.16 1.04,-1.32 0.38,-0.96 -0.96,-1.06 0.77,-2.35 -1.12,-2.17 1.21,-0.3 0.11,-1.72 0.46,-0.53 0.03,-2.88 1.3,-1 -0.78,-1.88 -1.64,-0.13 -0.48,0.47 -1.65,0.01 -0.71,-1.84 -1.14,0.55 z",ET:"m 581.79,421.48 1.7,1.31 1.64,-0.68 0.68,0.61 1.92,0.03 2.44,1.15 0.73,1 1.24,0.92 1.15,1.67 0.96,0.93 -0.99,1.26 -0.94,1.33 0.21,0.79 0.05,0.86 1.57,0.05 0.67,-0.2 0.62,0.5 -0.61,1.01 1.04,1.56 1.03,1.36 1.07,1.01 9.17,3.34 2.36,-0.02 -7.93,8.42 -3.65,0.12 -2.5,1.97 -1.79,0.05 -0.77,0.88 -1.92,0 -1.13,-0.94 -2.56,1.17 -0.83,1.16 -1.87,-0.22 -0.62,-0.32 -0.66,0.07 -0.88,-0.02 -3.55,-2.38 -1.95,0 -0.96,-0.91 0,-1.57 -1.46,-0.47 -1.65,-3.05 -1.28,-0.65 -0.5,-1.12 -1.42,-1.37 -1.72,-0.2 0.96,-1.61 1.48,-0.07 0.42,-0.86 -0.03,-2.53 0.83,-2.96 1.32,-0.8 0.29,-1.16 1.2,-2.17 1.69,-1.42 1.14,-2.81 0.45,-2.47 3.26,0.6 z",FK:"m 303.91,633.38 3.36,-2.69 2.39,1.12 1.68,-1.79 2.24,2.01 -0.84,1.58 -3.79,1.36 -1.26,-1.59 -2.38,2.05 z",FI:"m 555.67,193.35 -0.41,5.4 4.3,4.99 -2.59,5.48 3.26,7.96 -1.89,5.76 2.53,4.86 -1.15,4.14 4.15,4.26 -1.06,3.1 -2.6,3.45 -6,7.41 -5.09,0.45 -4.93,2.07 -4.56,1.18 -1.63,-3.07 -2.71,-1.87 0.62,-5.72 -1.36,-5.41 1.34,-3.58 2.54,-3.94 6.41,-7.02 1.88,-1.39 -0.3,-2.84 -3.9,-3.22 -0.94,-2.7 -0.08,-11.12 -4.37,-5.15 -3.74,-3.81 1.68,-2.08 3.12,4.15 3.66,-0.39 3.01,1.87 2.67,-3.44 1.38,-5.85 4.35,-2.78 3.6,3.26 z",FJ:"m 980.78,508.86 -0.35,1.4 -0.23,0.16 -1.78,0.72 -1.79,0.61 -0.36,-1.09 1.4,-0.6 0.89,-0.16 1.64,-0.91 0.58,-0.13 z m -5.84,4.31 -1.27,-0.36 -1.08,1 0.27,1.29 1.55,0.36 1.74,-0.4 0.46,-1.53 -0.96,-0.84 -0.71,0.48 z",FR:"m 502.31,333.79 -0.93,2.89 -1.27,-0.76 -0.65,-2.53 0.57,-1.41 1.81,-1.45 0.47,3.26 z m -16.75,-33.35 1.96,2.06 1.44,-0.34 2.45,1.97 0.63,0.37 0.81,-0.09 1.32,1.12 4.04,0.79 -1.42,2.9 -0.36,2.98 -0.77,0.71 -1.28,-0.38 0.09,1.05 -2.05,2.3 -0.04,1.84 1.34,-0.63 0.96,1.77 -0.12,1.13 0.83,1.5 -0.97,1.21 0.72,3.04 1.52,0.49 -0.32,1.68 -2.54,2.17 -5.53,-1.04 -4.08,1.24 -0.32,2.29 -3.25,0.49 -3.15,-1.72 -1.02,0.82 -5.16,-1.73 -1.12,-1.49 1.45,-2.32 0.53,-7.88 -2.89,-4.26 -2.07,-2.09 -4.29,-1.6 -0.28,-3.07 3.64,-0.92 4.71,1.09 -0.89,-4.84 2.65,1.85 6.53,-3.37 0.84,-3.61 2.45,-0.9 0.41,1.56 1.3,0.07 1.3,1.79 z",GA:"m 506.61,474.73 -2.88,-2.82 -1.86,-2.3 -1.7,-2.88 0.09,-0.92 0.61,-0.9 0.68,-2.02 0.57,-2.07 0.95,-0.16 4.07,0.03 -0.02,-3.35 1.33,-0.19 1.71,0.38 1.66,-0.36 0.35,0.15 -0.21,1.22 0.79,1.43 2.08,-0.22 0.7,0.55 -1.21,3.23 1.32,1.64 0.31,2.18 -0.35,1.85 -0.86,1.32 -2.48,-0.12 -1.5,-1.34 -0.22,1.24 -1.89,0.34 -0.96,0.7 1.05,1.85 z",GB:"m 459.63,281.25 -1.5,3.29 -2.12,-0.98 -1.73,0.07 0.58,-2.57 -0.58,-2.6 2.35,-0.2 3,2.99 z m 7.45,-20.76 -3,5.73 2.86,-0.72 3.07,0.03 -0.73,4.22 -2.52,4.53 2.9,0.32 0.22,0.52 2.5,5.79 1.92,0.77 1.73,5.41 0.8,1.84 3.4,0.88 -0.34,2.93 -1.43,1.33 1.12,2.33 -2.52,2.33 -3.75,-0.04 -4.77,1.21 -1.31,-0.87 -1.85,2.06 -2.59,-0.5 -1.97,1.67 -1.49,-0.87 4.11,-4.64 2.51,-0.97 -0.02,0 -4.38,-0.75 -0.79,-1.8 2.93,-1.41 -1.54,-2.48 0.53,-3.06 4.17,0.42 0,0 0.41,-2.74 -1.88,-2.95 -0.04,-0.07 -3.4,-0.85 -0.67,-1.32 1.02,-2.2 -0.92,-1.37 -1.51,2.34 -0.16,-4.8 -1.42,-2.59 1.02,-5.36 2.18,-4.31 2.24,0.42 3.36,-0.41 z",GE:"m 592.01,336.1 0.42,-1.6 -0.7,-2.57 -1.62,-1.41 -1.55,-0.44 -1.03,-1.17 0.34,-0.46 2.37,0.66 4.13,0.62 3.82,1.83 0.49,0.71 1.7,-0.6 2.62,0.8 0.85,1.55 1.77,0.87 -0.73,0.51 1.38,2.02 -0.38,0.43 -1.51,-0.22 -2.09,-1.06 -0.69,0.6 -3.9,0.58 -2.7,-1.82 z",GF:"m 328.14,456.66 -1.07,1.06 -1.34,0.2 -0.38,-0.78 -0.63,-0.12 -0.87,0.76 -1.22,-0.57 0.71,-1.19 0.24,-1.27 0.48,-1.2 -1.09,-1.65 -0.22,-1.91 1.46,-2.41 0.95,0.31 2.06,0.66 2.97,2.36 0.46,1.14 -1.66,2.55 -0.85,2.06 z",GH:"m 478.48,447.09 -4.4,1.64 -1.56,0.96 -2.53,0.81 -2.5,-0.79 0.13,-1.11 -1.21,-2.41 0.73,-3.17 1.18,-2.36 -0.74,-4.01 -0.39,-2.13 0.07,-1.61 4.87,-0.13 1.24,0.21 0.9,-0.46 1.3,0.22 -0.21,0.89 1.17,1.46 0,2.05 0.27,2.22 0.7,1.03 -0.62,2.53 0.22,1.4 0.75,1.78 z",GL:"m 344.38,24.16 9.42,-13.61 9.84,1.07 3.57,-8.95 9.91,-2.42 22.4,3.15 17.54,18.59 -5.18,8.3 -10.73,0.93 -15.09,2.03 1.41,3.64 9.93,-2.24 8.44,6.91 5.45,-6.12 2.33,7.15 -3.08,10.97 7.14,-6.93 13.61,-7.55 8.41,3.81 1.57,8.12 -11.43,12.66 -1.58,3.9 -8.96,2.86 6.49,0.79 -3.28,11.51 -2.26,9.59 0.09,15.26 3.37,8.34 -4.38,0.51 -4.61,3.88 5.17,6.3 0.66,9.62 -3,1.02 3.63,9.15 -6.22,0.75 3.25,4.14 -0.92,3.51 -3.95,1.51 -3.91,0.03 3.51,6.48 0.04,4.13 -5.55,-3.83 -1.44,2.49 3.78,2.29 3.68,5.48 1.06,6.95 -5,1.62 -2.16,-3.26 -3.47,-4.98 0.96,5.87 -3.25,4.41 7.38,0.35 3.87,0.45 -7.52,7.03 -7.62,6.13 -8.2,2.61 -3.09,0.04 -2.9,2.87 -3.9,7.63 -6.03,4.89 -1.94,0.29 -3.74,1.67 -4.02,1.59 -2.41,4.12 -0.04,4.56 -1.41,4.16 -4.58,4.95 1.13,4.71 -1.26,4.85 -1.43,5.56 -3.95,0.34 -4.14,-4.63 -5.61,-0.03 -2.72,-3.18 -1.87,-5.8 -4.86,-7.68 -1.42,-4.15 -0.38,-5.89 -3.89,-6.27 1.01,-5.17 -1.87,-2.53 2.77,-8.65 4.22,-2.85 1.11,-3.26 0.59,-6.26 -3.21,2.86 -1.52,1.19 -2.52,1.14 -3.44,-2.61 -0.19,-5.55 1.1,-4.48 2.6,-0.12 5.72,2.25 -4.82,-5.43 -2.51,-3.01 -2.79,1.24 -2.34,-2.19 3.13,-8.5 -1.7,-3.53 -2.23,-6.74 -3.37,-10.91 -3.57,-4.17 0.03,-4.63 -7.53,-6.69 -5.95,-0.85 -7.49,0.47 -6.84,0.86 -3.26,-3.75 -4.87,-7.66 7.36,-3.97 5.65,-0.68 -12,-3.36 -6.32,-5.44 0.39,-5.34 10.61,-6.87 10.27,-7.16 1.08,-5.64 -7.56,-5.76 2.44,-6.64 9.71,-12.33 4.08,-1.98 -1.17,-8.57 6.64,-5.24 8.62,-3.21 8.62,-0.18 3.06,6.3 7.44,-11.32 6.69,7.78 3.93,1.59 5.83,6.41 L 344,33.25 z",GM:"m 428.28,426.68 0.36,-1.27 3.05,-0.09 0.64,-0.67 0.89,-0.05 1.1,0.71 0.87,0.01 0.93,-0.48 0.56,0.82 -1.21,0.65 -1.22,-0.05 -1.2,-0.61 -1.04,0.66 -0.5,0.03 -0.68,0.4 z",GN:"m 451.84,442.16 -0.79,-0.07 -0.57,1.13 -0.8,-0.01 -0.54,-0.6 0.18,-1.13 -1.17,-1.72 -0.73,0.31 -0.6,0.07 -0.77,0.16 0.03,-1.03 -0.45,-0.74 0.09,-0.82 -0.61,-1.19 -0.78,-1.01 -2.24,0 -0.65,0.53 -0.78,0.06 -0.48,0.61 -0.32,0.79 -1.5,1.24 -1.23,-1.67 -1.09,-1.11 -0.72,-0.36 -0.7,-0.57 -0.31,-1.25 -0.41,-0.62 -0.82,-0.47 1.25,-1.38 0.85,0.05 0.73,-0.48 0.62,0 0.44,-0.38 -0.24,-0.94 0.31,-0.3 0.05,-0.97 1.35,0.03 2.02,0.7 0.62,-0.07 0.21,-0.31 1.52,0.22 0.41,-0.16 0.16,1.05 0.45,-0.01 0.73,-0.38 0.46,0.1 0.78,0.72 1.2,0.23 0.77,-0.62 0.91,-0.38 0.67,-0.4 0.56,0.08 0.62,0.62 0.34,0.79 1.15,1.19 -0.58,0.73 -0.11,0.92 0.6,-0.28 0.35,0.34 -0.15,0.84 0.86,0.82 -0.56,0.21 -0.23,0.97 0.65,1.16 0.69,2.26 -1.04,0.34 -0.27,0.39 0.22,0.54 -0.16,1.23 z",GQ:"m 502.12,460.82 -0.53,-0.42 0.97,-3.13 4.56,0.07 0.02,3.35 -4.07,-0.03 z",GR:"m 541.95,356.96 1.53,1.16 2.18,-0.19 2.09,0.24 -0.07,0.6 1.53,-0.41 -0.35,1.01 -4.04,0.29 0.03,-0.56 -3.42,-0.67 0.52,-1.47 z m 8.15,-20.96 -0.87,2.33 -0.67,0.41 -1.71,-0.1 -1.46,-0.35 -3.4,0.96 1.94,2.06 -1.42,0.59 -1.56,0 -1.48,-1.88 -0.53,0.8 0.63,2.18 1.4,1.7 -1.06,0.79 1.56,1.65 1.39,1.03 0.04,2 -1.36,-1.15 -1.24,0.21 0.83,1.8 -0.92,0.19 -1,-0.69 1.2,3.95 -0.58,0 -0.45,-1.25 -0.57,-0.02 -0.26,1.32 -0.45,-0.3 0.1,-0.74 -0.56,-1.04 H 537 l 0.12,0.84 -0.25,0.27 -0.62,-0.54 -0.38,-1.01 0.52,-0.57 -0.36,-0.74 -0.41,-0.38 -0.42,-0.09 -0.49,-0.94 0.58,-0.52 0.36,-0.48 0.56,0.1 0.25,-0.41 0.59,-0.16 0.68,0.46 0.55,0.17 0.39,-0.62 -0.94,-0.08 -0.56,-0.19 -1.25,0.28 -1.22,0.05 -1.09,-1.64 -0.18,-0.25 0.17,-0.64 -1.42,-1.15 -0.19,-1.03 1.3,-1.76 0.17,-1.19 0.91,-0.53 0.06,-0.97 1.83,-0.33 1.07,-0.81 1.52,0.07 0.46,-0.65 0.53,-0.12 2.07,0.11 2.25,-1.02 1.98,1.3 2.55,-0.35 0.03,-1.86 1.38,0.93 z",GT:"m 222.89,425 -1.44,-0.5 -1.75,-0.05 -1.28,-0.57 -1.51,-1.18 0.07,-0.84 0.32,-0.68 -0.39,-0.54 1.35,-2.36 3.59,-0.01 0.08,-0.98 -0.46,-0.18 -0.31,-0.63 -1.04,-0.67 -1.04,-0.98 1.27,0 0,-1.65 2.62,0 2.59,0.03 -0.02,2.31 -0.22,3.28 0.83,0 0.92,0.53 0.24,-0.44 0.82,0.37 -1.27,1.11 -1.33,0.81 -0.2,0.55 0.22,0.56 -0.58,0.74 -0.66,0.17 0.15,0.34 -0.52,0.32 -0.96,0.72 z",GW:"m 433.08,432.69 -1.5,-1.19 -1.18,-0.18 -0.64,-0.81 0.01,-0.43 -0.85,-0.6 -0.18,-0.61 1.49,-0.47 0.93,0.09 0.75,-0.32 5.18,0.12 -0.05,0.97 -0.31,0.3 0.24,0.94 -0.44,0.38 -0.62,0 -0.73,0.48 -0.85,-0.05 z",GY:"m 307.95,440.25 1.84,1.03 1.74,1.83 0.07,1.45 1.06,0.07 1.5,1.36 1.11,0.98 -0.45,2.52 -1.7,0.73 0.15,0.65 -0.52,1.45 1.25,2.02 0.89,0.01 0.37,1.57 1.71,2.42 -0.68,0.1 -1.55,-0.23 -0.91,0.74 -1.27,0.49 -0.88,0.12 -0.31,0.54 -1.38,-0.14 -1.73,-1.3 -0.2,-1.29 -0.72,-1.41 0.45,-2.38 0.78,-0.98 -0.65,-1.3 -0.96,-0.42 0.37,-1.23 -0.66,-0.64 -1.46,0.12 -1.89,-2.12 0.76,-0.77 -0.06,-1.3 1.73,-0.45 0.69,-0.52 -0.96,-1.04 0.25,-1.03 z",HN:"m 230.68,427.15 -0.48,-0.89 -0.86,-0.25 0.2,-1.15 -0.38,-0.31 -0.58,-0.2 -1.23,0.34 -0.1,-0.39 -0.85,-0.46 -0.6,-0.57 -0.83,-0.24 0.58,-0.74 -0.22,-0.56 0.2,-0.55 1.33,-0.81 1.27,-1.11 0.29,0.12 0.62,-0.51 0.8,-0.04 0.26,0.23 0.44,-0.14 1.3,0.26 1.3,-0.08 0.9,-0.32 0.33,-0.32 0.89,0.15 0.67,0.2 0.73,-0.07 0.56,-0.25 1.28,0.4 0.45,0.06 0.85,0.54 0.81,0.65 1.02,0.44 0.74,0.8 -0.96,-0.06 -0.39,0.39 -0.97,0.38 -0.71,0 -0.62,0.37 -0.56,-0.13 -0.48,-0.44 -0.29,0.08 -0.36,0.69 -0.27,-0.03 -0.05,0.6 -0.98,0.79 -0.51,0.34 -0.29,0.36 -0.83,-0.58 -0.6,0.76 -0.59,-0.02 -0.66,0.07 0.06,1.41 -0.41,0.02 -0.35,0.66 z",HR:"m 528.3,319.18 0.68,1.55 0.89,1.14 -1.08,1.49 -1.27,-0.88 -1.94,0.06 -2.41,-0.66 -1.31,0.09 -0.6,0.82 -1.01,-0.91 -0.59,1.64 1.38,1.83 0.6,1.21 1.29,1.45 1.07,0.85 1.06,1.61 2.48,1.44 -0.31,0.64 -2.63,-1.4 -1.63,-1.38 -2.56,-1.14 -2.36,-2.85 0.57,-0.3 -1.28,-1.64 -0.06,-1.34 -1.8,-0.62 -0.86,1.71 -0.83,-1.33 0.07,-1.38 0.1,-0.06 1.95,0.14 0.52,-0.68 0.95,0.65 1.1,0.08 -0.01,-1.12 0.97,-0.41 0.28,-1.62 2.23,-1.08 0.89,0.5 2.1,1.73 2.31,0.77 z",HT:"m 270.29,407 1.71,0.13 2.43,0.47 0.25,1.61 -0.22,1.13 -0.68,0.5 0.72,0.88 -0.06,0.8 -1.86,-0.5 -1.32,0.2 -1.71,-0.21 -1.31,0.55 -1.51,-0.92 0.25,-0.95 2.58,0.41 2.12,0.24 1.01,-0.66 -1.28,-1.27 0.02,-1.13 -1.77,-0.46 z",HU:"m 520.93,315.36 0.93,-2.65 -0.54,-0.89 1.58,-0.01 0.21,-1.71 1.43,1.07 1.03,0.46 2.36,-0.51 0.22,-0.84 1.12,-0.13 1.36,-0.65 0.3,0.27 1.32,-0.52 0.66,-1 0.92,-0.25 3,1.28 0.6,-0.43 1.55,1.14 0.2,1.12 -1.71,0.87 -1.33,2.8 -1.69,2.76 -2.25,0.76 -1.75,-0.17 -2.15,1.05 -1.05,0.6 -2.31,-0.77 -2.1,-1.73 -0.89,-0.5 -0.55,-1.37 z",ID:"m 813.97,492.31 -1.18,0.05 -3.72,-1.98 2.61,-0.56 1.47,0.86 0.98,0.86 -0.16,0.77 z m 10.43,-0.28 -2.4,0.62 -0.34,-0.34 0.25,-0.96 1.21,-1.72 2.77,-1.12 0.28,0.56 0.05,0.86 -1.82,2.1 z m -18.32,-5.77 1.01,0.75 1.73,-0.23 0.7,1.2 -3.24,0.57 -1.94,0.38 -1.51,-0.02 0.96,-1.62 1.54,-0.02 0.75,-1.01 z m 14.03,-0.01 -0.41,1.56 -4.21,0.8 -3.73,-0.35 -0.01,-1.03 2.23,-0.59 1.76,0.84 1.87,-0.21 2.5,-1.02 z m -40.04,-3.69 5.37,0.28 0.62,-1.16 5.2,1.35 1.02,1.82 4.21,0.51 3.44,1.67 -3.2,1.07 -3.08,-1.13 -2.54,0.08 -2.91,-0.21 -2.62,-0.51 -3.25,-1.07 -2.06,-0.28 -1.17,0.35 -5.11,-1.16 -0.49,-1.21 -2.57,-0.21 1.92,-2.68 3.4,0.17 2.26,1.09 1.16,0.21 0.4,1.02 z m 73.18,-1.58 -1.44,1.91 -0.27,-2.11 0.5,-1.01 0.59,-0.95 0.64,0.82 -0.02,1.34 z m -20.96,-7.71 -1.05,0.93 -1.94,-0.51 -0.55,-1.2 2.84,-0.13 0.7,0.91 z m 9.04,-1.01 1.02,2.13 -2.37,-1.15 -2.34,-0.23 -1.58,0.18 -1.94,-0.1 0.67,-1.53 3.46,-0.12 3.08,0.82 z m 10.29,-5.42 0.78,4.51 2.9,1.67 2.34,-2.96 3.22,-1.68 2.49,0 2.4,0.97 2.08,1 3.01,0.53 0.05,9.1 0.05,9.16 -2.5,-2.31 -2.85,-0.57 -0.69,0.8 -3.55,0.09 1.19,-2.29 1.77,-0.78 -0.73,-3.05 -1.35,-2.35 -5.44,-2.37 -2.31,-0.23 -4.21,-2.58 -0.83,1.36 -1.08,0.25 -0.64,-1.02 -0.01,-1.21 -2.14,-1.37 3.02,-1 2,0.05 -0.24,-0.74 -4.1,-0.01 -1.11,-1.66 -2.5,-0.51 -1.19,-1.38 3.78,-0.67 1.44,-0.91 4.5,1.14 0.45,1.02 z m -24.96,-7.16 -2.25,2.76 -2.11,0.54 -2.7,-0.54 -4.67,0.14 -2.45,0.4 -0.4,2.11 2.51,2.48 1.51,-1.26 5.23,-0.95 -0.23,1.28 -1.22,-0.4 -1.22,1.63 -2.47,1.08 2.65,3.57 -0.51,0.96 2.52,3.22 -0.02,1.84 -1.5,0.82 -1.1,-0.98 1.36,-2.29 -2.75,1.08 -0.7,-0.77 0.36,-1.08 -2.02,-1.64 0.21,-2.72 -1.87,0.85 0.24,3.25 0.11,4 -1.78,0.41 -1.2,-0.82 0.8,-2.57 -0.43,-2.69 -1.18,-0.02 -0.87,-1.91 1.16,-1.83 0.4,-2.21 1.41,-4.2 0.59,-1.15 2.38,-2.07 2.19,0.82 3.54,0.39 3.22,-0.12 2.77,-2.02 0.49,0.61 z m 9.67,0.8 -0.15,2.43 -1.45,-0.27 -0.43,1.69 1.16,1.47 -0.79,0.33 -1.13,-1.76 -0.83,-3.56 0.56,-2.23 0.93,-1.01 0.2,1.52 1.66,0.24 0.27,1.15 z m -30.32,-1.94 3.14,2.58 -3.32,0.33 -0.94,1.9 0.12,2.52 -2.7,1.91 -0.06,2.77 -1.08,4.27 -0.41,-0.99 -3.19,1.26 -1.11,-1.71 -2,-0.16 -1.4,-0.89 -3.33,1 -1.02,-1.35 -1.84,0.15 -2.31,-0.32 -0.43,-3.74 -1.4,-0.77 -1.35,-2.38 -0.39,-2.44 0.33,-2.58 1.67,-1.85 0.47,1.86 1.92,1.57 1.81,-0.57 1.79,0.2 1.63,-1.41 1.34,-0.24 2.65,0.78 2.29,-0.59 1.44,-3.88 1.08,-0.97 0.97,-3.17 3.22,0 2.43,0.47 -1.59,2.52 2.06,2.64 -0.49,1.28 z m -33.81,21.42 -3.1,0.06 -2.36,-2.34 -3.6,-2.28 -1.2,-1.69 -2.12,-2.27 -1.39,-2.09 -2.13,-3.9 -2.46,-2.32 -0.82,-2.39 -1.03,-2.17 -2.53,-1.75 -1.47,-2.39 -2.11,-1.56 -2.92,-3.08 -0.25,-1.42 1.81,0.11 4.34,0.54 2.48,2.73 2.17,1.89 1.55,1.16 2.66,3 2.85,0.04 2.36,1.91 1.62,2.33 2.13,1.27 -1.12,2.27 1.61,0.97 1.01,0.07 0.48,1.94 0.98,1.56 2.06,0.25 1.36,1.76 -0.7,3.47 -0.16,4.32 z",IE:"m 458.13,284.54 0.46,3.36 -2.12,4.12 -4.97,2.68 -3.97,-0.68 2.27,-4.78 -1.46,-4.77 3.81,-3.75 2.12,-2.27 0.58,2.6 -0.58,2.57 1.74,-0.06 z",IL:"m 575.66,367.07 -0.49,1.05 -1.02,-0.46 -0.58,2.2 0.7,0.36 -0.71,0.46 -0.13,0.86 1.32,-0.45 0.07,1.27 -1.4,5.17 -1.84,-5.55 0.81,-1.08 -0.19,-0.19 0.74,-1.53 0.57,-2.5 0.4,-0.84 0.08,-0.03 0.94,0 0.26,-0.58 0.75,-0.05 0.04,1.37 -0.38,0.5 z",IN:"m 693.75,357.69 3.01,3.99 -0.28,2.74 1.11,1.71 -0.09,1.69 -2.01,-0.44 0.79,3.63 2.75,2.06 3.9,2.27 -1.78,1.46 -1.09,2.99 2.72,1.2 2.64,1.55 3.66,1.77 3.84,0.41 1.62,1.59 2.16,0.29 3.38,0.73 2.33,-0.05 0.32,-1.24 -0.37,-1.99 0.22,-1.35 1.71,-0.67 0.24,2.48 0.05,0.63 2.55,1.19 1.77,-0.49 2.36,0.21 2.29,-0.09 0.2,-1.93 -1.14,-1 2.26,-0.4 2.55,-2.35 3.23,-2.03 2.35,0.78 2,-1.34 1.32,1.98 -0.95,1.34 3.02,0.47 0.22,1.2 -0.99,0.58 0.23,1.93 -2,-0.57 -3.63,2.16 0.08,1.78 -1.54,2.6 -0.15,1.5 -1.25,2.52 -2.19,-0.7 -0.11,3.15 -0.63,1.03 0.3,1.28 -1.39,0.72 -1.47,-4.8 -0.78,0.01 -0.46,1.94 -1.53,-1.58 0.86,-1.73 1.26,-0.18 1.29,-2.59 -1.61,-0.53 -2.61,0.05 -2.66,-0.42 -0.25,-2.15 -1.34,-0.16 -2.22,-1.34 -0.99,2.11 2.02,1.63 -1.75,1.15 -0.62,1.12 1.72,0.82 -0.47,1.84 0.97,2.28 0.44,2.48 -0.41,1.1 -1.9,-0.04 -3.46,0.62 0.16,2.25 -1.5,1.76 -4.03,2 -3.14,3.46 -2.11,1.85 -2.79,1.91 0,1.34 -1.4,0.72 -2.53,1.03 -1.31,0.16 -0.84,2.2 0.58,3.75 0.15,2.37 -1.18,2.71 -0.02,4.83 -1.45,0.14 -1.27,2.15 0.85,0.93 -2.56,0.8 -0.94,1.92 -1.13,0.81 -2.65,-2.63 -1.3,-3.96 -1.08,-2.86 -0.98,-1.34 -1.49,-2.74 -0.69,-3.58 -0.49,-1.8 -2.55,-3.97 -1.16,-5.64 -0.84,-3.77 0.01,-3.58 -0.54,-2.8 -4.08,1.79 -1.98,-0.36 -3.66,-3.63 1.35,-1.09 -0.83,-1.18 -3.29,-2.58 1.87,-2.04 6.17,0.01 -0.56,-2.64 -1.57,-1.56 -0.32,-2.39 -1.84,-1.4 3.09,-3.3 3.26,0.24 2.93,-3.32 1.76,-3.26 2.72,-3.24 -0.04,-2.33 2.39,-1.91 -2.27,-1.63 -0.97,-2.25 -0.99,-2.95 1.37,-1.46 4.26,0.83 3.12,-0.51 z",IQ:"m 602.86,356.02 1.83,1.04 0.22,2 -1.42,1.17 -0.65,2.64 1.95,3.18 3.43,1.82 1.45,2.5 -0.46,2.37 0.89,0 0.03,1.73 1.55,1.69 -1.66,-0.15 -1.89,-0.27 -2.06,3.08 -5.21,-0.26 -7.9,-6.49 -4.18,-2.29 -3.38,-0.89 -1.13,-4.04 6.21,-3.5 1.06,-4.12 -0.27,-2.52 1.54,-0.86 1.44,-2.18 1.2,-0.55 3.26,0.46 0.99,0.89 1.34,-0.59 z",IR:"m 626.69,351.78 2.47,-0.68 1.99,-2.02 1.87,0.1 1.23,-0.66 2,0.33 3.1,1.79 2.24,0.39 3.2,3.09 2.09,0.12 0.25,2.91 -1.14,4.25 -0.77,2.45 1.22,0.49 -1.2,1.83 0.92,2.64 0.22,2.09 2.12,0.55 0.23,2.1 -2.54,2.93 1.38,1.68 1.13,1.93 2.68,1.4 0.08,2.77 1.34,0.51 0.23,1.44 -4.04,1.61 -1.06,3.6 -5.27,-0.93 -3.06,-0.71 -3.16,-0.41 -1.2,-3.81 -1.34,-0.56 -2.16,0.56 -2.82,1.51 -3.43,-1.03 -2.83,-2.41 -2.7,-0.9 -1.87,-3.01 -2.07,-4.27 -1.51,0.52 -1.78,-1.07 -1.05,1.26 -1.55,-1.69 -0.03,-1.73 -0.89,0 0.46,-2.37 -1.45,-2.5 -3.43,-1.82 -1.95,-3.18 0.65,-2.64 1.42,-1.17 -0.22,-2 -1.83,-1.04 -1.82,-4.14 -1.53,-2.83 0.54,-1.09 -0.87,-4.12 1.92,-1.03 0.44,1.37 1.42,1.66 1.92,0.47 1.02,-0.1 3.31,-2.66 1.05,-0.27 0.82,1.07 -0.96,1.78 1.75,1.86 0.69,-0.17 0.89,2.61 2.66,0.73 1.95,1.76 3.98,0.6 4.38,-0.92 z",IS:"m 434.82,212.68 -0.64,4.48 3.16,4.6 -3.64,5.01 -8.09,4.38 -2.42,1.15 -3.69,-0.93 -7.82,-2.01 2.76,-2.84 -6.1,-3.2 4.96,-1.28 -0.12,-1.97 -5.88,-1.57 1.89,-4.47 4.25,-1.03 4.37,4.68 4.26,-3.75 3.53,1.96 4.57,-3.71 z",IT:"m 519.02,348.13 -1.01,2.78 0.42,1.09 -0.59,1.79 -2.14,-1.31 -1.43,-0.38 -3.91,-1.79 0.39,-1.82 3.28,0.32 2.86,-0.39 2.13,-0.29 z m -17.69,-10.82 1.68,2.62 -0.39,4.81 -1.27,-0.23 -1.14,1.2 -1.06,-0.95 -0.11,-4.38 -0.64,-2.1 1.54,0.19 1.39,-1.16 z m 8.87,-21.6 4.01,1.05 -0.3,1.99 0.67,1.71 -2.23,-0.58 -2.28,1.42 0.16,1.97 -0.34,1.12 0.92,1.99 2.63,1.95 1.41,3.17 3.12,3.05 2.2,-0.02 0.68,0.83 -0.79,0.74 2.51,1.35 2.06,1.12 2.4,1.92 0.29,0.68 -0.52,1.31 -1.56,-1.7 -2.44,-0.6 -1.18,2.36 2.03,1.34 -0.33,1.88 -1.17,0.21 -1.5,3.06 -1.17,0.27 0.01,-1.08 0.57,-1.91 0.61,-0.77 -1.09,-2.09 -0.86,-1.83 -1.16,-0.46 -0.83,-1.58 -1.8,-0.67 -1.21,-1.49 -2.07,-0.24 -2.19,-1.68 -2.56,-2.45 -1.91,-2.19 -0.87,-3.8 -1.4,-0.45 -2.28,-1.29 -1.29,0.53 -1.62,1.8 -1.17,0.28 0.32,-1.68 -1.52,-0.49 -0.72,-3.04 0.97,-1.21 -0.83,-1.5 0.12,-1.13 1.21,0.86 1.35,-0.19 1.57,-1.36 0.49,0.64 1.34,-0.13 0.61,-1.63 2.07,0.51 1.24,-0.68 0.22,-1.67 1.7,0.58 0.33,-0.78 2.77,-0.71 0.6,1.39 z",JM:"m 258.01,411.21 1.89,0.26 1.49,0.71 0.46,0.8 -1.97,0.05 -0.85,0.49 -1.57,-0.47 -1.6,-1.07 0.33,-0.67 1.18,-0.2 z",JO:"m 575.17,368.12 0.49,-1.05 3.12,1.32 5.49,-3.54 1.13,4.04 -0.53,0.49 -5.62,1.65 2.8,3.26 -0.93,0.54 -0.46,1.09 -2.14,0.44 -0.67,1.16 -1.22,0.98 -3.12,-0.51 -0.09,-0.46 1.4,-5.17 -0.07,-1.27 0.42,-0.96 z",JP:"m 853.01,362.26 0.36,1.15 -1.58,2.03 -1.15,-1.07 -1.44,0.78 -0.74,1.95 -1.83,-0.95 0.02,-1.58 1.55,-2 1.59,0.39 1.15,-1.42 2.07,0.72 z m 17.77,-10.28 -1.06,2.78 0.49,1.73 -1.46,2.42 -3.58,1.6 -4.93,0.21 -4,3.84 -1.88,-1.29 -0.11,-2.52 -4.88,0.75 -3.32,1.59 -3.28,0.06 2.84,2.46 -1.87,5.61 -1.81,1.37 -1.36,-1.27 0.69,-2.96 -1.77,-0.96 -1.14,-2.28 2.65,-1.03 1.47,-2.11 2.82,-1.75 2.06,-2.33 5.58,-1.02 3,0.7 2.93,-6.17 1.87,1.67 4.11,-3.51 1.59,-1.38 1.76,-4.38 -0.48,-4.1 1.18,-2.33 2.98,-0.68 1.53,5.11 -0.08,2.94 -2.59,3.6 0.05,3.63 z m 8.23,-25.93 1.97,0.83 1.98,-1.65 0.62,4.35 -4.16,1.05 -2.46,3.76 -4.41,-2.58 -1.53,4.12 -3.12,0.06 -0.39,-3.74 1.39,-2.94 3,-0.21 0.82,-5.38 0.83,-3.09 3.29,4.12 2.17,1.3 z",KE:"m 590.44,466.03 1.66,2.29 -1.96,1.12 -0.69,1.16 -1.06,0.2 -0.39,1.97 -0.9,1.12 -0.55,1.86 -1.13,0.92 -4.02,-2.79 -0.2,-1.62 -10.16,-5.67 -0.48,-0.31 -0.02,-2.95 0.8,-1.13 1.38,-1.84 1.02,-2.03 -1.23,-3.2 -0.33,-1.4 -1.33,-1.94 1.72,-1.67 1.9,-1.84 1.46,0.47 0,1.57 0.96,0.91 1.95,0 3.55,2.38 0.88,0.02 0.66,-0.07 0.62,0.32 1.87,0.22 0.83,-1.16 2.56,-1.17 1.13,0.94 1.92,0 -2.45,3.17 z",KG:"m 674.47,333.36 0.63,-1.66 1.84,-0.54 4.62,1.31 0.43,-2.24 1.59,-0.8 4,1.61 1.02,-0.42 4.65,0.1 4.16,0.4 1.4,1.37 1.73,0.55 -0.39,0.86 -4.42,2.03 -1,1.48 -3.6,0.44 -1.06,2.35 -2.97,-0.49 -1.93,0.72 -2.68,1.72 0.39,0.85 -0.8,0.83 -5.3,0.55 -3.47,-1.17 -3.04,0.28 0.27,-2.1 3.05,0.61 1.03,-1.13 2.13,0.36 3.59,-2.64 -3.32,-1.96 -2,0.93 -2.07,-1.4 2.35,-2.43 z",KH:"m 765.69,433.85 -1.14,-1.48 -1.41,-2.94 -0.67,-3.45 1.8,-2.38 3.62,-0.55 2.63,0.41 2.31,1.13 1.27,-1.99 2.49,1.06 0.65,1.92 -0.35,3.42 -4.71,2.19 1.23,1.73 -2.94,0.2 -2.43,1.14 z",KP:"m 841.8,332.87 0.39,0.67 -1.06,-0.23 -1.22,1.27 -0.84,1.28 0.11,2.67 -1.45,0.81 -0.5,0.65 -1.06,1.08 -1.87,0.6 -1.21,0.98 -0.09,1.57 -0.33,0.4 1.12,0.58 1.59,1.58 -0.41,0.86 -1.19,0.23 -1.98,0.17 -1.09,1.6 -1.26,-0.12 -0.17,0.32 -1.36,-0.67 -0.34,0.66 -0.82,0.29 -0.1,-0.66 -0.73,-0.32 -0.75,-0.57 0.77,-1.57 0.66,-0.42 -0.25,-0.65 0.71,-1.94 -0.19,-0.59 -1.63,-0.4 -1.32,-0.97 2.28,-2.35 3.09,-1.98 1.93,-2.65 1.33,1.17 2.42,0.14 -0.44,-1.97 4.33,-1.63 1.12,-2.13 z",KR:"m 835.38,346.78 2.42,4.18 0.69,2.27 0.02,3.98 -1.05,1.88 -2.54,0.66 -2.24,1.41 -2.53,0.29 -0.31,-1.85 0.52,-2.57 -1.24,-3.6 2.08,-0.59 -1.92,-3 0.17,-0.32 1.26,0.12 1.09,-1.6 1.98,-0.17 1.19,-0.23 z",XK:"m 533.72,334.17 -0.13,0.77 -0.36,-0.03 -0.18,-1.37 -0.67,-0.38 -0.6,-1.02 0.52,-0.85 0.67,-0.28 0.39,-1.26 0.5,-0.22 0.4,0.54 0.53,0.24 0.36,0.61 0.46,0.18 0.55,0.7 0.4,-0.02 -0.32,0.93 -0.33,0.45 0.09,0.28 -0.63,0.14 z",KW:"m 610.02,376.01 0.58,1.41 -0.25,0.73 0.9,2.41 -1.98,0.08 -0.7,-1.51 -2.5,-0.31 2.06,-3.08 z",KZ:"m 674.47,333.36 -1.61,0.7 -3.69,2.61 -1.23,2.65 -1.05,0.02 -0.76,-1.75 -3.57,-0.12 -0.57,-3.06 -1.37,-0.03 0.21,-3.8 -3.35,-2.8 -4.81,0.3 -3.29,0.56 -2.68,-3.5 -2.29,-1.48 -4.35,-2.84 -0.52,-0.35 -7.22,2.35 0.11,14.13 -1.44,0.18 -1.96,-2.93 -1.9,-1.06 -3.18,0.79 -1.24,1.25 -0.16,-0.92 0.69,-1.57 -0.53,-1.32 -3.25,-1.3 -1.27,-3.47 -1.54,-0.98 -0.1,-1.28 2.73,0.37 0.11,-2.88 2.38,-0.64 2.45,0.59 0.51,-3.91 -0.5,-2.51 -2.81,0.2 -2.38,-1 -3.25,1.79 -2.61,0.86 -1.43,-0.66 0.29,-2.1 -1.79,-2.76 -2.08,0.11 -2.38,-2.83 1.62,-3.22 -0.82,-0.87 2.23,-4.77 2.89,2.53 0.35,-3.19 5.78,-4.85 4.38,-0.12 6.19,3.1 3.31,1.79 2.98,-1.87 4.44,-0.08 3.59,2.29 0.82,-1.31 3.93,0.19 0.71,-2.11 -4.55,-3.09 2.69,-2.23 -0.52,-1.25 2.69,-1.21 -2.02,-3.2 1.28,-1.62 10.49,-1.66 1.37,-1.19 7.02,-1.79 2.52,-2.04 5.04,1.06 0.88,5.01 2.93,-1.16 3.6,1.63 -0.23,2.58 2.69,-0.27 7.02,-4.49 -1.02,1.5 3.58,3.66 6.26,11.58 1.5,-2.33 3.86,2.56 4.03,-1.14 1.54,0.8 1.35,2.55 1.96,0.84 1.2,1.85 3.61,-0.58 1.49,2.63 -2.14,2.83 -2.33,0.4 -0.13,4.18 -1.56,1.86 -5.56,-1.35 -2.02,7.26 -1.44,0.89 -5.55,1.58 2.52,6.75 -1.92,1 0.22,2.16 -1.73,-0.55 -1.4,-1.37 -4.16,-0.4 -4.65,-0.1 -1.02,0.42 -4,-1.61 -1.59,0.8 -0.43,2.24 -4.62,-1.31 -1.84,0.54 z",LA:"m 770.52,423.46 0.91,-1.3 0.13,-2.44 -2.27,-2.53 -0.18,-2.87 -2.13,-2.38 -2.12,-0.2 -0.56,1.02 -1.65,0.08 -0.84,-0.51 -2.95,1.74 -0.07,-2.62 0.69,-3.11 -1.89,-0.13 -0.16,-1.78 -1.22,-0.92 0.6,-1.1 2.39,-1.94 0.25,0.7 1.49,0.08 -0.42,-3.43 1.45,-0.44 1.64,2.37 1.26,2.72 3.45,0.03 1.09,2.59 -1.79,0.77 -0.81,1.07 3.36,1.76 2.33,3.46 1.77,2.57 2.12,2.02 0.71,2.04 -0.51,2.88 -2.49,-1.06 -1.27,1.99 z",LB:"m 575.94,365.18 -0.75,0.05 -0.26,0.58 -0.94,0 1,-2.73 1.39,-2.38 0.06,-0.12 1.26,0.18 0.46,1.32 -1.53,1.27 z",LK:"m 704.82,442.62 -0.42,2.92 -1.17,0.8 -2.44,0.64 -1.34,-2.23 -0.49,-4.03 1.27,-4.58 1.93,1.57 1.31,1.98 z",LR:"m 453.88,451.47 -0.74,0.02 -2.89,-1.33 -2.54,-2.13 -2.39,-1.53 -1.89,-1.81 0.67,-0.9 0.15,-0.81 1.26,-1.53 1.31,-1.31 0.6,-0.07 0.73,-0.31 1.17,1.72 -0.18,1.13 0.54,0.6 0.8,0.01 0.57,-1.13 0.79,0.07 -0.13,0.82 0.28,1.36 -0.61,1.24 0.82,0.77 0.89,0.19 1.19,1.17 0.08,1.11 -0.27,0.35 z",LS:"m 556.75,548 0.98,0.96 -0.86,1.56 -0.48,1.05 -1.56,0.5 -0.52,1.04 -1,0.32 -2.1,-2.49 1.49,-2.03 1.52,-1.25 1.31,-0.64 z",LT:"m 539.24,282.34 -0.23,-1.22 0.3,-1.33 -1.24,-0.77 -2.93,-0.86 -0.6,-4.16 3.21,-1.55 4.7,0.33 2.76,-0.5 0.39,1.05 1.49,0.32 2.7,2.42 0.26,2.2 -2.3,1.57 -0.65,2.72 -3.04,1.8 -2.71,-0.04 -0.67,-1.46 z",LU:"m 492.45,301.54 0.56,0.98 -0.16,1.89 -0.81,0.1 -0.63,-0.38 0.31,-2.43 z",LV:"m 534.54,274 0.1,-3.81 1.38,-3.24 2.64,-1.78 2.22,3.88 2.25,-0.1 0.54,-3.99 2.39,-0.93 1.23,0.65 2.41,1.94 2.32,0.01 1.35,1.19 0.23,2.49 0.91,2.99 -3.02,1.93 -1.7,0.84 -2.7,-2.42 -1.49,-0.32 -0.39,-1.05 -2.76,0.5 -4.7,-0.33 z",LY:"m 517.14,398.18 -1.98,1.12 -1.58,-1.66 -4.43,-1.31 -1.23,-1.91 -2.22,-1.42 -1.31,0.56 -0.99,-1.71 -0.11,-1.32 -1.66,-2.26 1.12,-1.29 -0.25,-1.97 0.36,-1.72 -0.2,-1.44 0.49,-2.59 -0.15,-1.48 -0.91,-2.84 1.37,-0.75 0.24,-1.38 -0.3,-1.35 1.93,-1.26 0.86,-1.05 1.37,-0.95 0.16,-2.55 3.29,1.15 1.18,-0.29 2.34,0.56 3.72,1.47 1.31,2.92 2.52,0.64 3.95,1.36 2.99,1.61 1.37,-0.84 1.34,-1.49 -0.65,-2.51 0.88,-1.6 2.02,-1.55 1.93,-0.45 3.79,0.68 0.96,1.48 1.04,0.01 0.89,0.56 2.79,0.39 0.68,1.08 -1.01,1.57 0.43,1.39 -0.72,2 0.84,2.58 0,11.18 0,11.23 0,5.96 -3.22,0.01 -0.04,1.24 -11.18,-5.7 -11.19,-5.77 z",MA:"m 451.21,383.39 -0.03,-3.75 4.53,-2.36 2.8,-0.49 2.29,-0.86 1.08,-1.62 3.28,-1.29 0.12,-2.41 1.62,-0.29 1.27,-1.21 3.67,-0.56 0.51,-1.28 -0.74,-0.71 -0.97,-3.53 -0.16,-2.05 -1.06,-2.18 -1.22,-0.04 -2.9,-0.75 -2.67,0.24 -1.69,-1.46 -2.06,-0.02 -0.89,2.11 -1.87,3.51 -2.08,1.39 -2.81,1.53 -1.8,2.24 -0.38,1.74 -1.07,2.82 0.7,4.03 -2.34,2.68 -1.4,0.85 -2.21,2.17 -2.61,0.35 -1.3,1.12 3.62,0.01 8.75,0.03 0,0 0,0 -8.75,-0.03 -3.62,-0.01 z",MD:"m 550.14,309.7 0.67,-0.62 1.86,-0.42 2.07,1.31 1.15,0.16 1.27,1.12 -0.2,1.41 1.02,0.67 0.4,1.72 0.98,1.04 -0.19,0.6 0.52,0.42 -0.74,0.29 -1.66,-0.11 -0.27,-0.57 -0.59,0.33 0.2,0.72 -0.77,1.29 -0.49,1.37 -0.7,0.44 -0.51,-1.83 0.3,-1.72 -0.09,-1.79 -1.62,-2.44 -0.89,-1.75 -0.87,-1.24 z",ME:"m 531.02,332.48 -0.17,-0.72 -1.22,1.87 0.19,1.19 -0.59,-0.29 -0.78,-1.23 -1.22,-0.75 0.31,-0.64 0.41,-2.1 0.91,-0.89 0.53,-0.36 0.74,0.66 0.41,0.54 0.92,0.41 1.07,0.79 -0.23,0.33 -0.52,0.85 z",MG:"m 614.42,498.65 0.74,1.21 0.69,1.89 0.46,3.46 0.72,1.35 -0.28,1.38 -0.49,0.86 -0.96,-1.7 -0.52,0.86 0.53,2.14 -0.25,1.24 -0.77,0.67 -0.18,2.48 -1.1,3.42 -1.38,4.09 -1.74,5.67 -1.07,4.21 -1.27,3.55 -2.28,0.73 -2.45,1.31 -1.61,-0.79 -2.23,-1.1 -0.77,-1.62 -0.19,-2.71 -0.98,-2.42 -0.26,-2.17 0.5,-2.16 1.29,-0.52 0.01,-0.99 1.34,-2.26 0.25,-1.88 -0.65,-1.4 -0.53,-1.85 -0.22,-2.7 0.98,-1.63 0.37,-1.85 1.4,-0.1 1.57,-0.6 1.03,-0.52 1.24,-0.04 1.59,-1.65 2.31,-1.78 0.84,-1.44 -0.38,-1.23 1.19,0.35 1.55,-1.99 0.05,-1.72 0.93,-1.28 z",MK:"m 533.23,334.91 0.36,0.03 0.13,-0.77 1.65,-0.59 0.63,-0.14 0.96,-0.22 1.29,-0.06 1.41,1.21 0.2,2.47 -0.54,0.12 -0.46,0.65 -1.52,-0.07 -1.07,0.81 -1.83,0.32 -1.16,-0.9 -0.4,-1.59 z",ML:"m 441.38,422.47 0.94,-0.52 0.47,-1.7 0.89,-0.07 1.96,0.8 1.58,-0.57 1.08,0.19 0.43,-0.64 11.25,-0.04 0.62,-2.03 -0.49,-0.36 -1.35,-12.68 -1.35,-13.06 4.29,-0.05 9.46,6.65 9.46,6.55 0.66,1.39 1.75,0.85 1.3,0.48 0.03,1.88 3.11,-0.29 0.01,6.75 -1.54,1.94 -0.24,1.79 -2.49,0.45 -3.82,0.25 -1.04,1.03 -1.8,0.11 -1.79,0.01 -0.7,-0.55 -1.55,0.41 -2.62,1.2 -0.53,0.9 -2.18,1.28 -0.38,0.74 -1.17,0.58 -1.36,-0.38 -0.77,0.7 -0.41,1.96 -2.23,2.36 0.07,0.96 -0.77,1.21 0.19,1.64 -1.16,0.42 -0.65,0.36 -0.44,-1.21 -0.81,0.32 -0.48,-0.06 -0.52,0.83 -2.16,-0.03 -0.78,-0.42 -0.36,0.26 -0.86,-0.82 0.15,-0.84 -0.35,-0.34 -0.6,0.28 0.11,-0.92 0.58,-0.73 -1.15,-1.19 -0.34,-0.79 -0.62,-0.62 -0.56,-0.08 -0.67,0.4 -0.91,0.38 -0.77,0.62 -1.2,-0.23 -0.78,-0.72 -0.46,-0.1 -0.73,0.38 -0.45,0.01 -0.16,-1.05 0.13,-0.89 -0.24,-1.1 -1.05,-0.81 -0.55,-1.64 z",MM:"m 754.61,406.2 -1.64,1.28 -1.98,0.14 -1.28,3.19 -1.18,0.53 1.36,2.57 1.78,2.13 1.14,1.92 -1.02,2.52 -0.97,0.53 0.67,1.45 1.87,2.28 0.32,1.6 -0.05,1.33 1.1,2.6 -1.54,2.65 -1.36,2.91 -0.27,-2.1 0.86,-2.18 -0.94,-1.68 0.23,-3.11 -1.14,-1.48 -0.91,-3.44 -0.51,-3.66 -1.21,-2.4 -1.85,1.46 -3.19,2.06 -1.57,-0.26 -1.74,-0.67 0.97,-3.61 -0.58,-2.74 -2.2,-3.39 0.34,-1.07 -1.64,-0.38 -1.99,-2.42 -0.18,-2.41 0.98,0.46 0.05,-2.15 1.39,-0.72 -0.3,-1.28 0.63,-1.03 0.11,-3.15 2.19,0.7 1.25,-2.52 0.15,-1.5 1.54,-2.6 -0.08,-1.78 3.63,-2.16 2,0.57 -0.23,-1.93 0.99,-0.58 -0.22,-1.2 1.64,-0.24 0.94,1.86 1.22,0.75 0.09,2.4 -0.12,2.57 -2.65,2.58 -0.34,3.63 2.96,-0.5 0.67,2.8 1.78,0.59 -0.82,2.5 2.08,1.13 1.22,0.55 2.05,-0.87 0.09,1.24 -2.39,1.94 -0.6,1.1 z",MN:"m 721.54,305.13 2.96,-0.74 5.35,-3.74 4.27,-2.07 2.43,1.35 2.93,0.06 1.87,2.05 2.8,0.15 4.06,1.09 2.72,-3.03 -1.14,-2.6 2.91,-4.66 3.14,1.87 2.54,0.53 3.3,1.15 0.53,3.32 3.99,1.84 2.65,-0.81 3.54,-0.57 2.81,0.58 2.75,2.09 1.7,2.2 2.6,-0.04 3.53,0.69 2.58,-1.06 3.69,-0.71 4.11,-3.06 1.68,0.47 1.47,1.46 3.34,-0.36 -1.36,3.25 -1.98,4.22 0.72,1.71 1.59,-0.53 2.76,0.65 2.16,-1.54 2.25,1.33 2.54,2.89 -0.31,1.45 -2.21,-0.46 -4.07,0.54 -1.98,1.16 -2.05,2.66 -4.28,1.55 -2.79,2.1 -2.88,-0.8 -1.58,-0.36 -1.47,2.54 0.89,1.5 0.46,1.28 -1.97,1.3 -2.01,2.05 -3.27,1.33 -4.21,0.15 -4.53,1.31 -3.26,2.01 -1.24,-1.16 -3.39,0 -4.15,-2.29 -2.77,-0.57 -3.73,0.53 -5.79,-0.85 -3.09,0.09 -1.64,-2.27 -1.28,-3.57 -1.73,-0.43 -3.39,-2.45 -3.78,-0.55 -3.33,-0.68 -1.01,-1.73 1.08,-4.73 -1.93,-3.31 -4,-1.57 -2.36,-2.23 z", -MR:"m 441.38,422.47 -1.85,-1.98 -1.7,-2.13 -1.86,-0.77 -1.34,-0.85 -1.57,0.03 -1.36,0.63 -1.4,-0.25 -0.96,0.93 -0.24,-1.56 0.78,-1.44 0.35,-2.75 -0.31,-2.91 -0.34,-1.47 0.28,-1.47 -0.72,-1.42 -1.48,-1.28 0.61,-1 10.98,0.02 -0.53,-4.35 0.69,-1.55 2.62,-0.27 -0.09,-7.86 9.21,0.17 0,-4.73 10.55,7.53 -4.29,0.05 1.35,13.06 1.35,12.68 0.49,0.36 -0.62,2.03 -11.25,0.04 -0.43,0.64 -1.08,-0.19 -1.58,0.57 -1.96,-0.8 -0.89,0.07 -0.47,1.7 z",MW:"m 572.4,495.94 -0.78,2.16 0.78,3.72 0.98,-0.04 1.01,0.92 1.17,2.08 0.24,3.72 -1.21,0.61 -0.86,2.01 -1.83,-1.79 -0.2,-2.04 0.59,-1.35 -0.17,-1.15 -1.1,-0.73 -0.78,0.26 -1.61,-1.38 -1.47,-0.74 0.85,-2.66 0.88,-0.99 -0.54,-2.36 0.56,-2.3 0.48,-0.77 -0.71,-2.4 -1.32,-1.26 2.74,0.52 0.57,0.78 0.95,1.32 z",MX:"m 203.14,388.97 -1.09,2.71 -0.49,2.21 -0.21,4.08 -0.27,1.47 0.49,1.64 0.87,1.47 0.56,2.31 1.86,2.21 0.65,1.69 1.1,1.45 2.98,0.79 1.16,1.22 2.46,-0.82 2.13,-0.29 2.1,-0.53 1.77,-0.51 1.78,-1.2 0.67,-1.73 0.23,-2.49 0.49,-0.87 1.89,-0.79 2.97,-0.69 2.48,0.1 1.7,-0.25 0.67,0.63 -0.09,1.44 -1.51,1.77 -0.66,1.81 0.51,0.51 -0.42,1.28 -0.7,2.29 -0.71,-0.75 -0.59,0.05 -0.53,0.04 -1,1.77 -0.51,-0.35 -0.34,0.14 0.02,0.43 -2.59,-0.03 -2.62,0 0,1.65 -1.27,0 1.04,0.98 1.04,0.67 0.31,0.63 0.46,0.18 -0.08,0.98 -3.59,0.01 -1.35,2.36 0.39,0.54 -0.32,0.68 -0.07,0.84 -3.17,-3.11 -1.45,-0.94 -2.29,-0.76 -1.56,0.21 -2.26,1.09 -1.41,0.29 -1.98,-0.76 -2.1,-0.56 -2.62,-1.33 -2.1,-0.41 -3.18,-1.35 -2.34,-1.4 -0.71,-0.78 -1.57,-0.17 -2.87,-0.93 -1.17,-1.34 -3.01,-1.67 -1.4,-1.87 -0.67,-1.45 0.93,-0.29 -0.29,-0.85 0.65,-0.77 0.01,-1.04 -0.94,-1.34 -0.26,-1.2 -0.94,-1.52 -2.47,-3.02 -2.82,-2.39 -1.36,-1.91 -2.41,-1.26 -0.51,-0.76 0.43,-1.92 -1.43,-0.73 -1.66,-1.52 -0.7,-2.19 -1.51,-0.26 -1.62,-1.66 -1.32,-1.55 -0.12,-1 -1.51,-2.42 -0.99,-2.48 0.04,-1.25 -2.03,-1.29 -0.93,0.14 -1.6,-0.9 -0.45,1.33 0.46,1.56 0.27,2.43 0.97,1.33 2.08,2.21 0.46,0.75 0.43,0.22 0.36,1.1 0.5,-0.05 0.57,2.04 0.85,0.8 0.59,1.11 1.77,1.6 0.93,2.89 0.83,1.35 0.78,1.44 0.15,1.62 1.35,0.1 1.13,1.39 1.02,1.36 -0.07,0.54 -1.18,1.11 -0.5,-0.01 -0.74,-1.85 -1.83,-1.73 -2.02,-1.48 -1.44,-0.78 0.09,-2.25 -0.42,-1.68 -1.34,-0.96 -1.93,-1.39 -0.37,0.4 -0.7,-0.82 -1.73,-0.75 -1.65,-1.83 0.2,-0.24 1.15,0.18 1.04,-1.18 0.11,-1.43 -2.16,-2.27 -1.64,-0.89 -1.04,-2.01 -1.04,-2.12 -1.3,-2.61 -1.14,-2.96 3.19,-0.25 3.56,-0.36 -0.26,0.64 4.23,1.61 6.4,2.31 5.58,-0.03 2.22,0 0,-1.35 4.86,0 1.02,1.17 1.44,1.03 1.66,1.43 0.93,1.69 0.7,1.76 1.45,0.97 2.33,0.96 1.76,-2.53 2.3,-0.06 1.97,1.28 1.41,2.18 0.97,1.86 1.65,1.8 0.62,2.19 0.79,1.47 2.18,0.96 1.99,0.68 z",MY:"m 758.9,446.32 0.22,1.44 1.85,-0.33 0.92,-1.15 0.64,0.26 1.66,1.69 1.18,1.87 0.16,1.88 -0.3,1.27 0.27,0.96 0.21,1.65 0.99,0.77 1.1,2.46 -0.05,0.94 -1.99,0.19 -2.65,-2.06 -3.32,-2.21 -0.33,-1.42 -1.62,-1.87 -0.39,-2.31 -1.01,-1.52 0.31,-2.04 -0.62,-1.19 0.49,-0.5 2.28,1.22 z m 49.19,4.83 -2.06,0.95 -2.43,-0.47 -3.22,0 -0.97,3.17 -1.08,0.97 -1.44,3.88 -2.29,0.59 -2.65,-0.78 -1.34,0.24 -1.63,1.41 -1.79,-0.2 -1.81,0.57 -1.92,-1.57 -0.47,-1.86 2.05,0.96 2.17,-0.52 0.56,-2.36 1.2,-0.53 3.36,-0.6 2.01,-2.21 1.38,-1.77 1.28,1.45 0.59,-0.95 1.34,0.09 0.16,-1.78 0.13,-1.38 2.16,-1.95 1.41,-2.19 1.13,-0.01 1.44,1.42 0.13,1.22 1.85,0.78 2.34,0.84 -0.2,1.1 -1.88,0.14 0.49,1.35 z",MZ:"m 572.4,495.94 2.11,-0.23 3.37,0.8 0.74,-0.36 1.95,-0.07 1,-0.85 1.68,0.04 3.06,-1.1 2.23,-1.64 0.46,1.27 -0.12,2.83 0.35,2.5 0.11,4.48 0.49,1.4 -0.83,2.07 -1.09,2.01 -1.79,1.8 -2.56,1.11 -3.16,1.41 -3.17,3.15 -1.08,0.54 -1.96,2.09 -1.15,0.69 -0.24,2.12 1.33,2.25 0.55,1.76 0.04,0.9 0.49,-0.15 -0.08,2.96 -0.45,1.41 0.66,0.52 -0.42,1.27 -1.17,1.09 -2.31,1.04 -3.37,1.66 -1.23,1.15 0.24,1.3 0.71,0.21 -0.24,1.64 -2.12,-0.02 -0.24,-1.38 -0.42,-1.39 -0.24,-1.11 0.5,-3.43 -0.73,-2.17 -1.34,-4.26 2.95,-3.41 0.74,-2.15 0.43,-0.27 0.31,-1.74 -0.45,-0.88 0.12,-2.2 0.55,-2.04 -0.01,-3.69 -1.45,-0.94 -1.34,-0.21 -0.6,-0.72 -1.3,-0.61 -2.34,0.06 -0.18,-1.08 -0.27,-2.05 8.51,-2.38 1.61,1.38 0.78,-0.26 1.1,0.73 0.17,1.15 -0.59,1.35 0.2,2.04 1.83,1.79 0.86,-2.01 1.21,-0.61 -0.24,-3.72 -1.17,-2.08 -1.01,-0.92 -0.98,0.04 -0.78,-3.72 z",NA:"m 521.33,546.79 -2.08,-2.39 -1.1,-2.3 -0.62,-3.03 -0.69,-2.25 -0.94,-4.72 -0.06,-3.63 -0.36,-1.64 -1.09,-1.24 -1.45,-2.47 -1.47,-3.57 -0.61,-1.85 -2.29,-2.87 -0.17,-2.25 1.35,-0.55 1.68,-0.5 1.82,0.09 1.67,1.32 0.42,-0.21 11.37,-0.12 1.94,1.4 6.79,0.41 5.15,-1.19 2.3,-0.67 1.82,0.17 1.1,0.66 0.03,0.24 -1.58,0.66 -0.86,0.01 -1.78,1.15 -1.08,-1.21 -4.32,1.03 -2.09,0.09 -0.08,10.57 -2.76,0.11 0,8.86 -0.01,11.52 -2.5,1.63 -1.5,0.23 -1.77,-0.6 -1.26,-0.23 -0.47,-1.36 -1.11,-0.87 z",NC:"m 940.33,523.73 2.3,1.86 1.45,1.38 -1.06,0.73 -1.55,-0.82 -2,-1.35 -1.81,-1.59 -1.85,-2.1 -0.39,-1.01 1.2,0.05 1.58,1.01 1.23,1.01 z",NE:"m 481.54,430.13 0.07,-1.95 -3.24,-0.65 -0.08,-1.38 -1.58,-1.87 -0.38,-1.31 0.22,-1.4 1.8,-0.11 1.04,-1.03 3.82,-0.25 2.49,-0.45 0.24,-1.79 1.54,-1.94 -0.01,-6.75 3.95,-1.32 8.12,-5.85 9.61,-5.75 4.43,1.31 1.58,1.66 1.98,-1.12 0.69,4.67 1.05,0.78 0.05,0.95 1.16,1.02 -0.61,1.28 -1.08,5.98 -0.14,3.79 -3.58,2.74 -1.21,3.8 1.17,1.06 -0.01,1.85 1.8,0.07 -0.28,1.34 -0.79,0.17 -0.09,0.9 -0.53,0.07 -1.89,-3.13 -0.66,-0.12 -2.19,1.6 -2.17,-0.83 -1.51,-0.17 -0.81,0.4 -1.65,-0.08 -1.65,1.22 -1.43,0.07 -3.39,-1.48 -1.33,0.7 -1.43,-0.05 -1.05,-1.08 -2.82,-1.07 -3.01,0.34 -0.73,0.62 -0.39,1.65 -0.81,1.15 -0.19,2.54 -2.14,-1.64 -1.01,0.01 z",NG:"m 499.34,450.33 -2.91,1 -1.07,-0.14 -1.08,0.62 -2.24,-0.06 -1.5,-1.75 -0.92,-2.02 -1.99,-1.84 -2.11,0.03 -2.47,0 0.16,-4.53 -0.07,-1.79 0.53,-1.77 0.86,-0.87 1.36,-1.75 -0.29,-0.76 0.55,-1.14 -0.63,-1.68 0.11,-0.95 0.19,-2.54 0.81,-1.15 0.39,-1.65 0.73,-0.62 3.01,-0.34 2.82,1.07 1.05,1.08 1.43,0.05 1.33,-0.7 3.39,1.48 1.43,-0.07 1.65,-1.22 1.65,0.08 0.81,-0.4 1.51,0.17 2.17,0.83 2.19,-1.6 0.66,0.12 1.89,3.13 0.53,-0.07 1.11,1.14 -0.31,0.51 -0.15,0.95 -2.36,2.2 -0.74,1.81 -0.4,1.47 -0.59,0.63 -0.57,1.97 -1.5,1.16 -0.43,1.42 -0.63,1.14 -0.26,1.16 -1.93,0.95 -1.57,-1.15 -1.07,0.04 -1.67,1.64 -0.81,0.03 -1.33,2.7 z",NI:"m 235.18,432.56 -0.97,-0.9 -1.31,-1.15 -0.62,-0.96 -1.18,-0.89 -1.41,-1.29 0.31,-0.44 0.47,0.43 0.21,-0.21 0.87,-0.11 0.35,-0.66 0.41,-0.02 -0.06,-1.41 0.66,-0.07 0.59,0.02 0.6,-0.76 0.83,0.58 0.29,-0.36 0.51,-0.34 0.98,-0.79 0.05,-0.6 0.27,0.03 0.36,-0.69 0.29,-0.08 0.48,0.44 0.56,0.13 0.62,-0.37 0.71,0 0.97,-0.38 0.39,-0.39 0.96,0.06 -0.24,0.28 -0.14,0.64 0.28,1.05 -0.64,0.98 -0.3,1.15 -0.1,1.27 0.16,0.73 0.07,1.29 -0.43,0.28 -0.26,1.22 0.19,0.75 -0.58,0.73 0.14,0.76 0.42,0.47 -0.67,0.6 -0.82,-0.19 -0.47,-0.58 -0.89,-0.24 -0.64,0.37 -1.85,-0.75 z",NL:"m 492.53,286.23 2.33,0.13 0.53,1.58 -0.7,4.23 -0.71,1.71 -1.69,0 0.48,4.69 -1.55,-1.04 -1.77,-1.95 -2.6,0.93 -2.05,-0.35 1.44,-1.24 2.46,-6.74 z",NO:"m 554.48,175.86 8.77,6.24 -3.61,2.23 3.07,5.11 -4.77,3.19 -2.26,0.72 1.19,-5.59 -3.6,-3.25 -4.35,2.78 -1.38,5.85 -2.67,3.44 -3.01,-1.87 -3.66,0.38 -3.12,-4.15 -1.68,2.09 -1.74,0.32 -0.41,5.08 -5.28,-1.22 -0.74,4.22 -2.69,-0.03 -1.85,5.24 -2.8,7.87 -4.35,9.5 1.02,2.23 -0.98,2.55 -2.78,-0.11 -1.82,5.91 0.17,8.04 1.79,2.98 -0.93,6.73 -2.33,3.81 -1.24,3.15 -1.88,-3.35 -5.54,6.27 -3.74,1.24 -3.88,-2.71 -1,-5.86 -0.89,-13.26 2.58,-3.88 7.4,-5.18 5.54,-6.59 5.13,-9.3 6.74,-13.76 4.7,-5.67 7.71,-9.89 6.15,-3.59 4.61,0.44 4.27,-6.99 5.11,0.38 5.03,-1.74 z",NP:"m 722.58,382.7 -0.22,1.35 0.37,1.99 -0.32,1.24 -2.33,0.05 -3.38,-0.73 -2.16,-0.29 -1.62,-1.59 -3.84,-0.41 -3.66,-1.77 -2.64,-1.55 -2.72,-1.2 1.09,-2.99 1.78,-1.46 1.16,-0.78 2.25,1 2.83,2.09 1.57,0.46 0.94,1.53 2.18,0.63 2.28,1.39 3.17,0.73 z",NZ:"m 960.63,588.88 0.64,1.53 1.99,-1.5 0.81,1.57 0,1.57 -1.04,1.74 -1.83,2.8 -1.43,1.54 1.03,1.86 -2.16,0.05 -2.4,1.46 -0.75,2.57 -1.59,4.03 -2.2,1.8 -1.4,1.16 -2.58,-0.09 -1.82,-1.34 -3.05,-0.28 -0.47,-1.48 1.51,-2.96 3.53,-3.87 1.81,-0.73 2.01,-1.47 2.4,-2.01 1.68,-1.98 1.25,-2.81 1.06,-0.95 0.42,-2.07 1.97,-1.7 0.61,1.56 z m 4.46,-17.02 2.03,3.67 0.06,-2.38 1.27,0.95 0.42,2.65 2.26,1.15 1.89,0.28 1.6,-1.35 1.42,0.41 -0.68,3.15 -0.85,2.09 -2.14,-0.07 -0.75,1.1 0.26,1.56 -0.41,0.68 -1.06,1.97 -1.39,2.53 -2.17,1.49 -0.48,-0.98 -1.17,-0.54 1.62,-3.04 -0.92,-2.01 -3.02,-1.45 0.08,-1.31 2.03,-1.25 0.47,-2.74 -0.13,-2.28 -1.14,-2.34 0.08,-0.61 -1.34,-1.43 -2.21,-3.04 -1.17,-2.41 1.04,-0.27 1.53,1.89 2.18,0.89 0.79,3.04 z",OM:"m 640.54,403.43 -1.05,2.04 -1.27,-0.16 -0.58,0.71 -0.45,1.5 0.34,1.98 -0.26,0.36 -1.29,-0.01 -1.75,1.1 -0.27,1.43 -0.64,0.62 -1.74,-0.02 -1.1,0.74 0.01,1.18 -1.36,0.81 -1.55,-0.27 -1.88,0.98 -1.3,0.16 -0.92,-2.04 -2.19,-4.84 8.41,-2.96 1.87,-5.97 -1.29,-2.14 0.07,-1.22 0.82,-1.26 0.01,-1.25 1.27,-0.6 -0.5,-0.42 0.23,-2 1.43,-0.01 1.26,2.09 1.57,1.11 2.06,0.4 1.66,0.55 1.27,1.74 0.76,1 1,0.38 -0.01,0.67 -1.02,1.79 -0.45,0.84 -1.17,0.99 z m -6.92,-14.54 -0.37,0.56 -0.53,-1.06 0.82,-1.06 0.35,0.27 -0.27,1.29 z",PA:"m 257.13,443.46 -0.93,-0.81 -0.6,-1.52 0.69,-0.75 -0.71,-0.19 -0.52,-0.93 -1.4,-0.78 -1.23,0.18 -0.56,0.98 -1.14,0.7 -0.61,0.1 -0.27,0.59 1.33,1.52 -0.76,0.36 -0.41,0.42 -1.3,0.14 -0.49,-1.68 -0.36,0.48 -0.93,-0.16 -0.56,-1.14 -1.15,-0.18 -0.73,-0.33 -1.2,0 -0.09,0.61 -0.32,-0.42 0.15,-0.56 0.23,-0.57 -0.11,-0.51 0.42,-0.34 -0.58,-0.42 -0.02,-1.13 1.09,-0.25 1,1.01 -0.06,0.6 1.12,0.12 0.27,-0.23 0.77,0.7 1.38,-0.21 1.19,-0.71 1.7,-0.57 0.96,-0.84 1.55,0.16 -0.11,0.28 1.57,0.1 1.25,0.49 0.91,0.84 1.06,0.78 -0.34,0.42 0.65,1.65 -0.53,0.84 -0.91,-0.2 z",PE:"m 280.38,513.39 -0.75,1.51 -1.44,0.74 -2.81,-1.68 -0.25,-1.2 -5.55,-2.92 -5.03,-3.17 -2.17,-1.78 -1.16,-2.37 0.46,-0.83 -2.37,-3.75 -2.77,-5.24 -2.64,-5.62 -1.15,-1.29 -0.88,-2.06 -2.18,-1.84 -2,-1.13 0.91,-1.25 -1.36,-2.67 0.87,-1.95 2.24,-1.77 0.33,1.17 -0.8,0.66 0.07,1.02 1.16,-0.22 1.14,0.3 1.17,1.41 1.59,-1.15 0.53,-1.88 1.72,-2.43 3.37,-1.1 3.06,-2.92 0.87,-1.81 -0.39,-2.11 0.75,-0.27 1.86,1.32 0.89,1.32 1.3,0.72 1.65,2.92 2.09,0.35 1.55,-0.74 1.01,0.48 1.68,-0.24 2.15,1.31 -1.81,2.84 0.84,0.06 1.4,1.49 -2.53,-0.13 -0.37,0.42 -2.3,0.53 -3.2,1.91 -0.21,1.3 -0.71,0.98 0.28,1.51 -1.7,0.81 0,1.19 -0.74,0.51 1.17,2.53 1.56,1.72 -0.59,1.21 1.86,0.16 1.06,1.51 2.47,0.07 2.3,-1.66 -0.19,4.3 1.28,0.33 1.58,-0.49 2.43,4.58 -0.61,0.96 -0.13,2.02 -0.06,2.44 -1.1,1.44 0.51,1.07 -0.65,0.97 1.21,2.44 z",PG:"m 912.57,482.67 -0.79,0.28 -1.21,-1.08 -1.23,-1.78 -0.6,-2.13 0.39,-0.27 0.3,0.83 0.85,0.63 1.36,1.77 1.32,0.95 -0.39,0.8 z m -10.93,-3.75 -1.47,0.23 -0.44,0.79 -1.53,0.68 -1.44,0.66 -1.49,0 -2.3,-0.81 -1.6,-0.78 0.23,-0.87 2.51,0.41 1.53,-0.22 0.42,-1.34 0.4,-0.07 0.27,1.49 1.6,-0.21 0.79,-0.96 1.57,-1 -0.31,-1.65 1.68,-0.05 0.57,0.46 -0.06,1.55 -0.93,1.69 z m -13.43,5.35 2.5,1.84 1.82,2.99 1.61,-0.09 -0.11,1.25 2.17,0.48 -0.84,0.53 2.98,1.19 -0.31,0.82 -1.86,0.2 -0.69,-0.73 -2.41,-0.32 -2.83,-0.43 -2.18,-1.8 -1.59,-1.55 -1.46,-2.46 -3.66,-1.23 -2.38,0.8 -1.71,0.93 0.36,2.08 -2.2,0.97 -1.57,-0.47 -2.9,-0.12 -0.05,-9.16 -0.05,-9.1 4.87,1.92 5.18,1.6 1.93,1.43 1.56,1.41 0.43,1.65 4.67,1.73 0.68,1.49 -2.58,0.3 0.62,1.85 z m 16.67,-8.09 -0.88,0.74 -0.53,-1.65 -0.65,-1.08 -1.27,-0.91 -1.6,-1.19 -2.02,-0.82 0.78,-0.67 1.51,0.78 0.95,0.61 1.18,0.67 1.12,1.17 1.07,0.89 0.34,1.46 z",PH:"m 829.84,440.11 0.29,1.87 0.17,1.58 -0.96,2.57 -1.02,-2.86 -1.31,1.42 0.9,2.06 -0.8,1.31 -3.3,-1.63 -0.79,-2.03 0.86,-1.33 -1.78,-1.33 -0.88,1.17 -1.32,-0.11 -2.08,1.57 -0.46,-0.82 1.1,-2.37 1.77,-0.79 1.53,-1.06 0.99,1.27 2.13,-0.77 0.46,-1.26 1.98,-0.08 -0.17,-2.18 2.27,1.34 0.24,1.42 0.18,1.04 z m -6.71,-5.26 -1.01,0.93 -0.88,1.79 -0.88,0.84 -1.73,-1.95 0.58,-0.76 0.7,-0.79 0.31,-1.76 1.55,-0.17 -0.45,1.91 2.08,-2.74 -0.27,2.7 z m -15.36,2.72 -3.73,2.67 1.38,-1.97 2.03,-1.74 1.68,-1.96 1.47,-2.82 0.5,2.31 -1.85,1.56 -1.48,1.95 z m 9.48,-7.3 1.68,0.88 1.78,0 -0.05,1.19 -1.3,1.2 -1.78,0.85 -0.1,-1.32 0.2,-1.45 -0.43,-1.35 z m 10.14,-0.77 0.79,3.18 -2.16,-0.75 0.06,0.95 0.69,1.75 -1.33,0.63 -0.12,-1.99 -0.84,-0.15 -0.44,-1.72 1.65,0.23 -0.04,-1.08 -1.71,-2.18 2.69,0.06 0.76,1.07 z m -11.14,-2.59 -0.74,2.47 -1.2,-1.42 -1.43,-2.18 2.4,0.1 0.97,1.03 z m -0.58,-15.74 1.73,0.84 0.86,-0.76 0.25,0.75 -0.46,1.22 0.96,2.09 -0.74,2.42 -1.65,0.96 -0.44,2.33 0.63,2.29 1.49,0.32 1.24,-0.34 3.5,1.59 -0.27,1.56 0.92,0.69 -0.29,1.32 -2.18,-1.4 -1.04,-1.5 -0.72,1.05 -1.79,-1.72 -2.55,0.42 -1.4,-0.63 0.14,-1.19 0.88,-0.73 -0.84,-0.67 -0.36,1.04 -1.38,-1.65 -0.42,-1.26 -0.1,-2.77 1.13,0.96 0.29,-4.55 0.91,-2.66 1.7,-0.02 z",PL:"m 517.61,297.22 -1.15,-2.86 0.22,-1.56 -0.7,-2.45 -1.01,-1.65 0.78,-1.25 -0.66,-2.39 1.92,-1.39 4.37,-2.22 3.54,-1.64 2.79,0.82 0.21,1.18 2.71,0.06 3.45,0.55 5.16,-0.08 1.44,0.52 0.67,1.46 0.12,2.09 0.78,1.78 -0.02,1.85 -1.68,0.94 0.87,2.12 0.05,2.01 1.41,3.89 -0.3,1.24 -1.39,0.51 -2.55,3.61 0.72,1.92 -0.61,-0.25 -2.66,-1.64 -2.02,0.6 -1.32,-0.44 -1.66,0.92 -1.41,-1.52 -1.16,0.58 -0.16,-0.26 -1.29,-2.13 -2.08,-0.26 -0.27,-1.37 -1.92,-0.49 -0.42,1.13 -1.52,-0.9 0.17,-1.21 -2.09,-0.39 z",PK:"m 686.24,352.01 2.07,1.63 0.83,2.66 4.61,1.39 -2.71,2.86 -3.12,0.51 -4.26,-0.83 -1.37,1.46 0.99,2.95 0.97,2.25 2.27,1.63 -2.39,1.91 0.04,2.33 -2.72,3.24 -1.76,3.26 -2.93,3.32 -3.26,-0.24 -3.09,3.3 1.84,1.4 0.32,2.39 1.57,1.56 0.56,2.64 -6.17,-0.01 -1.87,2.04 -2.05,-0.77 -0.84,-2.2 -2.17,-2.34 -5.16,0.58 -4.56,0.05 -3.95,0.44 1.06,-3.6 4.04,-1.61 -0.23,-1.44 -1.34,-0.51 -0.08,-2.77 -2.68,-1.4 -1.13,-1.93 -1.38,-1.68 4.69,1.64 2.81,-0.48 1.67,0.4 0.57,-0.7 1.95,0.28 3.65,-1.33 0.1,-2.75 1.56,-1.84 2.09,0 0.3,-0.91 2.15,-0.43 1.03,0.3 1.1,-0.92 -0.15,-1.98 1.19,-2 1.78,-0.85 -1.1,-2.22 2.67,0.11 0.77,-1.22 -0.12,-1.3 1.4,-1.43 -0.33,-1.7 -0.66,-1.46 1.64,-1.51 3.01,-0.73 3.22,-0.4 1.42,-0.65 z",PR:"m 289.66,411.14 1.43,0.26 0.51,0.58 -0.72,0.74 -2.11,-0.02 -1.64,0.1 -0.16,-1.25 0.39,-0.43 z",PS:"m 575.17,368.12 0,2.01 -0.42,0.96 -1.32,0.45 0.13,-0.86 0.71,-0.46 -0.7,-0.36 0.58,-2.2 z",PT:"m 450.17,334.81 1.02,-0.95 1.14,-0.55 0.71,1.84 1.65,-0.01 0.48,-0.47 1.64,0.13 0.78,1.88 -1.3,1 -0.03,2.88 -0.46,0.53 -0.11,1.72 -1.21,0.3 1.12,2.17 -0.77,2.35 0.96,1.06 -0.38,0.96 -1.04,1.32 0.23,1.16 -1.12,0.91 -1.48,-0.49 -1.45,0.38 0.43,-2.74 -0.26,-2.18 -1.26,-0.33 -0.67,-1.35 0.23,-2.36 1.11,-1.31 0.2,-1.47 0.59,-2.21 -0.07,-1.57 -0.56,-1.34 z",PY:"m 299.74,527.24 1.11,-3.59 0.07,-1.6 1.34,-2.62 4.89,-0.86 2.6,0.05 2.62,1.51 0.04,0.91 0.83,1.66 -0.18,4.06 2.96,0.58 1.14,-0.59 1.89,0.82 0.53,0.9 0.26,2.77 0.33,1.18 1.04,0.13 1.05,-0.49 1.01,0.55 0,1.68 -0.38,1.82 -0.55,1.78 -0.46,2.75 -2.54,2.4 -2.22,0.5 -3.15,-0.48 -2.82,-0.85 2.76,-4.73 -0.41,-1.37 -2.88,-1.2 -3.43,-2.26 -2.29,-0.46 z",QA:"m 617.97,392.41 -0.19,-2.24 0.76,-1.62 0.76,-0.34 0.85,0.97 0.05,1.81 -0.61,1.81 -0.78,0.22 z",RO:"m 539.18,311.11 1.21,-0.89 1.74,0.46 1.79,0.02 1.3,1.01 0.96,-0.64 2.07,-0.4 0.71,-0.98 1.18,0.01 0.85,0.4 0.87,1.24 0.89,1.75 1.62,2.44 0.09,1.79 -0.3,1.72 0.51,1.83 1.25,0.73 1.31,-0.64 1.28,0.68 0.06,1.03 -1.36,0.84 -0.85,-0.36 -0.78,4.71 -1.65,-0.41 -2.04,-1.41 -3.3,0.9 -1.39,0.99 -4.12,-0.2 -2.16,-0.61 -1.08,0.29 -0.81,-1.6 -0.51,-0.68 0.65,-0.66 -0.7,-0.49 -0.88,0.88 -1.63,-1.14 -0.22,-1.63 -1.71,-0.94 -0.31,-1.27 -1.52,-1.58 2.25,-0.76 1.69,-2.76 1.33,-2.8 z",RS:"m 534.03,321.15 1.71,0.94 0.22,1.63 1.63,1.14 0.88,-0.88 0.7,0.49 -0.65,0.66 0.51,0.68 -0.69,0.88 0.25,1.42 1.36,1.66 -1.07,1.19 -0.47,1.21 0.31,0.45 -0.47,0.54 -1.29,0.06 -0.96,0.22 -0.09,-0.28 0.33,-0.45 0.32,-0.93 -0.4,0.02 -0.55,-0.7 -0.46,-0.18 -0.36,-0.61 -0.53,-0.24 -0.4,-0.54 -0.5,0.22 -0.39,1.26 -0.67,0.28 0.23,-0.33 -1.07,-0.79 -0.92,-0.41 -0.41,-0.54 -0.74,-0.66 0.66,-0.17 0.41,-1.82 -1.35,-1.5 0.7,-1.72 -1.02,0.01 1.08,-1.49 -0.89,-1.14 -0.68,-1.55 2.15,-1.05 1.75,0.17 1.52,1.58 z",RU:"m 1008.52,216 -2.78,2.97 -4.6,0.7 -0.07,6.46 -1.12,1.35 -2.63,-0.19 -2.14,-2.26 -3.73,-1.92 -0.63,-2.89 -2.85,-1.1 -3.19,0.87 -1.52,-2.37 0.61,-2.55 -3.36,1.64 1.26,3.19 -1.59,2.83 -0.02,0.04 -3.6,2.89 -3.63,-0.48 2.53,3.44 1.67,5.2 1.29,1.67 0.33,2.53 -0.72,1.6 -5.23,-1.32 -7.84,4.51 -2.49,0.69 -4.29,4.1 -4.07,3.5 -1.03,2.55 -4.01,-3.9 -7.31,4.42 -1.28,-2.08 -2.7,2.39 -3.75,-0.76 -0.9,3.63 -3.36,5.22 0.1,2.14 3.19,1.17 -0.38,7.46 -2.6,0.19 -1.2,4.15 1.17,2.1 -4.9,2.47 -0.97,5.4 -4.18,1.14 -0.84,4.66 -4.04,4.18 -1.04,-3.08 -1.2,-6.69 -1.56,-10.65 1.35,-6.95 2.37,-3.07 0.15,-2.44 4.36,-1.18 5.01,-6.78 4.83,-5.73 5.04,-4.57 2.25,-8.37 -3.41,0.51 -1.68,4.92 -7.11,6.36 -2.3,-7.14 -7.24,2 -7.02,9.56 2.32,3.38 -6.26,1.42 -4.33,0.56 0.2,-3.95 -4.36,-0.84 -3.47,2.7 -8.57,-0.94 -9.22,1.62 -9.08,10.33 -10.75,11.78 4.42,0.61 1.38,3 2.72,1.05 1.79,-2.38 3.08,0.31 4.05,5.19 0.09,3.92 -2.19,4.51 -0.24,5.27 -1.26,6.85 -4.23,6.01 -0.94,2.82 -3.81,4.66 -3.78,4.53 -1.81,2.28 -3.74,2.25 -1.77,0.05 -1.76,-1.86 -3.76,2.79 -0.44,1.26 -0.39,-0.66 -0.02,-1.93 1.43,-0.1 0.4,-4.55 -0.74,-3.36 2.41,-1.4 3.4,0.7 1.89,-3.89 0.96,-4.46 1.09,-1.51 1.47,-3.76 -4.63,1.24 -2.43,1.65 -4.26,0 -1.13,-3.95 -3.32,-3.03 -4.88,-1.38 -1.04,-4.28 -0.98,-2.73 -1.05,-1.94 -1.73,-4.61 -2.46,-1.71 -4.2,-1.39 -3.72,0.13 -3.48,0.84 -2.32,2.31 1.54,1.1 0.04,2.52 -1.56,1.45 -2.53,4.72 0.03,1.93 -3.95,2.74 -3.37,-1.63 -3.35,0.36 -1.47,-1.46 -1.68,-0.47 -4.11,3.06 -3.69,0.71 -2.58,1.06 -3.53,-0.7 -2.6,0.04 -1.7,-2.2 -2.75,-2.09 -2.81,-0.58 -3.55,0.57 -2.65,0.81 -3.98,-1.84 -0.53,-3.32 -3.3,-1.15 -2.54,-0.53 -3.14,-1.87 -2.9,4.66 1.14,2.6 -2.73,3.03 -4.05,-1.09 -2.8,-0.16 -1.87,-2.04 -2.92,-0.06 -2.44,-1.35 -4.26,2.07 -5.35,3.74 -2.96,0.74 -1.1,0.35 -1.49,-2.63 -3.61,0.58 -1.19,-1.84 -1.96,-0.85 -1.35,-2.55 -1.55,-0.8 -4.03,1.14 -3.86,-2.57 -1.49,2.33 -6.27,-11.58 -3.58,-3.66 1.03,-1.5 -7.03,4.49 -2.69,0.27 0.23,-2.58 -3.6,-1.63 -2.93,1.17 -0.88,-5.01 -5.04,-1.06 -2.52,2.03 -7.02,1.79 -1.37,1.19 -10.49,1.66 -1.29,1.62 2.02,3.21 -2.69,1.2 0.53,1.25 -2.69,2.22 4.54,3.1 -0.7,2.11 -3.94,-0.19 -0.81,1.31 -3.59,-2.29 -4.45,0.09 -2.98,1.87 -3.32,-1.79 -6.18,-3.1 -4.38,0.12 -5.79,4.85 -0.35,3.19 -2.88,-2.53 -2.24,4.77 0.82,0.87 -1.62,3.21 2.38,2.84 2.08,-0.12 1.79,2.76 -0.28,2.1 1.42,0.66 -1.28,2.39 -2.72,0.66 -2.79,4.09 2.55,3.7 -0.28,2.59 3.06,4.46 -1.67,1.51 -0.48,0.95 -1.24,-0.25 -1.93,-2.27 -0.79,-0.13 -1.76,-0.87 -0.86,-1.55 -2.62,-0.79 -1.7,0.6 -0.49,-0.71 -3.82,-1.83 -4.13,-0.62 -2.37,-0.66 -0.34,0.45 -3.57,-3.27 -3.2,-1.48 -2.42,-2.32 2.04,-0.64 2.33,-3.35 -1.57,-1.6 4.13,-1.67 -0.07,-0.9 -2.52,0.66 0.09,-1.83 1.45,-1.16 2.71,-0.31 0.44,-1.4 -0.62,-2.33 1.14,-2.23 -0.03,-1.26 -4.13,-1.41 -1.64,0.05 -1.73,-2.04 -2.15,0.69 -3.56,-1.54 0.06,-0.87 -1,-1.93 -2.24,-0.22 -0.23,-1.39 0.7,-0.91 -1.79,-2.58 -2.91,0.44 -0.85,-0.23 -0.71,1.04 -1.05,-0.18 -0.69,-2.94 -0.66,-1.54 0.54,-0.44 2.26,0.16 1.09,-1.02 -0.81,-1.25 -1.89,-0.83 0.17,-0.86 -1.14,-0.87 -1.76,-3.15 0.6,-1.31 -0.27,-2.31 -2.74,-1.18 -1.47,0.59 -0.4,-1.24 -2.95,-1.26 -0.9,-2.99 -0.24,-2.49 -1.35,-1.19 1.2,-1.66 -0.83,-4.96 2,-3.13 -0.42,-0.96 3.19,-3.07 -2.94,-2.68 6,-7.41 2.6,-3.45 1.05,-3.1 -4.15,-4.26 1.15,-4.15 -2.52,-4.85 1.89,-5.76 -3.26,-7.96 2.59,-5.48 -4.29,-4.99 0.41,-5.4 2.26,-0.72 4.77,-3.19 2.89,-2.81 4.61,4.86 7.68,1.88 10.59,8.65 2.15,3.51 0.19,4.8 -3.11,3.69 -4.58,1.85 -12.52,-5.31 -2.06,0.9 4.57,5.1 0.18,3.15 0.18,6.75 3.61,1.97 2.19,1.66 0.36,-3.11 -1.69,-2.8 1.78,-2.51 6.78,4.1 2.36,-1.59 -1.89,-4.88 6.53,-6.74 2.59,0.4 2.62,2.43 1.63,-4.81 -2.34,-4.28 1.37,-4.41 -2.06,-4.69 7.84,2.44 1.6,4.18 -3.55,0.91 0.02,4.04 2.21,2.44 4.33,-1.54 0.69,-4.61 5.86,-3.52 9.79,-6.54 2.11,0.38 -2.76,4.64 3.48,0.78 2.01,-2.58 5.25,-0.21 4.16,-3.19 3.2,4.62 3.19,-5.09 -2.94,-4.58 1.46,-2.66 8.28,2.44 3.88,2.49 10.16,8.8 1.88,-3.97 -2.85,-4.11 -0.08,-1.68 -3.38,-0.78 0.92,-3.83 -1.5,-6.49 -0.08,-2.74 5.17,-7.99 1.84,-8.42 2.08,-1.88 7.42,2.51 0.58,5.18 -2.66,7.28 1.74,2.78 0.9,5.94 -0.64,11.07 3.09,4.73 -1.2,5.01 -5.49,10.2 3.21,1.02 1.12,-2.51 3.08,-1.82 0.74,-3.55 2.43,-3.49 -1.63,-4.26 1.31,-5.08 -3.07,-0.64 -0.67,-4.42 2.24,-8.28 -3.64,-7.03 5.02,-6.04 -0.65,-6.62 1.4,-0.22 1.47,5.19 -1.11,8.67 3,1.59 -1.28,-6.37 4.69,-3.58 5.82,-0.49 5.18,5.18 -2.49,-7.62 -0.28,-10.28 4.88,-2.02 6.74,0.44 6.08,-1.32 -2.28,-5.38 3.25,-7.02 3.22,-0.3 5.45,-5.51 7.4,-1.51 0.94,-3.15 7.36,-1.08 2.29,2.61 6.29,-6.24 5.15,0.2 0.77,-5.24 2.68,-5.33 6.62,-5.31 4.81,4.21 -3.82,3.13 6.35,1.92 0.76,6.03 2.56,-2.94 8.2,0.16 6.32,5.84 2.25,4.35 -0.7,5.85 -3.1,3.24 -7.37,5.92 -2.11,3.08 3.48,1.43 4.15,2.55 2.52,-1.91 1.43,6.39 1.23,-2.56 4.48,-1.57 9,1.65 0.68,4.58 11.72,1.43 0.16,-7.47 5.95,1.74 4.48,-0.05 4.53,5.14 1.29,6.04 -1.66,3.84 3.52,6.98 4.41,3.49 2.71,-9.18 4.5,4 4.78,-2.38 5.43,2.72 2.07,-2.47 4.59,1.24 -2.02,-8.4 3.7,-4.07 25.32,6.06 2.39,5.35 7.34,6.65 11.32,-1.62 5.58,1.41 2.33,3.5 -0.34,6.02 3.45,2.29 3.75,-1.64 4.97,-0.21 5.29,1.57 5.31,-0.89 4.88,6.99 3.47,-2.48 -2.27,-5.07 1.25,-3.62 8.95,2.29 5.83,-0.49 8.06,3.84 3.92,3.44 6.87,5.86 7.35,7.34 -0.24,4.44 1.89,1.74 -0.65,-5.15 7.61,1.07 5.55,6.53 z m -127.43,90.5 -2.82,-7.68 -1.16,-4.51 0.07,-4.5 -0.97,-4.5 -0.73,-3.15 -1.25,0.67 1.11,2.21 -2.59,2.17 -0.25,6.3 1.64,4.41 -0.12,5.85 -0.65,3.24 0.32,4.54 -0.31,4.01 0.52,3.4 1.84,-3.13 2.13,2.44 0.08,-2.84 -2.73,-4.23 1.72,-6.11 4.15,1.41 z m -343.02,-27.48 -2.94,-0.86 -3.87,1.58 -0.64,2.13 3.45,0.55 5.16,-0.07 -0.22,-1.23 0.3,-1.33 -1.24,-0.77 z M 980.2,178.9 l 3.66,-0.52 2.89,-2.06 0.24,-1.19 -4.06,-2.51 -2.38,-0.02 -0.36,0.37 -3.57,3.64 0.5,2.73 3.08,-0.44 z m -109.88,-27.09 -2.66,3.92 0.49,0.52 5.75,1.08 4.25,-0.07 -0.34,-2.57 -3.98,-3.81 -3.51,0.93 z m 24.57,-9.53 3.24,-4.25 -7.04,-2.88 -5.23,-1.68 -0.67,3.59 5.21,4.27 4.49,0.95 z m -25.13,-1.69 10.33,0.3 2.21,-8.14 -10.13,-6.07 -7.4,-0.51 -3.7,2.18 -1.51,7.75 5.55,7.01 4.65,-2.52 z m -247.12,25.94 -2.87,1.96 0.41,4.83 5.08,2.35 0.74,3.82 9.16,1.1 1.66,-0.74 -5.36,-7.11 -0.57,-7.52 4.39,-9.14 4.18,-9.82 8.71,-10.17 8.56,-5.34 9.93,-5.74 1.88,-3.71 -1.95,-4.83 -5.46,1.6 -4.8,4.49 -9.33,2.22 -9.26,7.41 -6.27,5.85 0.76,4.87 -6.71,9.03 2.58,1.22 -5.56,8.27 0.1,5.1 z m 147.48,-67.94 0.83,-5.72 -7.11,-8.34 -2.11,-0.98 -2.3,1.7 -5.12,18.6 15.81,-5.26 z m -164.23,-29.31 3.04,3.88 3.28,-2.69 0.39,-2.72 2.52,-1.27 3.76,-2.23 1.08,-2.62 -4.16,-3.85 -2.64,2.9 -1.61,4.12 -0.57,-4.65 -4.26,0.21 -5.47,3.14 6.24,0.52 -1.6,5.26 z m 131.25,13.04 4.65,5.73 7.81,4.2 6.12,-1.8 0.69,-13.62 -6.46,-16.04 -5.45,-9.02 -6.07,4.11 -7.28,11.83 3.83,3.27 2.16,11.34 z",RW:"m 560.79,466.8 1.12,1.57 -0.17,1.64 -0.8,0.35 -1.49,-0.18 -0.86,1.59 -1.71,-0.22 0.26,-1.53 0.39,-0.21 0.1,-1.66 0.81,-0.78 0.68,0.29 z",SA:"m 595.45,417.47 -0.36,-1.24 -0.85,-0.88 -0.22,-1.17 -1.44,-1.04 -1.5,-2.46 -0.79,-2.41 -1.94,-2.04 -1.25,-0.48 -1.86,-2.85 -0.32,-2.08 0.12,-1.79 -1.61,-3.36 -1.31,-1.19 -1.52,-0.63 -0.92,-1.76 0.15,-0.69 -0.78,-1.6 -0.82,-0.69 -1.09,-2.32 -1.71,-2.52 -1.43,-2.16 -1.39,0.01 0.43,-1.74 0.13,-1.11 0.34,-1.28 3.12,0.51 1.22,-0.98 0.67,-1.16 2.14,-0.44 0.46,-1.09 0.93,-0.54 -2.8,-3.26 5.62,-1.65 0.53,-0.49 3.38,0.89 4.18,2.29 7.9,6.49 5.21,0.26 2.5,0.31 0.7,1.51 1.98,-0.08 1.1,2.73 1.38,0.71 0.48,1.11 1.91,1.31 0.17,1.29 -0.28,1.03 0.36,1.04 0.8,0.87 0.38,1.01 0.42,0.75 0.84,0.61 0.78,-0.22 0.53,1.17 0.11,0.71 1.08,3.08 8.42,1.52 0.57,-0.64 1.28,2.14 -1.87,5.97 -8.41,2.96 -8.08,1.13 -2.62,1.32 -2.01,3.07 -1.31,0.48 -0.7,-0.97 -1.07,0.15 -2.71,-0.29 -0.52,-0.3 -3.23,0.07 -0.76,0.27 -1.15,-0.76 -0.75,1.43 0.29,1.23 z",SB:"m 930.06,493 0.78,0.97 -1.96,-0.02 -1.07,-1.74 1.67,0.69 0.58,0.1 z m -3.55,-1.73 -1.09,0.06 -1.72,-0.29 -0.59,-0.44 0.18,-1.12 1.85,0.44 0.91,0.59 0.46,0.76 z m 2.32,-0.77 -0.42,0.52 -2.08,-2.45 -0.58,-1.68 h 0.95 l 1.01,2.25 1.12,1.36 z m -5.06,-3.56 0.12,0.57 -2.2,-1.19 -1.54,-1.01 -1.05,-0.94 0.42,-0.29 1.29,0.67 2.3,1.29 0.66,0.9 z m -6.55,-2.78 -0.56,0.16 -1.23,-0.64 -1.15,-1.15 0.14,-0.47 1.67,1.18 1.13,0.92 z",SD:"m 570.73,437.15 -0.39,-0.05 0.05,-1.41 -0.34,-0.97 -1.44,-1.12 -0.34,-2.05 0.34,-2.1 -1.3,-0.19 -0.19,0.63 -1.69,0.15 0.68,0.83 0.24,1.71 -1.54,1.56 -1.4,2.04 -1.44,0.29 -2.36,-1.65 -1.06,0.58 -0.29,0.83 -1.44,0.53 -0.1,0.58 -2.79,0 -0.39,-0.58 -2.02,-0.1 -1.01,0.49 -0.77,-0.25 -1.44,-1.65 -0.48,-0.77 -2.03,0.39 -0.77,1.31 -0.72,2.52 -0.96,0.53 -0.86,0.31 -0.23,-0.14 -0.97,-0.81 -0.18,-0.87 0.45,-1.18 0,-1.15 -1.62,-1.77 -0.32,-1.22 0.03,-0.69 -1.03,-0.83 -0.03,-1.66 -0.58,-1.1 -0.99,0.17 0.28,-1.05 0.73,-1.2 -0.32,-1.18 0.92,-0.88 -0.58,-0.67 0.74,-1.78 1.28,-2.13 2.42,0.2 -0.14,-11.61 0.04,-1.24 3.22,-0.01 0,-5.96 11.27,0 10.88,0 11.12,0 0.9,2.94 -0.61,0.54 0.41,3.06 1.03,3.52 1.06,0.73 1.54,1.08 -1.42,1.67 -2.07,0.48 -0.88,0.9 -0.27,1.93 -1.21,4.25 0.3,1.15 -0.45,2.47 -1.14,2.81 -1.69,1.42 -1.2,2.17 -0.29,1.16 -1.32,0.8 -0.83,2.96 z",SE:"m 537.7,217.74 -2.72,4.69 0.44,4.02 -4.46,5.13 -5.41,5.34 -2.05,8.41 2,4.07 2.68,3.14 -2.57,6.23 -2.92,1.26 -1.07,8.84 -1.59,4.76 -3.4,-0.49 -1.59,3.95 -3.25,0.23 -0.89,-4.71 -2.35,-5.81 -2.13,-7.5 1.24,-3.15 2.33,-3.81 0.93,-6.73 -1.79,-2.98 -0.18,-8.04 1.83,-5.91 2.78,0.11 0.97,-2.55 -1.02,-2.23 4.35,-9.5 2.81,-7.87 1.85,-5.24 2.69,0.02 0.75,-4.21 5.28,1.22 0.41,-5.08 1.74,-0.33 3.74,3.81 4.37,5.15 0.08,11.12 0.94,2.7 z",SI:"m 514.21,316.76 2.32,0.31 1.42,-0.92 2.45,-0.1 0.53,-0.69 0.47,0.05 0.55,1.37 -2.23,1.08 -0.28,1.62 -0.97,0.41 0.01,1.12 -1.1,-0.08 -0.95,-0.65 -0.52,0.68 -1.95,-0.14 0.62,-0.36 -0.67,-1.71 z",SJ:"m 544.83,104.74 -6.26,5.36 -4.95,-3.02 1.94,-3.42 -1.69,-4.34 5.81,-2.78 1.11,5.18 4.04,3.02 z m -18.15,-26.68 9.23,11.29 -7.06,5.66 -1.56,10.09 -2.46,2.49 -1.33,10.51 -3.38,0.48 -6.03,-7.64 2.54,-4.62 -4.2,-3.86 -5.46,-11.82 -2.18,-11.79 7.64,-5.69 1.54,5.56 3.99,-0.22 1.06,-5.43 4.12,-0.56 3.54,5.55 z m 20.17,-11.46 5.5,5.8 -4.16,8.52 -8.13,1.81 -8.27,-2.56 -0.5,-4.32 -4.02,-0.28 -3.07,-7.48 8.66,-4.72 4.07,4.08 2.84,-5.09 7.08,4.24 z",SK:"m 528.36,304.27 0.16,0.26 1.16,-0.58 1.41,1.52 1.66,-0.92 1.32,0.44 2.02,-0.6 2.66,1.64 -0.77,1.11 -0.55,1.71 -0.6,0.43 -3,-1.28 -0.92,0.25 -0.66,1 -1.32,0.52 -0.3,-0.27 -1.36,0.65 -1.12,0.13 -0.22,0.84 -2.36,0.51 -1.03,-0.46 -1.43,-1.07 -0.28,-1.45 0.23,-0.54 0.39,-0.93 1.25,0.07 0.95,-0.44 0.08,-0.39 0.54,-0.21 0.18,-0.97 0.64,-0.19 0.44,-0.77 z",SL:"m 443.43,444.69 -0.76,-0.21 -2.01,-1.13 -1.46,-1.5 -0.49,-1.03 -0.35,-2.08 1.5,-1.24 0.32,-0.79 0.48,-0.61 0.78,-0.06 0.65,-0.53 2.24,0 0.78,1.01 0.61,1.19 -0.09,0.82 0.45,0.74 -0.03,1.03 0.77,-0.16 -1.31,1.31 -1.26,1.53 -0.15,0.81 z",SN:"m 428.64,425.41 -1.16,-2.24 -1.4,-1.02 1.24,-0.55 1.36,-2.03 0.66,-1.49 0.96,-0.93 1.4,0.25 1.36,-0.63 1.57,-0.03 1.34,0.85 1.86,0.77 1.7,2.13 1.85,1.98 0.13,1.79 0.55,1.64 1.05,0.81 0.24,1.1 -0.13,0.89 -0.41,0.16 -1.52,-0.22 -0.21,0.31 -0.62,0.07 -2.02,-0.7 -1.35,-0.03 -5.18,-0.12 -0.75,0.32 -0.93,-0.09 -1.49,0.47 -0.46,-2.19 2.55,0.06 0.68,-0.4 0.5,-0.03 1.04,-0.66 1.2,0.61 1.22,0.05 1.21,-0.65 -0.56,-0.82 -0.93,0.48 -0.87,-0.01 -1.1,-0.71 -0.89,0.05 -0.64,0.67 z",SO:"m 618.88,430.68 -0.07,-0.79 -1.06,0.01 -1.33,0.98 -1.49,0.28 -1.29,0.42 -0.89,0.06 -1.6,0.1 -1,0.52 -1.39,0.19 -2.47,0.88 -3.05,0.33 -2.65,0.73 -1.39,-0.01 -1.26,-1.19 -0.55,-1.17 -0.91,-0.53 -1.04,1.52 -0.61,1.01 1.04,1.56 1.03,1.36 1.07,1.01 9.17,3.34 2.36,-0.02 -7.93,8.42 -3.65,0.12 -2.5,1.97 -1.79,0.05 -0.77,0.88 -2.45,3.17 0.03,10.15 1.66,2.29 0.63,-0.66 0.65,-1.46 3.07,-3.38 2.61,-2.12 4.2,-2.76 2.8,-2.26 3.3,-3.81 2.39,-3.13 2.41,-4.1 1.73,-3.59 1.35,-3.15 0.79,-3.05 0.6,-1.02 -0.01,-1.5 z",SR:"m 315.27,446.97 3.36,0.56 0.3,-0.51 2.27,-0.2 3.01,0.76 -1.46,2.4 0.22,1.91 1.11,1.66 -0.49,1.2 -0.25,1.27 -0.72,1.17 -1.6,-0.59 -1.33,0.29 -1.13,-0.25 -0.28,0.81 0.47,0.55 -0.25,0.57 -1.53,-0.23 -1.71,-2.42 -0.37,-1.57 -0.89,-0.01 -1.25,-2.02 0.52,-1.45 -0.15,-0.65 1.7,-0.73 z",SS:"m 570.73,437.15 0.03,2.2 -0.42,0.86 -1.48,0.07 -0.96,1.61 1.72,0.2 1.42,1.37 0.5,1.12 1.28,0.65 1.65,3.05 -1.9,1.84 -1.72,1.67 -1.73,1.28 -1.97,0 -2.26,0.65 -1.78,-0.63 -1.15,0.77 -2.47,-1.86 -0.67,-1.19 -1.56,0.59 -1.3,-0.19 -0.75,0.47 -1.26,-0.33 -1.69,-2.31 -0.45,-0.89 -2.1,-1.11 -0.71,-1.68 -1.17,-1.21 -1.88,-1.46 -0.03,-0.92 -1.53,-1.13 -1.91,-1.1 0.86,-0.31 0.96,-0.53 0.72,-2.52 0.77,-1.31 2.03,-0.39 0.48,0.77 1.44,1.65 0.77,0.25 1.01,-0.49 2.02,0.1 0.39,0.58 2.79,0 0.1,-0.58 1.44,-0.53 0.29,-0.83 1.06,-0.58 2.36,1.65 1.44,-0.29 1.4,-2.04 1.54,-1.56 -0.24,-1.71 -0.68,-0.83 1.69,-0.15 0.19,-0.63 1.3,0.19 -0.34,2.1 0.34,2.05 1.44,1.12 0.34,0.97 -0.05,1.41 z",SV:"m 229.34,426.01 -0.31,0.67 -1.62,-0.04 -1.01,-0.27 -1.16,-0.57 -1.56,-0.18 -0.79,-0.62 0.09,-0.42 0.96,-0.72 0.52,-0.32 -0.15,-0.34 0.66,-0.17 0.83,0.24 0.6,0.57 0.85,0.46 0.1,0.39 1.23,-0.34 0.58,0.2 0.38,0.31 z",SY:"m 584.27,364.85 -5.49,3.54 -3.12,-1.32 -0.06,-0.02 0.38,-0.5 -0.04,-1.37 0.69,-1.83 1.53,-1.27 -0.46,-1.32 -1.26,-0.18 -0.26,-2.61 0.68,-1.41 0.75,-0.75 0.75,-0.76 0.16,-1.94 0.91,0.68 3.09,-0.97 1.49,0.65 2.31,-0.01 3.22,-1.31 1.52,0.06 3.19,-0.54 -1.44,2.18 -1.54,0.86 0.27,2.52 -1.06,4.12 z",SZ:"m 565.43,540.99 -0.57,1.39 -1.64,0.33 -1.68,-1.69 -0.02,-1.08 0.76,-1.17 0.27,-0.9 0.81,-0.22 1.41,0.57 0.42,1.39 z",TD:"m 516.15,427.51 0.28,-1.34 -1.8,-0.07 0.01,-1.85 -1.17,-1.06 1.21,-3.8 3.58,-2.74 0.14,-3.79 1.08,-5.98 0.61,-1.28 -1.16,-1.02 -0.05,-0.95 -1.05,-0.78 -0.69,-4.67 2.83,-1.66 11.19,5.77 11.18,5.7 0.14,11.61 -2.42,-0.2 -1.28,2.13 -0.74,1.78 0.58,0.67 -0.92,0.88 0.32,1.18 -0.73,1.2 -0.28,1.05 0.99,-0.17 0.58,1.1 0.03,1.66 1.03,0.83 -0.03,0.69 -1.77,0.49 -1.43,1.14 -2.02,3.09 -2.64,1.31 -2.71,-0.18 -0.79,0.26 0.28,0.99 -1.47,0.99 -1.19,1.1 -3.53,1.07 -0.7,-0.63 -0.46,-0.06 -0.52,0.72 -2.32,0.22 0.44,-0.77 -0.88,-1.93 -0.4,-1.17 -1.22,-0.48 -1.65,-1.65 0.61,-1.33 1.28,0.28 0.79,-0.2 1.56,0.03 -1.52,-2.57 0.1,-1.89 -0.19,-1.89 z",TF:"m 668.79,619.28 1.8,1.33 2.65,0.54 0.1,0.81 -0.78,1.96 -4.31,0.28 -0.07,-2.29 0.42,-1.76 z",TG:"m 480.73,446.5 -2.25,0.59 -0.63,-0.98 -0.75,-1.78 -0.22,-1.4 0.62,-2.53 -0.7,-1.03 -0.27,-2.22 0,-2.05 -1.17,-1.46 0.21,-0.89 2.46,0.06 -0.36,1.5 0.85,0.83 0.98,0.99 0.1,1.39 0.57,0.58 -0.13,6.46 z",TH:"m 763.14,429.43 -2.52,-1.31 -2.4,0.06 0.41,-2.25 -2.47,0.02 -0.22,3.14 -1.51,4.15 -0.91,2.5 0.19,2.05 1.82,0.09 1.14,2.57 0.51,2.43 1.56,1.61 1.7,0.33 1.45,1.45 -0.91,1.15 -1.86,0.34 -0.22,-1.44 -2.28,-1.23 -0.49,0.5 -1.11,-1.07 -0.48,-1.39 -1.49,-1.59 -1.36,-1.33 -0.46,1.65 -0.53,-1.56 0.31,-1.76 0.82,-2.71 1.36,-2.91 1.54,-2.65 -1.1,-2.6 0.05,-1.33 -0.32,-1.6 -1.87,-2.28 -0.67,-1.45 0.97,-0.53 1.02,-2.52 -1.14,-1.92 -1.78,-2.13 -1.36,-2.57 1.18,-0.53 1.28,-3.19 1.98,-0.14 1.64,-1.28 1.6,-0.69 1.22,0.92 0.16,1.78 1.89,0.13 -0.69,3.11 0.07,2.62 2.95,-1.74 0.84,0.51 1.65,-0.08 0.56,-1.02 2.12,0.2 2.13,2.38 0.18,2.87 2.27,2.53 -0.13,2.44 -0.91,1.3 -2.63,-0.41 -3.62,0.55 -1.8,2.38 z",TJ:"m 674.62,340.87 -1.03,1.13 -3.05,-0.61 -0.27,2.1 3.04,-0.28 3.47,1.17 5.3,-0.55 0.71,3.33 0.92,-0.36 1.7,0.81 -0.09,1.38 0.42,2.01 -2.9,0 -1.93,-0.26 -1.74,1.57 -1.25,0.34 -0.98,0.74 -1.11,-1.15 0.27,-2.95 -0.85,-0.17 0.3,-1.09 -1.51,-0.8 -1.21,1.23 -0.3,1.43 -0.43,0.52 -1.68,-0.07 -0.9,1.6 -0.95,-0.67 -2.03,1.12 -0.85,-0.42 1.57,-3.57 -0.6,-2.66 -2.06,-0.86 0.73,-1.59 2.34,0.17 1.33,-2.01 0.89,-2.35 3.75,-0.86 -0.58,1.71 0.4,1.02 z",TL:"m 825.9,488.5 0.33,-0.66 2.41,-0.63 1.96,-0.1 0.87,-0.35 1.06,0.35 -1.03,0.76 -2.92,1.23 -2.35,0.82 -0.05,-0.86 z",TM:"m 647.13,357.15 -0.25,-2.91 -2.09,-0.12 -3.2,-3.09 -2.24,-0.39 -3.1,-1.79 -2,-0.33 -1.23,0.66 -1.87,-0.1 -1.99,2.02 -2.47,0.68 -0.52,-2.49 0.41,-3.73 -2.19,-1.22 0.72,-2.48 -1.86,-0.22 0.62,-3.09 2.64,0.91 2.47,-1.19 -2.05,-2.23 -0.8,-2.14 -2.26,0.96 -0.28,2.73 -0.88,-2.41 1.24,-1.25 3.18,-0.79 1.9,1.06 1.96,2.93 1.44,-0.18 3.16,-0.05 -0.46,-1.88 2.4,-1.3 2.36,-2.2 3.78,2 0.3,2.99 1.07,0.77 3.03,-0.17 0.94,0.67 1.38,3.79 3.21,2.51 1.83,1.69 2.93,1.75 3.73,1.52 -0.08,2.16 -0.84,-0.11 -1.33,-0.94 -0.44,1.25 -2.36,0.68 -0.56,2.79 -1.58,1.05 -2.21,0.52 -0.59,1.55 -2.11,0.46 z",TN:"m 502.09,374.94 -1.2,-5.86 -1.72,-1.33 -0.03,-0.81 -2.29,-1.98 -0.25,-2.53 1.73,-1.88 0.66,-2.82 -0.45,-3.28 0.57,-1.79 3.06,-1.41 1.96,0.42 -0.08,1.77 2.38,-1.29 0.2,0.67 -1.41,1.71 -0.01,1.6 0.97,0.85 -0.37,2.96 -1.85,1.71 0.53,1.83 1.45,0.06 0.71,1.59 1.07,0.52 -0.16,2.55 -1.37,0.95 -0.86,1.05 -1.93,1.26 0.3,1.35 -0.24,1.38 z",TR:"m 579,336.85 4.02,1.43 3.27,-0.57 2.41,0.33 3.31,-1.94 2.99,-0.18 2.7,1.83 0.48,1.3 -0.27,1.79 2.08,0.91 1.1,1.06 -1.92,1.03 0.88,4.11 -0.55,1.1 1.53,2.82 -1.34,0.59 -0.98,-0.89 -3.26,-0.45 -1.2,0.55 -3.19,0.54 -1.51,-0.06 -3.23,1.31 -2.31,0.01 -1.49,-0.66 -3.09,0.97 -0.92,-0.68 -0.15,1.94 -0.75,0.76 -0.75,0.76 -1.03,-1.57 1.06,-1.3 -1.71,0.3 -2.35,-0.8 -1.93,2 -4.26,0.39 -2.27,-1.86 -3.02,-0.12 -0.65,1.44 -1.94,0.41 -2.71,-1.85 -3.06,0.06 -1.66,-3.48 -2.05,-1.96 1.36,-2.78 -1.78,-1.72 3.11,-3.48 4.32,-0.15 1.18,-2.81 5.34,0.49 3.37,-2.42 3.27,-1.06 4.64,-0.08 4.91,2.64 z m -27.25,2.39 -2.34,1.98 -0.88,-1.71 0.04,-0.76 0.67,-0.41 0.87,-2.33 -1.37,-0.99 2.86,-1.18 2.41,0.5 0.33,1.44 2.45,1.2 -0.51,0.91 -3.33,0.2 -1.2,1.15 z", -TT:"m 302.56,433.49 1.61,-0.37 0.59,0.1 -0.11,2.11 -2.34,0.31 -0.51,-0.25 0.82,-0.78 z",TW:"m 816.95,393.52 -1.69,4.87 -1.2,2.48 -1.48,-2.55 -0.32,-2.25 1.65,-3 2.25,-2.32 1.28,0.91 z",TZ:"m 570.56,466.28 0.48,0.31 10.16,5.67 0.2,1.62 4.02,2.79 -1.29,3.45 0.16,1.59 1.8,1.02 0.08,0.73 -0.77,1.7 0.16,0.85 -0.18,1.35 0.98,1.76 1.16,2.79 1.02,0.62 -2.23,1.64 -3.06,1.1 -1.68,-0.04 -1,0.85 -1.95,0.07 -0.74,0.36 -3.37,-0.8 -2.11,0.23 -0.78,-3.86 -0.95,-1.32 -0.57,-0.78 -2.74,-0.52 -1.6,-0.85 -1.78,-0.47 -1.12,-0.48 -1.17,-0.71 -1.51,-3.55 -1.63,-1.57 -0.56,-1.62 0.28,-1.46 -0.5,-2.57 1.16,-0.13 1.01,-1.01 1.1,-1.46 0.69,-0.58 -0.03,-0.91 -0.6,-0.63 -0.16,-1.1 0.8,-0.35 0.17,-1.64 -1.12,-1.57 0.99,-0.34 3.07,0.04 z",UA:"m 564.63,292.74 1.04,0.19 0.71,-1.04 0.85,0.23 2.91,-0.44 1.79,2.57 -0.7,0.92 0.23,1.39 2.24,0.21 1,1.93 -0.06,0.87 3.56,1.54 2.15,-0.69 1.73,2.04 1.64,-0.04 4.13,1.4 0.03,1.27 -1.13,2.23 0.61,2.33 -0.44,1.39 -2.71,0.31 -1.44,1.16 -0.09,1.83 -2.24,0.33 -1.87,1.32 -2.62,0.21 -2.42,1.52 -1.32,1.03 1.49,1.47 1.37,0.96 2.86,-0.24 -0.55,1.42 -3.07,0.68 -3.81,2.27 -1.55,-0.79 0.61,-1.85 -3.06,-1.16 0.5,-0.77 3.16,-1.63 -0.4,-0.81 -0.45,0.41 -0.44,-0.22 -4.36,-1.02 -0.19,-1.51 -2.6,0.5 -1.04,2.23 -2.17,2.95 -1.28,-0.68 -1.31,0.64 -1.25,-0.73 0.7,-0.44 0.49,-1.37 0.77,-1.29 -0.2,-0.72 0.59,-0.32 0.27,0.56 1.66,0.11 0.74,-0.29 -0.52,-0.42 0.19,-0.6 -0.98,-1.04 -0.4,-1.72 -1.02,-0.67 0.2,-1.41 -1.27,-1.12 -1.15,-0.16 -2.07,-1.31 -1.86,0.42 -0.67,0.62 -1.18,-0.01 -0.71,0.98 -2.07,0.4 -0.95,0.64 -1.31,-1.01 -1.79,-0.02 -1.74,-0.46 -1.21,0.89 -0.2,-1.12 -1.55,-1.14 0.55,-1.71 0.77,-1.1 0.62,0.24 -0.73,-1.92 2.55,-3.61 1.39,-0.51 0.3,-1.24 -1.41,-3.89 1.34,-0.17 1.54,-1.23 2.17,-0.1 2.83,0.36 3.13,1.08 2.21,0.09 1.05,0.65 1.05,-0.78 0.74,1.05 2.53,-0.22 1.11,0.43 0.19,-2.26 0.86,-1 z",UG:"m 564.85,466.5 -3.07,-0.04 -0.99,0.34 -1.67,0.86 -0.68,-0.29 0.02,-2.1 0.65,-1.06 0.16,-2.24 0.59,-1.29 1.07,-1.46 1.08,-0.74 0.9,-0.99 -1.12,-0.37 0.17,-3.26 1.15,-0.77 1.78,0.63 2.26,-0.65 1.97,0 1.73,-1.28 1.33,1.94 0.33,1.4 1.23,3.2 -1.02,2.03 -1.38,1.84 -0.8,1.13 0.02,2.95 z",US:"m 109.5,280.05 0,0 -1.54,-1.83 -2.47,-1.57 -0.79,-4.36 -3.61,-4.13 -1.51,-4.94 -2.69,-0.34 -4.46,-0.13 -3.29,-1.54 -5.8,-5.64 -2.68,-1.05 -4.9,-1.99 -3.88,0.48 -5.51,-2.59 -3.33,-2.43 -3.11,1.21 0.58,3.93 -1.55,0.36 -3.24,1.16 -2.47,1.86 -3.11,1.16 -0.4,-3.24 1.26,-5.53 2.98,-1.77 -0.77,-1.46 -3.57,3.22 -1.91,3.77 -4.04,3.95 2.05,2.65 -2.65,3.85 -3.01,2.21 -2.81,1.59 -0.69,2.29 -4.38,2.63 -0.89,2.36 -3.28,2.13 -1.92,-0.38 -2.62,1.38 -2.85,1.67 -2.33,1.63 -4.81,1.38 -0.44,-0.81 3.07,-2.27 2.74,-1.51 2.99,-2.71 3.48,-0.56 1.38,-2.06 3.89,-3.05 0.63,-1.03 2.07,-1.83 0.48,-4 1.43,-3.17 -3.23,1.64 -0.9,-0.93 -1.52,1.95 -1.83,-2.73 -0.76,1.94 -1.05,-2.7 -2.8,2.17 -1.72,0 -0.24,-3.23 0.51,-2.02 -1.81,-1.98 -3.65,1.07 -2.37,-2.63 -1.92,-1.36 -0.01,-3.25 -2.16,-2.48 1.08,-3.41 2.29,-3.37 1,-3.15 2.27,-0.45 1.92,0.99 2.26,-3.01 2.04,0.54 2.14,-1.96 -0.52,-2.92 -1.57,-1.16 2.08,-2.52 -1.72,0.07 -2.98,1.43 -0.85,1.43 -2.21,-1.43 -3.97,0.73 -4.11,-1.56 -1.18,-2.65 -3.55,-3.91 3.94,-2.87 6.25,-3.41 h 2.31 l -0.38,3.48 5.92,-0.27 -2.28,-4.34 -3.45,-2.72 -1.99,-3.64 -2.69,-3.17 -3.85,-2.38 1.57,-4.03 4.97,-0.25 3.54,-3.58 0.67,-3.92 2.86,-3.91 2.73,-0.95 5.31,-3.76 2.58,0.57 4.31,-4.61 4.24,1.83 2.03,3.87 1.25,-1.65 4.74,0.51 -0.17,1.95 4.29,1.43 2.86,-0.84 5.91,2.64 5.39,0.78 2.16,1.07 3.73,-1.34 4.25,2.46 3.05,1.13 -0.02,27.65 -0.01,35.43 2.76,0.17 2.73,1.56 1.96,2.44 2.49,3.6 2.73,-3.05 2.81,-1.79 1.49,2.85 1.89,2.23 2.57,2.42 1.75,3.79 2.87,5.88 4.77,3.2 0.08,3.12 -1.6,2.32 z m 175.93,34.43 -1.25,-1.19 -1.88,0.7 -0.93,-1.08 -2.14,3.1 -0.86,3.15 -1,1.82 -1.19,0.62 -0.9,0.2 -0.28,0.98 -5.17,0 -4.26,0.03 -1.27,0.73 -2.87,2.73 0.29,0.54 0.17,1.51 -2.1,1.27 -2.3,-0.32 -2.2,-0.14 -1.33,0.44 0.25,1.15 0,0 0.05,0.37 -2.42,2.27 -2.11,1.09 -1.44,0.51 -1.66,1.03 -2.03,0.5 -1.4,-0.19 -1.73,-0.77 0.96,-1.45 0.62,-1.32 1.32,-2.09 -0.14,-1.57 -0.5,-2.24 -1.04,-0.39 -1.74,1.7 -0.56,-0.03 -0.14,-0.97 1.54,-1.56 0.26,-1.79 -0.23,-1.79 -2.08,-1.55 -2.38,-0.8 -0.39,1.52 -0.62,0.4 -0.5,1.95 -0.26,-1.33 -1.12,0.95 -0.7,1.32 -0.73,1.92 -0.14,1.64 0.93,2.38 -0.08,2.51 -1.14,1.84 -0.57,0.52 -0.76,0.41 -0.95,0.02 -0.26,-0.25 -0.76,-1.98 -0.02,-0.98 0.08,-0.94 -0.35,-1.87 0.53,-2.18 0.63,-2.71 1.46,-3.03 -0.42,0.01 -2.06,2.54 -0.38,-0.46 1.1,-1.42 1.67,-2.57 1.91,-0.36 2.19,-0.8 2.21,0.42 0.09,0.02 2.47,-0.36 -1.4,-1.61 -0.75,-0.13 -0.86,-0.16 -0.59,-1.14 -2.75,0.36 -2.49,0.9 -1.97,-1.55 -1.59,-0.52 0.9,-2.17 -2.48,1.37 -2.25,1.33 -2.16,1.04 -1.72,-1.4 -2.81,0.85 0.01,-0.6 1.9,-1.73 1.99,-1.65 2.86,-1.37 -3.45,-1.09 -2.27,0.55 -2.72,-1.3 -2.86,-0.67 -1.96,-0.26 -0.87,-0.72 -0.5,-2.35 -0.95,0.02 -0.01,1.64 -5.8,0 -9.59,0 -9.53,0 -8.42,0 h -8.41 -8.27 -8.55 -2.76 -8.32 -7.96 l 0.95,3.47 0.45,3.41 -0.69,1.09 -1.49,-3.91 -4.05,-1.42 -0.34,0.82 0.82,1.94 0.89,3.53 0.51,5.42 -0.34,3.59 -0.34,3.54 -1.1,3.61 0.9,2.9 0.1,3.2 -0.61,3.05 1.49,1.99 0.39,2.95 2.17,2.99 1.24,1.17 -0.1,0.82 2.34,4.85 2.72,3.45 0.34,1.87 0.71,0.55 2.6,0.33 1,0.91 1.57,0.17 0.31,0.96 1.31,0.4 1.82,1.92 0.47,1.7 3.19,-0.25 3.56,-0.36 -0.26,0.65 4.23,1.6 6.4,2.31 5.58,-0.02 2.22,0 0.01,-1.35 4.86,0 1.02,1.16 1.43,1.03 1.67,1.43 0.93,1.69 0.7,1.77 1.45,0.97 2.33,0.96 1.77,-2.53 2.29,-0.06 1.98,1.28 1.41,2.18 0.97,1.86 1.65,1.8 0.62,2.19 0.79,1.47 2.19,0.96 1.99,0.68 1.09,-0.09 -0.53,-1.06 -0.14,-1.5 0.03,-2.16 0.65,-1.42 1.53,-1.51 2.79,-1.37 2.55,-2.37 2.36,-0.75 1.74,-0.23 2.04,0.74 2.45,-0.4 2.09,1.69 2.03,0.1 1.05,-0.61 1.04,0.47 0.53,-0.42 -0.6,-0.63 0.05,-1.3 -0.5,-0.86 1.16,-0.5 2.14,-0.22 2.49,0.36 3.17,-0.41 1.76,0.8 1.36,1.5 0.5,0.16 2.83,-1.46 1.09,0.49 2.19,2.68 0.79,1.75 -0.58,2.1 0.42,1.23 1.3,2.4 1.49,2.68 1.07,0.71 0.44,1.35 1.38,0.37 0.84,-0.39 0.7,-1.89 0.12,-1.21 0.09,-2.1 -1.33,-3.65 -0.02,-1.37 -1.25,-2.25 -0.94,-2.75 -0.5,-2.25 0.43,-2.31 1.32,-1.94 1.58,-1.57 3.08,-2.16 0.4,-1.12 1.42,-1.23 1.4,-0.22 1.84,-1.98 2.9,-1.01 1.78,-2.53 -0.39,-3.46 -0.29,-1.21 -0.8,-0.24 -0.12,-3.35 -1.93,-1.14 1.85,0.56 -0.6,-2.26 0.54,-1.55 0.33,2.97 1.43,1.36 -0.87,2.4 0.26,0.14 1.58,-2.81 0.9,-1.38 -0.04,-1.35 -0.7,-0.64 -0.58,-1.94 0.92,0.9 0.62,0.19 0.21,0.92 2.04,-2.78 0.61,-2.62 -0.83,-0.17 0.85,-1.02 -0.08,0.45 1.79,-0.01 3.93,-1.11 -0.83,-0.7 -4.12,0.7 2.34,-1.07 1.63,-0.18 1.22,-0.19 2.07,-0.65 1.35,0.07 1.89,-0.61 0.22,-1.07 -0.84,-0.84 0.29,1.37 -1.16,-0.09 -0.93,-1.99 0.03,-2.01 0.48,-0.86 1.48,-2.28 2.96,-1.15 2.88,-1.34 2.99,-1.9 -0.48,-1.29 -1.83,-2.25 -0.03,-5.56 z m -239.56,-50.44 -1.5,0.8 -2.55,1.86 0.43,2.42 1.43,1.32 2.8,-1.95 2.43,-2.47 -1.19,-1.63 -1.85,-0.35 z m -45.62,-28.57 2.04,-1.26 0.23,-0.68 -2.27,-0.67 v 2.61 z m 8.5,15.37 -2.77,0.97 1.7,1.52 1.84,1.04 1.72,-0.87 -0.27,-2.15 -2.22,-0.51 z m 97.35,32.5 -2.69,0.38 -1.32,-0.62 -0.17,1.52 0.52,2.07 1.42,1.46 1.04,2.13 1.69,2.1 1.12,0.01 -2.44,-3.7 0.83,-5.35 z m -68.72,120.68 -1,-0.28 -0.27,0.26 0.02,0.19 0.32,0.24 0.48,0.63 0.94,-0.21 0.23,-0.36 -0.72,-0.47 z m -2.99,-0.54 1.5,0.09 0.09,-0.32 -1.38,-0.13 -0.21,0.36 z m 5.89,3.29 -0.5,-0.26 -1.07,-0.5 -0.21,-0.06 -0.16,0.28 0.19,0.58 -0.49,0.48 -0.14,0.33 0.46,1.08 -0.08,0.83 0.7,0.42 0.41,-0.49 0.9,-0.46 1.1,-0.63 0.07,-0.16 -0.71,-1.04 -0.47,-0.4 z m -7.86,-5.14 -0.75,0.41 0.11,0.12 0.36,0.68 0.98,0.11 0.2,0.04 0.15,-0.17 -0.81,-0.99 -0.24,-0.2 z m -4.4,-1.56 -0.43,0.3 -0.15,0.22 0.94,0.55 0.33,-0.3 -0.06,-0.7 -0.63,-0.07 z",UY:"m 313.93,552.04 1.82,-0.34 2.81,2.5 1.04,-0.09 2.89,2.08 2.2,1.82 1.62,2.25 -1.24,1.57 0.78,1.9 -1.21,2.12 -3.17,1.88 -2.07,-0.68 -1.52,0.37 -2.59,-1.46 -1.9,0.11 -1.71,-1.87 0.22,-2.16 0.61,-0.74 -0.03,-3.3 0.75,-3.37 z",UZ:"m 662.01,351.2 0.08,-2.16 -3.73,-1.52 -2.93,-1.75 -1.83,-1.69 -3.21,-2.51 -1.38,-3.79 -0.94,-0.67 -3.03,0.17 -1.07,-0.77 -0.3,-2.99 -3.78,-2 -2.36,2.2 -2.4,1.3 0.46,1.88 -3.16,0.05 -0.11,-14.13 7.22,-2.35 0.52,0.35 4.35,2.84 2.29,1.48 2.68,3.5 3.29,-0.56 4.81,-0.3 3.35,2.8 -0.21,3.8 1.37,0.03 0.57,3.06 3.57,0.12 0.76,1.75 1.05,-0.02 1.23,-2.65 3.69,-2.61 1.61,-0.7 0.83,0.37 -2.35,2.43 2.07,1.4 2,-0.93 3.32,1.96 -3.59,2.64 -2.13,-0.36 -1.16,0.1 -0.4,-1.02 0.58,-1.71 -3.75,0.86 -0.89,2.35 -1.33,2.01 -2.34,-0.17 -0.73,1.59 2.06,0.86 0.6,2.66 -1.57,3.57 -2.12,-0.74 z",VE:"m 275.5,430.6 -0.08,0.67 -1.65,0.33 0.92,1.29 -0.04,1.49 -1.23,1.64 1.06,2.24 1.21,-0.18 0.63,-2.04 -0.87,-1 -0.14,-2.14 3.49,-1.16 -0.39,-1.34 0.98,-0.9 1.01,2 1.97,0.05 1.82,1.58 0.11,0.94 2.51,0.02 3,-0.29 1.61,1.27 2.14,0.35 1.57,-0.88 0.03,-0.72 3.48,-0.17 3.36,-0.04 -2.38,0.84 0.95,1.34 2.25,0.21 2.12,1.39 0.45,2.26 1.46,-0.07 1.1,0.67 -2.22,1.65 -0.25,1.03 0.96,1.04 -0.69,0.52 -1.73,0.45 0.06,1.3 -0.76,0.77 1.89,2.12 0.38,0.79 -1.03,1.07 -3.14,1.04 -2.01,0.44 -0.81,0.66 -2.23,-0.7 -2.08,-0.36 -0.52,0.26 1.25,0.72 -0.11,1.87 0.39,1.76 2.37,0.24 0.16,0.58 -2.01,0.8 -0.32,1.18 -1.16,0.45 -2.08,0.65 -0.54,0.86 -2.18,0.18 -1.55,-1.48 -0.85,-2.77 -0.75,-0.98 -1.02,-0.61 1.42,-1.39 -0.09,-0.63 -0.8,-0.83 -0.56,-1.85 0.22,-2.01 0.62,-0.94 0.51,-1.5 -0.99,-0.49 -1.6,0.32 -2.02,-0.15 -1.13,0.3 -1.98,-2.41 -1.63,-0.36 -3.6,0.27 -0.67,-0.98 -0.69,-0.23 -0.1,-0.59 0.33,-1.04 -0.22,-1.13 -0.62,-0.62 -0.36,-1.3 -1.44,-0.18 0.77,-1.66 0.35,-2.01 0.81,-1.06 1.09,-0.81 0.71,-1.42 z",VN:"m 778.46,402.12 -3.74,2.56 -2.34,2.81 -0.62,2.05 2.15,3.09 2.62,3.82 2.54,1.79 1.71,2.33 1.28,5.32 -0.38,5.02 -2.33,1.87 -3.22,1.83 -2.28,2.36 -3.5,2.62 -1.02,-1.81 0.79,-1.91 -2.08,-1.61 2.43,-1.14 2.94,-0.2 -1.23,-1.73 4.71,-2.19 0.35,-3.42 -0.65,-1.92 0.51,-2.88 -0.71,-2.04 -2.12,-2.02 -1.77,-2.57 -2.33,-3.46 -3.36,-1.76 0.81,-1.07 1.79,-0.77 -1.09,-2.59 -3.45,-0.03 -1.26,-2.72 -1.64,-2.37 1.51,-0.74 2.23,0.02 2.73,-0.35 2.39,-1.62 1.35,1.14 2.57,0.55 -0.45,1.74 1.34,1.22 z",VU:"m 946.12,510.15 -0.92,0.38 -0.94,-1.27 0.1,-0.78 1.76,1.67 z m -2.07,-4.44 0.46,2.33 -0.75,-0.36 -0.58,0.16 -0.4,-0.8 -0.06,-2.21 1.33,0.88 z",YE:"m 624.41,416.58 -2.03,0.79 -0.54,1.28 -0.07,0.99 -2.79,1.22 -4.48,1.35 -2.51,2.03 -1.23,0.15 -0.84,-0.17 -1.64,1.2 -1.79,0.55 -2.35,0.15 -0.71,0.16 -0.61,0.75 -0.74,0.21 -0.43,0.73 -1.39,-0.06 -0.9,0.38 -1.94,-0.14 -0.73,-1.67 0.08,-1.57 -0.45,-0.85 -0.55,-2.12 -0.81,-1.19 0.56,-0.14 -0.29,-1.32 0.34,-0.56 -0.12,-1.26 1.23,-0.93 -0.29,-1.23 0.75,-1.43 1.15,0.76 0.76,-0.27 3.23,-0.07 0.52,0.3 2.71,0.29 1.07,-0.15 0.7,0.97 1.31,-0.48 2.01,-3.07 2.62,-1.32 8.08,-1.13 2.2,4.84 z",ZA:"m 563.88,548.96 -0.55,0.46 -1.19,1.63 -0.78,1.66 -1.59,2.33 -3.17,3.38 -1.98,1.98 -2.12,1.51 -2.93,1.3 -1.43,0.17 -0.36,0.93 -1.7,-0.5 -1.39,0.64 -3.04,-0.65 -1.7,0.41 -1.16,-0.18 -2.89,1.33 -2.39,0.54 -1.73,1.28 -1.28,0.08 -1.19,-1.21 -0.95,-0.06 -1.21,-1.51 -0.13,0.47 -0.37,-0.91 0.02,-1.96 -0.91,-2.23 0.9,-0.6 -0.07,-2.53 -1.84,-3.05 -1.41,-2.74 0,-0.01 -2.01,-4.15 1.34,-1.57 1.11,0.87 0.47,1.36 1.26,0.23 1.76,0.6 1.51,-0.23 2.5,-1.63 0,-11.52 0.76,0.46 1.66,2.93 -0.26,1.89 0.63,1.1 2.01,-0.32 1.4,-1.39 1.33,-0.93 0.69,-1.48 1.37,-0.72 1.18,0.38 1.34,0.87 2.28,0.15 1.79,-0.72 0.28,-0.96 0.49,-1.47 1.53,-0.25 0.84,-1.15 0.93,-2.03 2.52,-2.26 3.97,-2.22 1.14,0.03 1.36,0.51 0.94,-0.36 1.49,0.3 1.34,4.26 0.73,2.17 -0.5,3.43 0.24,1.11 -1.42,-0.57 -0.81,0.22 -0.26,0.9 -0.77,1.17 0.03,1.08 1.67,1.7 1.64,-0.34 0.57,-1.39 2.13,0.03 -0.7,2.28 -0.33,2.62 -0.73,1.43 -1.9,1.62 z m -7.13,-0.96 -1.22,-0.98 -1.31,0.65 -1.52,1.25 -1.5,2.03 2.1,2.48 1,-0.32 0.52,-1.03 1.56,-0.5 0.48,-1.05 0.86,-1.56 -0.97,-0.97 z",ZM:"m 567.36,489.46 1.32,1.26 0.71,2.4 -0.48,0.77 -0.56,2.3 0.54,2.36 -0.88,0.99 -0.85,2.66 1.47,0.74 -8.51,2.38 0.27,2.05 -2.13,0.4 -1.59,1.15 -0.34,1.01 -1.01,0.22 -2.44,2.4 -1.55,1.89 -0.95,0.07 -0.91,-0.34 -3.13,-0.32 -0.5,-0.22 -0.03,-0.24 -1.1,-0.66 -1.82,-0.17 -2.3,0.67 -1.83,-1.82 -1.89,-2.38 0.13,-9.16 5.84,0.04 -0.24,-0.99 0.42,-1.07 -0.49,-1.33 0.32,-1.38 -0.3,-0.88 0.97,0.07 0.16,0.88 1.31,-0.07 1.78,0.26 0.94,1.29 2.24,0.4 1.72,-0.9 0.63,1.49 2.15,0.4 1.03,1.22 1.15,1.57 2.15,0.03 -0.24,-3.08 -0.77,0.51 -1.96,-1.1 -0.76,-0.51 0.35,-2.85 0.5,-3.35 -0.63,-1.25 0.8,-1.8 0.75,-0.33 3.77,-0.48 1.1,0.29 1.17,0.71 1.12,0.48 1.78,0.47 z",ZW:"m 562.96,527.25 -1.49,-0.3 -0.95,0.36 -1.35,-0.51 -1.14,-0.03 -1.79,-1.36 -2.17,-0.46 -0.82,-1.9 -0.01,-1.05 -1.2,-0.32 -3.17,-3.25 -0.89,-1.71 -0.56,-0.52 -1.08,-2.35 3.13,0.32 0.91,0.34 0.95,-0.07 1.55,-1.89 2.44,-2.4 1.01,-0.22 0.34,-1.01 1.59,-1.15 2.13,-0.4 0.18,1.08 2.34,-0.06 1.3,0.61 0.6,0.72 1.34,0.21 1.45,0.94 0.01,3.69 -0.55,2.04 -0.12,2.2 0.45,0.88 -0.31,1.74 -0.43,0.27 -0.74,2.15 z"}}}}),b}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_miller.js b/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_miller.js deleted file mode 100644 index 639782b7..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_miller.js +++ /dev/null @@ -1,322 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires Mapael - * - * Map of World by country - * Miller projection - * - * @source http://code.highcharts.com/mapdata/ - */ -(function (factory) { - if (typeof exports === 'object') { - // CommonJS - module.exports = factory(require('jquery'), require('mapael')); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery', 'mapael'], factory); - } else { - // Browser globals - factory(jQuery, jQuery.mapael); - } -}(function ($, Mapael) { - - "use strict"; - - $.extend(true, Mapael, { - maps: { - world_countries_miller: { - /* - * map-specific constants - * (set by user) - */ - // Width of the map, in pixel - width : 700.9375, - // Height of the map, in pixel - height : 337.375, - // Longitude of the left side of the map, in degree - leftLongitude: -175.0, - // Longitude of the right side of the map, in degree - rightLongitude: 190.0, - // Latitude of the top of the map, in degree - topLatitude: 84.0, - // Latitude of the bottom of the map, in degree - bottomLatitude: -56.0, - /* - * Transform a longitude coordinate into projection-specific x' coordinate - * Note: this is not in pixel - * - * @param lon longitude value in degree - * @return x' projection-specific value - */ - _projectLongitude: function (lon) { - // Compute longitude in radian - return lon * Math.PI / 180; - }, - /* - * Transform a latitude coordinate into projection-specific y' coordinate - * Note: this is not in pixel - * - * @param lat latitude value in degree - * @return y' projection-specific value - */ - _projectLatitude: function (lat) { - // Compute latitude in radian - var latRad = lat * Math.PI / 180; - return 1.25 * Math.log( Math.tan( Math.PI / 4 + 0.4 * latRad ) ); - }, - /* - * Get x,y point from lat,lon coordinate - * - * Principle: - * (lat, lon) are inputs - * Projection(lat, lon) = (x', y') - * Transformation(x', y') = (x, y) - * - * Source: http://jkwiens.com/2009/01/23/miller-projection/ - * - * @param lat latitude value in degree - * @param lon longitude value in degree - * @return {x, y} coordinate in pixel - */ - getCoords: function (lat, lon) { - var self = this; - - // Project map boundaries with projection (only once for performance) - if (self._xLeftPrime === undefined) self._xLeftPrime = self._projectLongitude(self.leftLongitude); - if (self._xRightPrime === undefined) self._xRightPrime = self._projectLongitude(self.rightLongitude); - if (self._yTopPrime === undefined) self._yTopPrime = self._projectLatitude(self.topLatitude); - if (self._yBottomPrime === undefined) self._yBottomPrime = self._projectLatitude(self.bottomLatitude); - - // Compute x' and y' (projection-specific value) - var xPrime = self._projectLongitude(lon); - var yPrime = self._projectLatitude(lat); - - // Compute x and y - var x = (xPrime - self._xLeftPrime) * (self.width / (self._xRightPrime - self._xLeftPrime)); - var y = (self._yTopPrime - yPrime) * (self.height / (self._yTopPrime - self._yBottomPrime)); - - return {x: x, y: y}; - }, - elems: { - "FO" : "m 322.53,80.19 0.9,0.8 0,0.3 -1,-0.7 z", - "UM" : "m 26.03,206.59 0,0 -0.1,0 0.1,0 z", - "US" : "m 100.93,117.39 0.2,0.1 -0.6,-0.2 0,-0.3 z m 0.2,-0.6 0.2,0.1 -0.3,0.2 -0.3,-0.1 z m -19,-15.8 0.2,0 0,0.4 -0.3,-0.4 z m -0.1,-0.7 0.3,0.3 -0.2,0.2 -0.2,-0.1 z m -0.5,0 0.8,1.3 -0.9,-0.7 -0.1,-0.7 z m 3.3,0.1 -0.1,0.3 -0.4,0 0.1,-0.7 z m -3.7,-0.5 0.1,0.3 -0.4,0 0,-0.3 z m 2.8,-0.3 0.3,0.4 -0.2,0.4 -0.2,-0.6 z m -3.5,-0.1 0.4,-0.1 0,0.3 -0.4,0.3 z m 0.7,0.1 -0.1,0 -0.2,-0.3 0.3,0 z m -1.1,-1.3 0.3,-0.4 0.8,-0.2 -0.2,0.3 z m 2.6,-0.8 0.8,0.3 -0.4,0.5 -0.7,-0.4 z m -0.3,-0.6 0,0.4 -0.8,-0.2 0.3,-0.3 z m 1,0.2 0.1,0.6 -0.5,-0.4 0,-0.6 z m -1.4,-1.2 0.6,0.6 -0.4,0.2 -0.3,0 z m -1.7,-0.8 1.5,0.5 -0.3,1.2 -1,0 z m -3.5,-0.4 -0.1,0.6 -0.4,0.1 0.2,-0.5 z m -1.5,-2.1 -0.2,0.4 -0.2,-0.2 0.2,-0.5 z m 91.6,25.5 -0.2,0.4 -1,0.5 -0.1,-0.2 z m 3,6.8 -0.2,0.6 -0.4,0.7 -0.2,-0.4 z m 2.8,-1 0,0.4 -0.3,0 0.2,-0.4 z m 3.7,-0.7 0.1,0.3 -0.6,0 0.3,-0.2 z m -96.8,-24.9 -0.6,-2.5 0.8,-0.1 0.6,0.7 z m -61.3,4.8 -0.9,1.5 -2.4,0.4 -2.2,1.3 1.2,-1.5 2.3,0 0,-1 z m 59.3,-7.9 -0.4,-1.4 1,0.8 0.4,3 z m -0.7,-2.2 -0.3,1.3 -1.4,-1.2 1.1,-1.3 z m 1.1,-1.2 1.4,0.4 0.5,2.3 -1,-0.2 z m -66.2,-14.8 1.6,0.2 -2,1.1 -1.9,-1.3 -2.2,-0.4 3,-0.6 z m 89,39.1 -0.1,0.1 0,-0.1 z m 45.7,49.9 -0.1,-0.8 -0.5,-0.2 -1.5,-2.5 -1.5,-2.5 -0.2,-0.1 -0.1,-0.1 -2.1,-0.7 -1.6,1.9 -2.6,-1.4 -0.7,-1.8 -3.2,-2.6 -3.2,0 0,0.9 -5.5,0 -7.2,-2.4 0.2,-0.5 -4.6,0.4 -0.3,-1.2 -2.4,-2 -2.5,-0.1 -1.5,-1.1 -3.4,-5.7 -0.2,-1.3 -2.3,-2.5 -0.3,-2 -1,-1.4 0.6,-2.3 -0.9,-3.2 0.8,-2.4 0.5,-4 -1.3,-6.7 3.6,0.6 -0.1,-0.2 0.7,0.6 -0.7,-0.7 0,0 0.3,-0.4 -0.3,0.3 0,-1.8 52.8,0 4.8,1.2 2.3,1.2 3.6,0.1 -2.8,1.2 -2,1.7 2.5,-0.2 0.6,0.7 3.5,-1.6 0.1,0.1 -0.1,-0.1 1.1,-0.6 0.6,0.1 -1.1,0.9 1.8,1.4 4.6,-0.7 0.9,0.8 0.7,-0.2 0,0.5 -1.2,1.1 -4.3,-0.1 -2,3.2 1.4,-0.6 -1.1,3.6 0.1,2.3 1,1.5 1.3,-0.6 0.8,-2.5 -0.6,-1.5 0.5,-2.5 3.2,-2.7 2.1,1.1 0.3,2.4 -1,0.8 2.3,0.2 0.5,2.1 -0.2,0.9 -0.3,0.2 -0.3,-0.3 -0.5,0.8 -0.7,1.4 1.8,0.7 1.6,-0.3 4.8,-2.4 0.5,-0.8 -0.3,-0.4 0,-0.4 4.5,-0.1 1.8,-2.7 1,-0.9 1,-0.3 0,0 6.2,-0.1 2.3,-2 0.5,-2 1.5,-1.8 2.7,0.9 0,3.2 0.4,0.3 0.4,0 -0.1,0.8 0.6,0.2 0.3,0.9 -2.4,1 0.1,0.1 -0.4,0.4 0,-0.3 0,0 -0.7,0.3 0.3,-0.1 0,0.4 -0.3,0 -0.1,-0.3 -0.4,0.2 -2.9,1.8 -0.1,3.7 -4.4,1.1 -2.2,1.4 -0.1,1.9 -2.9,4 -1.5,-2.8 0.3,3 -0.4,2.2 0.9,-0.1 0.5,2.8 -1.5,2.2 -1.2,-0.1 -1.6,1.8 -2.3,1.4 -3.8,3.1 -0.6,2.1 1.8,4.7 0.9,3.4 -0.6,3.4 -1.4,0 -2,-2.7 -1.3,-2.9 0.4,-2.1 -2.7,-2.5 -1.8,1 -2.1,-1.4 -5.3,-0.3 -1.5,0.6 0.9,2.4 -1.6,-0.9 -1.3,0.8 -1.9,-1.4 -1.3,0.4 -3.4,-0.3 -4.6,2.8 -2,3.1 0.8,1.7 -2.1,-0.2 z m -65.4,-67.3 -0.3,0.2 -0.2,-0.4 0.5,0 0,0 0.3,-1.3 2.3,3 -0.1,1.4 -1.6,-1.8 -1,-0.7 z m -43.4,79.5 -0.5,-0.5 0,0 0.5,0.2 0,0.3 0,0 z m 0,0 2.3,2 -2.1,0.9 -0.2,-2.9 0,0 z m 47.3,-77.4 -0.1,0.3 -0.3,-0.2 0.4,-0.1 0,0 z m -5.8,-8.9 0.1,0.1 -0.6,-0.1 0,-0.2 -0.3,-0.2 -3.7,0.5 -3.1,-2.4 -3,-1.3 -5.6,-1.7 -2.8,-0.1 -3.5,-0.9 0,-1.1 -3.5,0 0.4,2.5 -3.2,0 -0.7,0.9 -4.1,1.5 1.3,-1.3 -1.3,-0.4 0.9,-2.8 1.8,-0.9 -0.2,-0.9 -3.4,2.4 -0.7,1.7 -2.7,1.5 1.5,1.3 -1.9,2.4 -3.6,1.6 -2.1,2.7 -0.9,-0.5 -2.1,2.2 -1.9,0.1 -3.2,1.2 -1.6,1.4 -4.7,1.2 0.5,-1.3 2.4,-0.6 3.7,-2.2 2.2,0.3 -0.3,-1.2 2.8,-1.5 2.2,-2 1.3,-3.7 -3.7,1.3 -2.5,-1.8 -2.7,1.4 0.1,-2.6 -1.2,-1.8 -2.5,0.9 -2.6,-1.5 -1.1,1 -2.1,0.4 -1.5,-1 3.4,-0.3 2.1,-1.6 -3,-1.9 0.7,-1.5 3.1,-3.7 1.5,0.7 1.8,-1.2 3.1,-1 -1.2,-2.1 0.5,-1.6 -3.8,1.7 -5.8,-0.6 -3.6,-3.5 5.3,-2.3 3,-0.5 0.1,1.6 3.5,0.3 0.3,-3.3 -3.9,-0.3 -0.8,-1.6 -4.8,-2.4 0.8,-1.8 3.6,-0.2 2.4,-1.5 -0.1,-0.9 2.4,-2.4 2,0 2.3,-1.6 3.1,-0.1 2.3,-1.7 3.3,0.7 1.9,1.2 3.4,-0.3 0.7,1.4 5.3,-0.3 4,1.3 4.8,0.7 2.5,-0.5 4.4,1.6 0,29.2 3.5,0.6 3,2.4 0.4,1 2,-2 1.7,-0.6 1,1.5 3,2.5 3,5 3.4,1.8 0.1,1.7 0,0 -1.8,1.3 0.1,-2.4 -0.3,-0.1 -0.3,-0.6 -0.4,0.4 -0.6,-0.2 -0.5,-1.3 -2.1,-2 -2.2,-3.1 z m -38.1,3.7 -1.1,-1.2 3,-2 1.7,-1.6 0.4,2.8 -2.9,1.7 -3.7,3.4 z m -3.9,82.1 -3,-1 2.1,0.2 0.9,0.8 z m 47.8,-76.9 0.1,-0.2 0,0.2 -0.1,0 0,0 z", - "JP" : "m 606.33,125.09 0,-0.1 0.6,0.4 -0.3,0.1 z m -15.5,25.1 -1.3,0.7 -2.1,-0.3 2.8,-3.2 3.7,-0.5 2.2,0.3 3,-4.4 -0.5,1.4 2.4,-0.6 0.4,-1.6 1.8,-0.6 1.1,-2.6 -0.4,-1.2 1.1,-3.2 0.7,1 1.3,-0.7 1.2,3.9 -1.8,2.3 -0.1,2.2 -0.9,2.4 0.5,1.2 -1.7,1.8 -0.3,-1.4 -3,1.8 -3.2,0.3 0.7,0.7 -1.8,1.4 -1.7,-0.6 0.6,-1.7 -3.2,0.3 -1.5,0.9 1.1,0.3 1.3,-1.2 0.9,0.5 -0.9,2.3 -0.9,-0.6 -2.2,1.7 -0.5,-1.6 z m -6.8,2 -0.4,-2 1.3,1.7 1.2,-1.1 2.4,0.6 0.6,1.3 -1.4,3.4 -2.1,0.2 -0.1,-3.3 z m 21.7,-19.1 -1,1 -0.6,-2.9 1.1,-1.6 1.9,0 0.9,-5.1 3.6,3.2 2.4,0.9 0.9,1.4 -2.6,0.5 -1.8,2.4 -2.7,-1.5 -2.9,0.7 z", - "SC" : "m 442.43,226.39 0.2,0.3 -0.1,0.2 -0.5,-0.7 z", - "IN" : "m 504.93,175.49 0.1,0 0,0.5 -0.2,-0.1 z m 0.1,-12.1 1.3,-0.3 0.2,1.4 1.7,1.2 4.4,-0.4 -0.9,-1.7 1.9,-0.4 3.9,-2.9 1.2,0.6 1.6,-0.7 2.3,2.4 -1.2,1.8 -3.2,1.8 0,1.5 -1.8,3.8 -1.5,-0.3 -0.2,3.3 -1.2,0.8 -0.8,-3.5 -1.1,1.5 -0.8,-1.3 2.5,-2.7 -0.8,-0.5 -3.2,0.1 -1,-1.7 -2.7,-1 -0.7,1.2 1.6,1.5 -1.7,1 1.4,0.7 -0.4,1.4 1,3 -1.6,1.1 -0.1,-1 -1.9,1 -1.6,3.2 -1.7,0.1 -2.6,3.2 -3.5,2.5 0.1,0.8 -3.9,1.8 -0.5,1.3 0.6,3.2 -0.9,2.6 0,3.3 -4.5,4.3 -1.9,-1.6 -1.3,-4.2 -2,-3.4 -0.9,-3.3 -1.7,-3 -1.5,-7.4 0.4,-1.3 -1,-3.6 -0.5,2.2 -2.1,1 -1.3,-0.4 -2.1,-2.1 1.8,-1.2 -2.9,-1.2 -0.9,-1.4 1.3,-0.8 2.1,0.2 2.1,-1.1 -3,-4.3 1.9,-2.5 2.7,0.2 2,-2.3 0.9,-1.8 2.2,-2.5 -0.1,-1.3 1.5,-0.9 -2.4,-2.2 -0.5,-2.5 1.1,-0.9 2.8,0.6 2.4,-1.3 1.4,-0.9 0.9,1.8 1.3,0.7 -0.3,1.7 1.4,1.7 -2.2,0.5 0.7,2.5 4.4,2.4 -1.3,0.9 -0.6,1.9 5.2,2.8 3.5,0.3 2.4,1.6 2.9,0.4 1.6,-0.7 z", - "FR" : "m 228.83,121.39 -0.4,0.1 -0.1,-0.8 0.2,0.5 z m 125.6,9.9 -0.5,2.9 -0.8,-0.5 -0.1,-2.3 z m 301.9,127.2 -0.6,2.6 -3,-1.6 -1.7,-1.7 -0.4,-1.4 4.2,3.2 z m -187.7,60.9 2.7,0.3 -0.8,1.5 -2.5,0 z m -253.1,-136.4 0.1,-0.1 0,0.2 z m 135.1,-54.4 0,0.1 -0.1,0 0,0 -0.1,0.1 -2.4,1.4 -4.2,-1 -1.7,1.4 0.3,1.2 -1.3,0.2 -1,-0.3 -0.1,0 0,0 -0.5,-0.1 0.1,-0.3 -0.6,0.1 -2.8,-0.2 -3.4,-1.7 0.6,-0.4 0.9,-5.8 -1.8,-2.4 -1.6,-1.1 -3.6,-1.4 -0.1,-1.2 3.2,-0.8 0.7,0.9 2.5,-0.3 -1,-2.7 3.3,1.1 0.7,-1 2.7,-1.3 0,-1.7 1.8,-0.5 3.1,2.8 3.2,1.1 0.3,0.2 0.7,0 3.6,1.2 -1.2,3.4 -2.8,2.4 0.2,0.7 0.1,-0.2 0.2,0 0.8,-0.1 -0.1,0.7 0.5,0.5 -0.8,1.9 z m -118,79 0.4,-0.8 1.9,0.6 2.4,2.7 -2.5,3.5 -3.1,-0.3 1.2,-2.1 -0.9,-2.8 z", - "FM" : "m 639.23,204.49 0.2,0.1 0,0.2 -0.2,0 z", - "CN" : "m 544.43,180.89 1.7,-1.7 2.1,-0.3 0.6,0.9 -1.1,2 -1.4,1 -1.9,-0.7 z m -37.9,-16.4 -0.2,-1.4 -1.3,0.3 -3,-0.5 -1.1,0.4 -1.7,-0.9 -1.9,-1.9 -1.1,0.1 -2.8,-2.4 -2,0.3 -4.4,-2.4 -0.7,-2.5 2.2,-0.5 -1.4,-1.7 0.3,-1.7 -1.3,-0.7 -0.9,-1.8 -0.8,0.1 -1.1,-0.4 -1.6,-1.8 -2.7,-1.2 -0.3,-0.2 1,-0.3 -0.3,-2.8 -1.8,-0.1 -0.3,-2 0.6,-1.3 3,-1.3 0.3,0.7 2.1,-1.4 2.5,-0.3 0.5,-0.7 3.5,-1.9 1.2,-2.2 -1.4,-4.4 4.2,-1.2 1.4,-4 3.3,0.9 1.5,-0.5 0.5,-3.3 3,-1.7 0.3,-0.1 0.6,-0.1 0.3,1.4 2.1,1.5 2.4,0.8 1.4,2.6 -0.3,3.3 5,0.6 3.6,1.5 1.9,3.7 10.1,0.5 0.7,0.7 3.3,1 2.8,0 3,-1.2 5.2,-0.4 4.7,-2.9 -1,-1.7 1.1,-1.5 3.1,0.8 1.8,-1.5 2.1,-0.2 1.8,-2 3.2,-1 2.7,0.3 0.4,-0.8 -2.6,-2.6 -1.5,0 -0.1,0.1 -0.3,0.4 -3.2,0.2 -0.7,-1.1 2.3,-4.1 2,0.7 2.8,-1.2 -0.1,-0.9 1.8,-3.3 1.3,-1.1 -1.4,-1.7 1.5,-1.3 4.7,-0.8 4.7,1.5 4.5,8.8 2.5,0.3 2.8,2.7 0.4,1.6 2.7,-0.1 3.7,-1.7 0.7,1.7 -1.2,1.1 -0.5,2.4 -2,2.8 -0.5,-0.6 -1.1,0.2 -2,0.9 0.6,1.9 -0.5,2.8 -0.9,0.7 -1.3,-1 -0.3,1.2 -3.2,1.1 0.2,1.4 -2.9,-0.7 -1.2,1.8 -3.1,1.8 -3.6,1.5 -2.6,1.5 0.3,-1.4 1.9,-2.5 -2.1,-1 -1.4,1.7 -1.8,0.6 -1,1.6 -2.4,0.2 0.7,2.1 1.4,0 1.2,2.3 2.4,-1.6 1.7,0.9 2.1,0.1 -3.7,2 -3,3.1 2,1.6 1.2,3.5 1.8,1.5 0.3,2.2 -1.9,0.8 2.7,1.5 -1.5,1.1 0.1,2 -1.3,0.7 -2.9,4.1 0.6,1.2 -1.8,0.6 -4.5,4.4 -3.3,0.2 -1.1,1.2 -1.1,-1.6 -0.1,1.8 -5.5,1.5 -1.5,2.2 -0.3,-2.4 -2.5,-0.8 -0.9,0.8 -2.7,-1.8 0.4,-0.8 -2.8,-1.2 -2.6,1.7 -2.8,-0.5 -0.7,0.7 -1.2,0.3 0.4,2.3 -1,-0.9 -1.9,0.3 -0.5,-1.3 -1.5,-0.2 0.7,-1.8 -1.2,-0.2 -0.6,-1.8 -1.8,0.4 0.1,-2.4 1.9,-1.7 0,-3.5 -2.2,-1.9 -0.4,0.6 -2.3,-2.4 -1.6,0.7 -1.2,-0.6 -3.9,2.9 -1.9,0.4 -2.7,-1.3 z", - "PT" : "m 322.13,143.49 -3.1,0.4 0.5,-2.6 -1.4,-1.1 1.5,-4.7 -0.1,-2.7 4.2,0.1 0.7,0.8 -1.4,1.3 -0.1,4.5 z", - "SW" : "m 185.73,187.29 0,0 0,0 z", - "SH" : "m 561.73,188.69 0,0 0,0 0,0 z", - "BR" : "m 241.13,217.99 2.5,0.3 -0.8,2.2 -3.4,0.6 -0.4,-2.2 z m -7.3,66.1 0.8,-1.6 -0.1,-0.3 -4.7,-3.8 -0.8,0.5 -1.5,-2.1 -1.5,0.2 3.5,-4.1 3.7,-2.2 -0.1,-3.1 -1.4,-0.1 0.1,-0.1 -0.1,-0.2 0.7,-1.5 0,-1.3 -2.2,-0.2 -0.4,-2.6 -1.5,-1.1 -3,-0.1 0.3,-2.2 -0.7,-1.6 1.2,-3.9 -1.6,-1.8 -0.2,-1.8 -3.2,-0.1 -0.6,-4.8 -2.6,-0.5 -2.4,-1.7 -2.5,-0.4 -1.9,-2.5 -0.1,-2.9 -2.3,0.5 -3.2,2 -2.4,0 -2.1,0.1 0.3,-3 -1.3,0.9 -1.9,0.2 -3.5,-4.8 1.7,-2.2 0.4,-2.4 4.1,-1.8 1.5,0.1 1,-5.3 -1.2,-2.4 0.4,-3.6 3.3,0 1.5,-0.7 0.9,1.6 2.6,1.1 2.7,-1.7 1.5,-1.6 -1.3,-0.1 -1.2,-2.9 5.9,-0.5 1.6,-1.8 1.4,0.2 0.9,2.2 -0.9,2.3 0.5,1.6 1.8,1.3 3.2,-1.6 1.2,0.2 1,-1.1 2.6,0.3 3.1,0.3 2.5,-3.5 1.2,0.3 0.7,3.2 1.5,1 0.2,3.1 -3,0.9 1.4,2.6 2.7,0.3 2.9,-2.7 5.2,1.5 0.7,2.6 1.8,-0.8 4,1.2 3.1,-0.1 2.9,1.6 2.5,2.3 3.1,0.4 1.5,3.9 -1,3.9 -3.1,3 -2.2,3.6 -1.7,1.2 0.2,5.1 -0.6,3.5 -0.9,1.1 -0.1,2.3 -2.7,4.2 0.2,0.9 -2,2 -4.4,0 -5,2.7 -1.7,1.3 -1.5,2.3 0.4,2.7 -0.7,2.3 -2,2 -1,2.1 -1.7,-0.6 -0.4,1.9 -1.5,1.4 -0.8,2.9 -1.4,1.3 -0.3,-0.2 z", - "KI" : "m 34.93,213.89 0.2,0.4 0.2,0.2 -0.4,-0.1 z", - "PH" : "m 574.43,195.49 1.3,-0.2 -1.5,-1.5 1.7,-0.1 1.1,2.8 -1.3,-0.2 -0.5,1.8 z m -8.8,0.5 0.2,-1.8 0.9,0.5 -1.1,1.3 z m -0.4,0.4 0,0 0.4,-0.4 0,0 0,0 -0.4,0.4 z m 4.6,1.5 0.1,-3.5 2.2,1.5 -0.4,1.1 2.1,-0.8 -0.1,1.8 -1.9,2.5 -1.2,-1.5 0.4,-1.7 z m 4.4,5.8 -1.6,-0.8 -1.8,0.2 -1,2.5 0.2,-2.6 2.5,-1.9 1,1.1 1.7,-1.7 1.4,0.1 0,-2 1.6,2.3 0.5,3 -0.7,1 -0.9,-1.1 -0.8,1.3 0.1,2 -2.2,-1.1 z m 0.3,-12.1 -0.7,3.8 -1.2,-1 -0.5,-2.4 -1.2,-1 0.1,1.6 -1.7,-1.6 -1,1.1 1,0.9 -0.9,1.4 -1.6,-2.5 1.2,-0.1 -1.8,-2.4 -0.5,-3 1.1,0.4 -0.1,-2.8 1.6,-2.9 -0.2,0.8 2.3,0.8 0.5,2.2 -0.7,1.7 -1.2,0.6 0.3,3.4 1.5,-0.3 z m -9.3,4.8 0.3,1.3 -4.6,3.9 4.3,-5.2 z", - "MX" : "m 170.23,178.09 -0.5,0.6 0,-0.3 0.1,-0.3 z m -38.2,-2.3 0.3,0.1 0.6,0.8 -0.5,-0.4 z m -10.1,-5.6 0.3,0 0.2,0.3 0,0.1 z m -0.4,-1 -0.1,0.4 -0.1,0 0.1,-0.4 z m -5.8,-6.3 -0.1,0.1 -0.2,-0.2 0.3,-0.5 z m -5.8,-1.7 -0.1,0 -0.1,-0.5 0.2,0.2 z m 10.9,0.4 0.2,-1 0.5,0.4 -0.3,0.5 z m -1.8,-1.7 0.6,0.5 0.1,0.6 -0.9,-0.8 z m 23.5,-0.1 -0.1,0.2 0.4,0 1.5,2.5 1.5,2.5 0.4,0.5 0.2,0.5 1.8,1 2.1,0.2 -1,3 -0.4,4 1.4,3.7 2.5,3.8 2.6,1.2 5,-1 1.8,-1 1.1,-3.7 4.2,-1.2 2.7,0.7 -1.3,2.1 -0.8,3.9 -0.9,-0.5 -1.1,1.2 -0.5,0.1 -3.5,0 -0.9,1.1 2,1.8 -2.6,0.6 -0.9,2.9 -3.2,-3 -1.8,-0.7 -3.3,1.5 -4.2,-1.7 -4.4,-1.4 -1.4,-1.2 -3.3,-0.9 -2.8,-2 -1.4,-2.1 1,-2.1 -1.2,-2.3 -4.8,-5.3 -2.2,-1.1 0,-1.9 -2.1,-1.3 -3,-3.4 -1.9,-3.8 0.1,-0.7 -2.9,-1.3 -0.2,3.3 2,1.9 6,9 -0.2,1.3 1.6,0.2 0.6,1.9 -0.8,0.7 -0.8,-1.4 -3.5,-2.6 -0.2,-2.4 -2.6,-1.4 -2.8,-2.3 1.7,-0.2 0.2,-1.1 -3.1,-2.7 -0.7,-2.2 -2.1,-3.6 4.6,-0.4 -0.2,0.5 7.2,2.4 5.5,0 0,-0.9 3.2,0 3.2,2.6 0.7,1.8 2.6,1.4 1.6,-1.9 z m 7,8.5 -0.4,1 0.2,0.8 0.5,-1.8 z", - "ES" : "m 306.83,163.39 -2,-0.6 -1.3,0.1 1.9,-1 z m 23.8,-15.8 0.1,0.1 -0.1,0 0,-0.1 z m -4.7,-1.3 0.2,0.1 0,0.1 -0.1,-0.1 z m 0.1,-0.5 -1.5,-0.3 -0.7,-1.5 -1.7,-0.5 0.8,-4 0.1,-4.5 1.4,-1.3 -0.7,-0.8 -4.2,-0.1 -0.9,-2.7 2.5,-1.4 1.3,0.4 7,0.1 3.4,0.3 3.4,1.7 2.8,0.2 0.2,0.4 0.3,-0.2 0.5,0.1 0,0 0,-0.1 0.1,0.1 0,0 1,0.3 1.3,-0.2 0.1,1 -2.3,1.6 -2,0.5 -2.5,3.5 1,1.6 -1.4,1 -0.4,1.6 -1.8,0.6 -0.8,1.2 -4.5,0.2 -1.7,1.2 z", - "BU" : "m 183.13,187.49 0,0 0,0 0,0 z", - "MV" : "m 476.83,206.89 0.5,0.7 -0.6,0 0.2,-0.4 z", - "SP" : "m 558.13,197.09 0,0 -0.1,0 0.1,0 z", - "GB" : "m 330.13,90.09 0.1,0.2 -0.2,0.1 -0.3,-0.3 z m 0.2,-0.8 0,0.5 0.3,0.1 -0.8,-0.1 z m 0.5,-0.2 -0.4,-0.2 0.8,0.3 -0.2,0.2 z m 3.5,-3.1 -0.5,1.4 -0.1,-1 -0.6,-0.3 z m 0.2,-0.9 0.3,0.1 -0.8,0.2 0.2,-0.5 z m 0.3,-0.4 -0.1,0.3 -0.3,0 0.1,-0.4 z m -154.3,95.9 0.1,-0.1 0.4,0.1 -0.3,0.1 z m 18.7,-4.9 -0.4,0 -0.1,-0.2 0.3,0.1 z m -1,-0.2 -0.1,0.2 -0.3,0 0.3,-0.1 z m 124.5,-81.9 0,-1.5 1.6,-0.9 -0.2,1.3 z m -100.7,234.1 1.4,-2.7 2,0.4 0.3,0.8 z m 179.2,-179.3 -0.1,0 -0.1,0 -0.1,-0.1 0,0 0.1,0.1 -0.2,0 0,-0.1 0,0 0,-0.1 0.1,0 0.3,0 0,0 -0.2,0 z m -0.3,-0.1 0,0 0,0 z m -74.8,-2.5 -0.1,0.1 0,-0.1 z m 73.4,3.3 -0.2,0 -0.3,0 0.1,-0.1 z m -77.1,-48.5 1.8,-0.6 1.5,1.7 -1.4,1.4 -2,0 -1.7,-0.9 z m 2.3,-6.2 2,-3.6 3.8,0 -2,2 1.1,0.6 3,0.1 0.3,0.6 -2.7,3.8 3,1.3 0.8,2.5 2.1,1.4 0.8,2.7 -0.6,0.5 3.2,0.3 -0.2,1.8 -1.7,1.5 1.3,0.9 -2.1,1 -7.1,0.3 -3.8,1 2.4,-2.5 2.1,0 -2.5,-1.5 -1.8,-0.2 2.1,-1 0.1,-2.5 1.9,-0.4 0.6,-2.1 -1.5,-0.9 0.5,-0.9 -2,-0.1 0.1,1.3 -1.4,-1.1 0.9,-1.8 -2,-2.4 -1.7,-0.7 1.5,-0.4 -1.9,-1.8 z", - "GR" : "m 386.63,147.99 -3,0.5 -2.3,-0.8 1.3,-0.6 z m 2.5,-2.3 1.2,-0.6 -0.3,0.8 -0.5,0.5 z m -0.8,-0.9 -0.4,-0.2 0.4,-0.4 -0.1,0.3 z m -0.5,-1 0.2,0.1 -0.2,0.2 0.1,-0.2 z m -3.3,0.2 0.7,-0.5 0.1,0.4 -0.4,0.8 z m 2.2,-1.4 -0.5,0.2 -0.2,-0.1 0.2,-0.1 z m 1.2,-0.3 0.2,0.1 -0.5,0.1 -0.4,-0.2 z m -1.7,-1.8 0.2,0.6 -0.4,-0.1 -0.2,-0.5 z m -1.2,-3.3 -0.4,0.1 0.4,-1.1 0.4,0 z m -8.5,-1.5 0.2,-0.1 -0.2,0.1 -0.1,-0.1 0,-0.1 0.1,-0.1 0.2,0 1.5,-0.6 2,-0.5 3,-0.6 1.4,0.8 2.1,-1.1 0.6,0.7 -1.2,1.5 -1.9,-0.6 -2.5,0.8 1.3,1.1 -3.4,-0.7 -0.1,1 5.4,5.8 -2.8,-1.9 0.3,1.3 -1.7,-0.6 -0.9,0.9 0.9,2.5 -2.5,-0.6 -1,-3.3 -2.6,-3.3 0.7,-0.3 z m 10.4,3.3 0.3,0.4 -0.3,0.2 -1.2,-0.5 1.1,-0.3 0,0 z", - "AS" : "m 9.63,245.09 -0.1,0 -0.1,0.2 -0.2,-0.1 z", - "DK" : "m 357.83,100.89 1,0.8 -0.6,0 -0.8,-0.3 z m -1.7,0.1 0.3,0.1 -0.2,0.1 -0.4,-0.4 z m 4.2,-0.3 -0.7,0.4 0,-0.3 0.3,-0.1 z m -5.3,-0.2 0.5,0.4 -0.1,0.2 -0.4,-0.1 z m 2,0.4 -0.2,0.5 -0.2,-0.2 0.7,-0.9 z m 3.4,-2 -1.2,2.7 -1.7,-2.6 2.2,-1.3 z m -6.1,2.4 -1.1,-0.3 -0.3,0 -1.1,-4.4 3.2,-1.5 1.6,-1.8 -0.7,2.3 1.4,1.3 -0.9,0.9 0.6,2.3 -2.4,-0.5 z", - "GL" : "m 234.93,60.89 0.2,0.2 -0.5,0.1 -0.2,-0.2 z m 1.5,-0.8 -1.8,0.4 0.2,-0.2 0.7,-0.2 z m -4.8,-5.7 -0.5,0 -0.2,-0.4 0.5,0.1 z m 2.2,-2.3 -0.9,-0.3 0.7,-0.7 0.5,0.7 z m -2.9,-4.6 -0.9,0.6 -0.2,-0.3 1.1,-0.5 z m -1.2,-1.6 -0.4,0.4 -0.7,-0.2 0.5,-0.2 z m 1.3,-0.1 -1.1,0.9 -0.1,-0.8 0.7,-0.2 z m -1.8,-2.8 0.9,0.5 -0.3,0 -1,-0.5 z m -0.7,-1.2 0.6,0.1 -1.2,0.1 0,-0.4 z m -0.4,-2.3 -1.1,0 -0.9,0 1.6,-0.3 z m -25.1,-8 -0.8,0 0.1,-0.2 0.8,-0.1 z m -5,-3.6 1.6,0.3 -0.6,0.2 -1.6,-0.3 z m 2.5,-0.2 1.3,0.4 -1.6,0 -0.4,-0.3 z m 102.6,-10.6 -2.2,1.3 -1.8,-0.7 3.2,-1.1 z m -94.9,-3 0.6,0.2 -0.4,0.1 -0.2,-0.1 z m 30,-6 -1.7,-0.1 -2.1,-0.5 0.8,-1 z m -4.8,50.1 0.6,-0.6 -3,-0.9 0.3,-1.7 3,0 2.4,1.4 -0.3,1.1 z m 1.4,12.1 -0.3,0 0,-0.2 0,-0.1 -0.2,-0.1 -0.7,-2.6 2.6,-1.4 -3.2,-0.5 1.5,-3.6 3.8,-1.2 0.7,-3.9 -1.2,-0.9 -4.6,-1.4 -1.4,-1.2 4.1,0.1 3.4,1.3 -1.5,-2.1 -2,-1.1 -0.3,0.2 -0.9,-0.1 0.3,-0.6 0.2,0 -0.3,-0.2 2.3,-0.6 -1.9,-0.2 -0.8,0.5 -0.5,-0.5 0.8,0 0.2,0 -2.2,-0.2 0.3,1 -2.6,0.2 -1.2,-1.1 0.6,-0.6 -0.3,-0.2 0.4,-0.1 0.1,0.1 1.2,-1.2 0.5,-2.1 -1,-0.4 0.1,-0.1 -0.8,-0.3 -0.1,0 -0.2,-0.1 0.8,-1.2 -1.5,-0.9 0.7,-0.9 -1.4,-0.7 0.5,-1.1 -1.8,-2.2 -2.1,-0.5 -0.9,-1.2 0.4,-1.4 -4.7,-1.7 -5,-0.8 -1,0.9 -4.2,-0.5 -0.5,1.3 -3.7,-0.5 -2.4,-1.3 3.2,-1.2 -4.6,-0.4 -1.8,-0.8 0.8,-0.8 4.9,-0.8 3,0.1 1,-1 -5.7,0.6 -0.5,-0.9 -3.5,-0.4 -3,-1.6 0.6,-1.5 6.2,-1.2 2.5,-1.2 4,-0.1 2.1,-1.7 -0.4,-2.3 -3.8,-0.1 -0.8,-1.3 4.5,-1.9 0.6,-1 3.5,-1 2.7,0.7 1.5,-2 -1.3,-1.1 5.5,-1.7 7.9,-1.2 1.7,1.2 -0.4,2.6 1.6,-2.3 3,0.7 3.7,-0.2 -2.2,-1 -1,-1.7 4,0.3 5.8,1.9 1.6,1.2 1.8,-0.3 -1.4,-0.9 0.4,-0.3 -4.1,-1.2 -2.8,-2 1.3,0.7 2.6,-0.2 3.6,1.3 -0.6,1.4 2,-1.4 -3.9,-1.8 9.1,0.1 -8.9,-0.5 -2.3,-0.5 1.5,-0.6 1.8,0.5 0.9,-0.9 4.8,-0.3 4.4,0.2 1.9,0.1 0.3,-1.2 3.7,-0.5 8.2,-0.5 3.5,0.2 9.6,1.4 -0.8,0.5 -9,0.3 -8,1.1 5.9,-0.4 3.4,-0.6 5.2,0.3 4.1,-0.5 1.4,1.3 3.5,0.4 2.5,0.9 -2.1,1.3 -14.2,1 -5.6,1.3 2.1,0.1 7.5,-1.1 6,0.4 -0.1,0.9 -3.1,0.8 -0.1,0.9 5,-1.5 1.1,-1.3 3.4,-0.3 0.3,2.6 -3.6,2.7 2.2,-0.4 6.4,-3.7 3,1.2 2.4,-1.2 3.6,0.1 3.6,0.8 1.3,0.8 -3.8,2 -2.3,0.1 0.5,1 -2.1,0.6 -3.2,-0.1 2.4,1.2 -1.2,0.8 -4.5,0.5 -3,0.9 2.2,0.8 -0.7,1.4 1.2,1 -1.8,0.6 0.9,1.3 -2,-0.6 -1.6,2.5 -0.2,1.6 4.2,-0.2 -0.3,0.8 2.9,0.4 -2.9,0.4 -2.8,-0.5 0.7,1.1 4.1,0.7 -0.8,2.8 0.4,2.3 -1.1,-2.1 0.7,-1.2 -3.4,-0.7 -2.3,1.2 0,1.6 3.4,-0.1 1.1,3.4 3.9,1.4 -2.1,0.2 -1.8,2.7 -3.6,0.7 1.3,2.4 -1.9,-0.1 -1.4,0.8 -3.3,-1.2 -4.1,1.3 1.1,0.3 -0.2,-0.1 2.3,-0.9 2.4,1.3 2.5,0.6 0.1,0.8 -2,-0.3 1.8,1 -1.3,0.1 0.9,1.2 -4.2,-1.7 -0.2,-0.8 1.5,0 -1.6,-0.3 -1.2,-0.5 -1,0.5 2.2,1.8 3.9,1.8 -1.1,0.7 2.4,1.6 0.7,2.5 -3.6,0.4 -1.8,-2.3 -3,-1.7 0.5,1.4 -4.5,1 -0.6,1.8 1.8,-0.2 -1.5,0 0.8,-1.1 4.5,-1.1 0,1.4 -1.7,0.7 -1.2,0 -2,1.3 1.1,0.3 3.8,-1.4 3.4,1 2.2,0 -1.6,1.6 -1.7,0.4 -4.1,2.8 -3.4,0.5 -2.6,1.2 -5,0.5 -2.6,1.6 0.2,0.8 -2.7,3 -3.3,1.7 -2.8,0.8 -0.3,-2.1 -1,1.8 -3.1,0.7 1.3,0.4 -1.5,1 -1.1,2 0.6,2 -3.1,3.4 -0.9,5 -1.6,1.2 0.4,1.5 -2.1,0.2 -2,-0.9 -0.2,-1.3 -4.7,-0.6 -2.1,-1.6 -0.5,-2.2 -1.9,-1 0.3,-1.4 -2.4,-1.6 0.2,-2.8 -1.5,0.8 0.1,-2.6 z", - "GU" : "m 613.53,191.99 -0.2,0.4 -0.1,-0.3 0.5,-0.5 z", - "MP" : "m 615.13,188.99 0.1,-0.4 0.3,-0.1 -0.2,0.3 z", - "PR" : "m 211.33,182.59 -1.8,0.7 -1.7,0 0,-1.2 z", - "VI" : "m 212.33,183.59 0.4,0 -0.7,0.2 0.1,-0.2 z", - "CA" : "m 175.63,27.69 -3.1,-0.2 0.9,-2.2 -2.3,-0.5 -2.3,0.3 0,-1.4 1.7,-1.5 2.6,-0.5 3.9,0.5 2.7,-0.3 -4.8,-0.3 -1.4,-2.9 -2.7,-0.6 0,-2.5 5.1,0.3 3.1,1.7 0.9,1.2 0.4,-1.6 -3.3,-1.5 9.9,-1.3 -3.7,-0.1 6.4,-1.3 -5.8,0.4 -6.3,1.3 -1.8,-1 -1,1.1 -4.5,-0.4 1.2,-1.8 -2.2,1.7 -4.1,-1.2 5.2,-0.5 0.3,-0.6 -6.3,0.5 -1,-0.7 3.7,-1.9 -4,1 1.8,-1.2 -4.6,0 1.8,-1 5.7,-1.2 6.3,0.6 -3.8,-0.7 2.7,-0.7 -0.8,-0.9 5.3,0.8 5.7,1.6 -5.2,-2 1.2,-1.4 2.9,0.6 -1.9,-1.1 3.2,0.1 -0.5,-0.8 5.8,0.3 1.9,-0.9 3.7,0.3 0.7,0.6 1.7,-1 6.3,-0.2 0.1,0.6 6.2,0.5 -4.3,1.2 2.3,-0.1 5.2,-1.2 3.4,1.9 2.6,0.1 0.5,1.4 -5.9,2.2 -1.9,-0.2 -2.4,1.2 -6.6,1.6 10.6,-1.8 -7.2,3.6 -4.5,2.7 -1.6,1.8 -3.6,-0.2 0.4,1.1 -5.3,0.8 -2.8,-0.5 0.1,0.8 5.5,0.2 0,0.8 -3.2,-0.4 -3.4,0.3 4.1,0.3 2.2,0.9 -0.3,0.8 -3.3,0.2 2.7,0.7 -0.9,1.1 -3.9,1.2 -1.3,1.8 -4.8,0.2 3.4,1 -0.7,0.7 2.8,-0.2 0.3,1.2 -2.9,1.4 0.8,1.8 -1.7,-0.1 0.8,-1.6 -3.3,0.7 0.5,-1.2 -6,-0.2 -0.9,0.6 -5.8,-0.5 -5.1,-0.2 -0.9,-0.9 4.3,-1.7 1.2,-0.9 -1,-1.8 1.9,-0.4 2.4,0.8 0.3,1.1 z m 0,0 0,0 0,0 0,0 0,0 0,0 1,-0.1 1.2,-2.1 -2.2,2.2 0,0 0,0 0,0 z m 9.3,102.5 0,0.2 0.3,0.2 -4.7,0.7 -2.4,1.4 -0.9,-0.7 1.2,0 -0.4,-0.5 0.3,-0.2 0.2,-0.9 1.3,-0.8 0.8,-4.4 2.3,1.8 0.7,-0.7 -1.9,-2.7 -6.5,-1 0,-0.5 -0.7,0.2 -0.7,-3.5 -1.9,-0.2 -1.1,-1.9 -3.1,-0.6 -2.9,2.5 -3.6,-0.1 -2.3,-1.2 -4.8,-1.2 -52.8,0 -0.4,-0.2 -0.2,0.2 -0.1,0 -0.4,-0.9 -2.7,-1.5 0.2,-0.7 -0.4,-0.1 0,0.1 0.3,0.2 -0.3,0.1 -0.2,-0.4 -0.5,-0.1 0,-0.1 -0.2,-0.2 -0.1,0.2 -0.6,-0.1 -0.1,0 -0.6,-0.1 0.5,0.1 0,0 -0.3,0 0.3,0.1 0.1,0 0.4,0.1 0.4,0.4 -0.1,0.1 0.3,0.3 0,0 1.2,1.6 2,1.6 -0.1,-0.5 0.5,0.3 0.5,0 -0.8,0.2 0.3,0.3 -0.5,0.7 -2.1,-0.6 -3.7,-2.1 -0.1,-0.5 0.1,-0.1 -0.3,-0.5 0,0 -0.1,-0.2 -1.9,-0.4 -1.2,-1.7 1,-0.3 2.6,0.8 0.1,-0.1 -0.2,-0.1 0.6,0 0.2,-0.2 -0.2,-0.2 -0.6,0.4 -2.3,-1.3 -0.3,-2.3 -0.3,0.8 -0.3,-0.3 0.2,-0.4 0.4,-0.1 0,0 0,-0.1 0.1,-0.2 -0.2,0.1 0,-0.1 0.2,0 -0.1,-0.3 -0.1,0.1 -0.2,-1.3 -1,-0.9 -0.5,1.2 -0.6,-0.9 0.1,-0.3 -0.3,0 0,-0.3 0.3,-0.2 0,0.4 0.1,-0.4 0.7,0.3 -0.2,-0.2 0.4,-2 -0.8,1 0.4,-0.1 -0.1,0.3 -0.4,0.2 -0.1,-0.2 -0.3,0.5 -2.2,-2.4 0.9,-1.9 0,-0.7 -0.1,-1.7 -3.4,-1.8 -3,-5 -3,-2.5 -1,-1.5 -1.7,0.6 -2,2 -0.4,-1 -3,-2.4 -3.5,-0.6 0,-29.2 3.6,0.5 3.6,1.9 2.6,0.1 0.1,-1.3 3.9,-0.7 1.1,0.3 5.4,-2.6 1.7,0.5 -4.7,1.7 -1.7,1.6 3.1,-1.8 0.6,1.1 1.1,-1.4 6.2,-2 0.9,1.8 2.3,1.4 1.8,-2.7 0.2,2.6 2.4,-0.5 0.4,-1.2 2.9,0.3 2.2,1.2 4.3,1.3 3.9,0.7 0.1,-0.6 3.4,1.5 0.2,1 -1.7,-0.1 -1.1,1.1 3.2,0.8 4.4,-0.1 2.3,-0.8 2.3,0.7 0.6,1.3 1.6,0.3 0.8,2.4 0.7,-1.9 -1.5,-1.9 4.5,-3.1 -3.8,1.6 -2.3,-0.4 1.1,-1.1 4.7,-0.9 0.9,1.8 1.6,1 2.2,0.1 3.5,1.1 1.6,-0.6 4.5,0.2 1.5,0.7 -2.2,-2.6 2.8,-0.3 0.8,1.4 1.8,-0.9 -1.1,2.7 2.2,1.9 -0.3,-3.8 1.2,0.1 2.4,-2.7 -2,0.3 0.6,-2.3 -3.6,-1.4 -0.7,-1.7 0.2,-3.3 2.4,-2.3 1.1,-0.2 -1,0.1 0,-1.8 -1.1,-1.2 0,-3.1 0.9,-1.4 3,-0.6 2.7,0.7 4,0.3 -3.2,3.9 -1,0.5 -3.4,-0.2 1.3,1.1 -1.2,1.6 -0.8,0.1 2.5,1.9 0.3,2.1 2.9,2.5 -2.5,1.5 2,0.7 2.6,2.1 0.3,2.1 1.2,-2.7 1.4,-0.6 1.9,1.7 -0.9,1.5 1.7,3.8 3.1,-3.1 0.5,-2.2 1.8,-1 -1.5,-0.8 0,-1.7 2.2,-0.3 0.9,0.2 0,-0.1 0.6,0.1 -0.1,0.1 1.9,0.4 2.4,1.5 -0.9,1 1.1,0.9 -2.7,0.6 2.7,3.3 -0.5,1.5 -3.5,2.1 -2,-2 1.3,2.5 -3,-0.3 -0.4,-0.9 -2.5,0.4 1.8,0.9 -2.9,2.6 -1.1,0 -3.3,-1.9 1.2,1.9 3.8,0.3 -1.8,3.2 -2,0.8 -1.8,-0.7 -0.4,1.6 -1.5,0.2 0,0.1 0.6,0.2 -0.1,0.1 -0.1,-0.2 -0.4,-0.1 0.6,1.5 -3.9,1.7 -3.2,4.8 -0.9,2.6 0.8,3.5 2.4,-0.1 1.4,3.6 -0.5,1.4 3.2,-0.9 4.1,1.1 2.5,2.2 5.7,2.2 4.4,0.5 0.3,3.3 -0.3,2.2 4.9,4.7 2.4,-3.1 -0.9,-1.8 -0.3,-2.9 -1.2,-1.3 3.8,-1.7 2.1,-2 0.3,-2.1 -1.1,-3.2 -2.8,-1.8 2.4,-3.4 -1.7,-3 1.2,-1.8 -1.2,-2.4 1.3,-0.9 5.2,1.3 2.1,-1 3.8,2.4 -0.2,0.9 4.6,1.7 -0.8,0.7 0.7,4.7 1.3,-0.1 2.1,2.3 3.6,-2.1 0.5,-2.5 1.3,-1.8 0.9,0.4 0.4,1.4 0.2,-0.4 0.2,0.3 -0.3,0.2 -0.1,-0.1 0.2,1 1.3,0.3 0.9,1.9 3,4.2 -1.1,1.3 4.1,4 4.8,1.7 -1.4,0.7 1.7,1.3 2.5,0.7 0.4,3.2 -2.6,2 -3.1,0.6 -2.4,2.2 -3.6,0.6 -1.2,-0.5 -7.8,0 -1.8,2.4 -3.2,1.4 -1.7,2.4 -2.7,2.5 -3.2,1.3 -3.3,2.9 -1,0.3 -1,0.9 -6.1,1.4 -1.6,1.3 1.4,0.1 0,0.2 z m -90.5,-17.9 0,0 0,0 z m 5.8,2.8 -0.1,-0.3 -0.2,0.1 0,0.1 z m -7.8,-7.2 0.3,-0.4 -1,0.4 -0.3,0.8 z m 57.5,-44.6 -0.4,0.1 0.1,0.3 0.3,-0.2 z m -54.8,52.4 0.3,0.1 0,-0.2 -0.1,-0.1 z m -0.2,-0.3 -0.1,-0.2 -0.2,0 0,0.2 z m 117.6,-39.5 0,2.5 -1.1,0.4 -2.5,-0.6 -1.9,-1.4 -0.2,1.1 3.2,2.7 -0.6,1 -4.4,-1.2 -2,-1.2 -4,-1.6 0.3,-1.2 -2.1,-0.8 -1.6,-2.4 -2.3,0.8 -2.2,-0.8 -1.7,1.3 -2.2,-0.5 -0.5,-1.8 1.3,-1.6 3.2,0.8 3,-1 1.4,0.2 -1.9,-2.2 2.9,-1.9 1.5,-1.7 -1.6,-3.2 -1.6,-0.3 -3.1,-2.3 -2.2,1.2 0,-1.2 1.9,-0.7 -4,-2 0,-1.2 -2.4,-0.5 0.3,1.5 -5.7,-0.9 -0.7,1.2 -7.9,-1.1 -4.6,-1.2 -1.7,-2.2 4.2,0.5 -1.4,-0.9 -3.3,-0.4 -0.5,-2.1 1,-3.2 1.2,-1.8 2.2,-1.6 2.1,-0.5 3,0.2 -3,3.6 0.5,3 3,2.6 -1.2,-3.6 1.9,0.6 -2.3,-1.9 1,-2.2 4.5,-1.9 2.5,0.1 2.4,3.6 -1.1,2.8 2,-1.9 1.7,1.7 0.9,-2 1.6,-0.6 4.6,0.9 -0.2,1.3 2,0.2 0,1.2 2.3,1.7 1.1,-1.4 2.6,1.4 -1.8,0.6 -0.1,0.4 0.6,-0.3 0.6,0.4 1.3,-0.6 -0.8,1.9 2.5,-1.1 3,1.1 2.4,2.9 -1.4,0.2 0.2,0.1 -0.4,0.3 0.4,0.1 0.4,-0.3 0.4,0.2 -0.5,0.2 0.7,0.1 0.8,1.1 -1.8,0.4 -0.7,0.8 -0.2,0 -0.4,-0.1 0.5,0.2 -0.4,0.5 2.8,0.6 0.6,0.8 0.2,-0.2 0.4,0 0,0.3 -0.6,-0.1 0.6,0.8 2.5,-0.4 2,2.5 0.2,0 0.4,-0.1 0.5,0.1 -0.1,0 0.8,0.1 -0.7,1.2 2.6,-0.4 1,2.1 -2.1,0.5 -0.1,1.7 -2,0.7 0.2,1.7 -1.9,-0.6 -4.4,-4.5 -2,0.2 1.5,1.5 -1.6,1.4 4.5,2.5 -0.2,0.8 2,1.6 0,0.2 0,0 0.1,0.4 0.3,0.3 z m -14.4,-23.2 -0.1,0.3 0.6,-0.2 -0.3,0.1 z m 8,4.1 -1.4,0.1 0.8,0.2 z m -5.8,64.5 -0.2,0 0.5,-0.4 0,0.2 z m -100.9,-5.5 0.3,0.4 0.4,0.2 -0.3,-0.1 z m 114.1,-2 4.3,1.4 -0.7,0.7 -2.6,-0.8 z m -116.5,-0.2 -0.2,-0.3 0.2,-0.1 0.2,0.3 z m -5.6,-3.7 -0.4,0 -0.1,-0.4 0.3,-0.2 z m 93.5,-1.6 -0.5,0.3 -0.6,0.2 0,-0.3 z m -99.5,0 -0.1,0.1 -0.1,0.2 0,-0.4 z m 5.4,0.2 -0.2,-0.2 0.2,-0.2 0.1,0 z m -0.1,-0.5 -0.1,0.2 -0.4,0 0.2,-0.2 z m -0.8,-0.7 0.1,0.4 -0.1,0.2 -0.2,-0.5 z m 0.3,-0.3 0.1,0.3 -0.1,0.2 -0.4,-0.4 z m -6,-0.3 0.4,0 0,0.2 -0.3,0.1 z m 6.3,0.9 -0.2,-0.6 0.2,-0.5 0.2,0.8 z m -1.8,-1.1 0.7,0.5 0,0.3 -0.3,-0.2 z m 2,0.5 0,-0.2 -0.1,-0.2 0.3,0 z m -2.5,-1.2 0.1,0.3 -0.2,0 -0.2,-0.4 z m 0.3,-0.2 0.2,0.4 -0.2,0 -0.2,-0.5 z m 91.9,-0.2 0.6,0.1 0.8,1.3 -2.6,-0.9 z m 3,0.2 0.1,0.1 -0.3,0.1 0.1,-0.3 z m -94,-0.5 -0.3,0.1 -0.1,-0.1 0.3,-0.5 z m -3.1,-0.3 0.1,-0.5 1.2,0.7 -0.1,0.6 z m 0.9,-0.4 -0.5,0 -0.1,-0.2 0.4,-0.2 z m 0.6,-0.1 0.9,0.8 -0.5,0.3 -1.4,-1.6 z m -1.7,-1.2 0.6,0.1 0.2,0.3 -0.7,0.4 z m -0.8,-1.3 0.7,0 0.1,0.6 -0.6,-0.2 z m 99.2,-0.8 -0.6,0.2 -0.1,-0.1 1.2,-0.2 z m -98,0.4 0,-0.1 0.5,-0.6 -0.1,0.5 z m 98.6,-3.5 0.4,-1 0.2,0 -0.1,0.7 z m -1.2,-1.5 0,0.5 -0.7,0.6 0.6,-0.6 z m -0.5,-0.7 -0.2,0.1 0.2,-0.3 0.2,0.3 z m 23.6,-3.9 -0.3,-0.1 0.1,-0.2 0.1,0 z m -2.9,-2 -0.6,0.1 0,-0.5 0.5,0 z m -21.7,-1.9 0.3,-0.2 0.1,0.2 -0.2,0.1 z m 0.7,-0.6 0.2,0.1 -0.2,0.2 -0.3,0.1 z m 29.3,-2 0.5,0.8 -0.5,-0.2 -0.2,-0.3 z m -6.5,0 0.5,0.3 -0.3,0.5 -0.8,0 z m -19.4,-0.8 -0.2,0.2 -0.7,0.2 0.2,-0.2 z m 25.7,-2.3 -0.1,0.9 -1.2,-0.8 0.8,-0.3 z m -1.9,-0.6 0.2,0.3 -0.5,-0.2 0.3,-0.2 z m -51.8,-0.3 -0.4,0.3 -0.3,-0.2 0.4,0 z m 53.2,0 0.5,0.5 -0.7,0 -0.2,-0.3 z m -27.5,-1.3 0.2,1.2 -0.8,1.2 -0.9,-1.7 z m -24.8,0 0.1,-0.1 0.4,0 -0.2,0.2 z m 53,-0.5 0.6,0 -0.4,0.5 -0.6,-0.1 z m -25.1,0 -0.5,-0.1 0.9,0 -0.3,0.1 z m 24.8,0 -0.5,0 0.2,-0.1 0.2,-0.1 z m -18.4,-0.5 0.8,0.1 0.2,0.2 -0.8,-0.1 z m 7,-0.4 1.2,0.8 -1.1,0.1 -0.9,-1 z m -21.6,-0.4 0.3,0.9 -2.3,1.5 -1.5,-0.9 1.2,-1.3 z m 29.3,0.1 0,0.1 -0.5,-0.5 0.2,0.1 z m -22.3,-1.6 1.4,0.1 0.3,0.8 -0.7,0.3 z m 27.3,-0.4 -0.2,0.4 0,0.5 -0.4,-0.9 z m -24.8,-0.2 1.1,0.6 -0.8,0.2 -0.9,-0.5 z m 24.7,-0.3 -0.2,0 0,-0.2 0.3,0.1 z m -25.5,-0.7 -0.4,0.2 -0.4,-0.1 0,-0.1 z m 24.1,-0.6 -0.1,0 -0.1,-0.4 0.3,0.2 z m -16.4,-0.9 -0.1,0.6 -0.1,-0.1 -0.1,-0.6 z m 15.8,-0.7 0.1,0.3 -0.8,0.4 0.4,-0.6 z m 5.4,-3.2 0.4,0 0.2,0.3 -0.6,-0.1 z m -39.9,-0.3 -0.4,0.1 -0.1,-0.2 0.4,0 z m -3.4,-0.7 0.6,0.6 0.1,1 -0.8,-0.7 z m 1.4,-0.2 1.1,0.5 0.7,1.1 -1.4,-0.5 z m 2.3,-0.6 0.4,0.1 -0.1,0.3 -0.6,-0.3 z m 39.7,-2.8 0.1,0 -0.9,0.5 0.3,-0.5 z m -86.1,0.3 -0.3,0 -0.2,-0.3 0.1,-0.1 z m -1,-1 -0.1,0.3 -0.3,-0.4 0.4,-0.2 z m -1,-0.5 0.2,0 -0.1,0.3 -0.3,-0.3 z m 85.4,0.1 -0.4,0 0.1,-0.4 0.3,0.3 z m -84.5,-0.1 -0.4,0 0.1,-0.4 0.2,0 z m -10.1,-1.2 -0.4,0 0.9,-0.1 0,0.1 z m 9.9,0.1 -0.4,0 0.1,-0.2 0.2,-0.1 z m -2.1,-0.3 0.5,0.1 -0.1,0.2 -0.4,-0.2 z m -0.4,-0.2 0.1,0.2 -0.3,-0.2 0,-0.2 z m -1,-0.4 0.5,-0.2 -0.6,0.4 -0.6,0.2 z m 68.2,0.3 1.6,0.3 0,0.7 -1.9,-0.1 z m -23.2,0.4 -0.4,0.7 -0.7,-0.6 0.4,-1.3 z m -48.4,-0.9 -0.2,0 0.1,-0.3 0.3,0 z m 69,-0.3 0.9,0.2 0.2,2.3 -1.6,1 -2.1,0 -0.7,-1.5 1.2,-1.8 z m -6.5,0.4 -0.3,-0.1 0,-0.4 0.7,0.2 z m -5.9,-0.6 0.2,0.1 -0.2,0.1 -0.3,-0.2 z m 15.2,0.4 -0.5,-0.6 0.3,0 0.3,0.3 z m -70.1,-1.1 0,0.1 0.1,0.2 -0.7,0 z m 11.9,0.6 -1,-0.5 0.8,-0.1 0.4,0.2 z m 49.7,-0.8 -0.1,0.5 -0.6,0 0.5,-0.4 z m 7.8,0.3 -0.5,0 -0.2,-0.3 0.2,-0.1 z m -0.7,0 0.1,0.7 -1.1,-0.6 0.3,-0.7 z m -51.5,-0.8 -0.1,0.7 -1,-0.4 0.6,-0.4 z m 3.1,-0.4 -0.5,0.6 -0.4,-0.1 0,-0.8 z m 0.3,-0.1 -0.4,-0.2 0.2,-0.5 0.2,0.2 z m -69,-0.6 0.1,0.1 -0.4,-0.1 0,-0.2 z m 65.8,0.1 0.1,-0.5 0.2,0.1 -0.1,0.3 z m 21.3,-0.9 0.2,0.4 -0.3,0.1 -0.1,-0.5 z m 23.2,-0.1 0,0.5 -0.8,1.1 -1.1,-0.1 z m -109.4,-0.7 0.3,-0.2 -0.3,0.7 -0.5,-0.2 z m 103.1,0.5 0.4,0.1 0.1,0.2 -0.8,-0.2 z m -16.2,0.2 -0.3,0.5 -0.3,-0.3 0.3,-0.3 z m 25.2,-0.1 0.7,0.1 -0.9,0.9 -0.5,-0.5 z m -46.4,-0.5 0.6,0.3 -0.5,0.3 -0.2,-0.2 z m 8.8,0 1,0 0,0.7 -0.8,-0.4 z m 1.9,-0.2 0.6,0.3 -0.7,0.7 0,-0.8 z m -82.7,0.1 -0.5,0.2 -0.2,-0.2 0.2,-0.2 z m 116.6,-0.3 -1.1,0.7 -0.6,-0.1 1.1,-0.8 z m -3.3,-0.5 0.3,0.7 -2.3,-0.2 1,-0.4 z m -5.4,0.2 -0.1,0.1 -0.5,-0.2 0.3,-0.1 z m -17.8,-0.2 0.1,-0.2 0.5,0.2 -0.1,0.3 z m -10.6,-0.3 -0.2,0 -0.1,-0.1 0.3,0 z m 19.8,-0.7 0.8,0 -0.4,0.5 -1.1,-0.5 z m -47.2,-0.7 -0.9,0.1 -0.3,-0.3 0.8,0.2 z m -9.2,-0.8 0.6,0 -0.9,0.2 -0.3,-0.2 z m -0.8,0 -0.7,0 -0.1,-0.1 0.1,-0.1 z m -21.5,-0.2 -0.3,0 -0.2,0.2 0.3,-0.4 z m 52.5,-0.3 0.4,0 0.5,0.8 -0.8,-0.3 z m 52.7,-2.6 0.7,-0.1 -0.4,0.5 -0.5,-0.2 z m 0.8,-0.4 -0.5,0 0.2,-0.4 0.3,0 z m -61,-6.4 -1.3,1.7 -2.3,-2.1 -0.2,-1.1 2.7,-0.1 z m 0.4,-11.5 0.7,-1.4 2.5,1.4 0.7,1.2 -2.6,0.5 z m 27,-5.3 1.2,1.2 -0.8,0.5 -2.1,-0.8 z m -28.2,0.9 1.1,1.1 -1.5,-0.1 -1.6,-2.3 z m 37.2,91.2 -0.2,0 -0.5,0 0.2,-0.2 z m -4.1,-2.7 0.2,0.2 -0.7,0 0.1,-0.3 z m 10.5,6.8 0.6,0.1 0.2,1.1 -2.7,-0.8 z m -2,0.2 -0.1,0.2 -0.3,-0.1 0.2,-0.2 z m -1.4,-0.8 0.5,0.2 -0.4,0.3 -0.2,-0.3 z m 14.7,5 -0.3,0.1 0.1,-0.2 0.5,0 z m -36.9,-101.2 4.6,0.2 -0.5,1.1 -4.8,-0.1 z m 68.6,96.9 -2.3,1.3 -1,-1.4 1.8,-2.4 0.3,1.8 z m -4.3,-3 0.1,1.9 -1.1,1.2 -1.3,-1.1 2.2,-0.2 z m -134.6,-14.3 -0.4,-0.5 1.4,-0.3 0.2,1.5 z m -1.3,-3.2 2.6,0.1 -0.7,2.3 -1.6,-0.5 z m 102.4,-5 -0.9,0.4 1.4,-2 0.4,0.6 z m -29,-63.2 2.3,1.8 -0.2,2.4 -2.9,-0.2 -2.9,-1.1 0.8,-1.8 z m -28.2,-10.5 -3.3,-0.2 -3.7,0.4 -0.3,-0.5 5.4,-1.5 1.7,0.7 z m 25.9,-0.7 2,0.6 -0.1,1 -3.8,1.4 -1.7,-1.1 -1.2,-1.9 0.5,-1.4 3.8,0.9 z m 55,101.8 -0.6,-0.2 0.1,-0.8 -0.5,-0.1 -0.3,-0.2 0,-3.2 -2.7,-0.9 -1.5,1.8 -0.5,2 -2.3,2 -6.2,0.1 2.3,-1 0.7,-1.5 5,-2.3 2.9,-3 5.4,-2.4 2.4,0 1.4,0.8 -0.2,1.1 -2.1,1.1 -2.1,-0.3 1.7,1.1 2.2,-0.5 -1.2,1.6 2,2.8 3.1,1 1,-0.6 1.8,1.3 -4,1.5 -1.5,0 -3.3,2.9 -1.2,-1.5 0.4,-1.1 2.2,-1.4 0.6,-1.8 -2.6,1.7 z m -12.4,-1 0.3,-0.2 -0.1,0.4 -0.1,0.2 -0.8,0 0.5,-0.3 -0.2,0.1 0.2,-0.3 0.3,-0.1 z m -96.9,-9.5 -0.8,-0.5 0.6,0.1 0.2,0.4 0,0 z m 7.2,-80.5 -0.7,-1.4 -0.9,1.1 -2.1,-0.1 -0.8,-1.2 2.5,-0.8 5.2,-3.7 4.6,-0.8 1.9,1 -1.6,0.5 0.7,2 -2.3,0.7 -0.7,1.7 -2.2,2.3 -1.5,-0.4 3.3,-2 -0.1,-2.6 -1.5,0.2 -1.1,2.5 z m 127.6,85 1.8,-1 0.5,1.4 -0.6,1.8 -2.4,-0.3 0.8,-1.2 -2.2,0.2 -1.5,1.1 0.1,-2 -6.7,0.3 -0.5,-0.8 1.4,-1.6 3.8,-6.9 2.1,0.9 -2.1,2.3 2.4,0.3 -0.4,1.4 3,-0.9 1.2,1.2 -0.8,1.7 1.6,0.3 z m -60.8,-43.2 -3,0.3 1.8,-1.5 -0.4,-1.6 0.9,-3.7 0.9,-0.5 1.3,2.2 0.4,-0.8 4.3,2.3 1.6,1.6 2.5,1.3 -1.5,1.1 -4.9,-2 -0.2,1 -3.1,2 z m -23.8,-20 2.2,1.3 2,2.1 1.2,0.1 -2.5,1.3 -1.8,-0.3 -4.1,-1.6 2.3,-1.1 z m -11.4,-3 4.7,2.2 1.2,1.1 -2.9,-0.1 -0.8,1.5 1.5,-0.3 0.3,1.4 -2.9,0.9 -5.8,-1.3 -0.1,-1.1 -1.6,1.6 -3.1,1 -8.2,0.9 -0.9,-2.5 -4.4,-0.3 -2.8,-2.4 0.9,-0.4 5.4,-0.7 5.1,0.2 -1.3,-0.8 -3.5,-0.8 -3.9,0.6 -3,-0.2 -1.5,-1.5 4.4,-1.2 0.5,-0.6 -4.5,0.6 0.2,-1 -1.9,0.1 0,-1 1.8,-1.1 -0.9,-0.8 2.4,-1.7 5.3,-1.8 1.2,0.9 0.4,2 1.4,-1.5 3.4,1.1 -0.8,1.5 2,-1.1 1.6,0.4 -1.8,-1.9 1.2,0.1 2.8,1.5 1.7,3.4 0.9,-1 -1,-0.8 -0.6,-2.3 0.2,-2.9 1.6,1.3 1.3,-0.1 2.1,1.6 0.2,1.2 1.8,3.2 -0.5,1.8 z m 49.5,-10.5 3.6,2.1 -0.1,1 -7.1,-0.1 -1.5,-1.6 -0.1,-1.7 z m -35.2,6.4 -3.1,0.9 -1.2,1.4 -3.6,-3.3 -2.3,-0.5 -1.8,-1.8 1.6,-1 1.2,1.4 1.7,-0.1 0.4,-1.4 -2.7,-1.4 1,-0.9 5.6,-1.3 0.8,-1.5 -0.5,2.1 1.5,0.3 0.2,1.7 -2.3,1.3 2.1,0.3 0.8,-0.8 1,2.7 z m -48,-9.7 2.7,1 4,0 2.3,0.7 3,2.3 -7.4,3.1 -1.9,1.7 -0.9,2.4 -4.7,1.4 -1.9,-2.1 -3.5,-1 2,-4 2.1,-2.6 -1.9,-2.2 z m 40.7,-1.8 -0.8,-1.6 1.8,-0.9 -5.4,0.6 -1.4,-1 2.2,-0.9 0.7,-1.9 3.9,2.1 -2.6,-2.5 0.4,-0.7 6.3,1 0.5,4 -1.2,1.8 z m -18.6,-3.4 1.4,-0.8 -2.1,-0.8 3.1,-2.3 0.5,3.3 2.8,0.6 0.9,-0.7 2.1,0.7 0,1.3 3.7,1.5 -2,0.5 -2,-1.2 -0.7,1.1 -4.6,0.6 -0.8,-0.6 -5.4,2.2 -3.9,0.2 -1.4,-1 3.1,-1.1 2,0 1.6,-1 -5.8,0.7 -0.2,-1.2 -1.7,1.6 -4.9,-0.9 3.1,-4.5 1.9,-0.7 0,-1 0.9,0.2 0.9,2.1 1.8,-0.3 3,1.7 0.4,1.2 4.5,0.2 0.1,-0.9 z m 58.7,3.9 -1.5,1 -3.1,0.6 -3.3,-0.4 -7.9,0.4 -2.3,-0.8 -2.1,0.5 -4,-0.9 -0.9,-1.7 0.7,-2.5 -1.9,-2 -1.8,0.4 -3.4,-0.5 -1.9,-2.4 2,-0.3 4,0.6 1.2,1.2 3.1,-0.3 4,2 -1.6,0.5 3.8,2.1 4.2,0 4.4,-1.2 5,0.2 2.8,1.2 0,1.2 -1.5,0.5 z m -59.1,-10.4 -3.6,0.8 -2.1,-0.9 -0.7,-1.2 -1.1,0.5 -1.8,-1.1 1.5,-0.5 2.1,0.8 4.8,-0.9 2,0.6 z m 12.5,-7.8 2.5,1.5 1.5,-0.3 4,2.1 -0.6,0.6 1.6,2.3 -4.2,0.2 0.3,-1.5 -3.3,0 0.1,-0.7 -3.3,0.4 -1.1,-0.9 2.8,0 -1,-2.1 -2.8,-0.1 0.3,-1.4 z m 24.9,-5.3 2.7,0.2 0.5,1.5 1.1,-1.1 1.5,0.1 1.4,2.2 -0.4,1.5 3.1,0 1.2,1.2 -3,1 -4.8,3.8 -5.8,-0.2 -4.3,-3.2 2,-0.9 2.6,0.1 -1.4,-1.3 -2.6,0.9 -3.5,-0.7 -1.8,-3.2 3.6,0.4 -3.3,-1 1,-1.3 1.6,-0.2 -0.6,-0.8 1.3,-1.2 3.2,-0.1 -2.4,-0.8 2.2,-0.5 2.8,1 z m -64.2,100.3 0.2,0.1 -0.1,0.1 -0.1,-0.2 0,0 z", - "ST" : "m 348.93,217.59 -0.3,-0.3 0.4,-0.3 0.2,0.3 z", - "CV" : "m 290.83,188.39 0.5,0.4 0,0.4 -0.5,-0.2 z", - "DM" : "m 218.73,187.89 0.3,0.3 -0.2,0.4 -0.2,-0.5 z", - "NL" : "m 346.93,104.89 -0.7,0.2 0.1,-0.2 0.8,-0.1 z m -131.3,78.2 -0.1,0 0,-0.1 z m 127.1,-72.9 0.8,0 0.9,0 -0.8,0.4 z m 7.4,-4.8 -0.4,2.6 -1.2,1 -0.7,2.7 -1.9,-1.8 -1.5,0.3 -0.8,-0.6 2.4,-3.5 2.6,-1.6 z", - "JM" : "m 188.03,182.19 2.4,1.1 -2,0.4 -2.2,-1.1 z", - "WS" : "m 6.43,243.59 0.1,0.6 -0.5,0 -0.5,-0.6 z", - "OM" : "m 444.03,168.69 -0.1,0.1 0,-0.2 0.3,0 z m -0.4,-1.7 0.6,-0.6 -0.2,1.5 -0.2,-0.1 z m -7.8,14.2 5.7,-2 1.3,-3.9 -0.9,-1.5 1.2,-4.4 1.1,-0.2 1.5,2.1 3.1,0.8 2,2.7 -4.1,5 0.3,1.3 -2.2,0.9 -0.6,1.3 -1.8,0.2 -0.8,1.6 -3.7,0.7 -0.7,-1.3 z", - "VC" : "m 219.13,192.79 -0.1,-0.3 0.2,-0.3 0,0.3 z", - "TR" : "m 386.03,136.89 -0.4,0.2 -0.2,-0.1 0.5,-0.3 z m 3.9,-4.1 2.1,1.7 -3,0.6 -0.7,0.8 -2.2,-0.3 1.2,-1.5 -0.6,-0.7 1.4,-0.8 z m 32.2,5.3 -1.6,0.6 0.5,3.1 1,1.8 -3.9,-0.4 -0.7,0.5 -0.3,-0.5 -4.7,1.3 -2.9,-0.3 -3.1,0.1 -1.4,2 0.2,-2.2 -1.3,0.8 -1.5,-0.4 -3.3,1.6 -1.5,-1.2 -2.6,-0.7 -0.5,1.4 -1.4,0.3 -2.6,-2.1 -2.2,-0.6 0.1,-1.4 -1.9,-0.7 1.6,-1.3 -1.2,-0.8 -0.1,-0.2 -0.5,-0.3 1.2,-2.1 4.6,-0.1 0.1,-1.8 3.9,0.3 4,-2.1 5,0.6 3,1.6 3.7,-0.1 1.3,0.4 2.7,-1.3 2.4,-0.2 1.2,1.1 0.5,2.2 2.1,1 z", - "BD" : "m 512.93,177.09 -1.5,-3.5 -2.5,2 -2.1,-0.6 -1,-3 0.4,-1.4 -1.4,-0.7 1.7,-1 -1.6,-1.5 0.7,-1.2 2.7,1 1,1.7 3.2,-0.1 0.8,0.5 -2.5,2.7 0.8,1.3 1.1,-1.5 0.8,3.5 0.1,1.3 z", - "LC" : "m 219.63,191.49 -0.3,-0.3 0.3,-0.4 0.1,0.3 z", - "NR" : "m 655.93,218.79 0,0 -0.1,-0.1 0.1,0 z", - "NO" : "m 376.13,55.29 -0.4,0.2 -0.4,-0.2 0.4,-0.4 z m -1.5,0.3 -0.5,-0.2 -0.4,-0.6 1.2,0.5 z m 5.1,-1.2 0.6,0.4 -1.1,-0.1 0.1,-0.3 z m 1.6,-0.8 0.3,0.5 -1.1,0.6 -0.5,-0.4 z m 0.6,-0.4 0.6,0.4 -0.8,0.3 -0.2,-0.6 z m -0.8,-0.4 -0.6,0.9 -1.8,0.3 0.7,-0.8 z m 1.3,-0.6 0,0.3 -0.3,-0.1 0.1,-0.3 z m 3,-0.5 0.6,0.5 -0.8,0.3 -0.5,-0.4 z m -8,-28.6 1.5,1.4 -2.3,0.2 -1.7,-1.2 z m 10.1,-0.2 -0.6,-0.3 0.3,-0.4 0.5,0.4 z m 4.4,-1.2 -1.8,0.4 -0.5,-0.1 1.1,-0.5 z m -16.9,-0.9 1.2,0.3 -0.9,0.3 -0.6,-0.2 z m -0.1,-1 -0.9,0.1 -0.1,-0.2 0.1,-0.1 z m 25.8,-3.7 -1.6,0.4 -2.3,0.2 -0.2,-0.2 z m -17.7,-0.8 -0.5,0.1 0.1,-0.3 0,-0.1 z m -0.4,-0.5 0.2,0.1 -0.2,0.1 -0.4,-0.1 z m -8.1,0.1 -0.2,-0.1 0.2,-0.1 0.3,0.1 z m 2.6,-0.9 -0.4,0.1 -0.2,-0.1 0.4,-0.1 z m -1,0.2 0,-0.3 -0.5,-0.3 0.8,0.2 z m -4.7,43 1.2,0 2.3,-1.3 0.6,0.6 0.2,-0.1 0.1,0 0.1,-0.2 0.3,-0.3 -0.2,-0.2 0.4,-0.1 0.1,0 1.1,-1 0.2,0 0,0.1 0.1,0.1 0,-0.1 2.3,0.3 3.2,-2 2.5,-0.3 -1.6,1.3 0.1,1.4 3,-3 -0.4,2 2.1,-2.5 4.6,1.3 2.1,1.5 -1.8,0.8 -2.7,-0.4 4,1.3 -1.7,1.5 -1.9,1.1 0.8,-1.5 -2.8,-2 -3.6,1.3 -0.8,2.7 -1.4,1.1 -1.8,-0.9 -2.9,0.4 -1.4,-1.9 -2,0.8 -1.3,2.3 -3.5,-0.6 -0.5,1.8 -1.1,-0.4 -2.2,2.2 0.5,1.2 -3.6,3 0,2.5 -1.7,2.3 0.6,1.8 -2.4,0.2 -1.4,2 0.7,3 -0.3,1.6 1.3,1.1 -1.2,1.1 0.5,2.5 -1.2,0.7 -0.8,2.5 -1.9,-0.7 -3.7,2.8 -1.8,0.6 -2,-0.2 -2.5,-2.9 0.8,-2.6 -1.9,-2.9 1.3,-1.5 -1,-0.8 1.5,-1.5 2.6,-1.1 -0.1,-0.6 3.6,-1.3 -1.9,-0.2 1.9,-1.2 2.5,1.5 2.6,-1.5 -2.9,0.9 -0.7,-0.8 3.2,-3.2 1.5,-0.8 0.3,-1.2 2.7,-4.7 3.8,-2.7 -1.5,-0.2 3.2,-1.3 -0.7,-0.6 2.2,-1.1 -0.8,-1.1 1,-1.6 1.8,-0.1 1.4,-1 -0.1,-1 0.9,1 z m 22.4,-0.9 -0.3,-0.3 -0.3,0.5 0.7,-0.2 z m -9.5,-24.6 0,-0.2 1,-0.7 -1,0.9 0,0 z m -20.5,28.4 2,-0.6 1.3,-1.5 0.9,2.1 -1.8,1.3 -4.3,0.8 0.2,-0.6 3.4,-0.7 z m 17,-31.5 -1.3,-0.8 -3.2,0.1 1.4,-2 -1.4,-0.7 3.9,-0.7 1.3,1.6 1.5,0.2 z m -14.5,-10.2 1.6,-1.6 4.5,2.7 0.1,1.2 5,1.3 -4.9,1.6 -1.5,4.1 -0.9,0.1 -1.7,3.6 -4.7,-2.5 -0.9,-1.4 5.5,-1.4 -5.9,0.4 -0.2,-1.2 2.8,-0.2 1.4,-1 -1.9,-1.6 -0.1,1.4 -3.3,0.8 -1.9,-1.7 0.3,1.7 -2.1,-1 -1.2,-1.9 1.7,-0.3 -1.2,-2.5 0.6,-0.6 2.1,0.1 3.2,-0.9 0.2,1.4 1.2,-1.1 1.5,0.9 2,2.9 z m 15.5,-2.7 5.8,0.6 0.7,1.4 -2.3,1.5 -3.7,1.4 -2.1,-0.2 -0.1,-0.8 -4,0.2 -2.2,-1.1 4.2,-0.4 0.1,-0.5 -6,0.5 0.1,-1.4 -1.9,-0.4 0.6,-0.7 2.3,0.8 2,-1.4 1,0.9 1.8,-0.3 1,1.2 0.7,-2.2 0.5,1.5 z m 2.5,16 -0.2,0.2 0.1,-0.2 0.1,0 0,0 z", - "KN" : "m 216.43,184.69 -0.5,-0.3 0.1,-0.1 0.2,0.2 z", - "BH" : "m 432.93,166.69 0.3,0.1 -0.1,0.8 -0.2,-0.4 z", - "TO" : "m 1.43,258.89 -0.1,0.1 -0.7,-0.3 0.4,-0.1 z", - "FI" : "m 375.83,86.59 -0.1,0.3 -0.6,0.1 0.3,-0.2 z m -0.8,0.1 0.1,-0.1 -0.2,0.4 -0.3,-0.2 z m 0.3,-0.5 -0.6,0.5 -0.9,-0.5 0.9,-0.3 z m 2.3,0.1 0,0.2 0.7,-0.1 -0.8,0.3 z m 1.6,0.7 0.1,-0.6 0.7,0.2 -0.6,0.7 z m -2.2,-1.7 0.1,0.3 -0.1,0.3 0,-0.4 z m 0,-8.1 0.2,0.3 -0.3,0.2 -0.2,-0.3 z m 6.9,-5.4 -0.5,0.3 -0.1,-0.2 0.2,-0.1 z m -5.9,13.9 -0.3,-0.1 -0.8,-4.4 0.5,-3.7 1.7,-0.3 4.6,-4.7 0.9,0.1 0.2,-2.2 -2.3,-0.9 -1,-2 0.7,-1.2 -1.1,-2.2 0.4,-1.6 -5.7,-3.5 2,-0.8 1.4,1.9 2.9,-0.4 1.8,0.9 1.4,-1.1 0.8,-2.7 3.6,-1.3 2.8,2 -0.8,1.5 -1,1.7 0.5,1 2.5,1.8 -1.7,2.7 1.5,2.3 -0.6,3.6 1.9,3 -1.1,0.8 3,2.5 -0.6,1.2 -3.9,3.8 -2.7,2 -7.7,1.6 -2.6,-0.9 0.1,-0.1 -0.3,0 0,0 -0.8,-0.2 0.2,0.1 -0.1,0.2 -0.3,-0.3 z", - "ID" : "m 593.33,228.59 1,0 -1.1,2.3 -0.1,-1.6 -1.9,-1.3 z m -51.2,-5.5 -1.9,0.6 -1.4,-1.8 0.5,-1.1 1.1,2.5 z m 19.2,10.6 2.9,-0.2 0,0.7 -3.9,0.9 -2.2,-0.5 1,-1.2 z m 20.3,-20.3 -0.2,1.9 1.6,2 -1.7,-0.4 -0.5,3.4 -1.2,-2 1.1,-0.1 -0.5,-2.7 z m -7.9,22.2 0.5,0.3 0.3,-0.6 0.3,-0.1 0.6,-0.3 0.1,0.4 0.2,0.6 -1.1,1.2 -1.9,0.5 z m -11.7,-25.7 -0.4,0.3 0,-0.4 z m 44.2,12.8 0,8.2 0,4.2 -1.8,-1.9 -4.6,0.6 0.7,-1.5 1.6,-0.6 -2,-3.9 -3.5,-1.5 -1.5,-0.1 -3,-1.8 -1.4,1.2 -1.3,-2.7 3.4,-0.6 -2.5,-0.1 -3.5,-1.9 -1.1,-2.3 1.9,1.3 2.8,-0.8 2.4,0.6 0.3,2.8 1.6,2.2 2.5,-1.5 -0.2,-1.7 3.2,-0.3 3.9,1.7 z m -39.3,14.7 -2.9,-1.4 1.4,-0.4 1,-2 4,0.6 1.3,-0.8 5.4,-0.4 -3.3,1.1 -0.5,-0.5 -3.9,1.1 -3.5,-0.1 1.7,2.2 z m -23.2,-4.7 -3.5,-0.8 -2,-1.2 1.1,-1.7 4.4,0.7 0.5,0.9 3.6,0.4 0.9,-1 2.2,0.9 6,-0.1 0,3.8 -3.8,-1 -1.1,0.3 -3.7,-0.5 -2.6,-0.9 z m 37.9,-9.1 -2.7,1.5 -1.4,-0.9 -0.1,-1.9 0.3,1.4 1.9,0.5 1.7,-0.9 3,-0.2 2,0.6 0.4,1.4 z m -10.2,5 -1.6,-0.4 1.8,-1.9 -2.7,0.3 0.2,-1.1 -2.3,-1.5 -0.2,4.3 -1.8,-0.3 0.5,-2 -1.6,-3.2 1.1,-1.3 1.3,-5.1 1.7,-1.2 1.3,0.5 4.4,0.5 2.3,-1.8 -1.2,2.5 -8,0.1 -0.6,1.2 1.3,2.2 1.9,-1.7 3.3,0.3 -0.2,2.1 -1.1,-1.2 -2.2,1.5 1.8,2.4 1,2.3 z m -10,-18.7 -0.4,1.6 1.4,1.9 -0.5,0.8 2.2,1.6 -2.4,0.6 -0.6,2.4 -1.6,1.7 0,1.4 -1.2,2.7 -2.6,1.1 -0.7,-1.5 -2.3,-0.4 -2.4,0.7 -0.1,-1.5 -2.8,0.5 -0.6,-3.6 -0.9,0.3 -1.2,-4 1.5,-2.4 1.7,2.3 4.7,-1.3 2.9,0.2 1.8,-3 0.8,-2.6 z m -37,-0.1 2.9,1.9 2.3,2.5 1.3,-0.5 4,3.6 -0.7,1.9 1.9,0.5 0.7,2.6 1.7,0 0.8,1.7 -0.4,4.5 -2.1,0.5 -6,-5.1 -1.5,-2 -1,-2.6 -1.8,-2 -1.8,0.5 1.6,3.3 -0.7,-0.1 -1.1,-3.2 1.5,-1.2 -1.1,-2.5 -2.3,-0.2 1.2,2 -0.5,0.8 -1,-2.9 -1.4,-0.5 1.7,0.3 0.5,-1.3 -4.1,-3.7 -0.3,-1.9 2.2,1.1 2,0 z", - "MU" : "m 446.83,256.49 -0.1,0.8 -0.6,0 0.3,-0.9 z", - "SE" : "m 371.43,89.89 0,0 0.1,-0.3 0.2,-0.1 z m 7.4,-19.2 0,-0.4 0.3,0.2 0,0.2 z m 3.7,-1.2 -4.4,0.9 -1.3,2.7 0.8,0.7 -1.5,1.7 -3.4,2.1 -2.3,2.1 -1.4,3.2 0.4,1.9 1.2,0.4 2.2,2.5 -1.2,1.7 -3.3,1.5 -0.6,2 0.6,2.7 0.7,-1.2 1.9,0.2 1.3,-1.8 -0.1,1.9 -3.1,0 -1.2,2.7 -3.4,0.3 -1,2 -2.3,0 -1.2,-4.1 -1.5,-2.9 0.2,0 0.2,-0.3 -0.5,0.1 0,0.2 -0.5,-1.1 0.4,-1.8 0.8,-2.5 1.2,-0.7 -0.5,-2.5 1.2,-1.1 -1.3,-1.1 0.3,-1.6 -0.7,-3 1.4,-2 2.4,-0.2 -0.6,-1.8 1.7,-2.3 0,-2.5 3.6,-3 -0.5,-1.2 2.2,-2.2 1.1,0.4 0.5,-1.8 3.5,0.6 1.3,-2.3 5.7,3.5 -0.4,1.6 1.1,2.2 -0.7,1.2 z m -23.7,22.4 -0.6,0.2 0.1,0.3 0.6,-0.2 z", - "TT" : "m 219.73,197.09 -0.2,1.3 -0.9,-0.3 -0.4,-0.8 z", - "MY" : "m 528.33,207.39 0,0.4 -0.2,-0.1 0,-0.3 z m 33.7,2.5 -0.4,-0.1 0.1,0 -0.3,0.1 -3.3,-0.5 -0.8,2.6 -1.8,3 -2.9,-0.2 -4.7,1.3 -1.7,-2.3 2.6,1 0.6,-1.6 0.2,0 0,-0.3 0,-0.2 3,-0.9 1.9,-2.8 1.2,1.1 0.7,-1.6 0.1,-0.1 0,0.2 0.6,1 -0.4,-1.2 1.9,-2.3 2.2,-1 3.8,2.8 -2.1,0.6 0.8,1 -1.4,0.3 z m -34,-4.4 1.8,0.4 0.1,1.2 1.8,-1.2 2.6,2.7 0,3.6 1.6,3 -1.7,-0.4 -4,-2.5 -1.1,-1.9 z", - "PA" : "m 187.13,203.99 -1.2,-2.6 -2,-0.7 -1.7,1.7 0.9,1.2 -3.4,0.4 0.1,-1.8 -2.2,0.3 -0.3,-0.6 0,-0.1 0,0 0,0 0,0 0.9,-2.3 0.9,1.2 2,0.3 2.7,-1.6 2.3,0.4 2,1.4 0.4,1.4 z", - "PW" : "m 593.83,203.79 0,-0.2 0.1,-0.3 0.2,0 z", - "TV" : "m 679.43,233.99 0,0 0,-0.1 0,0.1 z", - "MH" : "m 663.83,204.19 0.3,0.1 0.1,0 -0.1,0 z", - "CL" : "m 195.93,330.49 2.3,1.1 -1.4,0.9 -1.8,-1.9 z m -3.3,-14 1,2.1 0.1,3.2 -2.2,-0.8 1.3,-0.9 -1.3,-1 0.1,-1.9 z m 2.9,-12.8 -0.4,2.3 -2,0.7 1.1,-1.6 0.3,-2.5 z m 9.4,24.9 0,5.6 -0.2,0 0.2,0.1 -0.1,0.2 -2.5,-0.3 -1.1,1.1 -1.4,-2.5 1.6,-1.8 0.2,2 2.6,0.3 -2.1,-0.9 -0.6,-2.8 1.9,-1.5 z m -3.4,-75.6 0.8,-0.1 0.9,-1.5 1,2.8 1,1 -0.6,2 1.1,1.7 0.6,3 1.3,0 -0.3,2.4 -2.3,1.6 0.5,4.3 -1,0.5 -1.6,2.6 -1.8,6.6 1.6,3.8 -1.2,3.9 0,1.9 -1.2,1 -0.3,2.6 0.6,2.2 -1,0.5 -1.1,4.1 0.4,3.1 -0.8,2.1 1,2.1 -0.8,2 1.4,1.3 -1.1,4.6 -1.2,1.7 0.5,1 -2.5,3 0.8,3 1.6,-0.3 -0.2,2.3 1,1.1 3.7,0.1 2.9,0.9 -1.3,-0.4 -3,1.4 -0.6,2.7 -4.2,-1.4 0.5,-1.1 -2.2,-0.3 -0.6,-1.5 1.4,0.3 -0.3,-2.5 -2.4,-1.2 1.6,-0.9 -0.3,-4.5 -0.6,-2.2 0.9,-2.3 -2.2,-0.3 1.8,-2.9 0.9,1.4 1.5,-1.7 -0.3,-1.1 -2,-0.1 1.1,-2.4 0.5,2.3 2.1,-6.3 -0.9,-1.3 -1.5,0.6 -0.4,-1.8 1.3,-3.3 -0.8,-3.9 0.9,-1.3 1.1,-3.4 0.8,-1 1.6,-5.9 -0.5,-4.5 0.7,-0.6 -0.5,-2.1 1.2,-2.7 0.9,-4.6 -0.3,-4.6 1,-3.3 z m 6.1,81.7 1.3,0.8 -4,-0.3 3,2 -1.4,0 -2,-1.9 -1.9,0.6 -0.2,-1 4.7,-0.3 0.3,0 z", - "TH" : "m 532.13,194.49 0.1,0.1 0.2,0.3 -0.3,0 z m -0.4,11.4 -1.8,1.2 -0.1,-1.2 -1.8,-0.4 -1.6,-2.3 -2.1,-1.7 1,-3.5 1.7,-2.8 -0.9,-3.7 -1.7,-2.1 1.1,-2.6 -2.7,-4.6 1.2,-2.6 0.9,0.3 3,-1.3 0.7,1.6 1.5,0 -0.2,4 1.8,-1.5 1,0.8 1.5,-1.2 1.2,0.2 1.6,1.9 -0.2,1.6 1.7,1.6 -0.8,2.7 -3,-0.2 -2.5,1.7 1.1,3.7 -2.1,-2 -1.6,0.2 0,-1.7 -1.8,0.1 0,2.4 -1.4,3 -0.1,2.7 1.2,-0.2 1.1,4.1 2.1,0.6 z", - "GD" : "m 218.33,194.79 -0.2,0 0,-0.3 0.2,-0.1 z", - "EE" : "m 379.63,90.99 0.8,0.6 -1.6,0.6 -0.7,-1 z m 1.4,-0.1 -0.3,0.2 -0.3,-0.2 0.2,-0.2 z m -0.3,-1.2 0.3,0 0,0.2 -0.4,0 z m -0.9,0.1 0.6,0.4 -1,0.5 -0.9,-0.7 z m 9.5,0 -1.4,0.6 1.3,2.2 -0.2,0.5 -0.4,0.8 -1.6,0 -2.3,-1.5 -1.9,0.6 -1.5,-2 -0.1,-1.8 4.8,-1.2 3.9,0.4 0.2,0.2 0.1,0.2 -0.1,0 -0.2,0.1 0,0 0.1,0 0,0 0.1,0 -0.1,0 -0.2,0 -0.2,0.4 z", - "AG" : "m 218.03,184.89 0.2,0.2 -0.3,0 -0.1,-0.2 z", - "TW" : "m 565.23,172.19 1,0 1.9,-3.1 1.6,-0.1 -1,3.9 -1.1,2.5 z", - "BB" : "m 222.33,192.79 -0.2,-0.1 0.1,-0.4 0.3,0.3 z", - "IT" : "m 359.93,141.89 6.3,-0.8 -0.8,1.2 -0.2,2.4 -1.2,-0.3 z m -5.6,-7.3 0.8,1.5 -0.5,3.1 -2.2,0.4 0.1,-3 -0.5,-1.3 z m -3.7,-6 -1.7,-3.1 0.8,-1.9 2,-0.8 1.5,0.4 2.2,-0.7 0.9,-1.2 3.3,-0.5 0.4,0.9 2.5,0.4 -0.6,0.6 0.6,1.7 -0.9,-0.5 -2.1,1.1 0.5,2.6 2.3,1.6 0.9,2.2 2.1,1.5 1.7,0 -0.2,1 4,1.9 0.9,1.2 -2.8,-0.9 -1,1.9 1.2,0.6 -2.1,3.3 0.3,-1.9 -1.1,-2.9 -3.7,-2.6 -1.2,0 -3.6,-3 -2.1,-3.4 -2.5,-1 z m 9.5,4.4 0,0 0,0 0,0 z m 0,-4.6 0.1,-0.2 -0.1,0 -0.1,0.1 z", - "MT" : "m 363.63,146.09 0.5,0.2 0,0.3 -0.3,-0.1 z", - "VU" : "m 656.83,245.19 1.4,1.2 0.7,3.8 -1.7,-0.8 -1.6,-2.6 z", - "SG" : "m 535.13,214.99 0.3,0.2 -0.3,0.2 -0.4,-0.1 z", - "CY" : "m 400.93,148.29 0,0 0,0 z m 0.5,-0.1 0.2,0.2 -0.4,0 -0.2,-0.2 0.2,0 0.2,0 z m -0.5,0.1 0,0 0.1,0.1 0,0 z m -0.1,0.1 -0.2,0.3 -1.1,0.4 -0.4,-0.1 -0.1,0.1 -0.9,-0.9 0.6,-0.3 0.1,0.1 0,-0.1 0.1,0 0,0 0.1,0 0,0 0,0 0,0 1.3,0.1 0.5,0.3 z", - "LK" : "m 489.33,199.29 1.6,0.6 2,3.4 -0.1,1.9 -2.2,1.3 -1,-0.4 -0.6,-3.7 0.8,-2.7 z", - "KM" : "m 419.53,240.59 -0.5,-0.4 0.1,-0.7 0.3,0 z", - "FJ" : "m 675.43,250.99 2.2,0.1 0,-1 3.1,-1.2 -3.2,2.4 0.9,0.5 -0.4,2.4 -0.7,-1.3 -1.5,-0.3 z", - "RU" : "m 621.23,124.99 -2.1,0.7 -1.5,1.4 -2.9,1.4 1.3,-1.6 4.8,-2.3 z m -189,-65.8 -2.9,0.8 -0.5,-1.8 1.8,-0.8 1.7,0.8 z m 17.7,-4.7 2.2,1.5 -1.8,0.7 -1.9,-1.3 z m 22.6,-10.7 1,0.4 -3.4,0.7 0.1,-1.3 z m 80.8,-3.8 -1.1,1 -2.5,-0.9 1,-0.8 z m -107.6,-23.8 -2.8,0.4 0.6,-1 4.7,-0.6 0.7,2.5 z m -4.8,-1.3 -0.5,1.2 -3.3,0.2 0.5,-1.1 2.8,0.6 z m 2.9,-2.7 4.8,0.2 -3.3,1.7 -2.1,0.2 -3.5,-0.8 z m 16.4,-0.5 1.4,1.2 -4.5,1.1 -1.1,-0.7 2.9,-0.6 z m -13.1,-2.3 1,1 -1.4,1.6 -3.5,-0.2 z m -34.3,120.1 -1.9,-1.7 -4.6,-2.5 1.8,-0.4 0.6,-2.6 2.8,-1.3 -2.1,-0.3 1.2,-1.8 1.8,0.1 -0.1,-2.3 0.8,-1.2 -1.8,-1.5 -3.4,-1.4 -3.4,0.2 -1.1,-2.2 -1.7,-0.1 0.5,-1.3 -1.2,-1.5 -3.9,0.6 -1,-2.3 2.8,-1.1 -1.8,-1 -1.7,-4.8 -5.2,-1.4 -1,-1.9 -0.6,-1.9 0.4,-0.8 0.2,-0.5 0.4,-1.3 -0.3,-1.5 0.3,-0.5 0.2,-0.3 0.2,-0.1 0,0 -0.1,0 0,0 0,0 0.1,0 0.2,-0.1 -0.1,-0.2 -0.2,-0.2 0.2,-0.9 3.3,-1 -3.9,-1.1 2.7,-2 3.9,-3.8 0.6,-1.2 -3,-2.5 1.1,-0.8 -1.9,-3 0.6,-3.6 -1.5,-2.3 1.7,-2.7 -2.5,-1.8 -0.5,-1 1,-1.7 1.9,-1.1 1.7,-1.5 2.3,-0.6 2.1,0.8 -2.1,0.6 7.5,1.3 9.8,5 0.6,1.5 -1.8,2.6 -2.1,0.9 -2.7,0.1 -8.5,-2 -2.4,-1.3 5.2,4.5 -0.9,1.1 0.9,1.6 1.5,-1 2.4,0 4.9,1.9 1.7,-0.8 -1.2,-2.5 2.9,-1.4 2.4,-2.3 3.1,2.9 0.6,-2.6 -1.3,-1.6 0.8,-3.5 -1.8,-1.2 5,0.5 1.5,2 -2.6,0.4 -0.8,1.3 1.7,1.4 3.7,-0.3 0.5,-2.1 1.5,-0.3 4.5,-2.5 4.4,-1.4 1,1.9 1.4,0.5 2.5,-1.6 2.5,0.4 3,-1.5 1.5,2.2 2.4,-2.6 -1.5,-1.6 1.2,-0.9 6.5,1 2.9,1.6 3,0.9 2,1.6 1.6,-2 -1.2,-0.1 -0.9,-1.8 -2.3,-0.3 1,-3.9 -1.7,0.1 0.9,-2.1 3,-1.9 0.9,-3.1 1.2,-0.7 3.8,-0.1 2.4,0.7 0.1,1.6 -2,2.6 1.6,1.5 -0.4,2.9 0.2,4.6 2.1,1.4 -1,2.6 -1.1,0.4 -1.9,3.1 -2.3,1 3.3,0.3 2.7,-1.8 2.4,-2.8 -0.6,-3.4 3.7,-1 1.8,1.6 -0.4,2.5 1.9,-1.6 -0.8,-2.1 -4.2,-1.3 -3.3,0.2 -0.5,-1.8 1.6,-2.7 -2.5,-3.2 0.9,-1.4 2.7,-1 -0.4,-2.9 1.8,-2.4 2.1,0.3 -2.3,2.7 0.4,1.8 -1,3 4.9,0.9 0.9,-0.4 -3.7,-1 -0.6,-1.3 1.8,-0.5 1.2,0.8 0.6,-1.7 2.4,-2.9 0.5,2.6 4.5,2.5 2.9,-0.1 -1.9,1.5 1.1,1 0.7,2.4 1.1,-0.5 -1.2,-2.7 0.9,-1.4 -2.8,-2.3 -2.8,-1 -0.7,-2.4 0.4,-1.4 12.5,-1.1 -0.5,-1.1 -2.8,-2.2 3.1,0.5 -0.5,-1.3 2.1,-0.2 4.1,-2.2 6.9,-1.1 -1.2,-0.7 3.2,-0.1 2.3,-0.9 -0.9,-1.5 1.6,-1.3 0.5,2.6 -1.1,0.8 1.2,1.1 2.6,-0.5 2,-2.1 3.8,-0.1 0.6,-2.2 4,-2.3 2.8,-0.2 2.2,0.6 -1.3,1.5 4.3,1.2 -2,1.5 2.8,-0.1 0.1,-0.8 6.2,0 2.6,0.5 0.2,1.6 1.4,0 0.6,2.5 -2.1,-1.1 2,2.3 -7,3.6 -3.6,2.6 -1.8,0.1 -1.5,1.5 2.6,0.1 6.1,-1.9 -2.5,-0.1 0.8,-1.1 4.5,1.2 1.5,-0.7 0.6,1.4 3.7,-0.8 5.9,0.5 -0.2,1.1 3.6,1.1 5.2,0.4 1.1,-1.3 -0.5,-1.2 2.5,-1.3 0.3,0.7 3.2,1.1 1.2,-0.5 4.6,2 -1,3.4 -2,-1.3 3.6,4.6 2.2,1.4 1.2,-0.5 1.9,-3.5 2.2,1.6 1.6,0.2 2.8,-0.9 2,0.3 3.3,-0.3 2.5,0.6 -1.6,-2.5 0.6,-1.2 3.9,-1 7.4,0.8 2.9,0.9 -2,0.4 0.5,1.3 2,-1.8 4.6,0.6 0.9,0.9 -2,0.7 4.7,1.4 1.4,1.5 2.8,0.1 4.3,-0.8 5,0.4 2.2,1.1 0.8,1.5 -0.8,1.2 2.7,1.5 5.6,-1.1 1.6,0.7 4,0.2 2.5,-1.8 2.3,0.5 -0.5,1 -2.1,-0.4 0.5,1.6 2.4,1.5 2.6,-0.9 -0.7,-3.6 9.4,0.9 3.5,0.8 7.3,2.9 0.3,0.7 6.5,2.9 1.6,3.7 0.8,-1.4 4.4,0 3.9,2.7 -1.6,1.6 -3.1,0.3 -0.9,2.6 0.8,0.9 -2.2,0.3 -2.6,-1.6 -2.2,-0.6 -0.1,-1.2 -2,-0.7 -3,0.3 -2.2,-2.1 0.8,1.8 -0.8,1.5 -4,1.5 -3.5,-0.6 3.1,2 0.5,-0.5 2.6,5 -1,1.3 -2,-0.8 -2.6,0.2 -6.2,2.7 -2.8,2.1 -2.7,1.2 -0.4,1.4 -2.2,-1.8 -4.4,0.8 -1.6,1.3 0.6,-1.8 -3.1,2 -2.2,-0.8 -0.9,1.6 1.2,1.7 1.6,0.1 -2.2,1.2 -0.8,-1.5 -2.1,2.5 2.6,1 -1.1,2.6 1.2,1.6 -2.4,0.1 -0.7,1.4 0.7,2 -4,1.8 -0.8,2.4 -1.9,1 -1.7,3.4 -3.8,3.5 -1,-0.1 2.9,-1.9 -1.2,-5 -1.1,-6.2 0.9,-4 2.8,-2.9 2.9,-1.7 1.7,-2 3.8,-3 0.1,-0.6 4,-2.7 0.2,-2.7 2.1,-0.4 -1.2,-0.9 -2.5,0.5 -0.6,2.1 -5.4,3.6 -0.7,-1 1.1,-3 -5.5,0.5 -4.9,4.1 -1.6,2.5 2.1,0.9 -3.5,-0.2 -3.8,1.1 -1.2,-1.8 -2.2,-0.8 -1.6,1.5 -9.3,-0.5 -2.5,0.6 -3.2,2.3 -0.8,1.5 -3.5,2.4 -2.1,2.4 -4.5,3.2 2.5,0.8 0.3,-1 2.7,-0.1 -1.5,2.6 1.1,1.2 1.6,-1.9 2,0 3.2,3 -1.9,6.7 0.2,2.4 -0.7,2.7 -1.8,1.7 -2.2,3.7 -4.3,4.4 -1.4,2.1 -3.8,1.9 -2.6,-1.5 -2.1,2.4 -0.1,-0.3 -0.2,-0.3 0.9,-0.7 0.5,-2.8 -0.6,-1.9 2,-0.9 0.7,1.7 0.9,-1.3 2,-2.8 0.5,-2.4 1.2,-1.1 -0.7,-1.7 -3.7,1.7 -2.7,0.1 -0.4,-1.6 -2.8,-2.7 -2.5,-0.3 -4.5,-8.8 -4.7,-1.5 -4.7,0.8 -1.5,1.3 1.4,1.7 -1.3,1.1 -1.8,3.3 0.1,0.9 -2.8,1.2 -2,-0.7 -2.5,-0.2 -2.1,-1 -2.4,1.7 -4.4,1.2 -4.2,-0.5 -1.2,-1.5 -5,-1.4 -3.1,0.9 -2.7,-1.2 -0.2,-1.8 -6.3,-2.1 -2.1,2.9 1,1.2 -1.9,2 -5.2,-0.7 -0.7,-1.4 -3.6,-0.7 -8.7,4.2 -0.6,0.1 -0.3,0.1 -1.4,-1.3 -2.6,0.1 -3.5,-3.6 -3.8,0.7 -1.4,-1.4 -1.4,1.2 -4,-6.3 -2.6,-1.8 0.3,-1.3 -4.7,2.3 -1.4,-1 -4.5,-0.4 -0.6,-3.1 -4.9,0.2 -0.2,0.7 -5.7,1.6 -8.1,1.2 0.5,1.6 1.6,0.4 -2.7,1.1 0.7,0.9 -1.7,1.2 2.6,1.1 -0.2,1.7 -2.7,-0.2 -0.4,0.8 -2.2,-1.2 -4,-0.1 -1.7,1.3 -2.2,-0.8 -2.2,-1.7 -5.3,-0.3 -3.6,2.7 -0.5,1.9 -1.7,-1.6 -1.2,1.6 0.2,1.5 -1,2 1.2,1.4 1.8,0.1 2.2,3.5 -3,1.5 -1.8,2.5 1.7,2.1 -0.3,1.7 2.2,2.7 -1.6,1.5 -2.5,-1.6 -3.1,-1.9 -1.7,0.4 -2.1,-1.4 z m 271.5,-79 1.5,0.9 -0.9,0.7 -4,0.2 -2.3,0.6 0.2,-1.5 2.6,-1.2 z m -78.8,-8.9 2.7,0.1 2.6,1.4 -0.4,1.3 -5.1,-1.1 z m -92.9,-23.7 -1.9,-1.1 5,0.6 -2.1,1.1 z m -86.5,-4.2 2.6,-0.3 -4.2,1.7 -1.9,-0.9 z m 25.7,-0.9 2.6,-0.7 1.1,1.5 -2.3,1.7 -2.6,-0.1 -0.9,-1 z m -77.7,89.4 1.2,-0.6 -1.5,0.6 0,0 0.6,-1.2 1.9,-1 0.2,0 -0.9,0.9 1.4,-0.8 3,1 -0.1,1.4 -0.2,0 z m 144,-85.5 -1.4,0.2 -1,0.2 -4.2,-1.3 2.4,-1 0.5,-2.2 5.2,-1.3 4.2,2.6 -1.4,0.3 0,1.8 -3.6,0.6 4.3,-0.3 1.5,1.3 1.6,-0.8 1.4,1.6 -1,3.7 -3.2,0.1 -1.8,-0.8 -3.4,-0.2 -2.4,-2.2 z m 92.4,98.5 -1.3,3.3 1.6,3.6 -1.8,-0.2 -0.7,1.7 -0.5,-1.7 0.7,-3.3 -0.4,-2.1 0.5,-5.8 -1.1,-1.5 0.2,-4.2 2,-0.8 -0.5,-1.6 1.4,3 0.3,4.2 1.6,5.7 z m -166.2,-71 -2,3.4 1.4,3.7 2.9,1.9 -0.9,0.8 -3.3,-0.9 -0.5,0.7 -3.6,-1.1 0.6,-1.2 -1.3,-0.6 0.2,1.2 -2.9,-1.9 -0.1,-1.3 1.8,-0.5 1.4,-3.7 3.5,-1.2 z m 173.7,-7.9 2.4,-0.4 1.4,0.6 3.3,0.6 -0.5,0.9 -4.6,0.3 -4.1,-1.7 0.7,-1.3 z m -11.1,-3.4 2.3,1.3 2.7,0.1 2.7,1.3 -2.6,1.9 -2.9,-1.4 0.3,1.1 2,0.6 -2.6,0.4 -1,-0.6 -5.4,1.3 -2.1,-0.8 -2,-1.9 -1.6,-0.4 -1.1,0.3 0.4,-1.9 2.6,1 0.8,-1.4 2.8,-1 4,2.4 z m -141.2,-3.3 2.3,0.6 0.3,1.2 -3.5,1.9 -11,3 -4.3,3.4 -1.8,-0.5 0.1,1.4 -2.8,3.5 -3.4,-0.7 -1.5,0.5 -1.1,-1.7 2.2,-0.8 1.4,-2.5 2.9,-2.9 2.2,-0.7 1,-1.2 4.5,-0.8 0,-0.7 2.5,0.3 3.2,-0.5 z m 63.7,-7.4 0.3,-1.4 2.4,-1.3 1.6,0.5 -0.4,1.2 1.7,-0.5 2.4,1.3 2,2.5 -1.7,-0.9 -2.9,0.9 -4.7,0.3 -2.3,0.9 -1.5,-0.3 z m -103.8,-6.5 5.7,-1.5 -1.2,-0.6 2.6,-1.1 2.6,1.5 -3.8,0.9 0.9,2.2 -1.3,-0.7 z", - "VA" : "m 360.13,132.99 0,0 0,0 0,0 z", - "SM" : "m 360.13,128.39 -0.1,-0.1 0.1,-0.1 0.1,0 z", - "KZ" : "m 451.63,123.39 -2.1,0.7 0.6,1.3 -1.4,-0.8 0.4,-0.3 -0.6,0.2 -5.1,1.3 0.1,8.5 -0.9,0.1 -2.6,-2.4 -1.3,0.5 0,0 0,0 0,0 -0.8,0.3 0,0 0,0 0,0 -1.2,0.5 0.5,-2.2 -1.5,-0.3 -3.1,-4.2 2.1,-1.6 2.1,-0.2 1.1,-1.4 0,-2.1 -1.8,0.1 -1.8,-0.7 -3.8,1.9 -2.2,-3.5 -1.8,-0.1 -1.2,-1.4 1,-2 -0.2,-1.5 1.2,-1.6 1.7,1.6 0.5,-1.9 3.6,-2.7 5.3,0.3 2.2,1.7 2.2,0.8 1.7,-1.3 4,0.1 2.2,1.2 0.4,-0.8 2.7,0.2 0.2,-1.7 -2.6,-1.1 1.7,-1.2 -0.7,-0.9 2.7,-1.1 -1.6,-0.4 -0.5,-1.6 8.1,-1.2 5.7,-1.6 0.2,-0.7 4.9,-0.2 0.6,3.1 4.5,0.4 1.4,1 4.7,-2.3 -0.3,1.3 2.6,1.8 4,6.3 1.4,-1.2 1.4,1.4 3.8,-0.7 3.5,3.6 2.6,-0.1 1.4,1.3 -3,1.7 -0.5,3.3 -1.5,0.5 -3.3,-0.9 -1.4,4 -4.2,1.2 1.4,4.4 -1.2,2.2 -3.4,-1.6 -6.2,0.1 -1.9,-1 -1.3,2 -3.2,-1 -1.7,1.4 -3.6,2 -0.9,1.7 -1.3,-1.3 -2.3,0 -0.4,-1.8 -0.9,-0.1 -0.5,-2 -1.6,-1.9 -5.6,0.5 -1.9,-2.1 -1.8,-1.1 -0.7,-2 1.3,-0.5 z m 0.3,0 0.1,0 0,0.1 1.5,-0.7 z m -19.5,2.7 -0.4,-0.2 0.1,-0.3 0.6,0 z", - "AZ" : "m 422.53,134.89 -0.1,0.1 0,-0.1 0.1,0 z m 0.4,0.2 -0.1,0 0,-0.1 0,0 z m 0.5,0.8 0,-0.1 0.1,0 -0.1,0.1 z m -1.3,2.2 -0.1,-0.1 1.9,0.3 0.7,1.5 -1.3,-0.3 z m 3.1,-5.1 2.5,1.6 1.6,-1.5 1.9,2.8 -1.3,4.9 -1.7,-0.9 -0.1,-2 -2.8,1.9 -1.6,-2.6 0.6,-0.4 -1.9,-2.4 2.9,0.5 z", - "TJ" : "m 471.53,135.09 0,0.1 -0.1,-0.2 0,0 z m 0,2.5 0.1,0.1 -0.2,0.1 -0.2,-0.2 z m 5.8,0.9 0.3,2 1.8,0.1 0.3,2.8 -3.1,-0.5 -3.2,1.7 0,-2.6 -2,-1 -0.9,1.8 -1.6,0.9 -2.9,-0.2 1.1,-2.3 -0.4,-1.6 -1.5,-0.6 2.1,-0.7 1.9,-2.8 2,-0.5 0.9,1.8 -1.9,0 -1.2,1.6 4.1,-0.2 1.5,0.9 z", - "LS" : "m 390.23,273.89 0.9,-0.3 1.5,1.6 -2.6,2.8 -2,-2.2 z", - "UZ" : "m 473.73,137.49 -0.2,0 0,-0.1 0.2,-0.1 z m -1.2,-0.3 0.1,0.3 -0.3,0.1 -0.2,-0.5 z m -22.4,-11.8 -0.5,1 1.4,1.2 0.3,-1.5 1.8,1.1 1.9,2.1 5.6,-0.5 1.6,1.9 0.5,2 0.9,0.1 0.4,1.8 2.3,0 1.3,1.3 0.9,-1.7 3.6,-2 -1.5,1.5 2.4,1 0.6,-0.7 2.7,1.5 -2.8,1.5 -1.4,-0.2 -0.9,-1.8 -2,0.5 -1.9,2.8 -2.1,0.7 1.5,0.6 0.4,1.6 -1.1,2.3 -1,0 -1.4,-0.3 0.1,-1.5 -1.8,-0.5 -6.1,-3.9 -0.9,-2.3 -3.6,-0.9 -0.4,-2.1 -2.5,-1.1 -1.8,1.5 -0.4,-0.4 -0.7,0.9 -0.1,1.5 -1.9,-0.1 -0.1,-8.5 5.1,-1.3 -0.6,2.6 0.8,-2.5 z m 21.4,9.7 -0.1,-0.1 0,0 0.1,0.2 z", - "MA" : "m 330.63,147.69 0.1,0 0.1,0.3 1.2,0.1 0.9,0.8 0.2,3.2 1.2,1.5 -0.4,0.9 -2.4,-0.1 -2.2,1.1 0,1.9 -4,2.3 -3.7,0.5 -1.9,1.5 0,2.1 -0.3,1.1 -1.8,0.5 -3.1,0 -1.3,1.7 -0.7,2.4 -3.1,2.9 -0.3,2.2 -1.2,1.7 -4.2,0.1 2.7,-5.2 1.4,-1.4 0.7,-2.9 1.7,-1.1 1.3,-2.6 2.8,-0.8 1.7,-1.4 1.9,-2.9 -0.5,-2.1 1.1,-2.5 1.4,-1.5 3.3,-1.6 1.7,-3.8 1,-0.3 0.1,0.1 0.1,0.1 1.8,1.5 2.7,-0.4 0,0 z", - "CO" : "m 185.43,214.99 0.2,-1.4 1.6,-1 1.4,-2.2 -0.4,-1.1 0,-4 -1.1,-1.3 1.4,-1.4 -0.4,-1.4 0.9,0.3 2.5,-1.8 0.2,-2.1 2.7,-1.5 1.6,0.1 3.4,-2.2 0.3,1.1 -1.2,0.4 -1.8,2.4 -0.2,2.1 1.2,1.8 0.5,2.5 3.8,0.2 1.3,1.6 3.8,-0.1 -0.8,3.1 1.1,2.2 -1,1 1.2,0.9 0.6,2.2 -0.9,-1.6 -1.5,0.7 -3.3,0 -0.4,3.6 1.2,2.4 -1,5.3 -1.5,-0.8 1.4,-2.1 -1.9,-1 -2.6,0.5 -1.6,-0.4 -0.8,-1.8 -3.2,-2.2 -1.9,-1.1 -2.2,-0.4 z", - "TL" : "m 573.73,235.59 0.4,-0.2 0.4,-0.1 -0.3,0.6 z m 1.7,-0.7 0.5,-0.7 3.5,-0.6 -1,1.2 -2.7,1.1 -0.2,-0.6 z", - "TZ" : "m 403.23,239.89 0,-0.2 -0.1,-0.1 0,-0.1 -0.3,-0.1 0,-0.1 0,0 0,-0.1 -0.5,-2.5 -0.4,-0.4 -0.2,-0.2 0,0 -0.2,-0.2 0,0 0,0 -0.2,0.1 -0.1,0.3 -1,-0.2 -0.9,-0.4 -1.8,-0.6 -1.6,-1 -2.3,-5.1 -0.5,-2.8 2.2,-2.3 -0.5,-1.6 0.5,-1.5 -0.7,-1 0.7,-0.1 1.8,0 0,0.1 0.1,-0.1 0,0 0.2,2.7 2.5,0.1 1.6,-2.7 6.9,3.8 0.2,1.1 2.7,2 1.3,1.1 -1.1,0.9 0.5,1.3 -0.4,4.4 2.1,3.4 -5.7,2.4 z", - "AR" : "m 204.93,334.29 0.1,0.2 -0.2,0 z m 26.8,-66.8 1.4,0.1 0.1,3.1 -3.7,2.2 -3.5,4.1 -1.2,3.6 0,1.2 -0.7,3.9 2.8,2.5 -0.5,0.9 1.4,2.2 -1.8,2.8 -2.8,1.2 -3.5,0.7 -2.3,-0.2 -0.5,4.4 -2.8,0.7 -2.1,-1.1 -0.3,2.9 0.9,1.1 1.6,-0.8 0.3,1.5 -1.6,-0.5 0,1 -1.7,1.6 -0.5,3.2 -1.2,0 -2.1,1.4 -0.6,1.3 1.6,2.1 1.6,0.1 0,2.4 -3.1,2.4 -0.6,2.4 -1.9,0.8 -0.6,1.7 1.4,3.5 -2.9,-0.9 -3.7,-0.1 -1,-1.1 0.2,-2.3 -1.6,0.3 -0.8,-3 2.5,-3 -0.5,-1 1.2,-1.7 1.1,-4.6 -1.4,-1.3 0.8,-2 -1,-2.1 0.8,-2.1 -0.4,-3.1 1.1,-4.1 1,-0.5 -0.6,-2.2 0.3,-2.6 1.2,-1 0,-1.9 1.2,-3.9 -1.6,-3.8 1.8,-6.6 1.6,-2.6 1,-0.5 -0.5,-4.3 2.3,-1.6 0.3,-2.4 1.9,-2 3.1,0.8 0.5,1.3 0.8,-1.7 2.4,0.5 3.2,3.1 1.8,0.4 4.8,2.9 -2,3.9 5.4,0.2 1.9,-1.6 z m -26.8,66.7 0,-5.6 0.3,1.7 2.2,2 2.8,1.6 2.4,0.6 -3.7,0.4 -1.3,-0.2 -0.5,-0.1 z", - "SA" : "m 429.03,161.99 0.9,1.9 2.4,1.9 0,1.9 1.3,2 0.3,0.4 0.4,-0.1 0.2,0.6 0.5,0.1 1.9,2.7 5,0.4 0.9,1.5 -1.3,3.9 -5.7,2 -5.5,0.8 -1.8,0.9 -1.4,2 -4.4,-0.6 -3.8,0.2 -0.7,1.9 -3,-4.6 -0.5,-1.6 -2.5,-1.9 -1.1,-1.7 0,-2.5 -1.2,-2.4 -1.8,-1 -0.5,-1.9 -3.9,-5.8 -1.2,-0.2 0.7,-2.5 2.1,0.3 3.7,-2.7 -2,-2.1 4.2,-1.3 2.5,0.4 3.1,1.8 5,3.9 3.6,0.2 1.7,0.2 z", - "PK" : "m 479.03,143.89 2.7,1.2 1.6,1.8 0.5,1.2 -2.4,1.3 -2.8,-0.6 -1.1,0.9 0.5,2.5 2.4,2.2 -1.5,0.9 0.1,1.3 -2.2,2.5 -0.9,1.8 -2,2.3 -2.7,-0.2 -1.9,2.5 3,4.3 -2.1,1.1 -2.1,-0.2 -1.3,0.8 -1.6,-0.4 -1.9,-2.8 -5.4,0.5 -3.7,0 0.5,-2.1 2.4,-0.8 -0.7,-3.3 -1.6,-0.7 -2,-2.7 3.1,1 3.1,0 4,-0.9 0.3,-2.3 3.4,-1.9 2.3,-0.2 0.4,-2.5 1.5,-0.5 -0.6,-1.5 2,-0.1 1.1,-2.4 -0.9,-1.9 2.7,-1.7 z", - "YE" : "m 435.83,181.19 1.4,3.3 0.7,1.3 -1.6,2 -5.1,1.7 -1.7,1.4 -1.3,0 -2.5,1.2 -1.7,0.1 -3.6,1.5 -0.9,-0.5 -1.4,-5.3 0.1,-1.5 0.7,-1.9 3.8,-0.2 4.4,0.6 1.4,-2 1.8,-0.9 z", - "AE" : "m 444.03,167.89 0.2,0.2 0,1.1 -1.1,0.2 -1.2,4.4 -5,-0.4 -1.9,-2.7 4.9,0.2 3.7,-3.9 0.2,0.8 z m 0,0.8 0.2,-0.1 -0.3,0 0,0.2 z", - "KE" : "m 411.33,226.69 -2.7,-2 -0.2,-1.1 -6.9,-3.8 0.3,-1.6 -0.4,-0.9 1.8,-2.7 -0.1,-1.5 -1.8,-3.4 2.8,-1.5 1,0.8 1.7,0.3 2.4,1.6 2.8,0.4 2.3,-1.7 2.2,0.6 -1.8,2.2 0,7 1.1,1.6 -2.6,2 z", - "PE" : "m 192.13,217.99 3.2,2.2 0.8,1.8 1.6,0.4 2.6,-0.5 1.9,1 -1.4,2.1 1.5,0.8 -1.5,-0.1 -4.1,1.8 -0.4,2.4 -1.7,2.2 3.5,4.8 1.9,-0.2 1.3,-0.9 -0.3,3 2.1,-0.1 1.7,3 -0.8,2.2 0.4,1 -0.9,2.6 -1.3,0.6 1.8,0.8 0.1,0 0.1,0 -0.2,0.5 0.1,0.1 -1.2,1.5 0.3,0.4 -0.9,1.5 -0.8,0.1 -2.1,-2 -7.1,-3.8 -2.1,-2.5 0.1,-1.4 -2.7,-4 -2.5,-5.9 -1.9,-2.7 -2.2,-1.4 -0.3,-3.5 1.8,-1.6 -0.4,1.3 2.8,1.8 1.4,-3.1 3.2,-1.5 2.1,-2 z", - "DO" : "m 198.63,182.19 0,0 -0.1,-0.1 0,0 -0.1,-0.1 0.6,-0.3 -0.1,-1.9 1.4,-0.5 2.1,0.6 0.6,1.1 2.4,0.9 -1.1,0.4 -3.4,0 -1.4,1.6 -0.6,-0.8 0.1,-0.6 z", - "HT" : "m 198.63,182.19 0,0 -0.1,-0.1 0,0 z m 0.3,-2.4 0.1,1.9 -0.6,0.3 0.1,0.2 0.1,0 0.4,0.3 -0.1,0.6 -3,-0.4 -1.1,0.4 -0.7,-1.3 3,0.5 -0.1,-2 -1.3,-0.7 z", - "PG" : "m 606.23,235.09 0,-4.2 0,-8.2 5.8,2.3 1,0 2.4,2 -0.1,1.2 3.3,0.9 0.8,1.4 -1.8,0.1 0.5,1.4 1.8,1.1 2.1,2.8 3.3,0.2 -0.5,1.8 -5.2,-0.7 -1.7,-1.4 -1.9,-2.6 -4.5,-1 -0.7,2.7 -1.4,0.7 z m 17.2,-12.6 -0.6,-1.7 1.1,1.5 3.5,1.6 2.1,2 -0.5,1.1 -1.2,-2.4 z m -0.6,7.3 -3,-1.1 5.6,-0.6 1.2,-0.9 -0.2,-1.5 1.7,0.3 -0.5,2 -3.2,1.7 z", - "AO" : "m 359.73,228.69 0,-0.5 -0.4,-0.9 1.4,-1.2 0.6,0.5 -1.2,0.8 z m 21.3,23 -4.9,0.7 -3.9,-0.5 -0.6,-0.7 -8.6,0 -1.5,-0.9 -2.7,0.6 0,-2.8 1.4,-4.6 2.2,-2.3 0.2,-3 -1.4,-3.1 0.7,-1.4 -2.1,-4.3 1.7,-0.5 6.6,0.1 0.7,2.7 1.2,1.5 3.3,-0.2 0.4,-1.9 4.3,0.5 0,4.1 0.7,1 0.2,2.6 3.3,-0.8 0,4.1 -3.8,0 0,6.2 z", - "KH" : "m 542.13,189.59 0,4.6 -3.4,2.5 -2.4,1.2 -1.6,-0.2 -1.4,-2.2 -1.1,-3.7 2.5,-1.7 3,0.2 3.1,0.1 z", - "VN" : "m 536.33,197.89 2.4,-1.2 3.4,-2.5 0,-4.6 0.3,-1.1 -2.2,-3.4 -3.4,-3.5 -1.7,-1 2.1,-1.5 -1.7,-1.8 -1.8,0.2 -0.3,-1.4 -1.6,-1.7 0.7,-0.7 2.8,0.5 2.6,-1.7 2.8,1.2 -0.4,0.8 2.7,1.8 -2,1.1 -1.7,1.8 -0.8,2 1.9,3 4.1,4.1 1.4,4.8 -0.9,3 -3.3,1.9 -1.1,-0.3 -0.4,1.9 -3.3,1.4 0,-2.7 z", - "MZ" : "m 403.03,243.59 -0.3,-2.5 0.5,-1.2 4.8,0.3 5.7,-2.4 0.8,8.3 -1.8,3.2 -5.4,2.8 -4.2,4 -0.5,1.1 1.6,3.3 -0.7,5 -2.6,1 -2.4,1.8 0.8,1.8 -1.1,0 -0.4,0 -0.2,-1.2 -0.2,-0.6 0.1,-3.1 -1.3,-4.1 2.1,-2.2 1.2,-2.5 -0.5,-1.1 0.5,-2.2 -0.1,-3.3 -4.9,-2 -0.4,-1.3 5.7,-1.9 0.9,1.1 1.3,-0.4 -0.2,2.9 1.7,1.3 1.3,-1 0.1,-2.7 z", - "CR" : "m 176.13,196.89 0.4,0.8 1.7,1.8 -0.9,2.3 0,0 -0.3,-0.5 -5.1,-3.3 0.3,-1.4 2.6,0.2 z m 1.5,5.6 -0.3,-0.6 0,-0.1 0,0 z", - "BJ" : "m 343.23,195.39 0.4,2.1 -2,3 -0.1,5.1 -1.6,0.2 -0.5,0.1 -0.1,-5.4 -1.3,-3.7 1,-0.9 1.9,-0.9 0.8,-0.9 z", - "NG" : "m 341.53,205.59 0.1,-5.1 2,-3 -0.4,-2.1 1,-3.4 2.6,-0.8 2.8,1.7 1.7,-0.7 3.4,1 1,-0.8 2.5,-0.2 2,0.6 2.1,-1.3 0.9,1.3 1.2,1.7 -4.7,7.4 -1.8,3.6 -1.4,-1.3 -3.3,2.5 -0.5,1.9 -4.6,1 -1.1,-0.7 -2.3,-3.2 z", - "IR" : "m 422.03,143.59 -1,-1.8 -0.5,-3.1 1.6,-0.6 1.2,1.4 1.3,0.3 0.5,-0.1 0.2,0.1 2.8,-1.9 0.1,2 1.7,0.9 0.2,1.5 2.3,0.8 1.7,1.4 1.6,0.4 4,-0.6 -0.2,-1.1 2.9,-1.6 3.4,-0.4 0.3,0.6 2.8,0.6 2.9,2.4 1.6,0.1 0.2,2.1 -1.4,5.5 0.5,3.3 1.7,0.2 0.2,1.1 -1.8,2.1 2,2.7 1.6,0.7 0.7,3.3 -2.4,0.8 -0.5,2.1 -3.2,-0.3 -5,-0.9 -0.5,-2.2 -1.3,-0.7 -3,1.5 -6.5,-3 -2.6,-4.7 -2.1,-0.4 -0.8,0.9 -1.6,-2.2 0.3,-1.6 -0.9,-1.3 -2.1,-1.2 -1.7,-2.2 1.8,-3.9 -2,-0.4 z", - "SV" : "m 168.13,192.09 -1.8,0.3 -2.5,-0.9 -0.1,-0.2 1.5,-1.1 3.2,1.1 z", - "SL" : "m 314.33,204.59 -2.8,-1.3 -0.7,-2.8 1.5,-1.5 2.4,-0.3 1.9,2.9 -0.6,1.4 z", - "GW" : "m 307.53,196.79 -1.7,-0.5 -1.6,-2.1 3,-0.7 2.8,0 0,1.9 -1.9,0.4 z", - "HR" : "m 371.73,131.79 -1.3,-0.9 -0.3,-0.2 0.4,0.2 1.1,0.6 0,0.1 z m -9.4,-7.2 3.3,0.1 0.6,-1.8 1.7,-0.7 1.6,1.3 3,0.1 0.2,1.8 0,0.7 -4,-1 -2.2,0.3 0.8,2.2 2.6,3 -1.7,-0.4 -3.5,-2.5 0,-2.2 -1.7,0.7 z", - "BZ" : "m 165.63,183.49 0.5,-0.1 1.1,-1.2 0.2,3 -1.4,2.1 -0.6,0 z", - "ZA" : "m 397.83,270.09 0.4,0 1.1,0 -1,3.5 -2.3,2.1 -1.5,2.7 -2.9,3 -3.4,2.7 -4.3,1.4 -4.4,-0.4 -1.3,0.7 -4.3,0.9 -2.2,-2 -1.3,-2.1 0.9,-0.4 -0.2,-2 -1.7,-2.9 -1.6,-3.6 1.2,-1.2 0.6,1.4 3.3,0.5 1.6,-1.1 0,-7.5 1.7,2.8 -0.3,1.6 1.9,-0.1 2,-1.8 0.6,-1.4 3.4,1.1 1.5,-0.4 0.5,-1.8 1.9,-0.9 0.3,-1.3 2.3,-2 2.2,-0.9 1.9,0.3 1.8,0.1 1.3,4.1 -0.1,3.1 -1,-0.5 -1.1,1.4 0.6,1.6 z m -7.6,3.8 -2.2,1.9 2,2.2 2.6,-2.8 -1.5,-1.6 z", - "CF" : "m 380.03,196.89 1.5,2.1 -0.3,2 1.4,0.2 2.2,2.6 2,1.3 0.1,1.1 1.9,1.9 -3.5,-0.6 -5.9,2.3 -3.7,-0.4 -1.7,-1.4 -2.2,1.5 0.1,1.7 -2.2,-0.5 -1.7,0.5 -0.7,2.3 -0.2,-1.1 -1.8,-1.8 -1.5,-4.3 2.1,-2.9 2.5,0 3.5,-1 0.9,-1.8 2.6,-0.3 3.9,-3.5 z", - "SD" : "m 382.63,201.19 -1.4,-0.2 0.3,-2 -1.5,-2.1 -1.2,-3.5 -0.3,-2 0.9,-0.7 1.1,-3 1.7,-0.1 0,-7.4 0,-1 1.9,0 0,-4 12,0 10.8,0 0.8,2.4 0.4,4.2 2.1,1.4 -3.1,1.8 -1.1,3.8 0.2,1.7 -0.8,3 -0.8,0.1 -1.6,3.7 -0.5,-0.3 -1,2.7 -1.7,-2.6 0.1,-2.7 -2.2,0.4 0.6,1.9 -2.2,2.4 -2.4,-0.9 -2.2,1.8 -4.4,-0.4 -1.4,-1.7 -1.4,0.2 z", - "CD" : "m 392.23,224.09 -0.2,3.3 0.8,3.1 2,2.9 -3.2,0.5 -1.1,1.2 0.4,0.6 0.3,0.8 -0.6,3.1 1.3,1.8 1.4,-0.4 0,2.5 -1.1,0 -3.9,-3.6 -0.9,0.8 -2.6,-0.7 -0.1,-0.9 -1.9,0.4 -0.6,-1 -3.3,0.8 -0.2,-2.6 -0.7,-1 0,-4.1 -4.3,-0.5 -0.4,1.9 -3.3,0.2 -1.2,-1.5 -0.7,-2.7 -6.6,-0.1 -1.4,0.4 -0.4,-0.6 0.4,-1.3 1.2,-0.8 2.5,-0.7 0.9,1 2.6,-2.8 0.1,-2.3 2.9,-3 0.6,-5.1 1,-2.5 -0.1,-1.7 2.2,-1.5 1.7,1.4 3.7,0.4 5.9,-2.3 3.5,0.6 1.8,1.5 2.7,-0.5 2,2 -0.2,2 1,0.5 -1.4,1.3 -0.1,0.5 -1,0.8 -0.5,1.7 -0.7,0.8 0.6,0 -0.1,0.8 0,0.9 -0.4,0.3 -0.3,0.3 -0.5,0.5 -0.1,1 0,0.3 0.2,0.1 0.4,0.7 z", - "KW" : "m 429.03,161.99 -1.9,-1 -1.7,-0.2 1.1,-1.8 1.6,-0.1 0.3,1.4 z", - "DE" : "m 353.93,119.39 0,0 0,0 z m -1,-18.4 0.3,0 1.1,0.3 3.9,2.3 2,-1.5 2.2,-0.3 0.7,1.4 0.4,0.4 -0.1,0 0.1,0.1 -0.3,-0.3 0.4,0.8 -0.3,2.2 1,0.7 0.3,4.4 -4.4,1.2 -0.2,1.6 2.7,2.4 -2,1.6 0.5,1.5 -1.6,-0.5 -2.3,0.7 -2.4,-0.3 -1.3,-0.7 0.3,0.4 -1.4,0.2 -1.7,0 1.2,-3.4 -3.6,-1.2 0.3,-0.9 -0.7,-0.8 0.5,-0.4 -0.7,-1.2 0.7,-2.7 1.2,-1 0.4,-2.6 0.2,-1.3 2.4,0.5 0.8,-0.9 z", - "BE" : "m 347.83,111.69 0.7,1.2 -0.5,0.4 -0.8,0.6 0.2,0.9 -3.2,-1.1 -3.1,-2.8 1.2,-0.6 0.4,-0.1 0.9,0.4 0.8,-0.4 0.1,0.1 -0.1,-0.1 1.5,-0.3 z", - "IE" : "m 322.43,100.59 -1.8,1.6 1.7,0.9 2,0 0.5,3 -0.7,2 -2.3,0.3 -2.2,1.3 -2.1,0.3 -1.2,-1.2 2.9,-3.5 -2.1,-0.3 0.3,-2.5 2.4,0.2 0.6,-2.4 z", - "KP" : "m 586.53,132.09 -2,1.7 0.1,1.6 -4.2,2.5 -0.1,1.3 1.7,1.2 -2.3,0.7 -0.9,1 -2.1,-0.4 -0.4,0.8 -1.1,-1.9 1.3,-1.8 -2.1,-1.7 3.1,-1.8 1.2,-1.8 2.9,0.7 -0.2,-1.4 3.2,-1.1 0.3,-1.2 1.3,1 0.2,0.3 z", - "KR" : "m 578.83,142.09 0.9,-1 2.3,-0.7 1.9,2.9 0.2,3.9 -1.6,1.7 -1,-0.4 -1.1,1.1 -2.2,-0.4 z", - "GY" : "m 221.43,201.49 1.7,1 3.7,3.7 -0.1,1.1 -1.6,2.5 3,4.3 -1.2,-0.2 -3.2,1.6 -1.8,-1.3 -0.5,-1.6 0.9,-2.3 -0.9,-2.2 -1.4,-0.2 -1.2,-1.4 0.3,-1.2 1.7,-1.1 -0.4,-1.3 z", - "HN" : "m 167.43,187.59 4.4,-0.5 3.1,0.3 2.2,1.6 -3.2,0.4 -1.8,1.6 -1.9,0.4 -1.1,1.5 -0.4,-0.5 -0.6,-0.3 0.3,-0.8 -3.2,-1.1 0.4,-1.3 z", - "MM" : "m 512.93,177.09 0.7,-0.5 -0.1,-1.3 1.2,-0.8 0.2,-3.3 1.5,0.3 1.8,-3.8 0,-1.5 3.2,-1.8 1.2,-1.8 0.4,-0.6 2.2,1.9 0,3.5 -1.9,1.7 -0.1,2.4 1.8,-0.4 0.6,1.8 1.2,0.2 -0.7,1.8 1.5,0.2 0.5,1.3 1.9,-0.3 -0.9,0.5 -1.2,2 -3,1.3 -0.9,-0.3 -1.2,2.6 2.7,4.6 -1.1,2.6 1.7,2.1 0.9,3.7 -1.7,2.8 -0.3,-5.5 -1.5,-3.2 -0.3,-2.8 -0.8,-1.4 -3.4,2.5 -2.4,-0.6 0.8,-2.9 -1.2,-3.7 -1.8,-1.2 z", - "GA" : "m 355.03,215.89 3,0 0,-2.3 0,-0.2 3.7,0.3 -0.1,1.7 2.4,0.6 -1.2,2.2 1.2,0.7 -0.7,3.6 -3.2,-1.1 -1.7,0.8 0.5,2.6 -1.3,0.5 -3.6,-4 -1.1,-2.4 1.1,-0.3 0.1,-1.9 z", - "GQ" : "m 358.03,213.59 0,2.3 -3,0 -0.8,-0.4 0.8,-2.2 0.4,0.3 z", - "NI" : "m 172.23,196.59 -3.7,-3.4 0.6,-0.3 1.1,-1.5 1.9,-0.4 1.8,-1.6 3.2,-0.4 -1.4,7 0.4,0.9 -1.3,-0.1 z", - "LV" : "m 388.63,93.89 0.6,1.9 1,1.9 -1.1,0.9 -1.9,0.4 -3.3,-2.1 -0.8,0.5 -4.5,-0.5 -2,1 0,-2.1 1.3,-2 1.7,-0.5 2,2.1 1.4,-0.7 -0.2,-1.7 1.9,-0.6 2.3,1.5 z", - "UG" : "m 397.23,219.69 0,-0.1 0,0.1 z m -4.3,0.7 0,-0.9 0.1,-0.8 0.5,-0.6 -0.4,-0.2 0.5,-1.7 1,-0.8 1.8,-1.3 -0.3,-0.5 -1,-0.5 0.2,-2 5.1,-0.5 0.9,-0.9 1.8,3.4 0.1,1.5 -1.8,2.7 -2.7,0.2 -1.6,2.2 -1.8,0 -0.7,0.1 -1,0.8 z", - "MW" : "m 403.13,239.59 0,-0.1 0,0 z m -0.3,-0.3 0,0 0,-0.1 0,0.1 z m -0.9,-3 -0.2,-0.2 0,0 z m -0.4,-0.4 0,0 0,0 z m -2.2,-0.2 0.9,0.4 1,0.2 0.8,3.8 0,3.2 1,0.3 1.9,2.2 -0.1,2.7 -1.3,1 -1.7,-1.3 0.2,-2.9 -1.3,0.4 -0.9,-1.1 -0.7,-0.6 1,-2.3 -0.2,-3.2 0.8,-0.5 z", - "AM" : "m 425.33,139.79 -0.2,-0.1 -0.5,0.1 -0.7,-1.5 -1.9,-0.3 -2.1,-1 -0.5,-2.2 1.5,-0.3 1.5,-0.1 1.9,2.4 -0.6,0.4 z m -2.8,-4.9 0,0 -0.1,0 0,0.1 z m 0.4,0.2 -0.1,-0.1 0,0 0,0.1 z m 0.5,0.8 0,0 0.1,-0.1 -0.1,0 z", - "SX" : "m 419.13,195.79 1.9,2 2.9,-0.8 1.3,0.4 1.8,-1 3,-0.1 0,3.4 -1.9,2.8 -1.9,0 -5.6,-1.9 -2.7,-3.1 0.6,-0.7 z", - "TM" : "m 445.53,132.89 1.5,0.6 -0.4,-1.1 1.8,-1.5 2.5,1.1 0.4,2.1 3.6,0.9 0.9,2.3 6.1,3.9 1.8,0.5 -0.1,1.5 -1.4,-0.5 -1.9,1.1 -0.6,1.8 -4.2,2.4 -1.9,-1 -0.2,-2.1 -1.6,-0.1 -2.9,-2.4 -2.8,-0.6 -0.3,-0.6 -3.4,0.4 -2.9,1.6 0.1,-3.5 -0.8,-2.3 -1.6,-0.2 0.4,-2.1 1.5,0.8 1.9,-1.1 -1.5,-2.2 -0.8,-0.1 0,0 1.3,-0.5 2.6,2.4 0.9,-0.1 1.9,0.1 z m -7.6,-0.1 0.2,-0.3 0.6,0 0,0 -0.8,0.3 0,0 z m 0,0 -0.5,1.3 -0.7,-0.8 1.2,-0.5 0,0 z", - "ZM" : "m 390.93,235.69 1.2,-1.4 -0.5,-0.4 3.2,-0.5 0.9,1.1 0.2,-0.4 1.6,1 1.8,0.6 1.4,2.3 -0.8,0.5 0.2,3.2 -1,2.3 0.7,0.6 -5.7,1.9 0.4,1.3 -3,0.8 -0.2,0.9 -1.2,0.6 -1.1,0.6 -1,1.6 -0.6,0.2 -2.8,-0.5 -2,-0.6 -1.6,0.3 -2.6,-2.9 0,-6.2 3.8,0 0,-4.1 0.6,1 1.9,-0.4 0.1,0.9 2.6,0.7 0.9,-0.8 3.9,3.6 1.1,0 0,-2.5 -1.4,0.4 -1.3,-1.8 0.6,-3.1 z", - "NC" : "m 401.23,148.19 -0.3,0 -0.1,0 -0.6,-0.3 -1.2,0 0,0 0,0 0,0 -0.1,0 0,0 3.6,-1.1 -1.1,1.4 z m -2.5,-0.3 0.1,0 -0.1,0.1 z", - "MR" : "m 319.73,164.49 6,3.8 1.3,0.9 -3.3,0 2,18.9 -10,0.1 -1.9,-0.2 -1,1.5 -4,-3.7 -3.8,0.4 -0.4,1.2 1,-4.2 -1,-2.8 0.7,-1.6 -1.7,-1.1 0.2,-1.1 7.6,0 0,-3.4 1.9,-0.9 0,-5.1 6.3,0 z", - "DZ" : "m 327.03,169.19 -1.3,-0.9 -6,-3.8 0,-0.7 0,-2.1 1.9,-1.5 3.7,-0.5 4,-2.3 0,-1.9 2.2,-1.1 2.4,0.1 0.4,-0.9 -1.2,-1.5 -0.2,-3.2 -0.9,-0.8 6.3,-3 3.6,-0.7 3.5,-0.2 0.9,0.5 4.1,-0.9 2.3,0.3 -0.4,1.1 -0.3,3.9 -1.4,1.6 1.6,2.9 1.4,1 0.9,3.8 0.6,2.3 0,5.4 -0.8,0.8 1.2,2.6 2.9,1.1 0.8,1.6 -8.6,5.3 -3.2,2.8 -3,0.6 -2.2,0 0.2,-1.3 -2.5,-0.8 -1.4,-1.8 z", - "LT" : "m 377.03,100.09 -0.2,-1.2 -0.2,-1 2,-1 4.5,0.5 0.8,-0.5 3.3,2.1 0.3,0.9 -1.7,1 -0.8,1.7 -2,1.1 -1.8,-0.1 0,-0.6 -1.3,-0.5 0.1,-1.4 z m -0.7,-0.1 0.3,-0.6 -0.1,0.6 z", - "ET" : "m 416.33,196.19 -0.2,0.2 0.2,0.2 0.3,0.3 1.9,-0.1 -0.6,0.7 2.7,3.1 5.6,1.9 1.9,0 -5.8,5.9 -1.8,-0.1 -4,1.9 -2.2,-0.6 -2.3,1.7 -2.8,-0.4 -2.4,-1.6 -1.7,-0.3 -2.3,-3.9 -2,-1.9 -1.2,-0.3 0.3,-1.3 1.4,0.1 0.2,-2 1,-2.7 0.5,0.3 1.6,-3.7 0.8,-0.1 0.8,-3 2.6,-1.2 5.7,1.5 2.9,3.1 -1.2,1.8 z", - "ER" : "m 417.43,193.89 -2.9,-3.1 -5.7,-1.5 -2.6,1.2 -0.2,-1.7 1.1,-3.8 3.1,-1.8 2.1,5.6 2.8,0.9 3.7,3.8 -0.8,0.6 z", - "GH" : "m 338.53,206.19 -6.2,2.6 -2,-0.7 0,-0.1 0.3,0.1 0.2,-0.1 -0.7,-3.3 1.4,-2.6 -0.4,-2.4 -0.1,-2.9 5,-0.3 1,1.8 0.3,6.4 z", - "SI" : "m 362.33,124.59 0,-0.1 0.2,-0.1 -0.6,-1.7 0.6,-0.6 1.6,0.4 3,-1.2 0.3,0 0.5,0.9 -1.7,0.7 -0.6,1.8 z", - "GT" : "m 166.03,187.29 0.6,0.3 0.8,0 -1.8,1.3 -0.4,1.3 -1.5,1.1 0.1,0.2 -2.4,-0.4 -1.7,-1.2 0.9,-2.9 2.6,-0.6 -2,-1.8 0.9,-1.1 3.5,0 -0.2,3.8 z", - "BA" : "m 370.13,130.69 -0.2,-0.1 0,0 -2.6,-3 -0.8,-2.2 2.2,-0.3 4,1 0.7,-0.1 -0.4,3.2 -1.4,1.3 0,1 -1.1,-0.6 z", - "JO" : "m 404.13,156.59 0.2,-0.2 -0.2,-0.1 -0.1,0 0.1,-0.2 0.2,0 0.1,-0.9 0,-1.8 0.3,-0.3 2,1 3.8,-2.3 0.6,1.9 0.1,0.8 -4.2,1.3 2,2.1 -3.7,2.7 -2.1,-0.3 0.1,-0.4 -0.1,-0.1 0.4,-1.8 z", - "SY" : "m 410.53,151.79 -3.8,2.3 -2,-1 0.3,-0.4 -0.1,-1 1.5,-1.7 -1.3,-0.9 -0.1,-1.7 0,-1.1 1.4,-2 3.1,-0.1 2.9,0.3 4.7,-1.3 0.3,0.5 -1.9,1.3 -0.3,3.8 -1,1 z", - "MC" : "m 350.53,128.69 0,0.1 -0.1,0 0.1,-0.1 z", - "AL" : "m 376.43,135.29 0,0 0,-0.1 z m -3,-2.8 0,-0.3 0,-0.2 0.6,-0.8 0.7,0.3 0.8,0.8 0.2,0.7 -0.3,0.8 0.4,1 0,0.4 0.2,0 0.2,0 0.2,0 -0.1,0.1 0.1,0 0,0.1 -0.1,0.1 0.1,0 0,0.1 0.1,0.1 0,0.1 0,-0.1 -1.2,2 -0.7,0.3 -1.4,-2.2 0.2,-2.7 -0.1,-0.3 z m 0,-0.4 0,0 -0.1,0 z", - "UY" : "m 234.53,282.19 -0.9,1 0.2,0.9 0,0.2 0.3,0.2 -0.8,1.4 -2.2,1.2 -2.3,0 -3.3,-1 -1,-1.2 0.3,-3.1 0,-1.2 1.2,-3.6 1.5,-0.2 1.5,2.1 0.8,-0.5 z", - "CNM" : "m 401.43,148.19 0,0 0,0 -0.2,0 0,0 z m -2.7,-0.3 0,0 0,0.1 0.1,-0.1 0,0 0,0.1 z m 0.2,0 0,0 0,0 0.1,0 0,0 z m 1.9,0.3 0,0.1 0,0 -0.5,-0.3 -1.3,-0.1 0,0 1.2,0 z", - "MN" : "m 561.33,119.09 0.7,-0.2 -0.3,-0.3 1.5,0 2.6,2.6 -0.4,0.8 -2.7,-0.3 -3.2,1 -1.8,2 -2.1,0.2 -1.8,1.5 -3.1,-0.8 -1.1,1.5 1,1.7 -4.7,2.9 -5.2,0.4 -3,1.2 -2.8,0 -3.3,-1 -0.7,-0.7 -10.1,-0.5 -1.9,-3.7 -3.6,-1.5 -5,-0.6 0.3,-3.3 -1.4,-2.6 -2.4,-0.8 -2.1,-1.5 -0.3,-1.4 8.7,-4.2 3.6,0.7 0.7,1.4 5.2,0.7 1.9,-2 -1,-1.2 2.1,-2.9 6.3,2.1 0.2,1.8 2.7,1.2 3.1,-0.9 5,1.4 1.2,1.5 4.2,0.5 4.4,-1.2 2.4,-1.7 2.1,1 2.5,0.2 -2.3,4.1 0.7,1.1 z", - "RW" : "m 391.83,222.89 -0.2,-0.1 0,-0.3 0.9,-0.9 -0.3,-0.6 0.3,-0.3 0.4,-0.3 0.7,0.2 1,-0.8 0.7,1 -0.5,1.5 -1.3,0.5 z", - "SO" : "m 416.53,210.19 4,-1.9 1.8,0.1 5.8,-5.9 1.9,-2.8 0,-3.4 4.5,-1.1 -0.9,4.5 -5.5,9.6 -3.7,3.8 -4.9,3.5 -3.7,4.4 -1.1,-1.6 0,-7 z", - "BO" : "m 204.03,248.89 -0.1,-0.3 0.3,0.3 -0.1,0 z m -0.8,2.5 -0.3,-0.4 1.2,-1.5 0.9,-0.4 -1.5,-1.6 0.9,-2.6 -0.4,-1 0.8,-2.2 -1.7,-3 2.4,0 3.2,-2 2.3,-0.5 0.1,2.9 1.9,2.5 2.5,0.4 2.4,1.7 2.6,0.5 0.6,4.8 3.2,0.1 0.2,1.8 1.6,1.8 -1.2,3.9 -1.8,-1.7 -5.1,0.7 -0.9,1.8 -0.8,3.4 -2.4,-0.5 -0.8,1.7 -0.5,-1.3 -3.1,-0.8 -1.9,2 -1.3,0 -0.6,-3 -1.1,-1.7 0.6,-2 -1,-1 z", - "CM" : "m 361.73,213.69 -3.7,-0.3 0,0.2 -2.6,0 -0.4,-0.3 -0.3,-2.9 -2,-1.8 0.5,-1.9 3.3,-2.5 1.4,1.3 1.8,-3.6 4.7,-7.4 -1.2,-1.7 0.5,-0.1 -0.1,0.4 0.4,-0.1 1.3,2.7 -0.2,1.5 1.2,1.5 -2.9,0 -0.4,0.7 2.3,2.2 0.6,1.8 -2.1,2.9 1.5,4.3 1.8,1.8 0.2,1.1 -0.1,1 -3,-0.9 z m 2.1,-21 0,0.1 0,-0.1 z", - "CG" : "m 361.73,213.69 2.5,-0.1 3,0.9 0.1,-1 0.7,-2.3 1.7,-0.5 2.2,0.5 -1,2.5 -0.6,5.1 -2.9,3 -0.1,2.3 -2.6,2.8 -0.9,-1 -2.5,0.7 -0.6,-0.5 -1.4,1.2 -0.4,-0.8 -1.3,-1.2 1.3,-0.5 -0.5,-2.6 1.7,-0.8 3.2,1.1 0.7,-3.6 -1.2,-0.7 1.2,-2.2 -2.4,-0.6 z", - "EH" : "m 303.63,177.69 -0.1,-0.2 0.2,-1.1 4.2,-0.1 1.2,-1.7 0.3,-2.2 3.1,-2.9 0.7,-2.4 1.3,-1.7 3.1,0 1.8,-0.5 0.3,-1.1 0,0.7 -0.1,2.7 -6.3,0 0,5.1 -1.9,0.9 0,3.4 -7.6,0 z", - "RS" : "m 373.03,129.19 0.4,-3.2 -0.7,0.1 0,-0.7 -0.2,-1.8 1.2,-0.6 1.3,0.1 2.4,2.3 -0.2,0.9 2.5,1.3 -0.6,1 1.1,1.6 -1.1,1.8 -0.8,0 -0.7,0.2 0.3,-1 -1.9,-1.4 -0.8,1 -1.4,-0.8 z", - "ME" : "m 373.03,129.19 0.8,0.8 1.4,0.8 -0.6,0.3 0.1,0.4 -0.7,-0.3 -0.6,0.8 0,0.1 -0.1,0 -0.4,0 0.5,0.4 -0.1,0.3 0.1,0.3 -1.2,-1 -0.5,-0.3 -0.1,-0.2 0,-0.1 0,-1 z", - "TG" : "m 338.03,196.79 1.3,3.7 0.1,5.4 -0.4,0.1 -0.5,0.2 -1.2,-1.5 -0.3,-6.4 -1,-1.8 1.2,0.3 z", - "LA" : "m 542.13,189.59 -1.3,0.8 -3.1,-0.1 0.8,-2.7 -1.7,-1.6 0.2,-1.6 -1.6,-1.9 -1.2,-0.2 -1.5,1.2 -1,-0.8 -1.8,1.5 0.2,-4 -1.5,0 -0.7,-1.6 1.2,-2 0.9,-0.5 1,0.9 -0.4,-2.3 1.2,-0.3 1.6,1.7 0.3,1.4 1.8,-0.2 1.7,1.8 -2.1,1.5 1.7,1 3.4,3.5 2.2,3.4 z", - "AF" : "m 479.73,143.39 -1,0.3 0.3,0.2 -3.8,0.4 -2.7,1.7 0.9,1.9 -1.1,2.4 -2,0.1 0.6,1.5 -1.5,0.5 -0.4,2.5 -2.3,0.2 -3.4,1.9 -0.3,2.3 -4,0.9 -3.1,0 -3.1,-1 1.8,-2.1 -0.2,-1.1 -1.7,-0.2 -0.5,-3.3 1.4,-5.5 1.9,1 4.2,-2.4 0.6,-1.8 1.9,-1.1 1.4,0.5 1.4,0.3 1,0 2.9,0.2 1.6,-0.9 0.9,-1.8 2,1 0,2.6 3.2,-1.7 z", - "UA" : "m 378.73,117.59 0.3,-0.7 0.4,-1 0.2,-1.1 2.8,-2.5 -0.9,-2.5 1.5,-0.9 2.6,-0.1 2.9,0.8 3.9,0.6 2.3,-0.5 0.8,-1.3 1.6,-0.1 3.9,-0.6 1.2,1.5 -0.5,1.3 1.7,0.1 1.1,2.2 3.4,-0.2 3.4,1.4 1.8,1.5 -0.8,1.2 0.1,2.3 -1.8,-0.1 -1.2,1.8 -4.4,1.1 -2.1,1.2 1.5,2.5 -3.1,1.7 -2.1,-2.9 1.7,-0.7 -3.9,-0.7 1.2,-0.6 -2.3,-0.4 -2.6,2.4 -0.2,1 -1.7,-0.1 -1.1,-0.5 1.4,-2.4 2.2,0.2 -1.9,-2.8 0.3,-0.8 -2.9,-1.4 -2.2,0.4 -2.6,0.9 -4.5,-0.1 -0.5,-0.4 z m 15.3,4.9 0.5,0.7 0.2,-0.2 -0.6,-0.6 z m 7.4,0.7 1.8,1 -0.3,-0.9 -1.2,-0.6 z", - "SK" : "m 379.43,115.89 -0.4,1 -0.3,0.7 -3.2,-0.3 -1.1,0.9 -4,1 -1.3,-0.6 -0.6,-0.9 0.2,-0.6 2.2,-1.2 1.4,-1.1 5.8,0.4 z", - "JK" : "m 485.23,147.19 -1.4,0.9 -0.5,-1.2 1.1,0.4 z", - "BG" : "m 391.03,128.69 -1.7,3.1 0.6,1 -1.8,-0.2 -1.4,0.8 -2.1,1.1 -1.4,-0.8 -3,0.6 0.1,-1 -1.2,-1.3 1.1,-1.8 -1.1,-1.6 0.6,-1 1.2,0.8 3.9,0.5 3.2,-1.2 z", - "QA" : "m 433.63,169.69 -0.2,-1.5 1.6,-0.8 -0.7,2.6 -0.4,0.1 z", - "LI" : "m 354.53,120.39 0.2,0.3 -0.1,0.2 -0.2,-0.1 z", - "AT" : "m 354.63,120.89 0.1,-0.2 -0.2,-0.3 0.3,-0.4 -0.2,-0.2 0.2,0 0.1,-0.1 2.4,0.3 2.3,-0.7 1.6,0.5 -0.5,-1.5 2,-1.6 1.7,0.4 0.5,-0.9 3.8,0.9 -0.2,0.6 0.6,0.9 -1.1,0.6 -0.9,2.1 -3,1.2 -1.6,-0.4 -2.5,-0.4 -0.4,-0.9 -3.3,0.5 -0.7,0.1 z", - "SZ" : "m 397.43,268.29 0.2,0.6 0.2,1.2 -1.9,0.7 -0.6,-1.6 1.1,-1.4 z", - "HU" : "m 378.73,117.59 0.9,0.7 0.5,0.4 -1.7,1.1 -1.6,2.9 -1.8,0.4 -1.3,-0.1 -1.2,0.6 -3,-0.1 -1.6,-1.3 -0.5,-0.9 -0.3,0 0.9,-2.1 1.1,-0.6 1.3,0.6 4,-1 1.1,-0.9 z", - "RO" : "m 379.73,127.59 -2.5,-1.3 0.2,-0.9 -2.4,-2.3 1.8,-0.4 1.6,-2.9 1.7,-1.1 4.5,0.1 2.6,-0.9 0.8,0.3 2.4,3.7 -0.1,2.8 1.1,0.5 1.7,0.1 -2,2.1 -0.1,1.3 -3,-1 -3.2,1.2 -3.9,-0.5 z", - "NE" : "m 343.23,195.39 -1.5,-1.3 -0.8,0.9 -0.4,-1.3 -2.3,-0.9 -1.5,-3.6 2.1,-0.7 4.2,-0.2 1.3,-2 0.1,-5.4 3,-0.6 3.2,-2.8 8.6,-5.3 2.9,0.7 1.4,1.1 1.5,-0.8 0.3,3.1 1.6,2.2 -0.5,0.9 -0.5,5.9 -3.9,4.9 0.3,1.3 -2.1,1.3 -2,-0.6 -2.5,0.2 -1,0.8 -3.4,-1 -1.7,0.7 -2.8,-1.7 -2.6,0.8 z", - "LU" : "m 348.43,114.99 -0.7,0 -0.3,-0.2 -0.2,-0.9 0.8,-0.6 0.7,0.8 z", - "AD" : "m 339.03,131.39 0.6,-0.1 -0.1,0.3 -0.3,0.2 z", - "CI" : "m 331.13,199.69 0.4,2.4 -1.4,2.6 0.7,3.3 -5.7,0.2 -3.3,1.3 0.1,-2.8 -2.1,-1.3 0.2,-2 1.2,-3.6 -0.2,-1.4 3.3,-0.2 1.4,-0.3 1.6,1.4 2.8,-0.5 z m -0.8,8.4 -0.3,-0.1 0.3,0 z", - "LR" : "m 320.03,203.39 -0.2,2 2.1,1.3 -0.1,2.8 -3.3,-1.5 -4.2,-3.4 1.7,-1.6 0.6,-1.4 1.5,0.3 0.7,2.2 z", - "BN" : "m 556.53,208.59 0.2,-0.1 0,-0.1 0.4,1.2 z m -2,0.4 1.1,-0.2 0.8,-0.3 -0.7,1.6 z", - "IQ" : "m 429.23,158.99 -0.8,-0.2 -0.3,0.1 -1.6,0.1 -1.1,1.8 -3.6,-0.2 -5,-3.9 -3.1,-1.8 -2.5,-0.4 -0.1,-0.8 -0.6,-1.9 3.7,-2 1,-1 0.3,-3.8 1.9,-1.3 0.7,-0.5 3.9,0.4 1,2.6 2,0.4 -1.8,3.9 1.7,2.2 2.1,1.2 0.9,1.3 -0.3,1.6 z", - "GE" : "m 422.43,134.39 -1.5,0.1 -1.5,0.3 -1.2,-1.1 -2.4,0.2 -0.1,-2.6 -2.9,-1.8 5.5,0.6 2.1,1.4 1.7,-0.4 3.1,1.9 0.1,1.9 z", - "GM" : "m 304.23,192.79 -0.1,-0.6 0.5,-0.4 3.2,-0.4 -1.8,1.2 z", - "CH" : "m 353.93,119.39 0,0 0,0 0,0 0.6,0.4 0.1,0 0.2,0.2 -0.3,0.4 -0.1,0.4 0.2,0.1 1,0.5 0.7,-0.1 -0.9,1.2 -2.2,0.7 -1.5,-0.4 -2,0.8 -0.5,-0.5 0.1,-0.7 -0.3,-0.3 -0.5,0.4 -0.3,0.2 -0.2,-0.7 2.8,-2.4 1.7,0 z", - "TD" : "m 364.03,192.99 0.6,-0.2 -0.8,-0.1 0,0 -0.2,-0.1 0.1,0.1 -0.5,0.1 -0.9,-1.3 -0.3,-1.3 3.9,-4.9 0.5,-5.9 0.5,-0.9 -1.6,-2.2 -0.3,-3.1 1.9,-0.9 15.3,7.9 0,7.4 -1.7,0.1 -1.1,3 -0.9,0.7 0.3,2 1.2,3.5 -0.7,-0.1 -3.9,3.5 -2.6,0.3 -0.9,1.8 -3.5,1 -2.5,0 -0.6,-1.8 -2.3,-2.2 0.4,-0.7 2.9,0 -1.2,-1.5 0.2,-1.5 z", - "KV" : "m 375.73,132.99 -0.2,-0.7 -0.8,-0.8 -0.1,-0.4 0.6,-0.3 0.8,-1 1.9,1.4 -0.3,1 -0.9,0.1 z", - "LB" : "m 403.53,152.39 0.9,-1.7 0.7,-1.6 1.3,0.9 -1.5,1.7 -0.7,0.7 z", - "DJ" : "m 418.53,196.79 -1.9,0.1 -0.3,-0.3 0.2,-0.2 -0.2,-0.2 -0.1,-0.5 1.2,-1.8 0.6,0.2 0.8,-0.6 0.5,1.4 -0.2,0.9 z", - "BI" : "m 393.13,226.19 -0.6,-1 -0.3,-1.1 0,-0.5 -0.4,-0.7 1.7,-0.1 1.3,-0.5 0.5,1.6 z", - "SR" : "m 231.73,213.29 -2.6,-0.3 -1,1.1 -3,-4.3 1.6,-2.5 0.5,-1 5.6,0.4 -0.2,0.9 -0.6,0.8 0.9,2.8 z", - "IL" : "m 401.83,156.19 1.2,-2.1 0.5,-1.7 0.7,0 0.7,-0.7 0.1,1 -0.3,0.4 -0.3,0.3 0,1.8 -0.4,0.5 0.1,0.4 -0.1,0.2 0.1,0 -0.1,0.2 0.1,0.1 -0.5,1.4 -0.4,1.8 -0.1,0.2 0,0 -0.1,-0.5 z", - "ML" : "m 325.73,197.89 -1.4,0.3 -3.3,0.2 -0.8,-2.3 -1.5,-2.2 -2.9,1.1 -1.3,-0.9 -1.4,-2.6 -0.3,-2 1,-1.5 1.9,0.2 10,-0.1 -2,-18.9 3.3,0 11.5,7.8 1.4,1.8 2.5,0.8 -0.2,1.3 2.2,0 -0.1,5.4 -1.3,2 -4.2,0.2 -2.1,0.7 -1.8,-0.3 -2.7,1.8 -1.4,0.2 -1.3,1.7 -1,-0.5 -1,2.4 -1.1,0.4 z", - "SN" : "m 304.23,194.19 -0.1,-0.9 0.1,-0.5 1.8,-0.2 1.8,-1.2 -3.2,0.4 -1.1,-2.6 1.1,-1.8 0.4,-1.2 3.8,-0.4 4,3.7 0.3,2 1.4,2.6 -1.9,0.1 -2.6,-0.7 -2.8,0 z", - "GN" : "m 314.53,194.09 1.3,0.9 2.9,-1.1 1.5,2.2 0.8,2.3 0.2,1.4 -1.2,3.6 -1.2,0.7 -0.7,-2.2 -1.5,-0.3 -1.9,-2.9 -2.4,0.3 -1.5,1.5 -1,-1.5 -2.3,-2.2 0.6,-1 1.9,-0.4 0,-1.9 2.6,0.7 z", - "ZW" : "m 384.63,251.99 2.8,0.5 0.6,-0.2 2.1,-2.2 0,0 1.2,-0.6 0.2,-0.9 3,-0.8 4.9,2 0.1,3.3 -0.5,2.2 0.5,1.1 -1.2,2.5 -2.1,2.2 -1.8,-0.1 -1.9,-0.3 -2.6,-1.2 -0.6,-2.2 -3,-2 z", - "PL" : "m 373.83,102.19 -0.4,0.5 0.7,-0.5 5.6,0.3 0.2,0 1.3,0.5 0,0.6 0.8,3.3 -1.4,0.9 0.9,2 0.9,2.5 -2.8,2.5 -0.2,1.1 -1.3,-0.7 -5.8,-0.4 -0.5,-0.9 -4.1,-1.7 -3.1,-0.7 -0.3,-4.4 -1,-0.7 0.3,-2.2 0.7,-0.4 -0.8,-0.1 -0.1,-0.1 0.1,0 3.7,-1 0.8,-0.7 3.3,-0.7 0.6,1.1 1.9,-0.1 z", - "MK" : "m 376.43,135.29 0,0 0,0.1 z m 2.7,-3.3 1.2,1.3 -0.1,1 -2,0.5 -1.5,0.6 -0.3,-0.4 0,0.3 0,-0.1 0,0 -0.2,0 -0.2,0 0.1,-0.4 -0.3,0 -0.4,-1 0.3,-0.8 1,-0.7 0.9,-0.1 0.7,-0.2 z", - "PY" : "m 232.43,264.39 -0.3,0.8 -0.4,2 0.1,0.2 -0.1,0.1 -0.3,2.2 -1.9,1.6 -5.4,-0.2 2,-3.9 -4.8,-2.9 -1.8,-0.4 -3.2,-3.1 0.8,-3.4 0.9,-1.8 5.1,-0.7 1.8,1.7 0.7,1.6 -0.3,2.2 3,0.1 1.5,1.1 0.4,2.6 z", - "BY" : "m 381.53,109.79 -0.9,-2 1.4,-0.9 -0.8,-3.3 1.8,0.1 2,-1.1 0.8,-1.7 1.7,-1 -0.3,-0.9 1.9,-0.4 1.1,-0.9 5.2,1.4 1.7,4.8 1.8,1 -2.8,1.1 1,2.3 -1.6,0.1 -0.8,1.3 -2.3,0.5 -3.9,-0.6 -2.9,-0.8 -2.6,0.1 z", - "CZ" : "m 372.33,114.79 -1.4,1.1 -2.2,1.2 -3.8,-0.9 -0.5,0.9 -1.7,-0.4 -2.7,-2.4 0.2,-1.6 4.4,-1.2 3.1,0.7 4.1,1.7 z", - "BF" : "m 338.03,196.79 -0.8,0 -1.2,-0.3 -5,0.3 0.1,2.9 -1,-0.9 -2.8,0.5 -1.6,-1.4 0.7,-3 1.1,-0.4 1,-2.4 1,0.5 1.3,-1.7 1.4,-0.2 2.7,-1.8 1.8,0.3 1.5,3.6 2.3,0.9 0.4,1.3 -1.9,0.9 z", - "NA" : "m 381.03,251.69 1.6,-0.3 2,0.6 -3.2,1.3 -0.5,-0.9 -4.5,0.6 0.1,7.2 -2,0.1 0,5.5 0,7.5 -1.6,1.1 -3.3,-0.5 -0.6,-1.4 -1.2,1.2 -2.2,-2.6 -1.4,-5.6 -0.4,-4.6 -1.9,-2.9 -1.6,-3.5 -1,-1.1 -0.5,-2.5 2.7,-0.6 1.5,0.9 8.6,0 0.6,0.7 3.9,0.5 z", - "LY" : "m 365.03,173.19 -1.5,0.8 -1.4,-1.1 -2.9,-0.7 -0.8,-1.6 -2.9,-1.1 -1.2,-2.6 0.8,-0.8 0,-5.4 -0.6,-2.3 1.4,-1.4 -0.3,-1.1 2.8,-2.2 -0.1,-1.5 1.6,0.8 1.9,-0.2 3.5,1.1 1.7,2.3 2.5,0.4 3.3,1.8 1.3,-0.5 0.3,-2.7 1.2,-1.7 2.1,-0.8 2.8,0.7 0,0.6 3.6,0.8 0.3,0.6 -0.9,3.1 0.6,2.1 0,14.6 0,4 -1.9,0 0,1 -15.3,-7.9 z", - "TN" : "m 358.33,152.19 0.1,1.5 -2.8,2.2 0.3,1.1 -1.4,1.4 -0.9,-3.8 -1.4,-1 -1.6,-2.9 1.4,-1.6 0.3,-3.9 0.4,-1.1 2.2,-0.9 2.7,4.6 -1.9,2 0.4,1.3 1.4,-0.2 z", - "BT" : "m 506.53,164.49 2.5,-2.2 2.7,1.3 0.9,1.7 -4.4,0.4 z", - "MD" : "m 390.33,124.69 0.1,-2.8 -2.4,-3.7 -0.8,-0.3 2.2,-0.4 2.9,1.4 -0.3,0.8 1.9,2.8 -2.2,-0.2 z", - "SS" : "m 401.33,209.69 -0.9,0.9 -5.1,0.5 -2,-2 -2.7,0.5 -1.8,-1.5 -1.9,-1.9 -0.1,-1.1 -2,-1.3 -2.2,-2.6 1.7,-3.1 1.4,-0.2 1.4,1.7 4.4,0.4 2.2,-1.8 2.4,0.9 2.2,-2.4 -0.6,-1.9 2.2,-0.4 -0.1,2.7 1.7,2.6 -0.2,2 -1.4,-0.1 -0.3,1.3 1.2,0.3 2,1.9 2.3,3.9 -1,-0.8 z", - "BW" : "m 384.63,251.99 1.7,3.3 3,2 0.6,2.2 2.6,1.2 -2.2,0.9 -2.3,2 -0.3,1.3 -1.9,0.9 -0.5,1.8 -1.5,0.4 -3.4,-1.1 -0.6,1.4 -2,1.8 -1.9,0.1 0.3,-1.6 -1.7,-2.8 0,-5.5 2,-0.1 -0.1,-7.2 4.5,-0.6 0.5,0.9 z", - "BS" : "m 191.33,169.99 -1.3,-1.4 0,0 0,0 0.5,0.3 0.8,1.1 z m 0,0 0.8,0.9 0.5,2.1 4.4,1.5 -4,-1 -2.2,-1.6 1.1,-1.1 -0.6,-0.8 z m -1.3,-1.4 -1.6,-1.2 -1.4,1.5 0.7,2.9 -1.3,-1.9 0.1,-1.1 1.9,-1.9 1.6,1.7 0,0 z", - "NZ" : "m 661.13,313.49 -2.7,-0.1 -0.2,1.4 -0.8,-2.2 -1.8,0.1 -0.6,-1 0.9,-1.6 2.7,-2.6 2.6,-1.1 2.7,-2.2 1.9,-3.9 1.2,-0.9 0.7,1.8 1.4,-0.9 0.7,2.2 -3.4,4.3 -2.1,1.3 -1.3,3.3 z m 12.3,-12.7 -1.6,1.1 -1.2,-0.7 1.2,-2.3 -2.8,-2 1.6,-1.3 0.4,-2.3 -0.9,-2.5 -2.4,-3.1 1.5,-0.5 2.4,2.7 1.4,1.1 0.2,2 2.8,0.7 2.2,-0.5 -1.4,3 -0.9,-0.1 z", - "CU" : "m 188.73,178.29 -3,-0.4 -1.1,-1.8 -2.4,-1 -2.6,-0.2 -0.1,-1 -1.7,-0.1 -3.3,1.9 0.2,-1.2 2.2,-1.3 2.3,-0.4 3.8,0.3 1.6,1.4 0.9,-0.3 0.8,0 3.4,2.7 3.5,1.1 0.9,1.1 -6.6,0.5 z", - "EC" : "m 182.53,224.19 1,-1.4 -2.1,-0.6 0,-2.4 1.6,-2.1 -0.1,-1.3 2.5,-1.4 2.6,1.5 2.2,0.4 1.9,1.1 -0.5,2.7 -2.1,2 -3.2,1.5 -1.4,3.1 -2.8,-1.8 z", - "AU" : "m 617.53,306.39 -1.6,0 -1.5,-2.2 -1.1,-3.5 0,-1.4 -1.2,-0.9 4.1,2.5 3.8,-1.3 0.1,2.7 -0.5,3.3 -0.9,-0.8 z m -1.4,-54.7 0.6,2.8 5.1,2.8 0.9,3.5 2.3,0.9 0.2,1.8 1.9,1.1 1.4,2.1 1.4,-0.3 -0.6,1.6 1,3.3 0.1,3 -2.1,7.5 -1.4,0.9 -3.1,6.5 -0.4,3.5 -3.2,0.7 -3.5,2 -2.9,-0.5 0.1,-1.3 -2.8,2.1 -2.2,-1.1 -3.3,-0.7 -1.8,-1.9 -0.3,-2.6 -1.1,-1 -4.4,1.1 1.2,-1 -0.6,-1.5 2,-3.8 -1.2,0 -3.4,3.9 -0.9,-2.3 -1.7,-1.5 -0.3,-1.5 -3.7,-0.9 -2.1,-1.2 -4.1,0.5 -3.2,1.2 -2.1,-0.1 -4,2 -1.1,1.6 -6.8,0 -3,2.1 -2.4,0.4 -2.3,-0.5 -1.9,-1.6 1.3,-1.7 0.1,-3.5 -1.4,-3 0,-1.6 -1.5,-2.8 -0.3,-1.6 -2.1,-3.2 1.1,-0.5 1.1,1.9 0.1,-1.4 -1.3,-2.5 0.4,-3.9 4.3,-3.1 3.5,-0.8 6.2,-2 2.6,-2.9 -0.3,-1.8 1.5,-1.3 1.1,1.8 0.1,-2.6 1.6,0.3 0,-2.1 1.3,-1.2 2.9,-0.8 0.6,-1 2.4,1.9 2.8,0.8 -0.6,-1.3 3.1,-4.8 -1.8,-0.3 0.7,-1.1 2,0.1 0,2 2.4,-0.3 -0.2,-2.2 1.1,1.3 3.7,1.1 2.7,-0.9 0.8,1 -1.9,2.8 -0.9,2.2 2.1,1.6 4.7,2.3 1.9,1.6 1.6,-0.5 1.6,-4.6 -0.1,-5 0.7,-0.9 0.3,-3.6 0.9,1.1 1.8,5.8 0.8,1.5 1,-0.7 1.7,1.5 0.1,2.7 z", - "VE" : "m 199.73,195.09 -1.1,0.5 0.6,1.7 -1,1.7 1.2,1.5 0.9,-1.3 -1.1,-2.1 2.8,-1.2 2.4,0 1.8,1.9 3.2,-0.4 2.9,1.1 1.6,-1 2.3,-0.3 0.9,1.4 2.8,1.3 -0.2,0.9 1.7,0.7 -1,1.4 0.4,1.3 -1.7,1.1 -0.3,1.2 1.2,1.4 -1.6,1.8 -5.9,0.5 1.2,2.9 1.3,0.1 -1.5,1.6 -2.7,1.7 -2.6,-1.1 -0.6,-2.2 -1.2,-0.9 1,-1 -1.1,-2.2 0.8,-3.1 -3.8,0.1 -1.3,-1.6 -3.8,-0.2 -0.5,-2.5 -1.2,-1.8 0.2,-2.1 1.8,-2.4 z", - "SB" : "m 644.23,236.59 -1.9,-0.1 0,-2.4 -2.9,-1.9 -1.4,0.8 1.2,1.3 -2.6,-1.1 0.1,-1.7 3.3,0.7 2.3,1.4 0.5,1.4 1.7,-0.8 z", - "MG" : "m 431.73,249.49 -4.3,14.5 -1,2.3 -3.7,1.2 -2.1,-1.2 -0.5,-3.1 -1.1,-2.4 0.6,-1.9 1.8,-2.6 -1,-5 1,-2.5 2.2,-0.4 3.6,-1.7 1.4,-3.3 0.9,0.1 1.1,-2.9 1.3,2.1 1,4.7 -1.6,0.2 z", - "IS" : "m 290.23,72.39 4.3,-0.5 -0.3,-1.1 -2.3,-0.6 -2.6,0.2 1.5,-0.8 0.6,-1.4 1.9,0.4 -0.2,-1.2 2.4,1.5 -0.4,1.4 1.1,0.6 1.6,-2.4 3.4,-0.2 1.4,0.7 2.1,-0.7 -0.1,-1 3.6,1.4 -0.3,1 2,0.7 0.5,1.4 -2,2.1 -6.1,2.1 -1.9,1 -2.8,-0.5 -1.9,-1 -2.9,0.1 1.9,-1.7 -1.4,-1.3 z", - "EG" : "m 403.13,159.99 -1.2,3.6 -2,-1.7 -1.4,-2.9 0.2,2.1 1.9,2.4 0.8,2.4 2.9,5.4 0.3,2.1 2.3,1.8 -10.8,0 -12,0 0,-14.6 -0.6,-2.1 0.9,-3.1 4.2,0.7 3.3,1.1 2.5,-1.4 2.3,0.1 1,0.8 4.1,-0.5 1.2,3.3 z", - "KG" : "m 477.33,138.49 -2.7,0.6 -1.5,-0.9 -4.1,0.2 1.2,-1.6 1.9,0 1.4,0.2 2.8,-1.5 -2.7,-1.5 -0.6,0.7 -2.4,-1 1.5,-1.5 1.7,-1.4 3.2,1 1.3,-2 1.9,1 6.2,-0.1 3.4,1.6 -3.5,1.9 -0.5,0.7 -2.5,0.3 -2.1,1.4 -0.3,-0.7 -3,1.3 z m -5.8,-0.9 -0.3,0 0.2,0.2 0.2,-0.1 z m 2.2,-0.1 0,-0.2 -0.2,0.1 0,0.1 z m -1.2,-0.3 -0.4,-0.1 0.2,0.5 0.3,-0.1 z", - "NP" : "m 505.03,163.39 0.1,2.3 -1.6,0.7 -2.9,-0.4 -2.4,-1.6 -3.5,-0.3 -5.2,-2.8 0.6,-1.9 1.3,-0.9 2,-0.3 2.8,2.4 1.1,-0.1 1.9,1.9 1.7,0.9 1.1,-0.4 z" - } - } - } - }); - - return Mapael; - -})); diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_miller.min.js b/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_miller.min.js deleted file mode 100644 index be9d3d17..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_miller.min.js +++ /dev/null @@ -1,13 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires Mapael - * - * Map of World by country - * Miller projection - * - * @source http://code.highcharts.com/mapdata/ - */ -!function(a){"object"==typeof exports?module.exports=a(require("jquery"),require("mapael")):"function"==typeof define&&define.amd?define(["jquery","mapael"],a):a(jQuery,jQuery.mapael)}(function(a,b){"use strict";return a.extend(!0,b,{maps:{world_countries_miller:{width:700.9375,height:337.375,leftLongitude:-175,rightLongitude:190,topLatitude:84,bottomLatitude:-56,_projectLongitude:function(a){return a*Math.PI/180},_projectLatitude:function(a){var b=a*Math.PI/180;return 1.25*Math.log(Math.tan(Math.PI/4+.4*b))},getCoords:function(a,b){var c=this;void 0===c._xLeftPrime&&(c._xLeftPrime=c._projectLongitude(c.leftLongitude)),void 0===c._xRightPrime&&(c._xRightPrime=c._projectLongitude(c.rightLongitude)),void 0===c._yTopPrime&&(c._yTopPrime=c._projectLatitude(c.topLatitude)),void 0===c._yBottomPrime&&(c._yBottomPrime=c._projectLatitude(c.bottomLatitude));var d=c._projectLongitude(b),e=c._projectLatitude(a),f=(d-c._xLeftPrime)*(c.width/(c._xRightPrime-c._xLeftPrime)),g=(c._yTopPrime-e)*(c.height/(c._yTopPrime-c._yBottomPrime));return{x:f,y:g}},elems:{FO:"m 322.53,80.19 0.9,0.8 0,0.3 -1,-0.7 z",UM:"m 26.03,206.59 0,0 -0.1,0 0.1,0 z",US:"m 100.93,117.39 0.2,0.1 -0.6,-0.2 0,-0.3 z m 0.2,-0.6 0.2,0.1 -0.3,0.2 -0.3,-0.1 z m -19,-15.8 0.2,0 0,0.4 -0.3,-0.4 z m -0.1,-0.7 0.3,0.3 -0.2,0.2 -0.2,-0.1 z m -0.5,0 0.8,1.3 -0.9,-0.7 -0.1,-0.7 z m 3.3,0.1 -0.1,0.3 -0.4,0 0.1,-0.7 z m -3.7,-0.5 0.1,0.3 -0.4,0 0,-0.3 z m 2.8,-0.3 0.3,0.4 -0.2,0.4 -0.2,-0.6 z m -3.5,-0.1 0.4,-0.1 0,0.3 -0.4,0.3 z m 0.7,0.1 -0.1,0 -0.2,-0.3 0.3,0 z m -1.1,-1.3 0.3,-0.4 0.8,-0.2 -0.2,0.3 z m 2.6,-0.8 0.8,0.3 -0.4,0.5 -0.7,-0.4 z m -0.3,-0.6 0,0.4 -0.8,-0.2 0.3,-0.3 z m 1,0.2 0.1,0.6 -0.5,-0.4 0,-0.6 z m -1.4,-1.2 0.6,0.6 -0.4,0.2 -0.3,0 z m -1.7,-0.8 1.5,0.5 -0.3,1.2 -1,0 z m -3.5,-0.4 -0.1,0.6 -0.4,0.1 0.2,-0.5 z m -1.5,-2.1 -0.2,0.4 -0.2,-0.2 0.2,-0.5 z m 91.6,25.5 -0.2,0.4 -1,0.5 -0.1,-0.2 z m 3,6.8 -0.2,0.6 -0.4,0.7 -0.2,-0.4 z m 2.8,-1 0,0.4 -0.3,0 0.2,-0.4 z m 3.7,-0.7 0.1,0.3 -0.6,0 0.3,-0.2 z m -96.8,-24.9 -0.6,-2.5 0.8,-0.1 0.6,0.7 z m -61.3,4.8 -0.9,1.5 -2.4,0.4 -2.2,1.3 1.2,-1.5 2.3,0 0,-1 z m 59.3,-7.9 -0.4,-1.4 1,0.8 0.4,3 z m -0.7,-2.2 -0.3,1.3 -1.4,-1.2 1.1,-1.3 z m 1.1,-1.2 1.4,0.4 0.5,2.3 -1,-0.2 z m -66.2,-14.8 1.6,0.2 -2,1.1 -1.9,-1.3 -2.2,-0.4 3,-0.6 z m 89,39.1 -0.1,0.1 0,-0.1 z m 45.7,49.9 -0.1,-0.8 -0.5,-0.2 -1.5,-2.5 -1.5,-2.5 -0.2,-0.1 -0.1,-0.1 -2.1,-0.7 -1.6,1.9 -2.6,-1.4 -0.7,-1.8 -3.2,-2.6 -3.2,0 0,0.9 -5.5,0 -7.2,-2.4 0.2,-0.5 -4.6,0.4 -0.3,-1.2 -2.4,-2 -2.5,-0.1 -1.5,-1.1 -3.4,-5.7 -0.2,-1.3 -2.3,-2.5 -0.3,-2 -1,-1.4 0.6,-2.3 -0.9,-3.2 0.8,-2.4 0.5,-4 -1.3,-6.7 3.6,0.6 -0.1,-0.2 0.7,0.6 -0.7,-0.7 0,0 0.3,-0.4 -0.3,0.3 0,-1.8 52.8,0 4.8,1.2 2.3,1.2 3.6,0.1 -2.8,1.2 -2,1.7 2.5,-0.2 0.6,0.7 3.5,-1.6 0.1,0.1 -0.1,-0.1 1.1,-0.6 0.6,0.1 -1.1,0.9 1.8,1.4 4.6,-0.7 0.9,0.8 0.7,-0.2 0,0.5 -1.2,1.1 -4.3,-0.1 -2,3.2 1.4,-0.6 -1.1,3.6 0.1,2.3 1,1.5 1.3,-0.6 0.8,-2.5 -0.6,-1.5 0.5,-2.5 3.2,-2.7 2.1,1.1 0.3,2.4 -1,0.8 2.3,0.2 0.5,2.1 -0.2,0.9 -0.3,0.2 -0.3,-0.3 -0.5,0.8 -0.7,1.4 1.8,0.7 1.6,-0.3 4.8,-2.4 0.5,-0.8 -0.3,-0.4 0,-0.4 4.5,-0.1 1.8,-2.7 1,-0.9 1,-0.3 0,0 6.2,-0.1 2.3,-2 0.5,-2 1.5,-1.8 2.7,0.9 0,3.2 0.4,0.3 0.4,0 -0.1,0.8 0.6,0.2 0.3,0.9 -2.4,1 0.1,0.1 -0.4,0.4 0,-0.3 0,0 -0.7,0.3 0.3,-0.1 0,0.4 -0.3,0 -0.1,-0.3 -0.4,0.2 -2.9,1.8 -0.1,3.7 -4.4,1.1 -2.2,1.4 -0.1,1.9 -2.9,4 -1.5,-2.8 0.3,3 -0.4,2.2 0.9,-0.1 0.5,2.8 -1.5,2.2 -1.2,-0.1 -1.6,1.8 -2.3,1.4 -3.8,3.1 -0.6,2.1 1.8,4.7 0.9,3.4 -0.6,3.4 -1.4,0 -2,-2.7 -1.3,-2.9 0.4,-2.1 -2.7,-2.5 -1.8,1 -2.1,-1.4 -5.3,-0.3 -1.5,0.6 0.9,2.4 -1.6,-0.9 -1.3,0.8 -1.9,-1.4 -1.3,0.4 -3.4,-0.3 -4.6,2.8 -2,3.1 0.8,1.7 -2.1,-0.2 z m -65.4,-67.3 -0.3,0.2 -0.2,-0.4 0.5,0 0,0 0.3,-1.3 2.3,3 -0.1,1.4 -1.6,-1.8 -1,-0.7 z m -43.4,79.5 -0.5,-0.5 0,0 0.5,0.2 0,0.3 0,0 z m 0,0 2.3,2 -2.1,0.9 -0.2,-2.9 0,0 z m 47.3,-77.4 -0.1,0.3 -0.3,-0.2 0.4,-0.1 0,0 z m -5.8,-8.9 0.1,0.1 -0.6,-0.1 0,-0.2 -0.3,-0.2 -3.7,0.5 -3.1,-2.4 -3,-1.3 -5.6,-1.7 -2.8,-0.1 -3.5,-0.9 0,-1.1 -3.5,0 0.4,2.5 -3.2,0 -0.7,0.9 -4.1,1.5 1.3,-1.3 -1.3,-0.4 0.9,-2.8 1.8,-0.9 -0.2,-0.9 -3.4,2.4 -0.7,1.7 -2.7,1.5 1.5,1.3 -1.9,2.4 -3.6,1.6 -2.1,2.7 -0.9,-0.5 -2.1,2.2 -1.9,0.1 -3.2,1.2 -1.6,1.4 -4.7,1.2 0.5,-1.3 2.4,-0.6 3.7,-2.2 2.2,0.3 -0.3,-1.2 2.8,-1.5 2.2,-2 1.3,-3.7 -3.7,1.3 -2.5,-1.8 -2.7,1.4 0.1,-2.6 -1.2,-1.8 -2.5,0.9 -2.6,-1.5 -1.1,1 -2.1,0.4 -1.5,-1 3.4,-0.3 2.1,-1.6 -3,-1.9 0.7,-1.5 3.1,-3.7 1.5,0.7 1.8,-1.2 3.1,-1 -1.2,-2.1 0.5,-1.6 -3.8,1.7 -5.8,-0.6 -3.6,-3.5 5.3,-2.3 3,-0.5 0.1,1.6 3.5,0.3 0.3,-3.3 -3.9,-0.3 -0.8,-1.6 -4.8,-2.4 0.8,-1.8 3.6,-0.2 2.4,-1.5 -0.1,-0.9 2.4,-2.4 2,0 2.3,-1.6 3.1,-0.1 2.3,-1.7 3.3,0.7 1.9,1.2 3.4,-0.3 0.7,1.4 5.3,-0.3 4,1.3 4.8,0.7 2.5,-0.5 4.4,1.6 0,29.2 3.5,0.6 3,2.4 0.4,1 2,-2 1.7,-0.6 1,1.5 3,2.5 3,5 3.4,1.8 0.1,1.7 0,0 -1.8,1.3 0.1,-2.4 -0.3,-0.1 -0.3,-0.6 -0.4,0.4 -0.6,-0.2 -0.5,-1.3 -2.1,-2 -2.2,-3.1 z m -38.1,3.7 -1.1,-1.2 3,-2 1.7,-1.6 0.4,2.8 -2.9,1.7 -3.7,3.4 z m -3.9,82.1 -3,-1 2.1,0.2 0.9,0.8 z m 47.8,-76.9 0.1,-0.2 0,0.2 -0.1,0 0,0 z",JP:"m 606.33,125.09 0,-0.1 0.6,0.4 -0.3,0.1 z m -15.5,25.1 -1.3,0.7 -2.1,-0.3 2.8,-3.2 3.7,-0.5 2.2,0.3 3,-4.4 -0.5,1.4 2.4,-0.6 0.4,-1.6 1.8,-0.6 1.1,-2.6 -0.4,-1.2 1.1,-3.2 0.7,1 1.3,-0.7 1.2,3.9 -1.8,2.3 -0.1,2.2 -0.9,2.4 0.5,1.2 -1.7,1.8 -0.3,-1.4 -3,1.8 -3.2,0.3 0.7,0.7 -1.8,1.4 -1.7,-0.6 0.6,-1.7 -3.2,0.3 -1.5,0.9 1.1,0.3 1.3,-1.2 0.9,0.5 -0.9,2.3 -0.9,-0.6 -2.2,1.7 -0.5,-1.6 z m -6.8,2 -0.4,-2 1.3,1.7 1.2,-1.1 2.4,0.6 0.6,1.3 -1.4,3.4 -2.1,0.2 -0.1,-3.3 z m 21.7,-19.1 -1,1 -0.6,-2.9 1.1,-1.6 1.9,0 0.9,-5.1 3.6,3.2 2.4,0.9 0.9,1.4 -2.6,0.5 -1.8,2.4 -2.7,-1.5 -2.9,0.7 z",SC:"m 442.43,226.39 0.2,0.3 -0.1,0.2 -0.5,-0.7 z",IN:"m 504.93,175.49 0.1,0 0,0.5 -0.2,-0.1 z m 0.1,-12.1 1.3,-0.3 0.2,1.4 1.7,1.2 4.4,-0.4 -0.9,-1.7 1.9,-0.4 3.9,-2.9 1.2,0.6 1.6,-0.7 2.3,2.4 -1.2,1.8 -3.2,1.8 0,1.5 -1.8,3.8 -1.5,-0.3 -0.2,3.3 -1.2,0.8 -0.8,-3.5 -1.1,1.5 -0.8,-1.3 2.5,-2.7 -0.8,-0.5 -3.2,0.1 -1,-1.7 -2.7,-1 -0.7,1.2 1.6,1.5 -1.7,1 1.4,0.7 -0.4,1.4 1,3 -1.6,1.1 -0.1,-1 -1.9,1 -1.6,3.2 -1.7,0.1 -2.6,3.2 -3.5,2.5 0.1,0.8 -3.9,1.8 -0.5,1.3 0.6,3.2 -0.9,2.6 0,3.3 -4.5,4.3 -1.9,-1.6 -1.3,-4.2 -2,-3.4 -0.9,-3.3 -1.7,-3 -1.5,-7.4 0.4,-1.3 -1,-3.6 -0.5,2.2 -2.1,1 -1.3,-0.4 -2.1,-2.1 1.8,-1.2 -2.9,-1.2 -0.9,-1.4 1.3,-0.8 2.1,0.2 2.1,-1.1 -3,-4.3 1.9,-2.5 2.7,0.2 2,-2.3 0.9,-1.8 2.2,-2.5 -0.1,-1.3 1.5,-0.9 -2.4,-2.2 -0.5,-2.5 1.1,-0.9 2.8,0.6 2.4,-1.3 1.4,-0.9 0.9,1.8 1.3,0.7 -0.3,1.7 1.4,1.7 -2.2,0.5 0.7,2.5 4.4,2.4 -1.3,0.9 -0.6,1.9 5.2,2.8 3.5,0.3 2.4,1.6 2.9,0.4 1.6,-0.7 z",FR:"m 228.83,121.39 -0.4,0.1 -0.1,-0.8 0.2,0.5 z m 125.6,9.9 -0.5,2.9 -0.8,-0.5 -0.1,-2.3 z m 301.9,127.2 -0.6,2.6 -3,-1.6 -1.7,-1.7 -0.4,-1.4 4.2,3.2 z m -187.7,60.9 2.7,0.3 -0.8,1.5 -2.5,0 z m -253.1,-136.4 0.1,-0.1 0,0.2 z m 135.1,-54.4 0,0.1 -0.1,0 0,0 -0.1,0.1 -2.4,1.4 -4.2,-1 -1.7,1.4 0.3,1.2 -1.3,0.2 -1,-0.3 -0.1,0 0,0 -0.5,-0.1 0.1,-0.3 -0.6,0.1 -2.8,-0.2 -3.4,-1.7 0.6,-0.4 0.9,-5.8 -1.8,-2.4 -1.6,-1.1 -3.6,-1.4 -0.1,-1.2 3.2,-0.8 0.7,0.9 2.5,-0.3 -1,-2.7 3.3,1.1 0.7,-1 2.7,-1.3 0,-1.7 1.8,-0.5 3.1,2.8 3.2,1.1 0.3,0.2 0.7,0 3.6,1.2 -1.2,3.4 -2.8,2.4 0.2,0.7 0.1,-0.2 0.2,0 0.8,-0.1 -0.1,0.7 0.5,0.5 -0.8,1.9 z m -118,79 0.4,-0.8 1.9,0.6 2.4,2.7 -2.5,3.5 -3.1,-0.3 1.2,-2.1 -0.9,-2.8 z",FM:"m 639.23,204.49 0.2,0.1 0,0.2 -0.2,0 z",CN:"m 544.43,180.89 1.7,-1.7 2.1,-0.3 0.6,0.9 -1.1,2 -1.4,1 -1.9,-0.7 z m -37.9,-16.4 -0.2,-1.4 -1.3,0.3 -3,-0.5 -1.1,0.4 -1.7,-0.9 -1.9,-1.9 -1.1,0.1 -2.8,-2.4 -2,0.3 -4.4,-2.4 -0.7,-2.5 2.2,-0.5 -1.4,-1.7 0.3,-1.7 -1.3,-0.7 -0.9,-1.8 -0.8,0.1 -1.1,-0.4 -1.6,-1.8 -2.7,-1.2 -0.3,-0.2 1,-0.3 -0.3,-2.8 -1.8,-0.1 -0.3,-2 0.6,-1.3 3,-1.3 0.3,0.7 2.1,-1.4 2.5,-0.3 0.5,-0.7 3.5,-1.9 1.2,-2.2 -1.4,-4.4 4.2,-1.2 1.4,-4 3.3,0.9 1.5,-0.5 0.5,-3.3 3,-1.7 0.3,-0.1 0.6,-0.1 0.3,1.4 2.1,1.5 2.4,0.8 1.4,2.6 -0.3,3.3 5,0.6 3.6,1.5 1.9,3.7 10.1,0.5 0.7,0.7 3.3,1 2.8,0 3,-1.2 5.2,-0.4 4.7,-2.9 -1,-1.7 1.1,-1.5 3.1,0.8 1.8,-1.5 2.1,-0.2 1.8,-2 3.2,-1 2.7,0.3 0.4,-0.8 -2.6,-2.6 -1.5,0 -0.1,0.1 -0.3,0.4 -3.2,0.2 -0.7,-1.1 2.3,-4.1 2,0.7 2.8,-1.2 -0.1,-0.9 1.8,-3.3 1.3,-1.1 -1.4,-1.7 1.5,-1.3 4.7,-0.8 4.7,1.5 4.5,8.8 2.5,0.3 2.8,2.7 0.4,1.6 2.7,-0.1 3.7,-1.7 0.7,1.7 -1.2,1.1 -0.5,2.4 -2,2.8 -0.5,-0.6 -1.1,0.2 -2,0.9 0.6,1.9 -0.5,2.8 -0.9,0.7 -1.3,-1 -0.3,1.2 -3.2,1.1 0.2,1.4 -2.9,-0.7 -1.2,1.8 -3.1,1.8 -3.6,1.5 -2.6,1.5 0.3,-1.4 1.9,-2.5 -2.1,-1 -1.4,1.7 -1.8,0.6 -1,1.6 -2.4,0.2 0.7,2.1 1.4,0 1.2,2.3 2.4,-1.6 1.7,0.9 2.1,0.1 -3.7,2 -3,3.1 2,1.6 1.2,3.5 1.8,1.5 0.3,2.2 -1.9,0.8 2.7,1.5 -1.5,1.1 0.1,2 -1.3,0.7 -2.9,4.1 0.6,1.2 -1.8,0.6 -4.5,4.4 -3.3,0.2 -1.1,1.2 -1.1,-1.6 -0.1,1.8 -5.5,1.5 -1.5,2.2 -0.3,-2.4 -2.5,-0.8 -0.9,0.8 -2.7,-1.8 0.4,-0.8 -2.8,-1.2 -2.6,1.7 -2.8,-0.5 -0.7,0.7 -1.2,0.3 0.4,2.3 -1,-0.9 -1.9,0.3 -0.5,-1.3 -1.5,-0.2 0.7,-1.8 -1.2,-0.2 -0.6,-1.8 -1.8,0.4 0.1,-2.4 1.9,-1.7 0,-3.5 -2.2,-1.9 -0.4,0.6 -2.3,-2.4 -1.6,0.7 -1.2,-0.6 -3.9,2.9 -1.9,0.4 -2.7,-1.3 z",PT:"m 322.13,143.49 -3.1,0.4 0.5,-2.6 -1.4,-1.1 1.5,-4.7 -0.1,-2.7 4.2,0.1 0.7,0.8 -1.4,1.3 -0.1,4.5 z",SW:"m 185.73,187.29 0,0 0,0 z",SH:"m 561.73,188.69 0,0 0,0 0,0 z",BR:"m 241.13,217.99 2.5,0.3 -0.8,2.2 -3.4,0.6 -0.4,-2.2 z m -7.3,66.1 0.8,-1.6 -0.1,-0.3 -4.7,-3.8 -0.8,0.5 -1.5,-2.1 -1.5,0.2 3.5,-4.1 3.7,-2.2 -0.1,-3.1 -1.4,-0.1 0.1,-0.1 -0.1,-0.2 0.7,-1.5 0,-1.3 -2.2,-0.2 -0.4,-2.6 -1.5,-1.1 -3,-0.1 0.3,-2.2 -0.7,-1.6 1.2,-3.9 -1.6,-1.8 -0.2,-1.8 -3.2,-0.1 -0.6,-4.8 -2.6,-0.5 -2.4,-1.7 -2.5,-0.4 -1.9,-2.5 -0.1,-2.9 -2.3,0.5 -3.2,2 -2.4,0 -2.1,0.1 0.3,-3 -1.3,0.9 -1.9,0.2 -3.5,-4.8 1.7,-2.2 0.4,-2.4 4.1,-1.8 1.5,0.1 1,-5.3 -1.2,-2.4 0.4,-3.6 3.3,0 1.5,-0.7 0.9,1.6 2.6,1.1 2.7,-1.7 1.5,-1.6 -1.3,-0.1 -1.2,-2.9 5.9,-0.5 1.6,-1.8 1.4,0.2 0.9,2.2 -0.9,2.3 0.5,1.6 1.8,1.3 3.2,-1.6 1.2,0.2 1,-1.1 2.6,0.3 3.1,0.3 2.5,-3.5 1.2,0.3 0.7,3.2 1.5,1 0.2,3.1 -3,0.9 1.4,2.6 2.7,0.3 2.9,-2.7 5.2,1.5 0.7,2.6 1.8,-0.8 4,1.2 3.1,-0.1 2.9,1.6 2.5,2.3 3.1,0.4 1.5,3.9 -1,3.9 -3.1,3 -2.2,3.6 -1.7,1.2 0.2,5.1 -0.6,3.5 -0.9,1.1 -0.1,2.3 -2.7,4.2 0.2,0.9 -2,2 -4.4,0 -5,2.7 -1.7,1.3 -1.5,2.3 0.4,2.7 -0.7,2.3 -2,2 -1,2.1 -1.7,-0.6 -0.4,1.9 -1.5,1.4 -0.8,2.9 -1.4,1.3 -0.3,-0.2 z",KI:"m 34.93,213.89 0.2,0.4 0.2,0.2 -0.4,-0.1 z",PH:"m 574.43,195.49 1.3,-0.2 -1.5,-1.5 1.7,-0.1 1.1,2.8 -1.3,-0.2 -0.5,1.8 z m -8.8,0.5 0.2,-1.8 0.9,0.5 -1.1,1.3 z m -0.4,0.4 0,0 0.4,-0.4 0,0 0,0 -0.4,0.4 z m 4.6,1.5 0.1,-3.5 2.2,1.5 -0.4,1.1 2.1,-0.8 -0.1,1.8 -1.9,2.5 -1.2,-1.5 0.4,-1.7 z m 4.4,5.8 -1.6,-0.8 -1.8,0.2 -1,2.5 0.2,-2.6 2.5,-1.9 1,1.1 1.7,-1.7 1.4,0.1 0,-2 1.6,2.3 0.5,3 -0.7,1 -0.9,-1.1 -0.8,1.3 0.1,2 -2.2,-1.1 z m 0.3,-12.1 -0.7,3.8 -1.2,-1 -0.5,-2.4 -1.2,-1 0.1,1.6 -1.7,-1.6 -1,1.1 1,0.9 -0.9,1.4 -1.6,-2.5 1.2,-0.1 -1.8,-2.4 -0.5,-3 1.1,0.4 -0.1,-2.8 1.6,-2.9 -0.2,0.8 2.3,0.8 0.5,2.2 -0.7,1.7 -1.2,0.6 0.3,3.4 1.5,-0.3 z m -9.3,4.8 0.3,1.3 -4.6,3.9 4.3,-5.2 z",MX:"m 170.23,178.09 -0.5,0.6 0,-0.3 0.1,-0.3 z m -38.2,-2.3 0.3,0.1 0.6,0.8 -0.5,-0.4 z m -10.1,-5.6 0.3,0 0.2,0.3 0,0.1 z m -0.4,-1 -0.1,0.4 -0.1,0 0.1,-0.4 z m -5.8,-6.3 -0.1,0.1 -0.2,-0.2 0.3,-0.5 z m -5.8,-1.7 -0.1,0 -0.1,-0.5 0.2,0.2 z m 10.9,0.4 0.2,-1 0.5,0.4 -0.3,0.5 z m -1.8,-1.7 0.6,0.5 0.1,0.6 -0.9,-0.8 z m 23.5,-0.1 -0.1,0.2 0.4,0 1.5,2.5 1.5,2.5 0.4,0.5 0.2,0.5 1.8,1 2.1,0.2 -1,3 -0.4,4 1.4,3.7 2.5,3.8 2.6,1.2 5,-1 1.8,-1 1.1,-3.7 4.2,-1.2 2.7,0.7 -1.3,2.1 -0.8,3.9 -0.9,-0.5 -1.1,1.2 -0.5,0.1 -3.5,0 -0.9,1.1 2,1.8 -2.6,0.6 -0.9,2.9 -3.2,-3 -1.8,-0.7 -3.3,1.5 -4.2,-1.7 -4.4,-1.4 -1.4,-1.2 -3.3,-0.9 -2.8,-2 -1.4,-2.1 1,-2.1 -1.2,-2.3 -4.8,-5.3 -2.2,-1.1 0,-1.9 -2.1,-1.3 -3,-3.4 -1.9,-3.8 0.1,-0.7 -2.9,-1.3 -0.2,3.3 2,1.9 6,9 -0.2,1.3 1.6,0.2 0.6,1.9 -0.8,0.7 -0.8,-1.4 -3.5,-2.6 -0.2,-2.4 -2.6,-1.4 -2.8,-2.3 1.7,-0.2 0.2,-1.1 -3.1,-2.7 -0.7,-2.2 -2.1,-3.6 4.6,-0.4 -0.2,0.5 7.2,2.4 5.5,0 0,-0.9 3.2,0 3.2,2.6 0.7,1.8 2.6,1.4 1.6,-1.9 z m 7,8.5 -0.4,1 0.2,0.8 0.5,-1.8 z",ES:"m 306.83,163.39 -2,-0.6 -1.3,0.1 1.9,-1 z m 23.8,-15.8 0.1,0.1 -0.1,0 0,-0.1 z m -4.7,-1.3 0.2,0.1 0,0.1 -0.1,-0.1 z m 0.1,-0.5 -1.5,-0.3 -0.7,-1.5 -1.7,-0.5 0.8,-4 0.1,-4.5 1.4,-1.3 -0.7,-0.8 -4.2,-0.1 -0.9,-2.7 2.5,-1.4 1.3,0.4 7,0.1 3.4,0.3 3.4,1.7 2.8,0.2 0.2,0.4 0.3,-0.2 0.5,0.1 0,0 0,-0.1 0.1,0.1 0,0 1,0.3 1.3,-0.2 0.1,1 -2.3,1.6 -2,0.5 -2.5,3.5 1,1.6 -1.4,1 -0.4,1.6 -1.8,0.6 -0.8,1.2 -4.5,0.2 -1.7,1.2 z",BU:"m 183.13,187.49 0,0 0,0 0,0 z",MV:"m 476.83,206.89 0.5,0.7 -0.6,0 0.2,-0.4 z",SP:"m 558.13,197.09 0,0 -0.1,0 0.1,0 z",GB:"m 330.13,90.09 0.1,0.2 -0.2,0.1 -0.3,-0.3 z m 0.2,-0.8 0,0.5 0.3,0.1 -0.8,-0.1 z m 0.5,-0.2 -0.4,-0.2 0.8,0.3 -0.2,0.2 z m 3.5,-3.1 -0.5,1.4 -0.1,-1 -0.6,-0.3 z m 0.2,-0.9 0.3,0.1 -0.8,0.2 0.2,-0.5 z m 0.3,-0.4 -0.1,0.3 -0.3,0 0.1,-0.4 z m -154.3,95.9 0.1,-0.1 0.4,0.1 -0.3,0.1 z m 18.7,-4.9 -0.4,0 -0.1,-0.2 0.3,0.1 z m -1,-0.2 -0.1,0.2 -0.3,0 0.3,-0.1 z m 124.5,-81.9 0,-1.5 1.6,-0.9 -0.2,1.3 z m -100.7,234.1 1.4,-2.7 2,0.4 0.3,0.8 z m 179.2,-179.3 -0.1,0 -0.1,0 -0.1,-0.1 0,0 0.1,0.1 -0.2,0 0,-0.1 0,0 0,-0.1 0.1,0 0.3,0 0,0 -0.2,0 z m -0.3,-0.1 0,0 0,0 z m -74.8,-2.5 -0.1,0.1 0,-0.1 z m 73.4,3.3 -0.2,0 -0.3,0 0.1,-0.1 z m -77.1,-48.5 1.8,-0.6 1.5,1.7 -1.4,1.4 -2,0 -1.7,-0.9 z m 2.3,-6.2 2,-3.6 3.8,0 -2,2 1.1,0.6 3,0.1 0.3,0.6 -2.7,3.8 3,1.3 0.8,2.5 2.1,1.4 0.8,2.7 -0.6,0.5 3.2,0.3 -0.2,1.8 -1.7,1.5 1.3,0.9 -2.1,1 -7.1,0.3 -3.8,1 2.4,-2.5 2.1,0 -2.5,-1.5 -1.8,-0.2 2.1,-1 0.1,-2.5 1.9,-0.4 0.6,-2.1 -1.5,-0.9 0.5,-0.9 -2,-0.1 0.1,1.3 -1.4,-1.1 0.9,-1.8 -2,-2.4 -1.7,-0.7 1.5,-0.4 -1.9,-1.8 z",GR:"m 386.63,147.99 -3,0.5 -2.3,-0.8 1.3,-0.6 z m 2.5,-2.3 1.2,-0.6 -0.3,0.8 -0.5,0.5 z m -0.8,-0.9 -0.4,-0.2 0.4,-0.4 -0.1,0.3 z m -0.5,-1 0.2,0.1 -0.2,0.2 0.1,-0.2 z m -3.3,0.2 0.7,-0.5 0.1,0.4 -0.4,0.8 z m 2.2,-1.4 -0.5,0.2 -0.2,-0.1 0.2,-0.1 z m 1.2,-0.3 0.2,0.1 -0.5,0.1 -0.4,-0.2 z m -1.7,-1.8 0.2,0.6 -0.4,-0.1 -0.2,-0.5 z m -1.2,-3.3 -0.4,0.1 0.4,-1.1 0.4,0 z m -8.5,-1.5 0.2,-0.1 -0.2,0.1 -0.1,-0.1 0,-0.1 0.1,-0.1 0.2,0 1.5,-0.6 2,-0.5 3,-0.6 1.4,0.8 2.1,-1.1 0.6,0.7 -1.2,1.5 -1.9,-0.6 -2.5,0.8 1.3,1.1 -3.4,-0.7 -0.1,1 5.4,5.8 -2.8,-1.9 0.3,1.3 -1.7,-0.6 -0.9,0.9 0.9,2.5 -2.5,-0.6 -1,-3.3 -2.6,-3.3 0.7,-0.3 z m 10.4,3.3 0.3,0.4 -0.3,0.2 -1.2,-0.5 1.1,-0.3 0,0 z",AS:"m 9.63,245.09 -0.1,0 -0.1,0.2 -0.2,-0.1 z",DK:"m 357.83,100.89 1,0.8 -0.6,0 -0.8,-0.3 z m -1.7,0.1 0.3,0.1 -0.2,0.1 -0.4,-0.4 z m 4.2,-0.3 -0.7,0.4 0,-0.3 0.3,-0.1 z m -5.3,-0.2 0.5,0.4 -0.1,0.2 -0.4,-0.1 z m 2,0.4 -0.2,0.5 -0.2,-0.2 0.7,-0.9 z m 3.4,-2 -1.2,2.7 -1.7,-2.6 2.2,-1.3 z m -6.1,2.4 -1.1,-0.3 -0.3,0 -1.1,-4.4 3.2,-1.5 1.6,-1.8 -0.7,2.3 1.4,1.3 -0.9,0.9 0.6,2.3 -2.4,-0.5 z",GL:"m 234.93,60.89 0.2,0.2 -0.5,0.1 -0.2,-0.2 z m 1.5,-0.8 -1.8,0.4 0.2,-0.2 0.7,-0.2 z m -4.8,-5.7 -0.5,0 -0.2,-0.4 0.5,0.1 z m 2.2,-2.3 -0.9,-0.3 0.7,-0.7 0.5,0.7 z m -2.9,-4.6 -0.9,0.6 -0.2,-0.3 1.1,-0.5 z m -1.2,-1.6 -0.4,0.4 -0.7,-0.2 0.5,-0.2 z m 1.3,-0.1 -1.1,0.9 -0.1,-0.8 0.7,-0.2 z m -1.8,-2.8 0.9,0.5 -0.3,0 -1,-0.5 z m -0.7,-1.2 0.6,0.1 -1.2,0.1 0,-0.4 z m -0.4,-2.3 -1.1,0 -0.9,0 1.6,-0.3 z m -25.1,-8 -0.8,0 0.1,-0.2 0.8,-0.1 z m -5,-3.6 1.6,0.3 -0.6,0.2 -1.6,-0.3 z m 2.5,-0.2 1.3,0.4 -1.6,0 -0.4,-0.3 z m 102.6,-10.6 -2.2,1.3 -1.8,-0.7 3.2,-1.1 z m -94.9,-3 0.6,0.2 -0.4,0.1 -0.2,-0.1 z m 30,-6 -1.7,-0.1 -2.1,-0.5 0.8,-1 z m -4.8,50.1 0.6,-0.6 -3,-0.9 0.3,-1.7 3,0 2.4,1.4 -0.3,1.1 z m 1.4,12.1 -0.3,0 0,-0.2 0,-0.1 -0.2,-0.1 -0.7,-2.6 2.6,-1.4 -3.2,-0.5 1.5,-3.6 3.8,-1.2 0.7,-3.9 -1.2,-0.9 -4.6,-1.4 -1.4,-1.2 4.1,0.1 3.4,1.3 -1.5,-2.1 -2,-1.1 -0.3,0.2 -0.9,-0.1 0.3,-0.6 0.2,0 -0.3,-0.2 2.3,-0.6 -1.9,-0.2 -0.8,0.5 -0.5,-0.5 0.8,0 0.2,0 -2.2,-0.2 0.3,1 -2.6,0.2 -1.2,-1.1 0.6,-0.6 -0.3,-0.2 0.4,-0.1 0.1,0.1 1.2,-1.2 0.5,-2.1 -1,-0.4 0.1,-0.1 -0.8,-0.3 -0.1,0 -0.2,-0.1 0.8,-1.2 -1.5,-0.9 0.7,-0.9 -1.4,-0.7 0.5,-1.1 -1.8,-2.2 -2.1,-0.5 -0.9,-1.2 0.4,-1.4 -4.7,-1.7 -5,-0.8 -1,0.9 -4.2,-0.5 -0.5,1.3 -3.7,-0.5 -2.4,-1.3 3.2,-1.2 -4.6,-0.4 -1.8,-0.8 0.8,-0.8 4.9,-0.8 3,0.1 1,-1 -5.7,0.6 -0.5,-0.9 -3.5,-0.4 -3,-1.6 0.6,-1.5 6.2,-1.2 2.5,-1.2 4,-0.1 2.1,-1.7 -0.4,-2.3 -3.8,-0.1 -0.8,-1.3 4.5,-1.9 0.6,-1 3.5,-1 2.7,0.7 1.5,-2 -1.3,-1.1 5.5,-1.7 7.9,-1.2 1.7,1.2 -0.4,2.6 1.6,-2.3 3,0.7 3.7,-0.2 -2.2,-1 -1,-1.7 4,0.3 5.8,1.9 1.6,1.2 1.8,-0.3 -1.4,-0.9 0.4,-0.3 -4.1,-1.2 -2.8,-2 1.3,0.7 2.6,-0.2 3.6,1.3 -0.6,1.4 2,-1.4 -3.9,-1.8 9.1,0.1 -8.9,-0.5 -2.3,-0.5 1.5,-0.6 1.8,0.5 0.9,-0.9 4.8,-0.3 4.4,0.2 1.9,0.1 0.3,-1.2 3.7,-0.5 8.2,-0.5 3.5,0.2 9.6,1.4 -0.8,0.5 -9,0.3 -8,1.1 5.9,-0.4 3.4,-0.6 5.2,0.3 4.1,-0.5 1.4,1.3 3.5,0.4 2.5,0.9 -2.1,1.3 -14.2,1 -5.6,1.3 2.1,0.1 7.5,-1.1 6,0.4 -0.1,0.9 -3.1,0.8 -0.1,0.9 5,-1.5 1.1,-1.3 3.4,-0.3 0.3,2.6 -3.6,2.7 2.2,-0.4 6.4,-3.7 3,1.2 2.4,-1.2 3.6,0.1 3.6,0.8 1.3,0.8 -3.8,2 -2.3,0.1 0.5,1 -2.1,0.6 -3.2,-0.1 2.4,1.2 -1.2,0.8 -4.5,0.5 -3,0.9 2.2,0.8 -0.7,1.4 1.2,1 -1.8,0.6 0.9,1.3 -2,-0.6 -1.6,2.5 -0.2,1.6 4.2,-0.2 -0.3,0.8 2.9,0.4 -2.9,0.4 -2.8,-0.5 0.7,1.1 4.1,0.7 -0.8,2.8 0.4,2.3 -1.1,-2.1 0.7,-1.2 -3.4,-0.7 -2.3,1.2 0,1.6 3.4,-0.1 1.1,3.4 3.9,1.4 -2.1,0.2 -1.8,2.7 -3.6,0.7 1.3,2.4 -1.9,-0.1 -1.4,0.8 -3.3,-1.2 -4.1,1.3 1.1,0.3 -0.2,-0.1 2.3,-0.9 2.4,1.3 2.5,0.6 0.1,0.8 -2,-0.3 1.8,1 -1.3,0.1 0.9,1.2 -4.2,-1.7 -0.2,-0.8 1.5,0 -1.6,-0.3 -1.2,-0.5 -1,0.5 2.2,1.8 3.9,1.8 -1.1,0.7 2.4,1.6 0.7,2.5 -3.6,0.4 -1.8,-2.3 -3,-1.7 0.5,1.4 -4.5,1 -0.6,1.8 1.8,-0.2 -1.5,0 0.8,-1.1 4.5,-1.1 0,1.4 -1.7,0.7 -1.2,0 -2,1.3 1.1,0.3 3.8,-1.4 3.4,1 2.2,0 -1.6,1.6 -1.7,0.4 -4.1,2.8 -3.4,0.5 -2.6,1.2 -5,0.5 -2.6,1.6 0.2,0.8 -2.7,3 -3.3,1.7 -2.8,0.8 -0.3,-2.1 -1,1.8 -3.1,0.7 1.3,0.4 -1.5,1 -1.1,2 0.6,2 -3.1,3.4 -0.9,5 -1.6,1.2 0.4,1.5 -2.1,0.2 -2,-0.9 -0.2,-1.3 -4.7,-0.6 -2.1,-1.6 -0.5,-2.2 -1.9,-1 0.3,-1.4 -2.4,-1.6 0.2,-2.8 -1.5,0.8 0.1,-2.6 z",GU:"m 613.53,191.99 -0.2,0.4 -0.1,-0.3 0.5,-0.5 z",MP:"m 615.13,188.99 0.1,-0.4 0.3,-0.1 -0.2,0.3 z",PR:"m 211.33,182.59 -1.8,0.7 -1.7,0 0,-1.2 z",VI:"m 212.33,183.59 0.4,0 -0.7,0.2 0.1,-0.2 z",CA:"m 175.63,27.69 -3.1,-0.2 0.9,-2.2 -2.3,-0.5 -2.3,0.3 0,-1.4 1.7,-1.5 2.6,-0.5 3.9,0.5 2.7,-0.3 -4.8,-0.3 -1.4,-2.9 -2.7,-0.6 0,-2.5 5.1,0.3 3.1,1.7 0.9,1.2 0.4,-1.6 -3.3,-1.5 9.9,-1.3 -3.7,-0.1 6.4,-1.3 -5.8,0.4 -6.3,1.3 -1.8,-1 -1,1.1 -4.5,-0.4 1.2,-1.8 -2.2,1.7 -4.1,-1.2 5.2,-0.5 0.3,-0.6 -6.3,0.5 -1,-0.7 3.7,-1.9 -4,1 1.8,-1.2 -4.6,0 1.8,-1 5.7,-1.2 6.3,0.6 -3.8,-0.7 2.7,-0.7 -0.8,-0.9 5.3,0.8 5.7,1.6 -5.2,-2 1.2,-1.4 2.9,0.6 -1.9,-1.1 3.2,0.1 -0.5,-0.8 5.8,0.3 1.9,-0.9 3.7,0.3 0.7,0.6 1.7,-1 6.3,-0.2 0.1,0.6 6.2,0.5 -4.3,1.2 2.3,-0.1 5.2,-1.2 3.4,1.9 2.6,0.1 0.5,1.4 -5.9,2.2 -1.9,-0.2 -2.4,1.2 -6.6,1.6 10.6,-1.8 -7.2,3.6 -4.5,2.7 -1.6,1.8 -3.6,-0.2 0.4,1.1 -5.3,0.8 -2.8,-0.5 0.1,0.8 5.5,0.2 0,0.8 -3.2,-0.4 -3.4,0.3 4.1,0.3 2.2,0.9 -0.3,0.8 -3.3,0.2 2.7,0.7 -0.9,1.1 -3.9,1.2 -1.3,1.8 -4.8,0.2 3.4,1 -0.7,0.7 2.8,-0.2 0.3,1.2 -2.9,1.4 0.8,1.8 -1.7,-0.1 0.8,-1.6 -3.3,0.7 0.5,-1.2 -6,-0.2 -0.9,0.6 -5.8,-0.5 -5.1,-0.2 -0.9,-0.9 4.3,-1.7 1.2,-0.9 -1,-1.8 1.9,-0.4 2.4,0.8 0.3,1.1 z m 0,0 0,0 0,0 0,0 0,0 0,0 1,-0.1 1.2,-2.1 -2.2,2.2 0,0 0,0 0,0 z m 9.3,102.5 0,0.2 0.3,0.2 -4.7,0.7 -2.4,1.4 -0.9,-0.7 1.2,0 -0.4,-0.5 0.3,-0.2 0.2,-0.9 1.3,-0.8 0.8,-4.4 2.3,1.8 0.7,-0.7 -1.9,-2.7 -6.5,-1 0,-0.5 -0.7,0.2 -0.7,-3.5 -1.9,-0.2 -1.1,-1.9 -3.1,-0.6 -2.9,2.5 -3.6,-0.1 -2.3,-1.2 -4.8,-1.2 -52.8,0 -0.4,-0.2 -0.2,0.2 -0.1,0 -0.4,-0.9 -2.7,-1.5 0.2,-0.7 -0.4,-0.1 0,0.1 0.3,0.2 -0.3,0.1 -0.2,-0.4 -0.5,-0.1 0,-0.1 -0.2,-0.2 -0.1,0.2 -0.6,-0.1 -0.1,0 -0.6,-0.1 0.5,0.1 0,0 -0.3,0 0.3,0.1 0.1,0 0.4,0.1 0.4,0.4 -0.1,0.1 0.3,0.3 0,0 1.2,1.6 2,1.6 -0.1,-0.5 0.5,0.3 0.5,0 -0.8,0.2 0.3,0.3 -0.5,0.7 -2.1,-0.6 -3.7,-2.1 -0.1,-0.5 0.1,-0.1 -0.3,-0.5 0,0 -0.1,-0.2 -1.9,-0.4 -1.2,-1.7 1,-0.3 2.6,0.8 0.1,-0.1 -0.2,-0.1 0.6,0 0.2,-0.2 -0.2,-0.2 -0.6,0.4 -2.3,-1.3 -0.3,-2.3 -0.3,0.8 -0.3,-0.3 0.2,-0.4 0.4,-0.1 0,0 0,-0.1 0.1,-0.2 -0.2,0.1 0,-0.1 0.2,0 -0.1,-0.3 -0.1,0.1 -0.2,-1.3 -1,-0.9 -0.5,1.2 -0.6,-0.9 0.1,-0.3 -0.3,0 0,-0.3 0.3,-0.2 0,0.4 0.1,-0.4 0.7,0.3 -0.2,-0.2 0.4,-2 -0.8,1 0.4,-0.1 -0.1,0.3 -0.4,0.2 -0.1,-0.2 -0.3,0.5 -2.2,-2.4 0.9,-1.9 0,-0.7 -0.1,-1.7 -3.4,-1.8 -3,-5 -3,-2.5 -1,-1.5 -1.7,0.6 -2,2 -0.4,-1 -3,-2.4 -3.5,-0.6 0,-29.2 3.6,0.5 3.6,1.9 2.6,0.1 0.1,-1.3 3.9,-0.7 1.1,0.3 5.4,-2.6 1.7,0.5 -4.7,1.7 -1.7,1.6 3.1,-1.8 0.6,1.1 1.1,-1.4 6.2,-2 0.9,1.8 2.3,1.4 1.8,-2.7 0.2,2.6 2.4,-0.5 0.4,-1.2 2.9,0.3 2.2,1.2 4.3,1.3 3.9,0.7 0.1,-0.6 3.4,1.5 0.2,1 -1.7,-0.1 -1.1,1.1 3.2,0.8 4.4,-0.1 2.3,-0.8 2.3,0.7 0.6,1.3 1.6,0.3 0.8,2.4 0.7,-1.9 -1.5,-1.9 4.5,-3.1 -3.8,1.6 -2.3,-0.4 1.1,-1.1 4.7,-0.9 0.9,1.8 1.6,1 2.2,0.1 3.5,1.1 1.6,-0.6 4.5,0.2 1.5,0.7 -2.2,-2.6 2.8,-0.3 0.8,1.4 1.8,-0.9 -1.1,2.7 2.2,1.9 -0.3,-3.8 1.2,0.1 2.4,-2.7 -2,0.3 0.6,-2.3 -3.6,-1.4 -0.7,-1.7 0.2,-3.3 2.4,-2.3 1.1,-0.2 -1,0.1 0,-1.8 -1.1,-1.2 0,-3.1 0.9,-1.4 3,-0.6 2.7,0.7 4,0.3 -3.2,3.9 -1,0.5 -3.4,-0.2 1.3,1.1 -1.2,1.6 -0.8,0.1 2.5,1.9 0.3,2.1 2.9,2.5 -2.5,1.5 2,0.7 2.6,2.1 0.3,2.1 1.2,-2.7 1.4,-0.6 1.9,1.7 -0.9,1.5 1.7,3.8 3.1,-3.1 0.5,-2.2 1.8,-1 -1.5,-0.8 0,-1.7 2.2,-0.3 0.9,0.2 0,-0.1 0.6,0.1 -0.1,0.1 1.9,0.4 2.4,1.5 -0.9,1 1.1,0.9 -2.7,0.6 2.7,3.3 -0.5,1.5 -3.5,2.1 -2,-2 1.3,2.5 -3,-0.3 -0.4,-0.9 -2.5,0.4 1.8,0.9 -2.9,2.6 -1.1,0 -3.3,-1.9 1.2,1.9 3.8,0.3 -1.8,3.2 -2,0.8 -1.8,-0.7 -0.4,1.6 -1.5,0.2 0,0.1 0.6,0.2 -0.1,0.1 -0.1,-0.2 -0.4,-0.1 0.6,1.5 -3.9,1.7 -3.2,4.8 -0.9,2.6 0.8,3.5 2.4,-0.1 1.4,3.6 -0.5,1.4 3.2,-0.9 4.1,1.1 2.5,2.2 5.7,2.2 4.4,0.5 0.3,3.3 -0.3,2.2 4.9,4.7 2.4,-3.1 -0.9,-1.8 -0.3,-2.9 -1.2,-1.3 3.8,-1.7 2.1,-2 0.3,-2.1 -1.1,-3.2 -2.8,-1.8 2.4,-3.4 -1.7,-3 1.2,-1.8 -1.2,-2.4 1.3,-0.9 5.2,1.3 2.1,-1 3.8,2.4 -0.2,0.9 4.6,1.7 -0.8,0.7 0.7,4.7 1.3,-0.1 2.1,2.3 3.6,-2.1 0.5,-2.5 1.3,-1.8 0.9,0.4 0.4,1.4 0.2,-0.4 0.2,0.3 -0.3,0.2 -0.1,-0.1 0.2,1 1.3,0.3 0.9,1.9 3,4.2 -1.1,1.3 4.1,4 4.8,1.7 -1.4,0.7 1.7,1.3 2.5,0.7 0.4,3.2 -2.6,2 -3.1,0.6 -2.4,2.2 -3.6,0.6 -1.2,-0.5 -7.8,0 -1.8,2.4 -3.2,1.4 -1.7,2.4 -2.7,2.5 -3.2,1.3 -3.3,2.9 -1,0.3 -1,0.9 -6.1,1.4 -1.6,1.3 1.4,0.1 0,0.2 z m -90.5,-17.9 0,0 0,0 z m 5.8,2.8 -0.1,-0.3 -0.2,0.1 0,0.1 z m -7.8,-7.2 0.3,-0.4 -1,0.4 -0.3,0.8 z m 57.5,-44.6 -0.4,0.1 0.1,0.3 0.3,-0.2 z m -54.8,52.4 0.3,0.1 0,-0.2 -0.1,-0.1 z m -0.2,-0.3 -0.1,-0.2 -0.2,0 0,0.2 z m 117.6,-39.5 0,2.5 -1.1,0.4 -2.5,-0.6 -1.9,-1.4 -0.2,1.1 3.2,2.7 -0.6,1 -4.4,-1.2 -2,-1.2 -4,-1.6 0.3,-1.2 -2.1,-0.8 -1.6,-2.4 -2.3,0.8 -2.2,-0.8 -1.7,1.3 -2.2,-0.5 -0.5,-1.8 1.3,-1.6 3.2,0.8 3,-1 1.4,0.2 -1.9,-2.2 2.9,-1.9 1.5,-1.7 -1.6,-3.2 -1.6,-0.3 -3.1,-2.3 -2.2,1.2 0,-1.2 1.9,-0.7 -4,-2 0,-1.2 -2.4,-0.5 0.3,1.5 -5.7,-0.9 -0.7,1.2 -7.9,-1.1 -4.6,-1.2 -1.7,-2.2 4.2,0.5 -1.4,-0.9 -3.3,-0.4 -0.5,-2.1 1,-3.2 1.2,-1.8 2.2,-1.6 2.1,-0.5 3,0.2 -3,3.6 0.5,3 3,2.6 -1.2,-3.6 1.9,0.6 -2.3,-1.9 1,-2.2 4.5,-1.9 2.5,0.1 2.4,3.6 -1.1,2.8 2,-1.9 1.7,1.7 0.9,-2 1.6,-0.6 4.6,0.9 -0.2,1.3 2,0.2 0,1.2 2.3,1.7 1.1,-1.4 2.6,1.4 -1.8,0.6 -0.1,0.4 0.6,-0.3 0.6,0.4 1.3,-0.6 -0.8,1.9 2.5,-1.1 3,1.1 2.4,2.9 -1.4,0.2 0.2,0.1 -0.4,0.3 0.4,0.1 0.4,-0.3 0.4,0.2 -0.5,0.2 0.7,0.1 0.8,1.1 -1.8,0.4 -0.7,0.8 -0.2,0 -0.4,-0.1 0.5,0.2 -0.4,0.5 2.8,0.6 0.6,0.8 0.2,-0.2 0.4,0 0,0.3 -0.6,-0.1 0.6,0.8 2.5,-0.4 2,2.5 0.2,0 0.4,-0.1 0.5,0.1 -0.1,0 0.8,0.1 -0.7,1.2 2.6,-0.4 1,2.1 -2.1,0.5 -0.1,1.7 -2,0.7 0.2,1.7 -1.9,-0.6 -4.4,-4.5 -2,0.2 1.5,1.5 -1.6,1.4 4.5,2.5 -0.2,0.8 2,1.6 0,0.2 0,0 0.1,0.4 0.3,0.3 z m -14.4,-23.2 -0.1,0.3 0.6,-0.2 -0.3,0.1 z m 8,4.1 -1.4,0.1 0.8,0.2 z m -5.8,64.5 -0.2,0 0.5,-0.4 0,0.2 z m -100.9,-5.5 0.3,0.4 0.4,0.2 -0.3,-0.1 z m 114.1,-2 4.3,1.4 -0.7,0.7 -2.6,-0.8 z m -116.5,-0.2 -0.2,-0.3 0.2,-0.1 0.2,0.3 z m -5.6,-3.7 -0.4,0 -0.1,-0.4 0.3,-0.2 z m 93.5,-1.6 -0.5,0.3 -0.6,0.2 0,-0.3 z m -99.5,0 -0.1,0.1 -0.1,0.2 0,-0.4 z m 5.4,0.2 -0.2,-0.2 0.2,-0.2 0.1,0 z m -0.1,-0.5 -0.1,0.2 -0.4,0 0.2,-0.2 z m -0.8,-0.7 0.1,0.4 -0.1,0.2 -0.2,-0.5 z m 0.3,-0.3 0.1,0.3 -0.1,0.2 -0.4,-0.4 z m -6,-0.3 0.4,0 0,0.2 -0.3,0.1 z m 6.3,0.9 -0.2,-0.6 0.2,-0.5 0.2,0.8 z m -1.8,-1.1 0.7,0.5 0,0.3 -0.3,-0.2 z m 2,0.5 0,-0.2 -0.1,-0.2 0.3,0 z m -2.5,-1.2 0.1,0.3 -0.2,0 -0.2,-0.4 z m 0.3,-0.2 0.2,0.4 -0.2,0 -0.2,-0.5 z m 91.9,-0.2 0.6,0.1 0.8,1.3 -2.6,-0.9 z m 3,0.2 0.1,0.1 -0.3,0.1 0.1,-0.3 z m -94,-0.5 -0.3,0.1 -0.1,-0.1 0.3,-0.5 z m -3.1,-0.3 0.1,-0.5 1.2,0.7 -0.1,0.6 z m 0.9,-0.4 -0.5,0 -0.1,-0.2 0.4,-0.2 z m 0.6,-0.1 0.9,0.8 -0.5,0.3 -1.4,-1.6 z m -1.7,-1.2 0.6,0.1 0.2,0.3 -0.7,0.4 z m -0.8,-1.3 0.7,0 0.1,0.6 -0.6,-0.2 z m 99.2,-0.8 -0.6,0.2 -0.1,-0.1 1.2,-0.2 z m -98,0.4 0,-0.1 0.5,-0.6 -0.1,0.5 z m 98.6,-3.5 0.4,-1 0.2,0 -0.1,0.7 z m -1.2,-1.5 0,0.5 -0.7,0.6 0.6,-0.6 z m -0.5,-0.7 -0.2,0.1 0.2,-0.3 0.2,0.3 z m 23.6,-3.9 -0.3,-0.1 0.1,-0.2 0.1,0 z m -2.9,-2 -0.6,0.1 0,-0.5 0.5,0 z m -21.7,-1.9 0.3,-0.2 0.1,0.2 -0.2,0.1 z m 0.7,-0.6 0.2,0.1 -0.2,0.2 -0.3,0.1 z m 29.3,-2 0.5,0.8 -0.5,-0.2 -0.2,-0.3 z m -6.5,0 0.5,0.3 -0.3,0.5 -0.8,0 z m -19.4,-0.8 -0.2,0.2 -0.7,0.2 0.2,-0.2 z m 25.7,-2.3 -0.1,0.9 -1.2,-0.8 0.8,-0.3 z m -1.9,-0.6 0.2,0.3 -0.5,-0.2 0.3,-0.2 z m -51.8,-0.3 -0.4,0.3 -0.3,-0.2 0.4,0 z m 53.2,0 0.5,0.5 -0.7,0 -0.2,-0.3 z m -27.5,-1.3 0.2,1.2 -0.8,1.2 -0.9,-1.7 z m -24.8,0 0.1,-0.1 0.4,0 -0.2,0.2 z m 53,-0.5 0.6,0 -0.4,0.5 -0.6,-0.1 z m -25.1,0 -0.5,-0.1 0.9,0 -0.3,0.1 z m 24.8,0 -0.5,0 0.2,-0.1 0.2,-0.1 z m -18.4,-0.5 0.8,0.1 0.2,0.2 -0.8,-0.1 z m 7,-0.4 1.2,0.8 -1.1,0.1 -0.9,-1 z m -21.6,-0.4 0.3,0.9 -2.3,1.5 -1.5,-0.9 1.2,-1.3 z m 29.3,0.1 0,0.1 -0.5,-0.5 0.2,0.1 z m -22.3,-1.6 1.4,0.1 0.3,0.8 -0.7,0.3 z m 27.3,-0.4 -0.2,0.4 0,0.5 -0.4,-0.9 z m -24.8,-0.2 1.1,0.6 -0.8,0.2 -0.9,-0.5 z m 24.7,-0.3 -0.2,0 0,-0.2 0.3,0.1 z m -25.5,-0.7 -0.4,0.2 -0.4,-0.1 0,-0.1 z m 24.1,-0.6 -0.1,0 -0.1,-0.4 0.3,0.2 z m -16.4,-0.9 -0.1,0.6 -0.1,-0.1 -0.1,-0.6 z m 15.8,-0.7 0.1,0.3 -0.8,0.4 0.4,-0.6 z m 5.4,-3.2 0.4,0 0.2,0.3 -0.6,-0.1 z m -39.9,-0.3 -0.4,0.1 -0.1,-0.2 0.4,0 z m -3.4,-0.7 0.6,0.6 0.1,1 -0.8,-0.7 z m 1.4,-0.2 1.1,0.5 0.7,1.1 -1.4,-0.5 z m 2.3,-0.6 0.4,0.1 -0.1,0.3 -0.6,-0.3 z m 39.7,-2.8 0.1,0 -0.9,0.5 0.3,-0.5 z m -86.1,0.3 -0.3,0 -0.2,-0.3 0.1,-0.1 z m -1,-1 -0.1,0.3 -0.3,-0.4 0.4,-0.2 z m -1,-0.5 0.2,0 -0.1,0.3 -0.3,-0.3 z m 85.4,0.1 -0.4,0 0.1,-0.4 0.3,0.3 z m -84.5,-0.1 -0.4,0 0.1,-0.4 0.2,0 z m -10.1,-1.2 -0.4,0 0.9,-0.1 0,0.1 z m 9.9,0.1 -0.4,0 0.1,-0.2 0.2,-0.1 z m -2.1,-0.3 0.5,0.1 -0.1,0.2 -0.4,-0.2 z m -0.4,-0.2 0.1,0.2 -0.3,-0.2 0,-0.2 z m -1,-0.4 0.5,-0.2 -0.6,0.4 -0.6,0.2 z m 68.2,0.3 1.6,0.3 0,0.7 -1.9,-0.1 z m -23.2,0.4 -0.4,0.7 -0.7,-0.6 0.4,-1.3 z m -48.4,-0.9 -0.2,0 0.1,-0.3 0.3,0 z m 69,-0.3 0.9,0.2 0.2,2.3 -1.6,1 -2.1,0 -0.7,-1.5 1.2,-1.8 z m -6.5,0.4 -0.3,-0.1 0,-0.4 0.7,0.2 z m -5.9,-0.6 0.2,0.1 -0.2,0.1 -0.3,-0.2 z m 15.2,0.4 -0.5,-0.6 0.3,0 0.3,0.3 z m -70.1,-1.1 0,0.1 0.1,0.2 -0.7,0 z m 11.9,0.6 -1,-0.5 0.8,-0.1 0.4,0.2 z m 49.7,-0.8 -0.1,0.5 -0.6,0 0.5,-0.4 z m 7.8,0.3 -0.5,0 -0.2,-0.3 0.2,-0.1 z m -0.7,0 0.1,0.7 -1.1,-0.6 0.3,-0.7 z m -51.5,-0.8 -0.1,0.7 -1,-0.4 0.6,-0.4 z m 3.1,-0.4 -0.5,0.6 -0.4,-0.1 0,-0.8 z m 0.3,-0.1 -0.4,-0.2 0.2,-0.5 0.2,0.2 z m -69,-0.6 0.1,0.1 -0.4,-0.1 0,-0.2 z m 65.8,0.1 0.1,-0.5 0.2,0.1 -0.1,0.3 z m 21.3,-0.9 0.2,0.4 -0.3,0.1 -0.1,-0.5 z m 23.2,-0.1 0,0.5 -0.8,1.1 -1.1,-0.1 z m -109.4,-0.7 0.3,-0.2 -0.3,0.7 -0.5,-0.2 z m 103.1,0.5 0.4,0.1 0.1,0.2 -0.8,-0.2 z m -16.2,0.2 -0.3,0.5 -0.3,-0.3 0.3,-0.3 z m 25.2,-0.1 0.7,0.1 -0.9,0.9 -0.5,-0.5 z m -46.4,-0.5 0.6,0.3 -0.5,0.3 -0.2,-0.2 z m 8.8,0 1,0 0,0.7 -0.8,-0.4 z m 1.9,-0.2 0.6,0.3 -0.7,0.7 0,-0.8 z m -82.7,0.1 -0.5,0.2 -0.2,-0.2 0.2,-0.2 z m 116.6,-0.3 -1.1,0.7 -0.6,-0.1 1.1,-0.8 z m -3.3,-0.5 0.3,0.7 -2.3,-0.2 1,-0.4 z m -5.4,0.2 -0.1,0.1 -0.5,-0.2 0.3,-0.1 z m -17.8,-0.2 0.1,-0.2 0.5,0.2 -0.1,0.3 z m -10.6,-0.3 -0.2,0 -0.1,-0.1 0.3,0 z m 19.8,-0.7 0.8,0 -0.4,0.5 -1.1,-0.5 z m -47.2,-0.7 -0.9,0.1 -0.3,-0.3 0.8,0.2 z m -9.2,-0.8 0.6,0 -0.9,0.2 -0.3,-0.2 z m -0.8,0 -0.7,0 -0.1,-0.1 0.1,-0.1 z m -21.5,-0.2 -0.3,0 -0.2,0.2 0.3,-0.4 z m 52.5,-0.3 0.4,0 0.5,0.8 -0.8,-0.3 z m 52.7,-2.6 0.7,-0.1 -0.4,0.5 -0.5,-0.2 z m 0.8,-0.4 -0.5,0 0.2,-0.4 0.3,0 z m -61,-6.4 -1.3,1.7 -2.3,-2.1 -0.2,-1.1 2.7,-0.1 z m 0.4,-11.5 0.7,-1.4 2.5,1.4 0.7,1.2 -2.6,0.5 z m 27,-5.3 1.2,1.2 -0.8,0.5 -2.1,-0.8 z m -28.2,0.9 1.1,1.1 -1.5,-0.1 -1.6,-2.3 z m 37.2,91.2 -0.2,0 -0.5,0 0.2,-0.2 z m -4.1,-2.7 0.2,0.2 -0.7,0 0.1,-0.3 z m 10.5,6.8 0.6,0.1 0.2,1.1 -2.7,-0.8 z m -2,0.2 -0.1,0.2 -0.3,-0.1 0.2,-0.2 z m -1.4,-0.8 0.5,0.2 -0.4,0.3 -0.2,-0.3 z m 14.7,5 -0.3,0.1 0.1,-0.2 0.5,0 z m -36.9,-101.2 4.6,0.2 -0.5,1.1 -4.8,-0.1 z m 68.6,96.9 -2.3,1.3 -1,-1.4 1.8,-2.4 0.3,1.8 z m -4.3,-3 0.1,1.9 -1.1,1.2 -1.3,-1.1 2.2,-0.2 z m -134.6,-14.3 -0.4,-0.5 1.4,-0.3 0.2,1.5 z m -1.3,-3.2 2.6,0.1 -0.7,2.3 -1.6,-0.5 z m 102.4,-5 -0.9,0.4 1.4,-2 0.4,0.6 z m -29,-63.2 2.3,1.8 -0.2,2.4 -2.9,-0.2 -2.9,-1.1 0.8,-1.8 z m -28.2,-10.5 -3.3,-0.2 -3.7,0.4 -0.3,-0.5 5.4,-1.5 1.7,0.7 z m 25.9,-0.7 2,0.6 -0.1,1 -3.8,1.4 -1.7,-1.1 -1.2,-1.9 0.5,-1.4 3.8,0.9 z m 55,101.8 -0.6,-0.2 0.1,-0.8 -0.5,-0.1 -0.3,-0.2 0,-3.2 -2.7,-0.9 -1.5,1.8 -0.5,2 -2.3,2 -6.2,0.1 2.3,-1 0.7,-1.5 5,-2.3 2.9,-3 5.4,-2.4 2.4,0 1.4,0.8 -0.2,1.1 -2.1,1.1 -2.1,-0.3 1.7,1.1 2.2,-0.5 -1.2,1.6 2,2.8 3.1,1 1,-0.6 1.8,1.3 -4,1.5 -1.5,0 -3.3,2.9 -1.2,-1.5 0.4,-1.1 2.2,-1.4 0.6,-1.8 -2.6,1.7 z m -12.4,-1 0.3,-0.2 -0.1,0.4 -0.1,0.2 -0.8,0 0.5,-0.3 -0.2,0.1 0.2,-0.3 0.3,-0.1 z m -96.9,-9.5 -0.8,-0.5 0.6,0.1 0.2,0.4 0,0 z m 7.2,-80.5 -0.7,-1.4 -0.9,1.1 -2.1,-0.1 -0.8,-1.2 2.5,-0.8 5.2,-3.7 4.6,-0.8 1.9,1 -1.6,0.5 0.7,2 -2.3,0.7 -0.7,1.7 -2.2,2.3 -1.5,-0.4 3.3,-2 -0.1,-2.6 -1.5,0.2 -1.1,2.5 z m 127.6,85 1.8,-1 0.5,1.4 -0.6,1.8 -2.4,-0.3 0.8,-1.2 -2.2,0.2 -1.5,1.1 0.1,-2 -6.7,0.3 -0.5,-0.8 1.4,-1.6 3.8,-6.9 2.1,0.9 -2.1,2.3 2.4,0.3 -0.4,1.4 3,-0.9 1.2,1.2 -0.8,1.7 1.6,0.3 z m -60.8,-43.2 -3,0.3 1.8,-1.5 -0.4,-1.6 0.9,-3.7 0.9,-0.5 1.3,2.2 0.4,-0.8 4.3,2.3 1.6,1.6 2.5,1.3 -1.5,1.1 -4.9,-2 -0.2,1 -3.1,2 z m -23.8,-20 2.2,1.3 2,2.1 1.2,0.1 -2.5,1.3 -1.8,-0.3 -4.1,-1.6 2.3,-1.1 z m -11.4,-3 4.7,2.2 1.2,1.1 -2.9,-0.1 -0.8,1.5 1.5,-0.3 0.3,1.4 -2.9,0.9 -5.8,-1.3 -0.1,-1.1 -1.6,1.6 -3.1,1 -8.2,0.9 -0.9,-2.5 -4.4,-0.3 -2.8,-2.4 0.9,-0.4 5.4,-0.7 5.1,0.2 -1.3,-0.8 -3.5,-0.8 -3.9,0.6 -3,-0.2 -1.5,-1.5 4.4,-1.2 0.5,-0.6 -4.5,0.6 0.2,-1 -1.9,0.1 0,-1 1.8,-1.1 -0.9,-0.8 2.4,-1.7 5.3,-1.8 1.2,0.9 0.4,2 1.4,-1.5 3.4,1.1 -0.8,1.5 2,-1.1 1.6,0.4 -1.8,-1.9 1.2,0.1 2.8,1.5 1.7,3.4 0.9,-1 -1,-0.8 -0.6,-2.3 0.2,-2.9 1.6,1.3 1.3,-0.1 2.1,1.6 0.2,1.2 1.8,3.2 -0.5,1.8 z m 49.5,-10.5 3.6,2.1 -0.1,1 -7.1,-0.1 -1.5,-1.6 -0.1,-1.7 z m -35.2,6.4 -3.1,0.9 -1.2,1.4 -3.6,-3.3 -2.3,-0.5 -1.8,-1.8 1.6,-1 1.2,1.4 1.7,-0.1 0.4,-1.4 -2.7,-1.4 1,-0.9 5.6,-1.3 0.8,-1.5 -0.5,2.1 1.5,0.3 0.2,1.7 -2.3,1.3 2.1,0.3 0.8,-0.8 1,2.7 z m -48,-9.7 2.7,1 4,0 2.3,0.7 3,2.3 -7.4,3.1 -1.9,1.7 -0.9,2.4 -4.7,1.4 -1.9,-2.1 -3.5,-1 2,-4 2.1,-2.6 -1.9,-2.2 z m 40.7,-1.8 -0.8,-1.6 1.8,-0.9 -5.4,0.6 -1.4,-1 2.2,-0.9 0.7,-1.9 3.9,2.1 -2.6,-2.5 0.4,-0.7 6.3,1 0.5,4 -1.2,1.8 z m -18.6,-3.4 1.4,-0.8 -2.1,-0.8 3.1,-2.3 0.5,3.3 2.8,0.6 0.9,-0.7 2.1,0.7 0,1.3 3.7,1.5 -2,0.5 -2,-1.2 -0.7,1.1 -4.6,0.6 -0.8,-0.6 -5.4,2.2 -3.9,0.2 -1.4,-1 3.1,-1.1 2,0 1.6,-1 -5.8,0.7 -0.2,-1.2 -1.7,1.6 -4.9,-0.9 3.1,-4.5 1.9,-0.7 0,-1 0.9,0.2 0.9,2.1 1.8,-0.3 3,1.7 0.4,1.2 4.5,0.2 0.1,-0.9 z m 58.7,3.9 -1.5,1 -3.1,0.6 -3.3,-0.4 -7.9,0.4 -2.3,-0.8 -2.1,0.5 -4,-0.9 -0.9,-1.7 0.7,-2.5 -1.9,-2 -1.8,0.4 -3.4,-0.5 -1.9,-2.4 2,-0.3 4,0.6 1.2,1.2 3.1,-0.3 4,2 -1.6,0.5 3.8,2.1 4.2,0 4.4,-1.2 5,0.2 2.8,1.2 0,1.2 -1.5,0.5 z m -59.1,-10.4 -3.6,0.8 -2.1,-0.9 -0.7,-1.2 -1.1,0.5 -1.8,-1.1 1.5,-0.5 2.1,0.8 4.8,-0.9 2,0.6 z m 12.5,-7.8 2.5,1.5 1.5,-0.3 4,2.1 -0.6,0.6 1.6,2.3 -4.2,0.2 0.3,-1.5 -3.3,0 0.1,-0.7 -3.3,0.4 -1.1,-0.9 2.8,0 -1,-2.1 -2.8,-0.1 0.3,-1.4 z m 24.9,-5.3 2.7,0.2 0.5,1.5 1.1,-1.1 1.5,0.1 1.4,2.2 -0.4,1.5 3.1,0 1.2,1.2 -3,1 -4.8,3.8 -5.8,-0.2 -4.3,-3.2 2,-0.9 2.6,0.1 -1.4,-1.3 -2.6,0.9 -3.5,-0.7 -1.8,-3.2 3.6,0.4 -3.3,-1 1,-1.3 1.6,-0.2 -0.6,-0.8 1.3,-1.2 3.2,-0.1 -2.4,-0.8 2.2,-0.5 2.8,1 z m -64.2,100.3 0.2,0.1 -0.1,0.1 -0.1,-0.2 0,0 z",ST:"m 348.93,217.59 -0.3,-0.3 0.4,-0.3 0.2,0.3 z",CV:"m 290.83,188.39 0.5,0.4 0,0.4 -0.5,-0.2 z",DM:"m 218.73,187.89 0.3,0.3 -0.2,0.4 -0.2,-0.5 z",NL:"m 346.93,104.89 -0.7,0.2 0.1,-0.2 0.8,-0.1 z m -131.3,78.2 -0.1,0 0,-0.1 z m 127.1,-72.9 0.8,0 0.9,0 -0.8,0.4 z m 7.4,-4.8 -0.4,2.6 -1.2,1 -0.7,2.7 -1.9,-1.8 -1.5,0.3 -0.8,-0.6 2.4,-3.5 2.6,-1.6 z",JM:"m 188.03,182.19 2.4,1.1 -2,0.4 -2.2,-1.1 z",WS:"m 6.43,243.59 0.1,0.6 -0.5,0 -0.5,-0.6 z",OM:"m 444.03,168.69 -0.1,0.1 0,-0.2 0.3,0 z m -0.4,-1.7 0.6,-0.6 -0.2,1.5 -0.2,-0.1 z m -7.8,14.2 5.7,-2 1.3,-3.9 -0.9,-1.5 1.2,-4.4 1.1,-0.2 1.5,2.1 3.1,0.8 2,2.7 -4.1,5 0.3,1.3 -2.2,0.9 -0.6,1.3 -1.8,0.2 -0.8,1.6 -3.7,0.7 -0.7,-1.3 z",VC:"m 219.13,192.79 -0.1,-0.3 0.2,-0.3 0,0.3 z",TR:"m 386.03,136.89 -0.4,0.2 -0.2,-0.1 0.5,-0.3 z m 3.9,-4.1 2.1,1.7 -3,0.6 -0.7,0.8 -2.2,-0.3 1.2,-1.5 -0.6,-0.7 1.4,-0.8 z m 32.2,5.3 -1.6,0.6 0.5,3.1 1,1.8 -3.9,-0.4 -0.7,0.5 -0.3,-0.5 -4.7,1.3 -2.9,-0.3 -3.1,0.1 -1.4,2 0.2,-2.2 -1.3,0.8 -1.5,-0.4 -3.3,1.6 -1.5,-1.2 -2.6,-0.7 -0.5,1.4 -1.4,0.3 -2.6,-2.1 -2.2,-0.6 0.1,-1.4 -1.9,-0.7 1.6,-1.3 -1.2,-0.8 -0.1,-0.2 -0.5,-0.3 1.2,-2.1 4.6,-0.1 0.1,-1.8 3.9,0.3 4,-2.1 5,0.6 3,1.6 3.7,-0.1 1.3,0.4 2.7,-1.3 2.4,-0.2 1.2,1.1 0.5,2.2 2.1,1 z", -BD:"m 512.93,177.09 -1.5,-3.5 -2.5,2 -2.1,-0.6 -1,-3 0.4,-1.4 -1.4,-0.7 1.7,-1 -1.6,-1.5 0.7,-1.2 2.7,1 1,1.7 3.2,-0.1 0.8,0.5 -2.5,2.7 0.8,1.3 1.1,-1.5 0.8,3.5 0.1,1.3 z",LC:"m 219.63,191.49 -0.3,-0.3 0.3,-0.4 0.1,0.3 z",NR:"m 655.93,218.79 0,0 -0.1,-0.1 0.1,0 z",NO:"m 376.13,55.29 -0.4,0.2 -0.4,-0.2 0.4,-0.4 z m -1.5,0.3 -0.5,-0.2 -0.4,-0.6 1.2,0.5 z m 5.1,-1.2 0.6,0.4 -1.1,-0.1 0.1,-0.3 z m 1.6,-0.8 0.3,0.5 -1.1,0.6 -0.5,-0.4 z m 0.6,-0.4 0.6,0.4 -0.8,0.3 -0.2,-0.6 z m -0.8,-0.4 -0.6,0.9 -1.8,0.3 0.7,-0.8 z m 1.3,-0.6 0,0.3 -0.3,-0.1 0.1,-0.3 z m 3,-0.5 0.6,0.5 -0.8,0.3 -0.5,-0.4 z m -8,-28.6 1.5,1.4 -2.3,0.2 -1.7,-1.2 z m 10.1,-0.2 -0.6,-0.3 0.3,-0.4 0.5,0.4 z m 4.4,-1.2 -1.8,0.4 -0.5,-0.1 1.1,-0.5 z m -16.9,-0.9 1.2,0.3 -0.9,0.3 -0.6,-0.2 z m -0.1,-1 -0.9,0.1 -0.1,-0.2 0.1,-0.1 z m 25.8,-3.7 -1.6,0.4 -2.3,0.2 -0.2,-0.2 z m -17.7,-0.8 -0.5,0.1 0.1,-0.3 0,-0.1 z m -0.4,-0.5 0.2,0.1 -0.2,0.1 -0.4,-0.1 z m -8.1,0.1 -0.2,-0.1 0.2,-0.1 0.3,0.1 z m 2.6,-0.9 -0.4,0.1 -0.2,-0.1 0.4,-0.1 z m -1,0.2 0,-0.3 -0.5,-0.3 0.8,0.2 z m -4.7,43 1.2,0 2.3,-1.3 0.6,0.6 0.2,-0.1 0.1,0 0.1,-0.2 0.3,-0.3 -0.2,-0.2 0.4,-0.1 0.1,0 1.1,-1 0.2,0 0,0.1 0.1,0.1 0,-0.1 2.3,0.3 3.2,-2 2.5,-0.3 -1.6,1.3 0.1,1.4 3,-3 -0.4,2 2.1,-2.5 4.6,1.3 2.1,1.5 -1.8,0.8 -2.7,-0.4 4,1.3 -1.7,1.5 -1.9,1.1 0.8,-1.5 -2.8,-2 -3.6,1.3 -0.8,2.7 -1.4,1.1 -1.8,-0.9 -2.9,0.4 -1.4,-1.9 -2,0.8 -1.3,2.3 -3.5,-0.6 -0.5,1.8 -1.1,-0.4 -2.2,2.2 0.5,1.2 -3.6,3 0,2.5 -1.7,2.3 0.6,1.8 -2.4,0.2 -1.4,2 0.7,3 -0.3,1.6 1.3,1.1 -1.2,1.1 0.5,2.5 -1.2,0.7 -0.8,2.5 -1.9,-0.7 -3.7,2.8 -1.8,0.6 -2,-0.2 -2.5,-2.9 0.8,-2.6 -1.9,-2.9 1.3,-1.5 -1,-0.8 1.5,-1.5 2.6,-1.1 -0.1,-0.6 3.6,-1.3 -1.9,-0.2 1.9,-1.2 2.5,1.5 2.6,-1.5 -2.9,0.9 -0.7,-0.8 3.2,-3.2 1.5,-0.8 0.3,-1.2 2.7,-4.7 3.8,-2.7 -1.5,-0.2 3.2,-1.3 -0.7,-0.6 2.2,-1.1 -0.8,-1.1 1,-1.6 1.8,-0.1 1.4,-1 -0.1,-1 0.9,1 z m 22.4,-0.9 -0.3,-0.3 -0.3,0.5 0.7,-0.2 z m -9.5,-24.6 0,-0.2 1,-0.7 -1,0.9 0,0 z m -20.5,28.4 2,-0.6 1.3,-1.5 0.9,2.1 -1.8,1.3 -4.3,0.8 0.2,-0.6 3.4,-0.7 z m 17,-31.5 -1.3,-0.8 -3.2,0.1 1.4,-2 -1.4,-0.7 3.9,-0.7 1.3,1.6 1.5,0.2 z m -14.5,-10.2 1.6,-1.6 4.5,2.7 0.1,1.2 5,1.3 -4.9,1.6 -1.5,4.1 -0.9,0.1 -1.7,3.6 -4.7,-2.5 -0.9,-1.4 5.5,-1.4 -5.9,0.4 -0.2,-1.2 2.8,-0.2 1.4,-1 -1.9,-1.6 -0.1,1.4 -3.3,0.8 -1.9,-1.7 0.3,1.7 -2.1,-1 -1.2,-1.9 1.7,-0.3 -1.2,-2.5 0.6,-0.6 2.1,0.1 3.2,-0.9 0.2,1.4 1.2,-1.1 1.5,0.9 2,2.9 z m 15.5,-2.7 5.8,0.6 0.7,1.4 -2.3,1.5 -3.7,1.4 -2.1,-0.2 -0.1,-0.8 -4,0.2 -2.2,-1.1 4.2,-0.4 0.1,-0.5 -6,0.5 0.1,-1.4 -1.9,-0.4 0.6,-0.7 2.3,0.8 2,-1.4 1,0.9 1.8,-0.3 1,1.2 0.7,-2.2 0.5,1.5 z m 2.5,16 -0.2,0.2 0.1,-0.2 0.1,0 0,0 z",KN:"m 216.43,184.69 -0.5,-0.3 0.1,-0.1 0.2,0.2 z",BH:"m 432.93,166.69 0.3,0.1 -0.1,0.8 -0.2,-0.4 z",TO:"m 1.43,258.89 -0.1,0.1 -0.7,-0.3 0.4,-0.1 z",FI:"m 375.83,86.59 -0.1,0.3 -0.6,0.1 0.3,-0.2 z m -0.8,0.1 0.1,-0.1 -0.2,0.4 -0.3,-0.2 z m 0.3,-0.5 -0.6,0.5 -0.9,-0.5 0.9,-0.3 z m 2.3,0.1 0,0.2 0.7,-0.1 -0.8,0.3 z m 1.6,0.7 0.1,-0.6 0.7,0.2 -0.6,0.7 z m -2.2,-1.7 0.1,0.3 -0.1,0.3 0,-0.4 z m 0,-8.1 0.2,0.3 -0.3,0.2 -0.2,-0.3 z m 6.9,-5.4 -0.5,0.3 -0.1,-0.2 0.2,-0.1 z m -5.9,13.9 -0.3,-0.1 -0.8,-4.4 0.5,-3.7 1.7,-0.3 4.6,-4.7 0.9,0.1 0.2,-2.2 -2.3,-0.9 -1,-2 0.7,-1.2 -1.1,-2.2 0.4,-1.6 -5.7,-3.5 2,-0.8 1.4,1.9 2.9,-0.4 1.8,0.9 1.4,-1.1 0.8,-2.7 3.6,-1.3 2.8,2 -0.8,1.5 -1,1.7 0.5,1 2.5,1.8 -1.7,2.7 1.5,2.3 -0.6,3.6 1.9,3 -1.1,0.8 3,2.5 -0.6,1.2 -3.9,3.8 -2.7,2 -7.7,1.6 -2.6,-0.9 0.1,-0.1 -0.3,0 0,0 -0.8,-0.2 0.2,0.1 -0.1,0.2 -0.3,-0.3 z",ID:"m 593.33,228.59 1,0 -1.1,2.3 -0.1,-1.6 -1.9,-1.3 z m -51.2,-5.5 -1.9,0.6 -1.4,-1.8 0.5,-1.1 1.1,2.5 z m 19.2,10.6 2.9,-0.2 0,0.7 -3.9,0.9 -2.2,-0.5 1,-1.2 z m 20.3,-20.3 -0.2,1.9 1.6,2 -1.7,-0.4 -0.5,3.4 -1.2,-2 1.1,-0.1 -0.5,-2.7 z m -7.9,22.2 0.5,0.3 0.3,-0.6 0.3,-0.1 0.6,-0.3 0.1,0.4 0.2,0.6 -1.1,1.2 -1.9,0.5 z m -11.7,-25.7 -0.4,0.3 0,-0.4 z m 44.2,12.8 0,8.2 0,4.2 -1.8,-1.9 -4.6,0.6 0.7,-1.5 1.6,-0.6 -2,-3.9 -3.5,-1.5 -1.5,-0.1 -3,-1.8 -1.4,1.2 -1.3,-2.7 3.4,-0.6 -2.5,-0.1 -3.5,-1.9 -1.1,-2.3 1.9,1.3 2.8,-0.8 2.4,0.6 0.3,2.8 1.6,2.2 2.5,-1.5 -0.2,-1.7 3.2,-0.3 3.9,1.7 z m -39.3,14.7 -2.9,-1.4 1.4,-0.4 1,-2 4,0.6 1.3,-0.8 5.4,-0.4 -3.3,1.1 -0.5,-0.5 -3.9,1.1 -3.5,-0.1 1.7,2.2 z m -23.2,-4.7 -3.5,-0.8 -2,-1.2 1.1,-1.7 4.4,0.7 0.5,0.9 3.6,0.4 0.9,-1 2.2,0.9 6,-0.1 0,3.8 -3.8,-1 -1.1,0.3 -3.7,-0.5 -2.6,-0.9 z m 37.9,-9.1 -2.7,1.5 -1.4,-0.9 -0.1,-1.9 0.3,1.4 1.9,0.5 1.7,-0.9 3,-0.2 2,0.6 0.4,1.4 z m -10.2,5 -1.6,-0.4 1.8,-1.9 -2.7,0.3 0.2,-1.1 -2.3,-1.5 -0.2,4.3 -1.8,-0.3 0.5,-2 -1.6,-3.2 1.1,-1.3 1.3,-5.1 1.7,-1.2 1.3,0.5 4.4,0.5 2.3,-1.8 -1.2,2.5 -8,0.1 -0.6,1.2 1.3,2.2 1.9,-1.7 3.3,0.3 -0.2,2.1 -1.1,-1.2 -2.2,1.5 1.8,2.4 1,2.3 z m -10,-18.7 -0.4,1.6 1.4,1.9 -0.5,0.8 2.2,1.6 -2.4,0.6 -0.6,2.4 -1.6,1.7 0,1.4 -1.2,2.7 -2.6,1.1 -0.7,-1.5 -2.3,-0.4 -2.4,0.7 -0.1,-1.5 -2.8,0.5 -0.6,-3.6 -0.9,0.3 -1.2,-4 1.5,-2.4 1.7,2.3 4.7,-1.3 2.9,0.2 1.8,-3 0.8,-2.6 z m -37,-0.1 2.9,1.9 2.3,2.5 1.3,-0.5 4,3.6 -0.7,1.9 1.9,0.5 0.7,2.6 1.7,0 0.8,1.7 -0.4,4.5 -2.1,0.5 -6,-5.1 -1.5,-2 -1,-2.6 -1.8,-2 -1.8,0.5 1.6,3.3 -0.7,-0.1 -1.1,-3.2 1.5,-1.2 -1.1,-2.5 -2.3,-0.2 1.2,2 -0.5,0.8 -1,-2.9 -1.4,-0.5 1.7,0.3 0.5,-1.3 -4.1,-3.7 -0.3,-1.9 2.2,1.1 2,0 z",MU:"m 446.83,256.49 -0.1,0.8 -0.6,0 0.3,-0.9 z",SE:"m 371.43,89.89 0,0 0.1,-0.3 0.2,-0.1 z m 7.4,-19.2 0,-0.4 0.3,0.2 0,0.2 z m 3.7,-1.2 -4.4,0.9 -1.3,2.7 0.8,0.7 -1.5,1.7 -3.4,2.1 -2.3,2.1 -1.4,3.2 0.4,1.9 1.2,0.4 2.2,2.5 -1.2,1.7 -3.3,1.5 -0.6,2 0.6,2.7 0.7,-1.2 1.9,0.2 1.3,-1.8 -0.1,1.9 -3.1,0 -1.2,2.7 -3.4,0.3 -1,2 -2.3,0 -1.2,-4.1 -1.5,-2.9 0.2,0 0.2,-0.3 -0.5,0.1 0,0.2 -0.5,-1.1 0.4,-1.8 0.8,-2.5 1.2,-0.7 -0.5,-2.5 1.2,-1.1 -1.3,-1.1 0.3,-1.6 -0.7,-3 1.4,-2 2.4,-0.2 -0.6,-1.8 1.7,-2.3 0,-2.5 3.6,-3 -0.5,-1.2 2.2,-2.2 1.1,0.4 0.5,-1.8 3.5,0.6 1.3,-2.3 5.7,3.5 -0.4,1.6 1.1,2.2 -0.7,1.2 z m -23.7,22.4 -0.6,0.2 0.1,0.3 0.6,-0.2 z",TT:"m 219.73,197.09 -0.2,1.3 -0.9,-0.3 -0.4,-0.8 z",MY:"m 528.33,207.39 0,0.4 -0.2,-0.1 0,-0.3 z m 33.7,2.5 -0.4,-0.1 0.1,0 -0.3,0.1 -3.3,-0.5 -0.8,2.6 -1.8,3 -2.9,-0.2 -4.7,1.3 -1.7,-2.3 2.6,1 0.6,-1.6 0.2,0 0,-0.3 0,-0.2 3,-0.9 1.9,-2.8 1.2,1.1 0.7,-1.6 0.1,-0.1 0,0.2 0.6,1 -0.4,-1.2 1.9,-2.3 2.2,-1 3.8,2.8 -2.1,0.6 0.8,1 -1.4,0.3 z m -34,-4.4 1.8,0.4 0.1,1.2 1.8,-1.2 2.6,2.7 0,3.6 1.6,3 -1.7,-0.4 -4,-2.5 -1.1,-1.9 z",PA:"m 187.13,203.99 -1.2,-2.6 -2,-0.7 -1.7,1.7 0.9,1.2 -3.4,0.4 0.1,-1.8 -2.2,0.3 -0.3,-0.6 0,-0.1 0,0 0,0 0,0 0.9,-2.3 0.9,1.2 2,0.3 2.7,-1.6 2.3,0.4 2,1.4 0.4,1.4 z",PW:"m 593.83,203.79 0,-0.2 0.1,-0.3 0.2,0 z",TV:"m 679.43,233.99 0,0 0,-0.1 0,0.1 z",MH:"m 663.83,204.19 0.3,0.1 0.1,0 -0.1,0 z",CL:"m 195.93,330.49 2.3,1.1 -1.4,0.9 -1.8,-1.9 z m -3.3,-14 1,2.1 0.1,3.2 -2.2,-0.8 1.3,-0.9 -1.3,-1 0.1,-1.9 z m 2.9,-12.8 -0.4,2.3 -2,0.7 1.1,-1.6 0.3,-2.5 z m 9.4,24.9 0,5.6 -0.2,0 0.2,0.1 -0.1,0.2 -2.5,-0.3 -1.1,1.1 -1.4,-2.5 1.6,-1.8 0.2,2 2.6,0.3 -2.1,-0.9 -0.6,-2.8 1.9,-1.5 z m -3.4,-75.6 0.8,-0.1 0.9,-1.5 1,2.8 1,1 -0.6,2 1.1,1.7 0.6,3 1.3,0 -0.3,2.4 -2.3,1.6 0.5,4.3 -1,0.5 -1.6,2.6 -1.8,6.6 1.6,3.8 -1.2,3.9 0,1.9 -1.2,1 -0.3,2.6 0.6,2.2 -1,0.5 -1.1,4.1 0.4,3.1 -0.8,2.1 1,2.1 -0.8,2 1.4,1.3 -1.1,4.6 -1.2,1.7 0.5,1 -2.5,3 0.8,3 1.6,-0.3 -0.2,2.3 1,1.1 3.7,0.1 2.9,0.9 -1.3,-0.4 -3,1.4 -0.6,2.7 -4.2,-1.4 0.5,-1.1 -2.2,-0.3 -0.6,-1.5 1.4,0.3 -0.3,-2.5 -2.4,-1.2 1.6,-0.9 -0.3,-4.5 -0.6,-2.2 0.9,-2.3 -2.2,-0.3 1.8,-2.9 0.9,1.4 1.5,-1.7 -0.3,-1.1 -2,-0.1 1.1,-2.4 0.5,2.3 2.1,-6.3 -0.9,-1.3 -1.5,0.6 -0.4,-1.8 1.3,-3.3 -0.8,-3.9 0.9,-1.3 1.1,-3.4 0.8,-1 1.6,-5.9 -0.5,-4.5 0.7,-0.6 -0.5,-2.1 1.2,-2.7 0.9,-4.6 -0.3,-4.6 1,-3.3 z m 6.1,81.7 1.3,0.8 -4,-0.3 3,2 -1.4,0 -2,-1.9 -1.9,0.6 -0.2,-1 4.7,-0.3 0.3,0 z",TH:"m 532.13,194.49 0.1,0.1 0.2,0.3 -0.3,0 z m -0.4,11.4 -1.8,1.2 -0.1,-1.2 -1.8,-0.4 -1.6,-2.3 -2.1,-1.7 1,-3.5 1.7,-2.8 -0.9,-3.7 -1.7,-2.1 1.1,-2.6 -2.7,-4.6 1.2,-2.6 0.9,0.3 3,-1.3 0.7,1.6 1.5,0 -0.2,4 1.8,-1.5 1,0.8 1.5,-1.2 1.2,0.2 1.6,1.9 -0.2,1.6 1.7,1.6 -0.8,2.7 -3,-0.2 -2.5,1.7 1.1,3.7 -2.1,-2 -1.6,0.2 0,-1.7 -1.8,0.1 0,2.4 -1.4,3 -0.1,2.7 1.2,-0.2 1.1,4.1 2.1,0.6 z",GD:"m 218.33,194.79 -0.2,0 0,-0.3 0.2,-0.1 z",EE:"m 379.63,90.99 0.8,0.6 -1.6,0.6 -0.7,-1 z m 1.4,-0.1 -0.3,0.2 -0.3,-0.2 0.2,-0.2 z m -0.3,-1.2 0.3,0 0,0.2 -0.4,0 z m -0.9,0.1 0.6,0.4 -1,0.5 -0.9,-0.7 z m 9.5,0 -1.4,0.6 1.3,2.2 -0.2,0.5 -0.4,0.8 -1.6,0 -2.3,-1.5 -1.9,0.6 -1.5,-2 -0.1,-1.8 4.8,-1.2 3.9,0.4 0.2,0.2 0.1,0.2 -0.1,0 -0.2,0.1 0,0 0.1,0 0,0 0.1,0 -0.1,0 -0.2,0 -0.2,0.4 z",AG:"m 218.03,184.89 0.2,0.2 -0.3,0 -0.1,-0.2 z",TW:"m 565.23,172.19 1,0 1.9,-3.1 1.6,-0.1 -1,3.9 -1.1,2.5 z",BB:"m 222.33,192.79 -0.2,-0.1 0.1,-0.4 0.3,0.3 z",IT:"m 359.93,141.89 6.3,-0.8 -0.8,1.2 -0.2,2.4 -1.2,-0.3 z m -5.6,-7.3 0.8,1.5 -0.5,3.1 -2.2,0.4 0.1,-3 -0.5,-1.3 z m -3.7,-6 -1.7,-3.1 0.8,-1.9 2,-0.8 1.5,0.4 2.2,-0.7 0.9,-1.2 3.3,-0.5 0.4,0.9 2.5,0.4 -0.6,0.6 0.6,1.7 -0.9,-0.5 -2.1,1.1 0.5,2.6 2.3,1.6 0.9,2.2 2.1,1.5 1.7,0 -0.2,1 4,1.9 0.9,1.2 -2.8,-0.9 -1,1.9 1.2,0.6 -2.1,3.3 0.3,-1.9 -1.1,-2.9 -3.7,-2.6 -1.2,0 -3.6,-3 -2.1,-3.4 -2.5,-1 z m 9.5,4.4 0,0 0,0 0,0 z m 0,-4.6 0.1,-0.2 -0.1,0 -0.1,0.1 z",MT:"m 363.63,146.09 0.5,0.2 0,0.3 -0.3,-0.1 z",VU:"m 656.83,245.19 1.4,1.2 0.7,3.8 -1.7,-0.8 -1.6,-2.6 z",SG:"m 535.13,214.99 0.3,0.2 -0.3,0.2 -0.4,-0.1 z",CY:"m 400.93,148.29 0,0 0,0 z m 0.5,-0.1 0.2,0.2 -0.4,0 -0.2,-0.2 0.2,0 0.2,0 z m -0.5,0.1 0,0 0.1,0.1 0,0 z m -0.1,0.1 -0.2,0.3 -1.1,0.4 -0.4,-0.1 -0.1,0.1 -0.9,-0.9 0.6,-0.3 0.1,0.1 0,-0.1 0.1,0 0,0 0.1,0 0,0 0,0 0,0 1.3,0.1 0.5,0.3 z",LK:"m 489.33,199.29 1.6,0.6 2,3.4 -0.1,1.9 -2.2,1.3 -1,-0.4 -0.6,-3.7 0.8,-2.7 z",KM:"m 419.53,240.59 -0.5,-0.4 0.1,-0.7 0.3,0 z",FJ:"m 675.43,250.99 2.2,0.1 0,-1 3.1,-1.2 -3.2,2.4 0.9,0.5 -0.4,2.4 -0.7,-1.3 -1.5,-0.3 z",RU:"m 621.23,124.99 -2.1,0.7 -1.5,1.4 -2.9,1.4 1.3,-1.6 4.8,-2.3 z m -189,-65.8 -2.9,0.8 -0.5,-1.8 1.8,-0.8 1.7,0.8 z m 17.7,-4.7 2.2,1.5 -1.8,0.7 -1.9,-1.3 z m 22.6,-10.7 1,0.4 -3.4,0.7 0.1,-1.3 z m 80.8,-3.8 -1.1,1 -2.5,-0.9 1,-0.8 z m -107.6,-23.8 -2.8,0.4 0.6,-1 4.7,-0.6 0.7,2.5 z m -4.8,-1.3 -0.5,1.2 -3.3,0.2 0.5,-1.1 2.8,0.6 z m 2.9,-2.7 4.8,0.2 -3.3,1.7 -2.1,0.2 -3.5,-0.8 z m 16.4,-0.5 1.4,1.2 -4.5,1.1 -1.1,-0.7 2.9,-0.6 z m -13.1,-2.3 1,1 -1.4,1.6 -3.5,-0.2 z m -34.3,120.1 -1.9,-1.7 -4.6,-2.5 1.8,-0.4 0.6,-2.6 2.8,-1.3 -2.1,-0.3 1.2,-1.8 1.8,0.1 -0.1,-2.3 0.8,-1.2 -1.8,-1.5 -3.4,-1.4 -3.4,0.2 -1.1,-2.2 -1.7,-0.1 0.5,-1.3 -1.2,-1.5 -3.9,0.6 -1,-2.3 2.8,-1.1 -1.8,-1 -1.7,-4.8 -5.2,-1.4 -1,-1.9 -0.6,-1.9 0.4,-0.8 0.2,-0.5 0.4,-1.3 -0.3,-1.5 0.3,-0.5 0.2,-0.3 0.2,-0.1 0,0 -0.1,0 0,0 0,0 0.1,0 0.2,-0.1 -0.1,-0.2 -0.2,-0.2 0.2,-0.9 3.3,-1 -3.9,-1.1 2.7,-2 3.9,-3.8 0.6,-1.2 -3,-2.5 1.1,-0.8 -1.9,-3 0.6,-3.6 -1.5,-2.3 1.7,-2.7 -2.5,-1.8 -0.5,-1 1,-1.7 1.9,-1.1 1.7,-1.5 2.3,-0.6 2.1,0.8 -2.1,0.6 7.5,1.3 9.8,5 0.6,1.5 -1.8,2.6 -2.1,0.9 -2.7,0.1 -8.5,-2 -2.4,-1.3 5.2,4.5 -0.9,1.1 0.9,1.6 1.5,-1 2.4,0 4.9,1.9 1.7,-0.8 -1.2,-2.5 2.9,-1.4 2.4,-2.3 3.1,2.9 0.6,-2.6 -1.3,-1.6 0.8,-3.5 -1.8,-1.2 5,0.5 1.5,2 -2.6,0.4 -0.8,1.3 1.7,1.4 3.7,-0.3 0.5,-2.1 1.5,-0.3 4.5,-2.5 4.4,-1.4 1,1.9 1.4,0.5 2.5,-1.6 2.5,0.4 3,-1.5 1.5,2.2 2.4,-2.6 -1.5,-1.6 1.2,-0.9 6.5,1 2.9,1.6 3,0.9 2,1.6 1.6,-2 -1.2,-0.1 -0.9,-1.8 -2.3,-0.3 1,-3.9 -1.7,0.1 0.9,-2.1 3,-1.9 0.9,-3.1 1.2,-0.7 3.8,-0.1 2.4,0.7 0.1,1.6 -2,2.6 1.6,1.5 -0.4,2.9 0.2,4.6 2.1,1.4 -1,2.6 -1.1,0.4 -1.9,3.1 -2.3,1 3.3,0.3 2.7,-1.8 2.4,-2.8 -0.6,-3.4 3.7,-1 1.8,1.6 -0.4,2.5 1.9,-1.6 -0.8,-2.1 -4.2,-1.3 -3.3,0.2 -0.5,-1.8 1.6,-2.7 -2.5,-3.2 0.9,-1.4 2.7,-1 -0.4,-2.9 1.8,-2.4 2.1,0.3 -2.3,2.7 0.4,1.8 -1,3 4.9,0.9 0.9,-0.4 -3.7,-1 -0.6,-1.3 1.8,-0.5 1.2,0.8 0.6,-1.7 2.4,-2.9 0.5,2.6 4.5,2.5 2.9,-0.1 -1.9,1.5 1.1,1 0.7,2.4 1.1,-0.5 -1.2,-2.7 0.9,-1.4 -2.8,-2.3 -2.8,-1 -0.7,-2.4 0.4,-1.4 12.5,-1.1 -0.5,-1.1 -2.8,-2.2 3.1,0.5 -0.5,-1.3 2.1,-0.2 4.1,-2.2 6.9,-1.1 -1.2,-0.7 3.2,-0.1 2.3,-0.9 -0.9,-1.5 1.6,-1.3 0.5,2.6 -1.1,0.8 1.2,1.1 2.6,-0.5 2,-2.1 3.8,-0.1 0.6,-2.2 4,-2.3 2.8,-0.2 2.2,0.6 -1.3,1.5 4.3,1.2 -2,1.5 2.8,-0.1 0.1,-0.8 6.2,0 2.6,0.5 0.2,1.6 1.4,0 0.6,2.5 -2.1,-1.1 2,2.3 -7,3.6 -3.6,2.6 -1.8,0.1 -1.5,1.5 2.6,0.1 6.1,-1.9 -2.5,-0.1 0.8,-1.1 4.5,1.2 1.5,-0.7 0.6,1.4 3.7,-0.8 5.9,0.5 -0.2,1.1 3.6,1.1 5.2,0.4 1.1,-1.3 -0.5,-1.2 2.5,-1.3 0.3,0.7 3.2,1.1 1.2,-0.5 4.6,2 -1,3.4 -2,-1.3 3.6,4.6 2.2,1.4 1.2,-0.5 1.9,-3.5 2.2,1.6 1.6,0.2 2.8,-0.9 2,0.3 3.3,-0.3 2.5,0.6 -1.6,-2.5 0.6,-1.2 3.9,-1 7.4,0.8 2.9,0.9 -2,0.4 0.5,1.3 2,-1.8 4.6,0.6 0.9,0.9 -2,0.7 4.7,1.4 1.4,1.5 2.8,0.1 4.3,-0.8 5,0.4 2.2,1.1 0.8,1.5 -0.8,1.2 2.7,1.5 5.6,-1.1 1.6,0.7 4,0.2 2.5,-1.8 2.3,0.5 -0.5,1 -2.1,-0.4 0.5,1.6 2.4,1.5 2.6,-0.9 -0.7,-3.6 9.4,0.9 3.5,0.8 7.3,2.9 0.3,0.7 6.5,2.9 1.6,3.7 0.8,-1.4 4.4,0 3.9,2.7 -1.6,1.6 -3.1,0.3 -0.9,2.6 0.8,0.9 -2.2,0.3 -2.6,-1.6 -2.2,-0.6 -0.1,-1.2 -2,-0.7 -3,0.3 -2.2,-2.1 0.8,1.8 -0.8,1.5 -4,1.5 -3.5,-0.6 3.1,2 0.5,-0.5 2.6,5 -1,1.3 -2,-0.8 -2.6,0.2 -6.2,2.7 -2.8,2.1 -2.7,1.2 -0.4,1.4 -2.2,-1.8 -4.4,0.8 -1.6,1.3 0.6,-1.8 -3.1,2 -2.2,-0.8 -0.9,1.6 1.2,1.7 1.6,0.1 -2.2,1.2 -0.8,-1.5 -2.1,2.5 2.6,1 -1.1,2.6 1.2,1.6 -2.4,0.1 -0.7,1.4 0.7,2 -4,1.8 -0.8,2.4 -1.9,1 -1.7,3.4 -3.8,3.5 -1,-0.1 2.9,-1.9 -1.2,-5 -1.1,-6.2 0.9,-4 2.8,-2.9 2.9,-1.7 1.7,-2 3.8,-3 0.1,-0.6 4,-2.7 0.2,-2.7 2.1,-0.4 -1.2,-0.9 -2.5,0.5 -0.6,2.1 -5.4,3.6 -0.7,-1 1.1,-3 -5.5,0.5 -4.9,4.1 -1.6,2.5 2.1,0.9 -3.5,-0.2 -3.8,1.1 -1.2,-1.8 -2.2,-0.8 -1.6,1.5 -9.3,-0.5 -2.5,0.6 -3.2,2.3 -0.8,1.5 -3.5,2.4 -2.1,2.4 -4.5,3.2 2.5,0.8 0.3,-1 2.7,-0.1 -1.5,2.6 1.1,1.2 1.6,-1.9 2,0 3.2,3 -1.9,6.7 0.2,2.4 -0.7,2.7 -1.8,1.7 -2.2,3.7 -4.3,4.4 -1.4,2.1 -3.8,1.9 -2.6,-1.5 -2.1,2.4 -0.1,-0.3 -0.2,-0.3 0.9,-0.7 0.5,-2.8 -0.6,-1.9 2,-0.9 0.7,1.7 0.9,-1.3 2,-2.8 0.5,-2.4 1.2,-1.1 -0.7,-1.7 -3.7,1.7 -2.7,0.1 -0.4,-1.6 -2.8,-2.7 -2.5,-0.3 -4.5,-8.8 -4.7,-1.5 -4.7,0.8 -1.5,1.3 1.4,1.7 -1.3,1.1 -1.8,3.3 0.1,0.9 -2.8,1.2 -2,-0.7 -2.5,-0.2 -2.1,-1 -2.4,1.7 -4.4,1.2 -4.2,-0.5 -1.2,-1.5 -5,-1.4 -3.1,0.9 -2.7,-1.2 -0.2,-1.8 -6.3,-2.1 -2.1,2.9 1,1.2 -1.9,2 -5.2,-0.7 -0.7,-1.4 -3.6,-0.7 -8.7,4.2 -0.6,0.1 -0.3,0.1 -1.4,-1.3 -2.6,0.1 -3.5,-3.6 -3.8,0.7 -1.4,-1.4 -1.4,1.2 -4,-6.3 -2.6,-1.8 0.3,-1.3 -4.7,2.3 -1.4,-1 -4.5,-0.4 -0.6,-3.1 -4.9,0.2 -0.2,0.7 -5.7,1.6 -8.1,1.2 0.5,1.6 1.6,0.4 -2.7,1.1 0.7,0.9 -1.7,1.2 2.6,1.1 -0.2,1.7 -2.7,-0.2 -0.4,0.8 -2.2,-1.2 -4,-0.1 -1.7,1.3 -2.2,-0.8 -2.2,-1.7 -5.3,-0.3 -3.6,2.7 -0.5,1.9 -1.7,-1.6 -1.2,1.6 0.2,1.5 -1,2 1.2,1.4 1.8,0.1 2.2,3.5 -3,1.5 -1.8,2.5 1.7,2.1 -0.3,1.7 2.2,2.7 -1.6,1.5 -2.5,-1.6 -3.1,-1.9 -1.7,0.4 -2.1,-1.4 z m 271.5,-79 1.5,0.9 -0.9,0.7 -4,0.2 -2.3,0.6 0.2,-1.5 2.6,-1.2 z m -78.8,-8.9 2.7,0.1 2.6,1.4 -0.4,1.3 -5.1,-1.1 z m -92.9,-23.7 -1.9,-1.1 5,0.6 -2.1,1.1 z m -86.5,-4.2 2.6,-0.3 -4.2,1.7 -1.9,-0.9 z m 25.7,-0.9 2.6,-0.7 1.1,1.5 -2.3,1.7 -2.6,-0.1 -0.9,-1 z m -77.7,89.4 1.2,-0.6 -1.5,0.6 0,0 0.6,-1.2 1.9,-1 0.2,0 -0.9,0.9 1.4,-0.8 3,1 -0.1,1.4 -0.2,0 z m 144,-85.5 -1.4,0.2 -1,0.2 -4.2,-1.3 2.4,-1 0.5,-2.2 5.2,-1.3 4.2,2.6 -1.4,0.3 0,1.8 -3.6,0.6 4.3,-0.3 1.5,1.3 1.6,-0.8 1.4,1.6 -1,3.7 -3.2,0.1 -1.8,-0.8 -3.4,-0.2 -2.4,-2.2 z m 92.4,98.5 -1.3,3.3 1.6,3.6 -1.8,-0.2 -0.7,1.7 -0.5,-1.7 0.7,-3.3 -0.4,-2.1 0.5,-5.8 -1.1,-1.5 0.2,-4.2 2,-0.8 -0.5,-1.6 1.4,3 0.3,4.2 1.6,5.7 z m -166.2,-71 -2,3.4 1.4,3.7 2.9,1.9 -0.9,0.8 -3.3,-0.9 -0.5,0.7 -3.6,-1.1 0.6,-1.2 -1.3,-0.6 0.2,1.2 -2.9,-1.9 -0.1,-1.3 1.8,-0.5 1.4,-3.7 3.5,-1.2 z m 173.7,-7.9 2.4,-0.4 1.4,0.6 3.3,0.6 -0.5,0.9 -4.6,0.3 -4.1,-1.7 0.7,-1.3 z m -11.1,-3.4 2.3,1.3 2.7,0.1 2.7,1.3 -2.6,1.9 -2.9,-1.4 0.3,1.1 2,0.6 -2.6,0.4 -1,-0.6 -5.4,1.3 -2.1,-0.8 -2,-1.9 -1.6,-0.4 -1.1,0.3 0.4,-1.9 2.6,1 0.8,-1.4 2.8,-1 4,2.4 z m -141.2,-3.3 2.3,0.6 0.3,1.2 -3.5,1.9 -11,3 -4.3,3.4 -1.8,-0.5 0.1,1.4 -2.8,3.5 -3.4,-0.7 -1.5,0.5 -1.1,-1.7 2.2,-0.8 1.4,-2.5 2.9,-2.9 2.2,-0.7 1,-1.2 4.5,-0.8 0,-0.7 2.5,0.3 3.2,-0.5 z m 63.7,-7.4 0.3,-1.4 2.4,-1.3 1.6,0.5 -0.4,1.2 1.7,-0.5 2.4,1.3 2,2.5 -1.7,-0.9 -2.9,0.9 -4.7,0.3 -2.3,0.9 -1.5,-0.3 z m -103.8,-6.5 5.7,-1.5 -1.2,-0.6 2.6,-1.1 2.6,1.5 -3.8,0.9 0.9,2.2 -1.3,-0.7 z",VA:"m 360.13,132.99 0,0 0,0 0,0 z",SM:"m 360.13,128.39 -0.1,-0.1 0.1,-0.1 0.1,0 z",KZ:"m 451.63,123.39 -2.1,0.7 0.6,1.3 -1.4,-0.8 0.4,-0.3 -0.6,0.2 -5.1,1.3 0.1,8.5 -0.9,0.1 -2.6,-2.4 -1.3,0.5 0,0 0,0 0,0 -0.8,0.3 0,0 0,0 0,0 -1.2,0.5 0.5,-2.2 -1.5,-0.3 -3.1,-4.2 2.1,-1.6 2.1,-0.2 1.1,-1.4 0,-2.1 -1.8,0.1 -1.8,-0.7 -3.8,1.9 -2.2,-3.5 -1.8,-0.1 -1.2,-1.4 1,-2 -0.2,-1.5 1.2,-1.6 1.7,1.6 0.5,-1.9 3.6,-2.7 5.3,0.3 2.2,1.7 2.2,0.8 1.7,-1.3 4,0.1 2.2,1.2 0.4,-0.8 2.7,0.2 0.2,-1.7 -2.6,-1.1 1.7,-1.2 -0.7,-0.9 2.7,-1.1 -1.6,-0.4 -0.5,-1.6 8.1,-1.2 5.7,-1.6 0.2,-0.7 4.9,-0.2 0.6,3.1 4.5,0.4 1.4,1 4.7,-2.3 -0.3,1.3 2.6,1.8 4,6.3 1.4,-1.2 1.4,1.4 3.8,-0.7 3.5,3.6 2.6,-0.1 1.4,1.3 -3,1.7 -0.5,3.3 -1.5,0.5 -3.3,-0.9 -1.4,4 -4.2,1.2 1.4,4.4 -1.2,2.2 -3.4,-1.6 -6.2,0.1 -1.9,-1 -1.3,2 -3.2,-1 -1.7,1.4 -3.6,2 -0.9,1.7 -1.3,-1.3 -2.3,0 -0.4,-1.8 -0.9,-0.1 -0.5,-2 -1.6,-1.9 -5.6,0.5 -1.9,-2.1 -1.8,-1.1 -0.7,-2 1.3,-0.5 z m 0.3,0 0.1,0 0,0.1 1.5,-0.7 z m -19.5,2.7 -0.4,-0.2 0.1,-0.3 0.6,0 z",AZ:"m 422.53,134.89 -0.1,0.1 0,-0.1 0.1,0 z m 0.4,0.2 -0.1,0 0,-0.1 0,0 z m 0.5,0.8 0,-0.1 0.1,0 -0.1,0.1 z m -1.3,2.2 -0.1,-0.1 1.9,0.3 0.7,1.5 -1.3,-0.3 z m 3.1,-5.1 2.5,1.6 1.6,-1.5 1.9,2.8 -1.3,4.9 -1.7,-0.9 -0.1,-2 -2.8,1.9 -1.6,-2.6 0.6,-0.4 -1.9,-2.4 2.9,0.5 z",TJ:"m 471.53,135.09 0,0.1 -0.1,-0.2 0,0 z m 0,2.5 0.1,0.1 -0.2,0.1 -0.2,-0.2 z m 5.8,0.9 0.3,2 1.8,0.1 0.3,2.8 -3.1,-0.5 -3.2,1.7 0,-2.6 -2,-1 -0.9,1.8 -1.6,0.9 -2.9,-0.2 1.1,-2.3 -0.4,-1.6 -1.5,-0.6 2.1,-0.7 1.9,-2.8 2,-0.5 0.9,1.8 -1.9,0 -1.2,1.6 4.1,-0.2 1.5,0.9 z",LS:"m 390.23,273.89 0.9,-0.3 1.5,1.6 -2.6,2.8 -2,-2.2 z",UZ:"m 473.73,137.49 -0.2,0 0,-0.1 0.2,-0.1 z m -1.2,-0.3 0.1,0.3 -0.3,0.1 -0.2,-0.5 z m -22.4,-11.8 -0.5,1 1.4,1.2 0.3,-1.5 1.8,1.1 1.9,2.1 5.6,-0.5 1.6,1.9 0.5,2 0.9,0.1 0.4,1.8 2.3,0 1.3,1.3 0.9,-1.7 3.6,-2 -1.5,1.5 2.4,1 0.6,-0.7 2.7,1.5 -2.8,1.5 -1.4,-0.2 -0.9,-1.8 -2,0.5 -1.9,2.8 -2.1,0.7 1.5,0.6 0.4,1.6 -1.1,2.3 -1,0 -1.4,-0.3 0.1,-1.5 -1.8,-0.5 -6.1,-3.9 -0.9,-2.3 -3.6,-0.9 -0.4,-2.1 -2.5,-1.1 -1.8,1.5 -0.4,-0.4 -0.7,0.9 -0.1,1.5 -1.9,-0.1 -0.1,-8.5 5.1,-1.3 -0.6,2.6 0.8,-2.5 z m 21.4,9.7 -0.1,-0.1 0,0 0.1,0.2 z",MA:"m 330.63,147.69 0.1,0 0.1,0.3 1.2,0.1 0.9,0.8 0.2,3.2 1.2,1.5 -0.4,0.9 -2.4,-0.1 -2.2,1.1 0,1.9 -4,2.3 -3.7,0.5 -1.9,1.5 0,2.1 -0.3,1.1 -1.8,0.5 -3.1,0 -1.3,1.7 -0.7,2.4 -3.1,2.9 -0.3,2.2 -1.2,1.7 -4.2,0.1 2.7,-5.2 1.4,-1.4 0.7,-2.9 1.7,-1.1 1.3,-2.6 2.8,-0.8 1.7,-1.4 1.9,-2.9 -0.5,-2.1 1.1,-2.5 1.4,-1.5 3.3,-1.6 1.7,-3.8 1,-0.3 0.1,0.1 0.1,0.1 1.8,1.5 2.7,-0.4 0,0 z",CO:"m 185.43,214.99 0.2,-1.4 1.6,-1 1.4,-2.2 -0.4,-1.1 0,-4 -1.1,-1.3 1.4,-1.4 -0.4,-1.4 0.9,0.3 2.5,-1.8 0.2,-2.1 2.7,-1.5 1.6,0.1 3.4,-2.2 0.3,1.1 -1.2,0.4 -1.8,2.4 -0.2,2.1 1.2,1.8 0.5,2.5 3.8,0.2 1.3,1.6 3.8,-0.1 -0.8,3.1 1.1,2.2 -1,1 1.2,0.9 0.6,2.2 -0.9,-1.6 -1.5,0.7 -3.3,0 -0.4,3.6 1.2,2.4 -1,5.3 -1.5,-0.8 1.4,-2.1 -1.9,-1 -2.6,0.5 -1.6,-0.4 -0.8,-1.8 -3.2,-2.2 -1.9,-1.1 -2.2,-0.4 z",TL:"m 573.73,235.59 0.4,-0.2 0.4,-0.1 -0.3,0.6 z m 1.7,-0.7 0.5,-0.7 3.5,-0.6 -1,1.2 -2.7,1.1 -0.2,-0.6 z",TZ:"m 403.23,239.89 0,-0.2 -0.1,-0.1 0,-0.1 -0.3,-0.1 0,-0.1 0,0 0,-0.1 -0.5,-2.5 -0.4,-0.4 -0.2,-0.2 0,0 -0.2,-0.2 0,0 0,0 -0.2,0.1 -0.1,0.3 -1,-0.2 -0.9,-0.4 -1.8,-0.6 -1.6,-1 -2.3,-5.1 -0.5,-2.8 2.2,-2.3 -0.5,-1.6 0.5,-1.5 -0.7,-1 0.7,-0.1 1.8,0 0,0.1 0.1,-0.1 0,0 0.2,2.7 2.5,0.1 1.6,-2.7 6.9,3.8 0.2,1.1 2.7,2 1.3,1.1 -1.1,0.9 0.5,1.3 -0.4,4.4 2.1,3.4 -5.7,2.4 z",AR:"m 204.93,334.29 0.1,0.2 -0.2,0 z m 26.8,-66.8 1.4,0.1 0.1,3.1 -3.7,2.2 -3.5,4.1 -1.2,3.6 0,1.2 -0.7,3.9 2.8,2.5 -0.5,0.9 1.4,2.2 -1.8,2.8 -2.8,1.2 -3.5,0.7 -2.3,-0.2 -0.5,4.4 -2.8,0.7 -2.1,-1.1 -0.3,2.9 0.9,1.1 1.6,-0.8 0.3,1.5 -1.6,-0.5 0,1 -1.7,1.6 -0.5,3.2 -1.2,0 -2.1,1.4 -0.6,1.3 1.6,2.1 1.6,0.1 0,2.4 -3.1,2.4 -0.6,2.4 -1.9,0.8 -0.6,1.7 1.4,3.5 -2.9,-0.9 -3.7,-0.1 -1,-1.1 0.2,-2.3 -1.6,0.3 -0.8,-3 2.5,-3 -0.5,-1 1.2,-1.7 1.1,-4.6 -1.4,-1.3 0.8,-2 -1,-2.1 0.8,-2.1 -0.4,-3.1 1.1,-4.1 1,-0.5 -0.6,-2.2 0.3,-2.6 1.2,-1 0,-1.9 1.2,-3.9 -1.6,-3.8 1.8,-6.6 1.6,-2.6 1,-0.5 -0.5,-4.3 2.3,-1.6 0.3,-2.4 1.9,-2 3.1,0.8 0.5,1.3 0.8,-1.7 2.4,0.5 3.2,3.1 1.8,0.4 4.8,2.9 -2,3.9 5.4,0.2 1.9,-1.6 z m -26.8,66.7 0,-5.6 0.3,1.7 2.2,2 2.8,1.6 2.4,0.6 -3.7,0.4 -1.3,-0.2 -0.5,-0.1 z",SA:"m 429.03,161.99 0.9,1.9 2.4,1.9 0,1.9 1.3,2 0.3,0.4 0.4,-0.1 0.2,0.6 0.5,0.1 1.9,2.7 5,0.4 0.9,1.5 -1.3,3.9 -5.7,2 -5.5,0.8 -1.8,0.9 -1.4,2 -4.4,-0.6 -3.8,0.2 -0.7,1.9 -3,-4.6 -0.5,-1.6 -2.5,-1.9 -1.1,-1.7 0,-2.5 -1.2,-2.4 -1.8,-1 -0.5,-1.9 -3.9,-5.8 -1.2,-0.2 0.7,-2.5 2.1,0.3 3.7,-2.7 -2,-2.1 4.2,-1.3 2.5,0.4 3.1,1.8 5,3.9 3.6,0.2 1.7,0.2 z",PK:"m 479.03,143.89 2.7,1.2 1.6,1.8 0.5,1.2 -2.4,1.3 -2.8,-0.6 -1.1,0.9 0.5,2.5 2.4,2.2 -1.5,0.9 0.1,1.3 -2.2,2.5 -0.9,1.8 -2,2.3 -2.7,-0.2 -1.9,2.5 3,4.3 -2.1,1.1 -2.1,-0.2 -1.3,0.8 -1.6,-0.4 -1.9,-2.8 -5.4,0.5 -3.7,0 0.5,-2.1 2.4,-0.8 -0.7,-3.3 -1.6,-0.7 -2,-2.7 3.1,1 3.1,0 4,-0.9 0.3,-2.3 3.4,-1.9 2.3,-0.2 0.4,-2.5 1.5,-0.5 -0.6,-1.5 2,-0.1 1.1,-2.4 -0.9,-1.9 2.7,-1.7 z",YE:"m 435.83,181.19 1.4,3.3 0.7,1.3 -1.6,2 -5.1,1.7 -1.7,1.4 -1.3,0 -2.5,1.2 -1.7,0.1 -3.6,1.5 -0.9,-0.5 -1.4,-5.3 0.1,-1.5 0.7,-1.9 3.8,-0.2 4.4,0.6 1.4,-2 1.8,-0.9 z",AE:"m 444.03,167.89 0.2,0.2 0,1.1 -1.1,0.2 -1.2,4.4 -5,-0.4 -1.9,-2.7 4.9,0.2 3.7,-3.9 0.2,0.8 z m 0,0.8 0.2,-0.1 -0.3,0 0,0.2 z",KE:"m 411.33,226.69 -2.7,-2 -0.2,-1.1 -6.9,-3.8 0.3,-1.6 -0.4,-0.9 1.8,-2.7 -0.1,-1.5 -1.8,-3.4 2.8,-1.5 1,0.8 1.7,0.3 2.4,1.6 2.8,0.4 2.3,-1.7 2.2,0.6 -1.8,2.2 0,7 1.1,1.6 -2.6,2 z",PE:"m 192.13,217.99 3.2,2.2 0.8,1.8 1.6,0.4 2.6,-0.5 1.9,1 -1.4,2.1 1.5,0.8 -1.5,-0.1 -4.1,1.8 -0.4,2.4 -1.7,2.2 3.5,4.8 1.9,-0.2 1.3,-0.9 -0.3,3 2.1,-0.1 1.7,3 -0.8,2.2 0.4,1 -0.9,2.6 -1.3,0.6 1.8,0.8 0.1,0 0.1,0 -0.2,0.5 0.1,0.1 -1.2,1.5 0.3,0.4 -0.9,1.5 -0.8,0.1 -2.1,-2 -7.1,-3.8 -2.1,-2.5 0.1,-1.4 -2.7,-4 -2.5,-5.9 -1.9,-2.7 -2.2,-1.4 -0.3,-3.5 1.8,-1.6 -0.4,1.3 2.8,1.8 1.4,-3.1 3.2,-1.5 2.1,-2 z",DO:"m 198.63,182.19 0,0 -0.1,-0.1 0,0 -0.1,-0.1 0.6,-0.3 -0.1,-1.9 1.4,-0.5 2.1,0.6 0.6,1.1 2.4,0.9 -1.1,0.4 -3.4,0 -1.4,1.6 -0.6,-0.8 0.1,-0.6 z",HT:"m 198.63,182.19 0,0 -0.1,-0.1 0,0 z m 0.3,-2.4 0.1,1.9 -0.6,0.3 0.1,0.2 0.1,0 0.4,0.3 -0.1,0.6 -3,-0.4 -1.1,0.4 -0.7,-1.3 3,0.5 -0.1,-2 -1.3,-0.7 z",PG:"m 606.23,235.09 0,-4.2 0,-8.2 5.8,2.3 1,0 2.4,2 -0.1,1.2 3.3,0.9 0.8,1.4 -1.8,0.1 0.5,1.4 1.8,1.1 2.1,2.8 3.3,0.2 -0.5,1.8 -5.2,-0.7 -1.7,-1.4 -1.9,-2.6 -4.5,-1 -0.7,2.7 -1.4,0.7 z m 17.2,-12.6 -0.6,-1.7 1.1,1.5 3.5,1.6 2.1,2 -0.5,1.1 -1.2,-2.4 z m -0.6,7.3 -3,-1.1 5.6,-0.6 1.2,-0.9 -0.2,-1.5 1.7,0.3 -0.5,2 -3.2,1.7 z",AO:"m 359.73,228.69 0,-0.5 -0.4,-0.9 1.4,-1.2 0.6,0.5 -1.2,0.8 z m 21.3,23 -4.9,0.7 -3.9,-0.5 -0.6,-0.7 -8.6,0 -1.5,-0.9 -2.7,0.6 0,-2.8 1.4,-4.6 2.2,-2.3 0.2,-3 -1.4,-3.1 0.7,-1.4 -2.1,-4.3 1.7,-0.5 6.6,0.1 0.7,2.7 1.2,1.5 3.3,-0.2 0.4,-1.9 4.3,0.5 0,4.1 0.7,1 0.2,2.6 3.3,-0.8 0,4.1 -3.8,0 0,6.2 z",KH:"m 542.13,189.59 0,4.6 -3.4,2.5 -2.4,1.2 -1.6,-0.2 -1.4,-2.2 -1.1,-3.7 2.5,-1.7 3,0.2 3.1,0.1 z",VN:"m 536.33,197.89 2.4,-1.2 3.4,-2.5 0,-4.6 0.3,-1.1 -2.2,-3.4 -3.4,-3.5 -1.7,-1 2.1,-1.5 -1.7,-1.8 -1.8,0.2 -0.3,-1.4 -1.6,-1.7 0.7,-0.7 2.8,0.5 2.6,-1.7 2.8,1.2 -0.4,0.8 2.7,1.8 -2,1.1 -1.7,1.8 -0.8,2 1.9,3 4.1,4.1 1.4,4.8 -0.9,3 -3.3,1.9 -1.1,-0.3 -0.4,1.9 -3.3,1.4 0,-2.7 z",MZ:"m 403.03,243.59 -0.3,-2.5 0.5,-1.2 4.8,0.3 5.7,-2.4 0.8,8.3 -1.8,3.2 -5.4,2.8 -4.2,4 -0.5,1.1 1.6,3.3 -0.7,5 -2.6,1 -2.4,1.8 0.8,1.8 -1.1,0 -0.4,0 -0.2,-1.2 -0.2,-0.6 0.1,-3.1 -1.3,-4.1 2.1,-2.2 1.2,-2.5 -0.5,-1.1 0.5,-2.2 -0.1,-3.3 -4.9,-2 -0.4,-1.3 5.7,-1.9 0.9,1.1 1.3,-0.4 -0.2,2.9 1.7,1.3 1.3,-1 0.1,-2.7 z",CR:"m 176.13,196.89 0.4,0.8 1.7,1.8 -0.9,2.3 0,0 -0.3,-0.5 -5.1,-3.3 0.3,-1.4 2.6,0.2 z m 1.5,5.6 -0.3,-0.6 0,-0.1 0,0 z",BJ:"m 343.23,195.39 0.4,2.1 -2,3 -0.1,5.1 -1.6,0.2 -0.5,0.1 -0.1,-5.4 -1.3,-3.7 1,-0.9 1.9,-0.9 0.8,-0.9 z",NG:"m 341.53,205.59 0.1,-5.1 2,-3 -0.4,-2.1 1,-3.4 2.6,-0.8 2.8,1.7 1.7,-0.7 3.4,1 1,-0.8 2.5,-0.2 2,0.6 2.1,-1.3 0.9,1.3 1.2,1.7 -4.7,7.4 -1.8,3.6 -1.4,-1.3 -3.3,2.5 -0.5,1.9 -4.6,1 -1.1,-0.7 -2.3,-3.2 z",IR:"m 422.03,143.59 -1,-1.8 -0.5,-3.1 1.6,-0.6 1.2,1.4 1.3,0.3 0.5,-0.1 0.2,0.1 2.8,-1.9 0.1,2 1.7,0.9 0.2,1.5 2.3,0.8 1.7,1.4 1.6,0.4 4,-0.6 -0.2,-1.1 2.9,-1.6 3.4,-0.4 0.3,0.6 2.8,0.6 2.9,2.4 1.6,0.1 0.2,2.1 -1.4,5.5 0.5,3.3 1.7,0.2 0.2,1.1 -1.8,2.1 2,2.7 1.6,0.7 0.7,3.3 -2.4,0.8 -0.5,2.1 -3.2,-0.3 -5,-0.9 -0.5,-2.2 -1.3,-0.7 -3,1.5 -6.5,-3 -2.6,-4.7 -2.1,-0.4 -0.8,0.9 -1.6,-2.2 0.3,-1.6 -0.9,-1.3 -2.1,-1.2 -1.7,-2.2 1.8,-3.9 -2,-0.4 z",SV:"m 168.13,192.09 -1.8,0.3 -2.5,-0.9 -0.1,-0.2 1.5,-1.1 3.2,1.1 z",SL:"m 314.33,204.59 -2.8,-1.3 -0.7,-2.8 1.5,-1.5 2.4,-0.3 1.9,2.9 -0.6,1.4 z",GW:"m 307.53,196.79 -1.7,-0.5 -1.6,-2.1 3,-0.7 2.8,0 0,1.9 -1.9,0.4 z",HR:"m 371.73,131.79 -1.3,-0.9 -0.3,-0.2 0.4,0.2 1.1,0.6 0,0.1 z m -9.4,-7.2 3.3,0.1 0.6,-1.8 1.7,-0.7 1.6,1.3 3,0.1 0.2,1.8 0,0.7 -4,-1 -2.2,0.3 0.8,2.2 2.6,3 -1.7,-0.4 -3.5,-2.5 0,-2.2 -1.7,0.7 z",BZ:"m 165.63,183.49 0.5,-0.1 1.1,-1.2 0.2,3 -1.4,2.1 -0.6,0 z",ZA:"m 397.83,270.09 0.4,0 1.1,0 -1,3.5 -2.3,2.1 -1.5,2.7 -2.9,3 -3.4,2.7 -4.3,1.4 -4.4,-0.4 -1.3,0.7 -4.3,0.9 -2.2,-2 -1.3,-2.1 0.9,-0.4 -0.2,-2 -1.7,-2.9 -1.6,-3.6 1.2,-1.2 0.6,1.4 3.3,0.5 1.6,-1.1 0,-7.5 1.7,2.8 -0.3,1.6 1.9,-0.1 2,-1.8 0.6,-1.4 3.4,1.1 1.5,-0.4 0.5,-1.8 1.9,-0.9 0.3,-1.3 2.3,-2 2.2,-0.9 1.9,0.3 1.8,0.1 1.3,4.1 -0.1,3.1 -1,-0.5 -1.1,1.4 0.6,1.6 z m -7.6,3.8 -2.2,1.9 2,2.2 2.6,-2.8 -1.5,-1.6 z",CF:"m 380.03,196.89 1.5,2.1 -0.3,2 1.4,0.2 2.2,2.6 2,1.3 0.1,1.1 1.9,1.9 -3.5,-0.6 -5.9,2.3 -3.7,-0.4 -1.7,-1.4 -2.2,1.5 0.1,1.7 -2.2,-0.5 -1.7,0.5 -0.7,2.3 -0.2,-1.1 -1.8,-1.8 -1.5,-4.3 2.1,-2.9 2.5,0 3.5,-1 0.9,-1.8 2.6,-0.3 3.9,-3.5 z",SD:"m 382.63,201.19 -1.4,-0.2 0.3,-2 -1.5,-2.1 -1.2,-3.5 -0.3,-2 0.9,-0.7 1.1,-3 1.7,-0.1 0,-7.4 0,-1 1.9,0 0,-4 12,0 10.8,0 0.8,2.4 0.4,4.2 2.1,1.4 -3.1,1.8 -1.1,3.8 0.2,1.7 -0.8,3 -0.8,0.1 -1.6,3.7 -0.5,-0.3 -1,2.7 -1.7,-2.6 0.1,-2.7 -2.2,0.4 0.6,1.9 -2.2,2.4 -2.4,-0.9 -2.2,1.8 -4.4,-0.4 -1.4,-1.7 -1.4,0.2 z",CD:"m 392.23,224.09 -0.2,3.3 0.8,3.1 2,2.9 -3.2,0.5 -1.1,1.2 0.4,0.6 0.3,0.8 -0.6,3.1 1.3,1.8 1.4,-0.4 0,2.5 -1.1,0 -3.9,-3.6 -0.9,0.8 -2.6,-0.7 -0.1,-0.9 -1.9,0.4 -0.6,-1 -3.3,0.8 -0.2,-2.6 -0.7,-1 0,-4.1 -4.3,-0.5 -0.4,1.9 -3.3,0.2 -1.2,-1.5 -0.7,-2.7 -6.6,-0.1 -1.4,0.4 -0.4,-0.6 0.4,-1.3 1.2,-0.8 2.5,-0.7 0.9,1 2.6,-2.8 0.1,-2.3 2.9,-3 0.6,-5.1 1,-2.5 -0.1,-1.7 2.2,-1.5 1.7,1.4 3.7,0.4 5.9,-2.3 3.5,0.6 1.8,1.5 2.7,-0.5 2,2 -0.2,2 1,0.5 -1.4,1.3 -0.1,0.5 -1,0.8 -0.5,1.7 -0.7,0.8 0.6,0 -0.1,0.8 0,0.9 -0.4,0.3 -0.3,0.3 -0.5,0.5 -0.1,1 0,0.3 0.2,0.1 0.4,0.7 z",KW:"m 429.03,161.99 -1.9,-1 -1.7,-0.2 1.1,-1.8 1.6,-0.1 0.3,1.4 z",DE:"m 353.93,119.39 0,0 0,0 z m -1,-18.4 0.3,0 1.1,0.3 3.9,2.3 2,-1.5 2.2,-0.3 0.7,1.4 0.4,0.4 -0.1,0 0.1,0.1 -0.3,-0.3 0.4,0.8 -0.3,2.2 1,0.7 0.3,4.4 -4.4,1.2 -0.2,1.6 2.7,2.4 -2,1.6 0.5,1.5 -1.6,-0.5 -2.3,0.7 -2.4,-0.3 -1.3,-0.7 0.3,0.4 -1.4,0.2 -1.7,0 1.2,-3.4 -3.6,-1.2 0.3,-0.9 -0.7,-0.8 0.5,-0.4 -0.7,-1.2 0.7,-2.7 1.2,-1 0.4,-2.6 0.2,-1.3 2.4,0.5 0.8,-0.9 z",BE:"m 347.83,111.69 0.7,1.2 -0.5,0.4 -0.8,0.6 0.2,0.9 -3.2,-1.1 -3.1,-2.8 1.2,-0.6 0.4,-0.1 0.9,0.4 0.8,-0.4 0.1,0.1 -0.1,-0.1 1.5,-0.3 z",IE:"m 322.43,100.59 -1.8,1.6 1.7,0.9 2,0 0.5,3 -0.7,2 -2.3,0.3 -2.2,1.3 -2.1,0.3 -1.2,-1.2 2.9,-3.5 -2.1,-0.3 0.3,-2.5 2.4,0.2 0.6,-2.4 z",KP:"m 586.53,132.09 -2,1.7 0.1,1.6 -4.2,2.5 -0.1,1.3 1.7,1.2 -2.3,0.7 -0.9,1 -2.1,-0.4 -0.4,0.8 -1.1,-1.9 1.3,-1.8 -2.1,-1.7 3.1,-1.8 1.2,-1.8 2.9,0.7 -0.2,-1.4 3.2,-1.1 0.3,-1.2 1.3,1 0.2,0.3 z",KR:"m 578.83,142.09 0.9,-1 2.3,-0.7 1.9,2.9 0.2,3.9 -1.6,1.7 -1,-0.4 -1.1,1.1 -2.2,-0.4 z",GY:"m 221.43,201.49 1.7,1 3.7,3.7 -0.1,1.1 -1.6,2.5 3,4.3 -1.2,-0.2 -3.2,1.6 -1.8,-1.3 -0.5,-1.6 0.9,-2.3 -0.9,-2.2 -1.4,-0.2 -1.2,-1.4 0.3,-1.2 1.7,-1.1 -0.4,-1.3 z",HN:"m 167.43,187.59 4.4,-0.5 3.1,0.3 2.2,1.6 -3.2,0.4 -1.8,1.6 -1.9,0.4 -1.1,1.5 -0.4,-0.5 -0.6,-0.3 0.3,-0.8 -3.2,-1.1 0.4,-1.3 z",MM:"m 512.93,177.09 0.7,-0.5 -0.1,-1.3 1.2,-0.8 0.2,-3.3 1.5,0.3 1.8,-3.8 0,-1.5 3.2,-1.8 1.2,-1.8 0.4,-0.6 2.2,1.9 0,3.5 -1.9,1.7 -0.1,2.4 1.8,-0.4 0.6,1.8 1.2,0.2 -0.7,1.8 1.5,0.2 0.5,1.3 1.9,-0.3 -0.9,0.5 -1.2,2 -3,1.3 -0.9,-0.3 -1.2,2.6 2.7,4.6 -1.1,2.6 1.7,2.1 0.9,3.7 -1.7,2.8 -0.3,-5.5 -1.5,-3.2 -0.3,-2.8 -0.8,-1.4 -3.4,2.5 -2.4,-0.6 0.8,-2.9 -1.2,-3.7 -1.8,-1.2 z",GA:"m 355.03,215.89 3,0 0,-2.3 0,-0.2 3.7,0.3 -0.1,1.7 2.4,0.6 -1.2,2.2 1.2,0.7 -0.7,3.6 -3.2,-1.1 -1.7,0.8 0.5,2.6 -1.3,0.5 -3.6,-4 -1.1,-2.4 1.1,-0.3 0.1,-1.9 z",GQ:"m 358.03,213.59 0,2.3 -3,0 -0.8,-0.4 0.8,-2.2 0.4,0.3 z",NI:"m 172.23,196.59 -3.7,-3.4 0.6,-0.3 1.1,-1.5 1.9,-0.4 1.8,-1.6 3.2,-0.4 -1.4,7 0.4,0.9 -1.3,-0.1 z",LV:"m 388.63,93.89 0.6,1.9 1,1.9 -1.1,0.9 -1.9,0.4 -3.3,-2.1 -0.8,0.5 -4.5,-0.5 -2,1 0,-2.1 1.3,-2 1.7,-0.5 2,2.1 1.4,-0.7 -0.2,-1.7 1.9,-0.6 2.3,1.5 z",UG:"m 397.23,219.69 0,-0.1 0,0.1 z m -4.3,0.7 0,-0.9 0.1,-0.8 0.5,-0.6 -0.4,-0.2 0.5,-1.7 1,-0.8 1.8,-1.3 -0.3,-0.5 -1,-0.5 0.2,-2 5.1,-0.5 0.9,-0.9 1.8,3.4 0.1,1.5 -1.8,2.7 -2.7,0.2 -1.6,2.2 -1.8,0 -0.7,0.1 -1,0.8 z",MW:"m 403.13,239.59 0,-0.1 0,0 z m -0.3,-0.3 0,0 0,-0.1 0,0.1 z m -0.9,-3 -0.2,-0.2 0,0 z m -0.4,-0.4 0,0 0,0 z m -2.2,-0.2 0.9,0.4 1,0.2 0.8,3.8 0,3.2 1,0.3 1.9,2.2 -0.1,2.7 -1.3,1 -1.7,-1.3 0.2,-2.9 -1.3,0.4 -0.9,-1.1 -0.7,-0.6 1,-2.3 -0.2,-3.2 0.8,-0.5 z",AM:"m 425.33,139.79 -0.2,-0.1 -0.5,0.1 -0.7,-1.5 -1.9,-0.3 -2.1,-1 -0.5,-2.2 1.5,-0.3 1.5,-0.1 1.9,2.4 -0.6,0.4 z m -2.8,-4.9 0,0 -0.1,0 0,0.1 z m 0.4,0.2 -0.1,-0.1 0,0 0,0.1 z m 0.5,0.8 0,0 0.1,-0.1 -0.1,0 z",SX:"m 419.13,195.79 1.9,2 2.9,-0.8 1.3,0.4 1.8,-1 3,-0.1 0,3.4 -1.9,2.8 -1.9,0 -5.6,-1.9 -2.7,-3.1 0.6,-0.7 z",TM:"m 445.53,132.89 1.5,0.6 -0.4,-1.1 1.8,-1.5 2.5,1.1 0.4,2.1 3.6,0.9 0.9,2.3 6.1,3.9 1.8,0.5 -0.1,1.5 -1.4,-0.5 -1.9,1.1 -0.6,1.8 -4.2,2.4 -1.9,-1 -0.2,-2.1 -1.6,-0.1 -2.9,-2.4 -2.8,-0.6 -0.3,-0.6 -3.4,0.4 -2.9,1.6 0.1,-3.5 -0.8,-2.3 -1.6,-0.2 0.4,-2.1 1.5,0.8 1.9,-1.1 -1.5,-2.2 -0.8,-0.1 0,0 1.3,-0.5 2.6,2.4 0.9,-0.1 1.9,0.1 z m -7.6,-0.1 0.2,-0.3 0.6,0 0,0 -0.8,0.3 0,0 z m 0,0 -0.5,1.3 -0.7,-0.8 1.2,-0.5 0,0 z",ZM:"m 390.93,235.69 1.2,-1.4 -0.5,-0.4 3.2,-0.5 0.9,1.1 0.2,-0.4 1.6,1 1.8,0.6 1.4,2.3 -0.8,0.5 0.2,3.2 -1,2.3 0.7,0.6 -5.7,1.9 0.4,1.3 -3,0.8 -0.2,0.9 -1.2,0.6 -1.1,0.6 -1,1.6 -0.6,0.2 -2.8,-0.5 -2,-0.6 -1.6,0.3 -2.6,-2.9 0,-6.2 3.8,0 0,-4.1 0.6,1 1.9,-0.4 0.1,0.9 2.6,0.7 0.9,-0.8 3.9,3.6 1.1,0 0,-2.5 -1.4,0.4 -1.3,-1.8 0.6,-3.1 z",NC:"m 401.23,148.19 -0.3,0 -0.1,0 -0.6,-0.3 -1.2,0 0,0 0,0 0,0 -0.1,0 0,0 3.6,-1.1 -1.1,1.4 z m -2.5,-0.3 0.1,0 -0.1,0.1 z",MR:"m 319.73,164.49 6,3.8 1.3,0.9 -3.3,0 2,18.9 -10,0.1 -1.9,-0.2 -1,1.5 -4,-3.7 -3.8,0.4 -0.4,1.2 1,-4.2 -1,-2.8 0.7,-1.6 -1.7,-1.1 0.2,-1.1 7.6,0 0,-3.4 1.9,-0.9 0,-5.1 6.3,0 z",DZ:"m 327.03,169.19 -1.3,-0.9 -6,-3.8 0,-0.7 0,-2.1 1.9,-1.5 3.7,-0.5 4,-2.3 0,-1.9 2.2,-1.1 2.4,0.1 0.4,-0.9 -1.2,-1.5 -0.2,-3.2 -0.9,-0.8 6.3,-3 3.6,-0.7 3.5,-0.2 0.9,0.5 4.1,-0.9 2.3,0.3 -0.4,1.1 -0.3,3.9 -1.4,1.6 1.6,2.9 1.4,1 0.9,3.8 0.6,2.3 0,5.4 -0.8,0.8 1.2,2.6 2.9,1.1 0.8,1.6 -8.6,5.3 -3.2,2.8 -3,0.6 -2.2,0 0.2,-1.3 -2.5,-0.8 -1.4,-1.8 z",LT:"m 377.03,100.09 -0.2,-1.2 -0.2,-1 2,-1 4.5,0.5 0.8,-0.5 3.3,2.1 0.3,0.9 -1.7,1 -0.8,1.7 -2,1.1 -1.8,-0.1 0,-0.6 -1.3,-0.5 0.1,-1.4 z m -0.7,-0.1 0.3,-0.6 -0.1,0.6 z",ET:"m 416.33,196.19 -0.2,0.2 0.2,0.2 0.3,0.3 1.9,-0.1 -0.6,0.7 2.7,3.1 5.6,1.9 1.9,0 -5.8,5.9 -1.8,-0.1 -4,1.9 -2.2,-0.6 -2.3,1.7 -2.8,-0.4 -2.4,-1.6 -1.7,-0.3 -2.3,-3.9 -2,-1.9 -1.2,-0.3 0.3,-1.3 1.4,0.1 0.2,-2 1,-2.7 0.5,0.3 1.6,-3.7 0.8,-0.1 0.8,-3 2.6,-1.2 5.7,1.5 2.9,3.1 -1.2,1.8 z",ER:"m 417.43,193.89 -2.9,-3.1 -5.7,-1.5 -2.6,1.2 -0.2,-1.7 1.1,-3.8 3.1,-1.8 2.1,5.6 2.8,0.9 3.7,3.8 -0.8,0.6 z",GH:"m 338.53,206.19 -6.2,2.6 -2,-0.7 0,-0.1 0.3,0.1 0.2,-0.1 -0.7,-3.3 1.4,-2.6 -0.4,-2.4 -0.1,-2.9 5,-0.3 1,1.8 0.3,6.4 z",SI:"m 362.33,124.59 0,-0.1 0.2,-0.1 -0.6,-1.7 0.6,-0.6 1.6,0.4 3,-1.2 0.3,0 0.5,0.9 -1.7,0.7 -0.6,1.8 z",GT:"m 166.03,187.29 0.6,0.3 0.8,0 -1.8,1.3 -0.4,1.3 -1.5,1.1 0.1,0.2 -2.4,-0.4 -1.7,-1.2 0.9,-2.9 2.6,-0.6 -2,-1.8 0.9,-1.1 3.5,0 -0.2,3.8 z",BA:"m 370.13,130.69 -0.2,-0.1 0,0 -2.6,-3 -0.8,-2.2 2.2,-0.3 4,1 0.7,-0.1 -0.4,3.2 -1.4,1.3 0,1 -1.1,-0.6 z",JO:"m 404.13,156.59 0.2,-0.2 -0.2,-0.1 -0.1,0 0.1,-0.2 0.2,0 0.1,-0.9 0,-1.8 0.3,-0.3 2,1 3.8,-2.3 0.6,1.9 0.1,0.8 -4.2,1.3 2,2.1 -3.7,2.7 -2.1,-0.3 0.1,-0.4 -0.1,-0.1 0.4,-1.8 z",SY:"m 410.53,151.79 -3.8,2.3 -2,-1 0.3,-0.4 -0.1,-1 1.5,-1.7 -1.3,-0.9 -0.1,-1.7 0,-1.1 1.4,-2 3.1,-0.1 2.9,0.3 4.7,-1.3 0.3,0.5 -1.9,1.3 -0.3,3.8 -1,1 z",MC:"m 350.53,128.69 0,0.1 -0.1,0 0.1,-0.1 z",AL:"m 376.43,135.29 0,0 0,-0.1 z m -3,-2.8 0,-0.3 0,-0.2 0.6,-0.8 0.7,0.3 0.8,0.8 0.2,0.7 -0.3,0.8 0.4,1 0,0.4 0.2,0 0.2,0 0.2,0 -0.1,0.1 0.1,0 0,0.1 -0.1,0.1 0.1,0 0,0.1 0.1,0.1 0,0.1 0,-0.1 -1.2,2 -0.7,0.3 -1.4,-2.2 0.2,-2.7 -0.1,-0.3 z m 0,-0.4 0,0 -0.1,0 z",UY:"m 234.53,282.19 -0.9,1 0.2,0.9 0,0.2 0.3,0.2 -0.8,1.4 -2.2,1.2 -2.3,0 -3.3,-1 -1,-1.2 0.3,-3.1 0,-1.2 1.2,-3.6 1.5,-0.2 1.5,2.1 0.8,-0.5 z",CNM:"m 401.43,148.19 0,0 0,0 -0.2,0 0,0 z m -2.7,-0.3 0,0 0,0.1 0.1,-0.1 0,0 0,0.1 z m 0.2,0 0,0 0,0 0.1,0 0,0 z m 1.9,0.3 0,0.1 0,0 -0.5,-0.3 -1.3,-0.1 0,0 1.2,0 z", -MN:"m 561.33,119.09 0.7,-0.2 -0.3,-0.3 1.5,0 2.6,2.6 -0.4,0.8 -2.7,-0.3 -3.2,1 -1.8,2 -2.1,0.2 -1.8,1.5 -3.1,-0.8 -1.1,1.5 1,1.7 -4.7,2.9 -5.2,0.4 -3,1.2 -2.8,0 -3.3,-1 -0.7,-0.7 -10.1,-0.5 -1.9,-3.7 -3.6,-1.5 -5,-0.6 0.3,-3.3 -1.4,-2.6 -2.4,-0.8 -2.1,-1.5 -0.3,-1.4 8.7,-4.2 3.6,0.7 0.7,1.4 5.2,0.7 1.9,-2 -1,-1.2 2.1,-2.9 6.3,2.1 0.2,1.8 2.7,1.2 3.1,-0.9 5,1.4 1.2,1.5 4.2,0.5 4.4,-1.2 2.4,-1.7 2.1,1 2.5,0.2 -2.3,4.1 0.7,1.1 z",RW:"m 391.83,222.89 -0.2,-0.1 0,-0.3 0.9,-0.9 -0.3,-0.6 0.3,-0.3 0.4,-0.3 0.7,0.2 1,-0.8 0.7,1 -0.5,1.5 -1.3,0.5 z",SO:"m 416.53,210.19 4,-1.9 1.8,0.1 5.8,-5.9 1.9,-2.8 0,-3.4 4.5,-1.1 -0.9,4.5 -5.5,9.6 -3.7,3.8 -4.9,3.5 -3.7,4.4 -1.1,-1.6 0,-7 z",BO:"m 204.03,248.89 -0.1,-0.3 0.3,0.3 -0.1,0 z m -0.8,2.5 -0.3,-0.4 1.2,-1.5 0.9,-0.4 -1.5,-1.6 0.9,-2.6 -0.4,-1 0.8,-2.2 -1.7,-3 2.4,0 3.2,-2 2.3,-0.5 0.1,2.9 1.9,2.5 2.5,0.4 2.4,1.7 2.6,0.5 0.6,4.8 3.2,0.1 0.2,1.8 1.6,1.8 -1.2,3.9 -1.8,-1.7 -5.1,0.7 -0.9,1.8 -0.8,3.4 -2.4,-0.5 -0.8,1.7 -0.5,-1.3 -3.1,-0.8 -1.9,2 -1.3,0 -0.6,-3 -1.1,-1.7 0.6,-2 -1,-1 z",CM:"m 361.73,213.69 -3.7,-0.3 0,0.2 -2.6,0 -0.4,-0.3 -0.3,-2.9 -2,-1.8 0.5,-1.9 3.3,-2.5 1.4,1.3 1.8,-3.6 4.7,-7.4 -1.2,-1.7 0.5,-0.1 -0.1,0.4 0.4,-0.1 1.3,2.7 -0.2,1.5 1.2,1.5 -2.9,0 -0.4,0.7 2.3,2.2 0.6,1.8 -2.1,2.9 1.5,4.3 1.8,1.8 0.2,1.1 -0.1,1 -3,-0.9 z m 2.1,-21 0,0.1 0,-0.1 z",CG:"m 361.73,213.69 2.5,-0.1 3,0.9 0.1,-1 0.7,-2.3 1.7,-0.5 2.2,0.5 -1,2.5 -0.6,5.1 -2.9,3 -0.1,2.3 -2.6,2.8 -0.9,-1 -2.5,0.7 -0.6,-0.5 -1.4,1.2 -0.4,-0.8 -1.3,-1.2 1.3,-0.5 -0.5,-2.6 1.7,-0.8 3.2,1.1 0.7,-3.6 -1.2,-0.7 1.2,-2.2 -2.4,-0.6 z",EH:"m 303.63,177.69 -0.1,-0.2 0.2,-1.1 4.2,-0.1 1.2,-1.7 0.3,-2.2 3.1,-2.9 0.7,-2.4 1.3,-1.7 3.1,0 1.8,-0.5 0.3,-1.1 0,0.7 -0.1,2.7 -6.3,0 0,5.1 -1.9,0.9 0,3.4 -7.6,0 z",RS:"m 373.03,129.19 0.4,-3.2 -0.7,0.1 0,-0.7 -0.2,-1.8 1.2,-0.6 1.3,0.1 2.4,2.3 -0.2,0.9 2.5,1.3 -0.6,1 1.1,1.6 -1.1,1.8 -0.8,0 -0.7,0.2 0.3,-1 -1.9,-1.4 -0.8,1 -1.4,-0.8 z",ME:"m 373.03,129.19 0.8,0.8 1.4,0.8 -0.6,0.3 0.1,0.4 -0.7,-0.3 -0.6,0.8 0,0.1 -0.1,0 -0.4,0 0.5,0.4 -0.1,0.3 0.1,0.3 -1.2,-1 -0.5,-0.3 -0.1,-0.2 0,-0.1 0,-1 z",TG:"m 338.03,196.79 1.3,3.7 0.1,5.4 -0.4,0.1 -0.5,0.2 -1.2,-1.5 -0.3,-6.4 -1,-1.8 1.2,0.3 z",LA:"m 542.13,189.59 -1.3,0.8 -3.1,-0.1 0.8,-2.7 -1.7,-1.6 0.2,-1.6 -1.6,-1.9 -1.2,-0.2 -1.5,1.2 -1,-0.8 -1.8,1.5 0.2,-4 -1.5,0 -0.7,-1.6 1.2,-2 0.9,-0.5 1,0.9 -0.4,-2.3 1.2,-0.3 1.6,1.7 0.3,1.4 1.8,-0.2 1.7,1.8 -2.1,1.5 1.7,1 3.4,3.5 2.2,3.4 z",AF:"m 479.73,143.39 -1,0.3 0.3,0.2 -3.8,0.4 -2.7,1.7 0.9,1.9 -1.1,2.4 -2,0.1 0.6,1.5 -1.5,0.5 -0.4,2.5 -2.3,0.2 -3.4,1.9 -0.3,2.3 -4,0.9 -3.1,0 -3.1,-1 1.8,-2.1 -0.2,-1.1 -1.7,-0.2 -0.5,-3.3 1.4,-5.5 1.9,1 4.2,-2.4 0.6,-1.8 1.9,-1.1 1.4,0.5 1.4,0.3 1,0 2.9,0.2 1.6,-0.9 0.9,-1.8 2,1 0,2.6 3.2,-1.7 z",UA:"m 378.73,117.59 0.3,-0.7 0.4,-1 0.2,-1.1 2.8,-2.5 -0.9,-2.5 1.5,-0.9 2.6,-0.1 2.9,0.8 3.9,0.6 2.3,-0.5 0.8,-1.3 1.6,-0.1 3.9,-0.6 1.2,1.5 -0.5,1.3 1.7,0.1 1.1,2.2 3.4,-0.2 3.4,1.4 1.8,1.5 -0.8,1.2 0.1,2.3 -1.8,-0.1 -1.2,1.8 -4.4,1.1 -2.1,1.2 1.5,2.5 -3.1,1.7 -2.1,-2.9 1.7,-0.7 -3.9,-0.7 1.2,-0.6 -2.3,-0.4 -2.6,2.4 -0.2,1 -1.7,-0.1 -1.1,-0.5 1.4,-2.4 2.2,0.2 -1.9,-2.8 0.3,-0.8 -2.9,-1.4 -2.2,0.4 -2.6,0.9 -4.5,-0.1 -0.5,-0.4 z m 15.3,4.9 0.5,0.7 0.2,-0.2 -0.6,-0.6 z m 7.4,0.7 1.8,1 -0.3,-0.9 -1.2,-0.6 z",SK:"m 379.43,115.89 -0.4,1 -0.3,0.7 -3.2,-0.3 -1.1,0.9 -4,1 -1.3,-0.6 -0.6,-0.9 0.2,-0.6 2.2,-1.2 1.4,-1.1 5.8,0.4 z",JK:"m 485.23,147.19 -1.4,0.9 -0.5,-1.2 1.1,0.4 z",BG:"m 391.03,128.69 -1.7,3.1 0.6,1 -1.8,-0.2 -1.4,0.8 -2.1,1.1 -1.4,-0.8 -3,0.6 0.1,-1 -1.2,-1.3 1.1,-1.8 -1.1,-1.6 0.6,-1 1.2,0.8 3.9,0.5 3.2,-1.2 z",QA:"m 433.63,169.69 -0.2,-1.5 1.6,-0.8 -0.7,2.6 -0.4,0.1 z",LI:"m 354.53,120.39 0.2,0.3 -0.1,0.2 -0.2,-0.1 z",AT:"m 354.63,120.89 0.1,-0.2 -0.2,-0.3 0.3,-0.4 -0.2,-0.2 0.2,0 0.1,-0.1 2.4,0.3 2.3,-0.7 1.6,0.5 -0.5,-1.5 2,-1.6 1.7,0.4 0.5,-0.9 3.8,0.9 -0.2,0.6 0.6,0.9 -1.1,0.6 -0.9,2.1 -3,1.2 -1.6,-0.4 -2.5,-0.4 -0.4,-0.9 -3.3,0.5 -0.7,0.1 z",SZ:"m 397.43,268.29 0.2,0.6 0.2,1.2 -1.9,0.7 -0.6,-1.6 1.1,-1.4 z",HU:"m 378.73,117.59 0.9,0.7 0.5,0.4 -1.7,1.1 -1.6,2.9 -1.8,0.4 -1.3,-0.1 -1.2,0.6 -3,-0.1 -1.6,-1.3 -0.5,-0.9 -0.3,0 0.9,-2.1 1.1,-0.6 1.3,0.6 4,-1 1.1,-0.9 z",RO:"m 379.73,127.59 -2.5,-1.3 0.2,-0.9 -2.4,-2.3 1.8,-0.4 1.6,-2.9 1.7,-1.1 4.5,0.1 2.6,-0.9 0.8,0.3 2.4,3.7 -0.1,2.8 1.1,0.5 1.7,0.1 -2,2.1 -0.1,1.3 -3,-1 -3.2,1.2 -3.9,-0.5 z",NE:"m 343.23,195.39 -1.5,-1.3 -0.8,0.9 -0.4,-1.3 -2.3,-0.9 -1.5,-3.6 2.1,-0.7 4.2,-0.2 1.3,-2 0.1,-5.4 3,-0.6 3.2,-2.8 8.6,-5.3 2.9,0.7 1.4,1.1 1.5,-0.8 0.3,3.1 1.6,2.2 -0.5,0.9 -0.5,5.9 -3.9,4.9 0.3,1.3 -2.1,1.3 -2,-0.6 -2.5,0.2 -1,0.8 -3.4,-1 -1.7,0.7 -2.8,-1.7 -2.6,0.8 z",LU:"m 348.43,114.99 -0.7,0 -0.3,-0.2 -0.2,-0.9 0.8,-0.6 0.7,0.8 z",AD:"m 339.03,131.39 0.6,-0.1 -0.1,0.3 -0.3,0.2 z",CI:"m 331.13,199.69 0.4,2.4 -1.4,2.6 0.7,3.3 -5.7,0.2 -3.3,1.3 0.1,-2.8 -2.1,-1.3 0.2,-2 1.2,-3.6 -0.2,-1.4 3.3,-0.2 1.4,-0.3 1.6,1.4 2.8,-0.5 z m -0.8,8.4 -0.3,-0.1 0.3,0 z",LR:"m 320.03,203.39 -0.2,2 2.1,1.3 -0.1,2.8 -3.3,-1.5 -4.2,-3.4 1.7,-1.6 0.6,-1.4 1.5,0.3 0.7,2.2 z",BN:"m 556.53,208.59 0.2,-0.1 0,-0.1 0.4,1.2 z m -2,0.4 1.1,-0.2 0.8,-0.3 -0.7,1.6 z",IQ:"m 429.23,158.99 -0.8,-0.2 -0.3,0.1 -1.6,0.1 -1.1,1.8 -3.6,-0.2 -5,-3.9 -3.1,-1.8 -2.5,-0.4 -0.1,-0.8 -0.6,-1.9 3.7,-2 1,-1 0.3,-3.8 1.9,-1.3 0.7,-0.5 3.9,0.4 1,2.6 2,0.4 -1.8,3.9 1.7,2.2 2.1,1.2 0.9,1.3 -0.3,1.6 z",GE:"m 422.43,134.39 -1.5,0.1 -1.5,0.3 -1.2,-1.1 -2.4,0.2 -0.1,-2.6 -2.9,-1.8 5.5,0.6 2.1,1.4 1.7,-0.4 3.1,1.9 0.1,1.9 z",GM:"m 304.23,192.79 -0.1,-0.6 0.5,-0.4 3.2,-0.4 -1.8,1.2 z",CH:"m 353.93,119.39 0,0 0,0 0,0 0.6,0.4 0.1,0 0.2,0.2 -0.3,0.4 -0.1,0.4 0.2,0.1 1,0.5 0.7,-0.1 -0.9,1.2 -2.2,0.7 -1.5,-0.4 -2,0.8 -0.5,-0.5 0.1,-0.7 -0.3,-0.3 -0.5,0.4 -0.3,0.2 -0.2,-0.7 2.8,-2.4 1.7,0 z",TD:"m 364.03,192.99 0.6,-0.2 -0.8,-0.1 0,0 -0.2,-0.1 0.1,0.1 -0.5,0.1 -0.9,-1.3 -0.3,-1.3 3.9,-4.9 0.5,-5.9 0.5,-0.9 -1.6,-2.2 -0.3,-3.1 1.9,-0.9 15.3,7.9 0,7.4 -1.7,0.1 -1.1,3 -0.9,0.7 0.3,2 1.2,3.5 -0.7,-0.1 -3.9,3.5 -2.6,0.3 -0.9,1.8 -3.5,1 -2.5,0 -0.6,-1.8 -2.3,-2.2 0.4,-0.7 2.9,0 -1.2,-1.5 0.2,-1.5 z",KV:"m 375.73,132.99 -0.2,-0.7 -0.8,-0.8 -0.1,-0.4 0.6,-0.3 0.8,-1 1.9,1.4 -0.3,1 -0.9,0.1 z",LB:"m 403.53,152.39 0.9,-1.7 0.7,-1.6 1.3,0.9 -1.5,1.7 -0.7,0.7 z",DJ:"m 418.53,196.79 -1.9,0.1 -0.3,-0.3 0.2,-0.2 -0.2,-0.2 -0.1,-0.5 1.2,-1.8 0.6,0.2 0.8,-0.6 0.5,1.4 -0.2,0.9 z",BI:"m 393.13,226.19 -0.6,-1 -0.3,-1.1 0,-0.5 -0.4,-0.7 1.7,-0.1 1.3,-0.5 0.5,1.6 z",SR:"m 231.73,213.29 -2.6,-0.3 -1,1.1 -3,-4.3 1.6,-2.5 0.5,-1 5.6,0.4 -0.2,0.9 -0.6,0.8 0.9,2.8 z",IL:"m 401.83,156.19 1.2,-2.1 0.5,-1.7 0.7,0 0.7,-0.7 0.1,1 -0.3,0.4 -0.3,0.3 0,1.8 -0.4,0.5 0.1,0.4 -0.1,0.2 0.1,0 -0.1,0.2 0.1,0.1 -0.5,1.4 -0.4,1.8 -0.1,0.2 0,0 -0.1,-0.5 z",ML:"m 325.73,197.89 -1.4,0.3 -3.3,0.2 -0.8,-2.3 -1.5,-2.2 -2.9,1.1 -1.3,-0.9 -1.4,-2.6 -0.3,-2 1,-1.5 1.9,0.2 10,-0.1 -2,-18.9 3.3,0 11.5,7.8 1.4,1.8 2.5,0.8 -0.2,1.3 2.2,0 -0.1,5.4 -1.3,2 -4.2,0.2 -2.1,0.7 -1.8,-0.3 -2.7,1.8 -1.4,0.2 -1.3,1.7 -1,-0.5 -1,2.4 -1.1,0.4 z",SN:"m 304.23,194.19 -0.1,-0.9 0.1,-0.5 1.8,-0.2 1.8,-1.2 -3.2,0.4 -1.1,-2.6 1.1,-1.8 0.4,-1.2 3.8,-0.4 4,3.7 0.3,2 1.4,2.6 -1.9,0.1 -2.6,-0.7 -2.8,0 z",GN:"m 314.53,194.09 1.3,0.9 2.9,-1.1 1.5,2.2 0.8,2.3 0.2,1.4 -1.2,3.6 -1.2,0.7 -0.7,-2.2 -1.5,-0.3 -1.9,-2.9 -2.4,0.3 -1.5,1.5 -1,-1.5 -2.3,-2.2 0.6,-1 1.9,-0.4 0,-1.9 2.6,0.7 z",ZW:"m 384.63,251.99 2.8,0.5 0.6,-0.2 2.1,-2.2 0,0 1.2,-0.6 0.2,-0.9 3,-0.8 4.9,2 0.1,3.3 -0.5,2.2 0.5,1.1 -1.2,2.5 -2.1,2.2 -1.8,-0.1 -1.9,-0.3 -2.6,-1.2 -0.6,-2.2 -3,-2 z",PL:"m 373.83,102.19 -0.4,0.5 0.7,-0.5 5.6,0.3 0.2,0 1.3,0.5 0,0.6 0.8,3.3 -1.4,0.9 0.9,2 0.9,2.5 -2.8,2.5 -0.2,1.1 -1.3,-0.7 -5.8,-0.4 -0.5,-0.9 -4.1,-1.7 -3.1,-0.7 -0.3,-4.4 -1,-0.7 0.3,-2.2 0.7,-0.4 -0.8,-0.1 -0.1,-0.1 0.1,0 3.7,-1 0.8,-0.7 3.3,-0.7 0.6,1.1 1.9,-0.1 z",MK:"m 376.43,135.29 0,0 0,0.1 z m 2.7,-3.3 1.2,1.3 -0.1,1 -2,0.5 -1.5,0.6 -0.3,-0.4 0,0.3 0,-0.1 0,0 -0.2,0 -0.2,0 0.1,-0.4 -0.3,0 -0.4,-1 0.3,-0.8 1,-0.7 0.9,-0.1 0.7,-0.2 z",PY:"m 232.43,264.39 -0.3,0.8 -0.4,2 0.1,0.2 -0.1,0.1 -0.3,2.2 -1.9,1.6 -5.4,-0.2 2,-3.9 -4.8,-2.9 -1.8,-0.4 -3.2,-3.1 0.8,-3.4 0.9,-1.8 5.1,-0.7 1.8,1.7 0.7,1.6 -0.3,2.2 3,0.1 1.5,1.1 0.4,2.6 z",BY:"m 381.53,109.79 -0.9,-2 1.4,-0.9 -0.8,-3.3 1.8,0.1 2,-1.1 0.8,-1.7 1.7,-1 -0.3,-0.9 1.9,-0.4 1.1,-0.9 5.2,1.4 1.7,4.8 1.8,1 -2.8,1.1 1,2.3 -1.6,0.1 -0.8,1.3 -2.3,0.5 -3.9,-0.6 -2.9,-0.8 -2.6,0.1 z",CZ:"m 372.33,114.79 -1.4,1.1 -2.2,1.2 -3.8,-0.9 -0.5,0.9 -1.7,-0.4 -2.7,-2.4 0.2,-1.6 4.4,-1.2 3.1,0.7 4.1,1.7 z",BF:"m 338.03,196.79 -0.8,0 -1.2,-0.3 -5,0.3 0.1,2.9 -1,-0.9 -2.8,0.5 -1.6,-1.4 0.7,-3 1.1,-0.4 1,-2.4 1,0.5 1.3,-1.7 1.4,-0.2 2.7,-1.8 1.8,0.3 1.5,3.6 2.3,0.9 0.4,1.3 -1.9,0.9 z",NA:"m 381.03,251.69 1.6,-0.3 2,0.6 -3.2,1.3 -0.5,-0.9 -4.5,0.6 0.1,7.2 -2,0.1 0,5.5 0,7.5 -1.6,1.1 -3.3,-0.5 -0.6,-1.4 -1.2,1.2 -2.2,-2.6 -1.4,-5.6 -0.4,-4.6 -1.9,-2.9 -1.6,-3.5 -1,-1.1 -0.5,-2.5 2.7,-0.6 1.5,0.9 8.6,0 0.6,0.7 3.9,0.5 z",LY:"m 365.03,173.19 -1.5,0.8 -1.4,-1.1 -2.9,-0.7 -0.8,-1.6 -2.9,-1.1 -1.2,-2.6 0.8,-0.8 0,-5.4 -0.6,-2.3 1.4,-1.4 -0.3,-1.1 2.8,-2.2 -0.1,-1.5 1.6,0.8 1.9,-0.2 3.5,1.1 1.7,2.3 2.5,0.4 3.3,1.8 1.3,-0.5 0.3,-2.7 1.2,-1.7 2.1,-0.8 2.8,0.7 0,0.6 3.6,0.8 0.3,0.6 -0.9,3.1 0.6,2.1 0,14.6 0,4 -1.9,0 0,1 -15.3,-7.9 z",TN:"m 358.33,152.19 0.1,1.5 -2.8,2.2 0.3,1.1 -1.4,1.4 -0.9,-3.8 -1.4,-1 -1.6,-2.9 1.4,-1.6 0.3,-3.9 0.4,-1.1 2.2,-0.9 2.7,4.6 -1.9,2 0.4,1.3 1.4,-0.2 z",BT:"m 506.53,164.49 2.5,-2.2 2.7,1.3 0.9,1.7 -4.4,0.4 z",MD:"m 390.33,124.69 0.1,-2.8 -2.4,-3.7 -0.8,-0.3 2.2,-0.4 2.9,1.4 -0.3,0.8 1.9,2.8 -2.2,-0.2 z",SS:"m 401.33,209.69 -0.9,0.9 -5.1,0.5 -2,-2 -2.7,0.5 -1.8,-1.5 -1.9,-1.9 -0.1,-1.1 -2,-1.3 -2.2,-2.6 1.7,-3.1 1.4,-0.2 1.4,1.7 4.4,0.4 2.2,-1.8 2.4,0.9 2.2,-2.4 -0.6,-1.9 2.2,-0.4 -0.1,2.7 1.7,2.6 -0.2,2 -1.4,-0.1 -0.3,1.3 1.2,0.3 2,1.9 2.3,3.9 -1,-0.8 z",BW:"m 384.63,251.99 1.7,3.3 3,2 0.6,2.2 2.6,1.2 -2.2,0.9 -2.3,2 -0.3,1.3 -1.9,0.9 -0.5,1.8 -1.5,0.4 -3.4,-1.1 -0.6,1.4 -2,1.8 -1.9,0.1 0.3,-1.6 -1.7,-2.8 0,-5.5 2,-0.1 -0.1,-7.2 4.5,-0.6 0.5,0.9 z",BS:"m 191.33,169.99 -1.3,-1.4 0,0 0,0 0.5,0.3 0.8,1.1 z m 0,0 0.8,0.9 0.5,2.1 4.4,1.5 -4,-1 -2.2,-1.6 1.1,-1.1 -0.6,-0.8 z m -1.3,-1.4 -1.6,-1.2 -1.4,1.5 0.7,2.9 -1.3,-1.9 0.1,-1.1 1.9,-1.9 1.6,1.7 0,0 z",NZ:"m 661.13,313.49 -2.7,-0.1 -0.2,1.4 -0.8,-2.2 -1.8,0.1 -0.6,-1 0.9,-1.6 2.7,-2.6 2.6,-1.1 2.7,-2.2 1.9,-3.9 1.2,-0.9 0.7,1.8 1.4,-0.9 0.7,2.2 -3.4,4.3 -2.1,1.3 -1.3,3.3 z m 12.3,-12.7 -1.6,1.1 -1.2,-0.7 1.2,-2.3 -2.8,-2 1.6,-1.3 0.4,-2.3 -0.9,-2.5 -2.4,-3.1 1.5,-0.5 2.4,2.7 1.4,1.1 0.2,2 2.8,0.7 2.2,-0.5 -1.4,3 -0.9,-0.1 z",CU:"m 188.73,178.29 -3,-0.4 -1.1,-1.8 -2.4,-1 -2.6,-0.2 -0.1,-1 -1.7,-0.1 -3.3,1.9 0.2,-1.2 2.2,-1.3 2.3,-0.4 3.8,0.3 1.6,1.4 0.9,-0.3 0.8,0 3.4,2.7 3.5,1.1 0.9,1.1 -6.6,0.5 z",EC:"m 182.53,224.19 1,-1.4 -2.1,-0.6 0,-2.4 1.6,-2.1 -0.1,-1.3 2.5,-1.4 2.6,1.5 2.2,0.4 1.9,1.1 -0.5,2.7 -2.1,2 -3.2,1.5 -1.4,3.1 -2.8,-1.8 z",AU:"m 617.53,306.39 -1.6,0 -1.5,-2.2 -1.1,-3.5 0,-1.4 -1.2,-0.9 4.1,2.5 3.8,-1.3 0.1,2.7 -0.5,3.3 -0.9,-0.8 z m -1.4,-54.7 0.6,2.8 5.1,2.8 0.9,3.5 2.3,0.9 0.2,1.8 1.9,1.1 1.4,2.1 1.4,-0.3 -0.6,1.6 1,3.3 0.1,3 -2.1,7.5 -1.4,0.9 -3.1,6.5 -0.4,3.5 -3.2,0.7 -3.5,2 -2.9,-0.5 0.1,-1.3 -2.8,2.1 -2.2,-1.1 -3.3,-0.7 -1.8,-1.9 -0.3,-2.6 -1.1,-1 -4.4,1.1 1.2,-1 -0.6,-1.5 2,-3.8 -1.2,0 -3.4,3.9 -0.9,-2.3 -1.7,-1.5 -0.3,-1.5 -3.7,-0.9 -2.1,-1.2 -4.1,0.5 -3.2,1.2 -2.1,-0.1 -4,2 -1.1,1.6 -6.8,0 -3,2.1 -2.4,0.4 -2.3,-0.5 -1.9,-1.6 1.3,-1.7 0.1,-3.5 -1.4,-3 0,-1.6 -1.5,-2.8 -0.3,-1.6 -2.1,-3.2 1.1,-0.5 1.1,1.9 0.1,-1.4 -1.3,-2.5 0.4,-3.9 4.3,-3.1 3.5,-0.8 6.2,-2 2.6,-2.9 -0.3,-1.8 1.5,-1.3 1.1,1.8 0.1,-2.6 1.6,0.3 0,-2.1 1.3,-1.2 2.9,-0.8 0.6,-1 2.4,1.9 2.8,0.8 -0.6,-1.3 3.1,-4.8 -1.8,-0.3 0.7,-1.1 2,0.1 0,2 2.4,-0.3 -0.2,-2.2 1.1,1.3 3.7,1.1 2.7,-0.9 0.8,1 -1.9,2.8 -0.9,2.2 2.1,1.6 4.7,2.3 1.9,1.6 1.6,-0.5 1.6,-4.6 -0.1,-5 0.7,-0.9 0.3,-3.6 0.9,1.1 1.8,5.8 0.8,1.5 1,-0.7 1.7,1.5 0.1,2.7 z",VE:"m 199.73,195.09 -1.1,0.5 0.6,1.7 -1,1.7 1.2,1.5 0.9,-1.3 -1.1,-2.1 2.8,-1.2 2.4,0 1.8,1.9 3.2,-0.4 2.9,1.1 1.6,-1 2.3,-0.3 0.9,1.4 2.8,1.3 -0.2,0.9 1.7,0.7 -1,1.4 0.4,1.3 -1.7,1.1 -0.3,1.2 1.2,1.4 -1.6,1.8 -5.9,0.5 1.2,2.9 1.3,0.1 -1.5,1.6 -2.7,1.7 -2.6,-1.1 -0.6,-2.2 -1.2,-0.9 1,-1 -1.1,-2.2 0.8,-3.1 -3.8,0.1 -1.3,-1.6 -3.8,-0.2 -0.5,-2.5 -1.2,-1.8 0.2,-2.1 1.8,-2.4 z",SB:"m 644.23,236.59 -1.9,-0.1 0,-2.4 -2.9,-1.9 -1.4,0.8 1.2,1.3 -2.6,-1.1 0.1,-1.7 3.3,0.7 2.3,1.4 0.5,1.4 1.7,-0.8 z",MG:"m 431.73,249.49 -4.3,14.5 -1,2.3 -3.7,1.2 -2.1,-1.2 -0.5,-3.1 -1.1,-2.4 0.6,-1.9 1.8,-2.6 -1,-5 1,-2.5 2.2,-0.4 3.6,-1.7 1.4,-3.3 0.9,0.1 1.1,-2.9 1.3,2.1 1,4.7 -1.6,0.2 z",IS:"m 290.23,72.39 4.3,-0.5 -0.3,-1.1 -2.3,-0.6 -2.6,0.2 1.5,-0.8 0.6,-1.4 1.9,0.4 -0.2,-1.2 2.4,1.5 -0.4,1.4 1.1,0.6 1.6,-2.4 3.4,-0.2 1.4,0.7 2.1,-0.7 -0.1,-1 3.6,1.4 -0.3,1 2,0.7 0.5,1.4 -2,2.1 -6.1,2.1 -1.9,1 -2.8,-0.5 -1.9,-1 -2.9,0.1 1.9,-1.7 -1.4,-1.3 z",EG:"m 403.13,159.99 -1.2,3.6 -2,-1.7 -1.4,-2.9 0.2,2.1 1.9,2.4 0.8,2.4 2.9,5.4 0.3,2.1 2.3,1.8 -10.8,0 -12,0 0,-14.6 -0.6,-2.1 0.9,-3.1 4.2,0.7 3.3,1.1 2.5,-1.4 2.3,0.1 1,0.8 4.1,-0.5 1.2,3.3 z",KG:"m 477.33,138.49 -2.7,0.6 -1.5,-0.9 -4.1,0.2 1.2,-1.6 1.9,0 1.4,0.2 2.8,-1.5 -2.7,-1.5 -0.6,0.7 -2.4,-1 1.5,-1.5 1.7,-1.4 3.2,1 1.3,-2 1.9,1 6.2,-0.1 3.4,1.6 -3.5,1.9 -0.5,0.7 -2.5,0.3 -2.1,1.4 -0.3,-0.7 -3,1.3 z m -5.8,-0.9 -0.3,0 0.2,0.2 0.2,-0.1 z m 2.2,-0.1 0,-0.2 -0.2,0.1 0,0.1 z m -1.2,-0.3 -0.4,-0.1 0.2,0.5 0.3,-0.1 z",NP:"m 505.03,163.39 0.1,2.3 -1.6,0.7 -2.9,-0.4 -2.4,-1.6 -3.5,-0.3 -5.2,-2.8 0.6,-1.9 1.3,-0.9 2,-0.3 2.8,2.4 1.1,-0.1 1.9,1.9 1.7,0.9 1.1,-0.4 z"}}}}),b}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-mapael/raphael-min.js b/htdocs/public/high/plugins/jquery-mapael/raphael-min.js deleted file mode 100644 index 1f8a3059..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/raphael-min.js +++ /dev/null @@ -1,11 +0,0 @@ -// ┌────────────────────────────────────────────────────────────────────┐ \\ -// │ Raphaël 2.1.4 - JavaScript Vector Library │ \\ -// ├────────────────────────────────────────────────────────────────────┤ \\ -// │ Copyright © 2008-2012 Dmitry Baranovskiy (http://raphaeljs.com) │ \\ -// │ Copyright © 2008-2012 Sencha Labs (http://sencha.com) │ \\ -// ├────────────────────────────────────────────────────────────────────┤ \\ -// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\ -// └────────────────────────────────────────────────────────────────────┘ \\ -!function(a){var b,c,d="0.4.2",e="hasOwnProperty",f=/[\.\/]/,g="*",h=function(){},i=function(a,b){return a-b},j={n:{}},k=function(a,d){a=String(a);var e,f=c,g=Array.prototype.slice.call(arguments,2),h=k.listeners(a),j=0,l=[],m={},n=[],o=b;b=a,c=0;for(var p=0,q=h.length;q>p;p++)"zIndex"in h[p]&&(l.push(h[p].zIndex),h[p].zIndex<0&&(m[h[p].zIndex]=h[p]));for(l.sort(i);l[j]<0;)if(e=m[l[j++]],n.push(e.apply(d,g)),c)return c=f,n;for(p=0;q>p;p++)if(e=h[p],"zIndex"in e)if(e.zIndex==l[j]){if(n.push(e.apply(d,g)),c)break;do if(j++,e=m[l[j]],e&&n.push(e.apply(d,g)),c)break;while(e)}else m[e.zIndex]=e;else if(n.push(e.apply(d,g)),c)break;return c=f,b=o,n.length?n:null};k._events=j,k.listeners=function(a){var b,c,d,e,h,i,k,l,m=a.split(f),n=j,o=[n],p=[];for(e=0,h=m.length;h>e;e++){for(l=[],i=0,k=o.length;k>i;i++)for(n=o[i].n,c=[n[m[e]],n[g]],d=2;d--;)b=c[d],b&&(l.push(b),p=p.concat(b.f||[]));o=l}return p},k.on=function(a,b){if(a=String(a),"function"!=typeof b)return function(){};for(var c=a.split(f),d=j,e=0,g=c.length;g>e;e++)d=d.n,d=d.hasOwnProperty(c[e])&&d[c[e]]||(d[c[e]]={n:{}});for(d.f=d.f||[],e=0,g=d.f.length;g>e;e++)if(d.f[e]==b)return h;return d.f.push(b),function(a){+a==+a&&(b.zIndex=+a)}},k.f=function(a){var b=[].slice.call(arguments,1);return function(){k.apply(null,[a,null].concat(b).concat([].slice.call(arguments,0)))}},k.stop=function(){c=1},k.nt=function(a){return a?new RegExp("(?:\\.|\\/|^)"+a+"(?:\\.|\\/|$)").test(b):b},k.nts=function(){return b.split(f)},k.off=k.unbind=function(a,b){if(!a)return void(k._events=j={n:{}});var c,d,h,i,l,m,n,o=a.split(f),p=[j];for(i=0,l=o.length;l>i;i++)for(m=0;mi;i++)for(c=p[i];c.n;){if(b){if(c.f){for(m=0,n=c.f.length;n>m;m++)if(c.f[m]==b){c.f.splice(m,1);break}!c.f.length&&delete c.f}for(d in c.n)if(c.n[e](d)&&c.n[d].f){var q=c.n[d].f;for(m=0,n=q.length;n>m;m++)if(q[m]==b){q.splice(m,1);break}!q.length&&delete c.n[d].f}}else{delete c.f;for(d in c.n)c.n[e](d)&&c.n[d].f&&delete c.n[d].f}c=c.n}},k.once=function(a,b){var c=function(){return k.unbind(a,c),b.apply(this,arguments)};return k.on(a,c)},k.version=d,k.toString=function(){return"You are running Eve "+d},"undefined"!=typeof module&&module.exports?module.exports=k:"undefined"!=typeof define?define("eve",[],function(){return k}):a.eve=k}(window||this),function(a,b){"function"==typeof define&&define.amd?define(["eve"],function(c){return b(a,c)}):b(a,a.eve||"function"==typeof require&&require("eve"))}(this,function(a,b){function c(a){if(c.is(a,"function"))return u?a():b.on("raphael.DOMload",a);if(c.is(a,V))return c._engine.create[D](c,a.splice(0,3+c.is(a[0],T))).add(a);var d=Array.prototype.slice.call(arguments,0);if(c.is(d[d.length-1],"function")){var e=d.pop();return u?e.call(c._engine.create[D](c,d)):b.on("raphael.DOMload",function(){e.call(c._engine.create[D](c,d))})}return c._engine.create[D](c,arguments)}function d(a){if("function"==typeof a||Object(a)!==a)return a;var b=new a.constructor;for(var c in a)a[z](c)&&(b[c]=d(a[c]));return b}function e(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return a.push(a.splice(c,1)[0])}function f(a,b,c){function d(){var f=Array.prototype.slice.call(arguments,0),g=f.join("␀"),h=d.cache=d.cache||{},i=d.count=d.count||[];return h[z](g)?(e(i,g),c?c(h[g]):h[g]):(i.length>=1e3&&delete h[i.shift()],i.push(g),h[g]=a[D](b,f),c?c(h[g]):h[g])}return d}function g(){return this.hex}function h(a,b){for(var c=[],d=0,e=a.length;e-2*!b>d;d+=2){var f=[{x:+a[d-2],y:+a[d-1]},{x:+a[d],y:+a[d+1]},{x:+a[d+2],y:+a[d+3]},{x:+a[d+4],y:+a[d+5]}];b?d?e-4==d?f[3]={x:+a[0],y:+a[1]}:e-2==d&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[e-2],y:+a[e-1]}:e-4==d?f[3]=f[2]:d||(f[0]={x:+a[d],y:+a[d+1]}),c.push(["C",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return c}function i(a,b,c,d,e){var f=-3*b+9*c-9*d+3*e,g=a*f+6*b-12*c+6*d;return a*g-3*b+3*c}function j(a,b,c,d,e,f,g,h,j){null==j&&(j=1),j=j>1?1:0>j?0:j;for(var k=j/2,l=12,m=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],n=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],o=0,p=0;l>p;p++){var q=k*m[p]+k,r=i(q,a,c,e,g),s=i(q,b,d,f,h),t=r*r+s*s;o+=n[p]*N.sqrt(t)}return k*o}function k(a,b,c,d,e,f,g,h,i){if(!(0>i||j(a,b,c,d,e,f,g,h)o;)m/=2,n+=(i>k?1:-1)*m,k=j(a,b,c,d,e,f,g,h,n);return n}}function l(a,b,c,d,e,f,g,h){if(!(O(a,c)O(e,g)||O(b,d)O(f,h))){var i=(a*d-b*c)*(e-g)-(a-c)*(e*h-f*g),j=(a*d-b*c)*(f-h)-(b-d)*(e*h-f*g),k=(a-c)*(f-h)-(b-d)*(e-g);if(k){var l=i/k,m=j/k,n=+l.toFixed(2),o=+m.toFixed(2);if(!(n<+P(a,c).toFixed(2)||n>+O(a,c).toFixed(2)||n<+P(e,g).toFixed(2)||n>+O(e,g).toFixed(2)||o<+P(b,d).toFixed(2)||o>+O(b,d).toFixed(2)||o<+P(f,h).toFixed(2)||o>+O(f,h).toFixed(2)))return{x:l,y:m}}}}function m(a,b,d){var e=c.bezierBBox(a),f=c.bezierBBox(b);if(!c.isBBoxIntersect(e,f))return d?0:[];for(var g=j.apply(0,a),h=j.apply(0,b),i=O(~~(g/5),1),k=O(~~(h/5),1),m=[],n=[],o={},p=d?0:[],q=0;i+1>q;q++){var r=c.findDotsAtSegment.apply(c,a.concat(q/i));m.push({x:r.x,y:r.y,t:q/i})}for(q=0;k+1>q;q++)r=c.findDotsAtSegment.apply(c,b.concat(q/k)),n.push({x:r.x,y:r.y,t:q/k});for(q=0;i>q;q++)for(var s=0;k>s;s++){var t=m[q],u=m[q+1],v=n[s],w=n[s+1],x=Q(u.x-t.x)<.001?"y":"x",y=Q(w.x-v.x)<.001?"y":"x",z=l(t.x,t.y,u.x,u.y,v.x,v.y,w.x,w.y);if(z){if(o[z.x.toFixed(4)]==z.y.toFixed(4))continue;o[z.x.toFixed(4)]=z.y.toFixed(4);var A=t.t+Q((z[x]-t[x])/(u[x]-t[x]))*(u.t-t.t),B=v.t+Q((z[y]-v[y])/(w[y]-v[y]))*(w.t-v.t);A>=0&&1.001>=A&&B>=0&&1.001>=B&&(d?p++:p.push({x:z.x,y:z.y,t1:P(A,1),t2:P(B,1)}))}}return p}function n(a,b,d){a=c._path2curve(a),b=c._path2curve(b);for(var e,f,g,h,i,j,k,l,n,o,p=d?0:[],q=0,r=a.length;r>q;q++){var s=a[q];if("M"==s[0])e=i=s[1],f=j=s[2];else{"C"==s[0]?(n=[e,f].concat(s.slice(1)),e=n[6],f=n[7]):(n=[e,f,e,f,i,j,i,j],e=i,f=j);for(var t=0,u=b.length;u>t;t++){var v=b[t];if("M"==v[0])g=k=v[1],h=l=v[2];else{"C"==v[0]?(o=[g,h].concat(v.slice(1)),g=o[6],h=o[7]):(o=[g,h,g,h,k,l,k,l],g=k,h=l);var w=m(n,o,d);if(d)p+=w;else{for(var x=0,y=w.length;y>x;x++)w[x].segment1=q,w[x].segment2=t,w[x].bez1=n,w[x].bez2=o;p=p.concat(w)}}}}}return p}function o(a,b,c,d,e,f){null!=a?(this.a=+a,this.b=+b,this.c=+c,this.d=+d,this.e=+e,this.f=+f):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0)}function p(){return this.x+H+this.y+H+this.width+" × "+this.height}function q(a,b,c,d,e,f){function g(a){return((l*a+k)*a+j)*a}function h(a,b){var c=i(a,b);return((o*c+n)*c+m)*c}function i(a,b){var c,d,e,f,h,i;for(e=a,i=0;8>i;i++){if(f=g(e)-a,Q(f)e)return c;if(e>d)return d;for(;d>c;){if(f=g(e),Q(f-a)f?c=e:d=e,e=(d-c)/2+c}return e}var j=3*b,k=3*(d-b)-j,l=1-j-k,m=3*c,n=3*(e-c)-m,o=1-m-n;return h(a,1/(200*f))}function r(a,b){var c=[],d={};if(this.ms=b,this.times=1,a){for(var e in a)a[z](e)&&(d[_(e)]=a[e],c.push(_(e)));c.sort(lb)}this.anim=d,this.top=c[c.length-1],this.percents=c}function s(a,d,e,f,g,h){e=_(e);var i,j,k,l,m,n,p=a.ms,r={},s={},t={};if(f)for(v=0,x=ic.length;x>v;v++){var u=ic[v];if(u.el.id==d.id&&u.anim==a){u.percent!=e?(ic.splice(v,1),k=1):j=u,d.attr(u.totalOrigin);break}}else f=+s;for(var v=0,x=a.percents.length;x>v;v++){if(a.percents[v]==e||a.percents[v]>f*a.top){e=a.percents[v],m=a.percents[v-1]||0,p=p/a.top*(e-m),l=a.percents[v+1],i=a.anim[e];break}f&&d.attr(a.anim[a.percents[v]])}if(i){if(j)j.initstatus=f,j.start=new Date-j.ms*f;else{for(var y in i)if(i[z](y)&&(db[z](y)||d.paper.customAttributes[z](y)))switch(r[y]=d.attr(y),null==r[y]&&(r[y]=cb[y]),s[y]=i[y],db[y]){case T:t[y]=(s[y]-r[y])/p;break;case"colour":r[y]=c.getRGB(r[y]);var A=c.getRGB(s[y]);t[y]={r:(A.r-r[y].r)/p,g:(A.g-r[y].g)/p,b:(A.b-r[y].b)/p};break;case"path":var B=Kb(r[y],s[y]),C=B[1];for(r[y]=B[0],t[y]=[],v=0,x=r[y].length;x>v;v++){t[y][v]=[0];for(var D=1,F=r[y][v].length;F>D;D++)t[y][v][D]=(C[v][D]-r[y][v][D])/p}break;case"transform":var G=d._,H=Pb(G[y],s[y]);if(H)for(r[y]=H.from,s[y]=H.to,t[y]=[],t[y].real=!0,v=0,x=r[y].length;x>v;v++)for(t[y][v]=[r[y][v][0]],D=1,F=r[y][v].length;F>D;D++)t[y][v][D]=(s[y][v][D]-r[y][v][D])/p;else{var K=d.matrix||new o,L={_:{transform:G.transform},getBBox:function(){return d.getBBox(1)}};r[y]=[K.a,K.b,K.c,K.d,K.e,K.f],Nb(L,s[y]),s[y]=L._.transform,t[y]=[(L.matrix.a-K.a)/p,(L.matrix.b-K.b)/p,(L.matrix.c-K.c)/p,(L.matrix.d-K.d)/p,(L.matrix.e-K.e)/p,(L.matrix.f-K.f)/p]}break;case"csv":var M=I(i[y])[J](w),N=I(r[y])[J](w);if("clip-rect"==y)for(r[y]=N,t[y]=[],v=N.length;v--;)t[y][v]=(M[v]-r[y][v])/p;s[y]=M;break;default:for(M=[][E](i[y]),N=[][E](r[y]),t[y]=[],v=d.paper.customAttributes[y].length;v--;)t[y][v]=((M[v]||0)-(N[v]||0))/p}var O=i.easing,P=c.easing_formulas[O];if(!P)if(P=I(O).match(Z),P&&5==P.length){var Q=P;P=function(a){return q(a,+Q[1],+Q[2],+Q[3],+Q[4],p)}}else P=nb;if(n=i.start||a.start||+new Date,u={anim:a,percent:e,timestamp:n,start:n+(a.del||0),status:0,initstatus:f||0,stop:!1,ms:p,easing:P,from:r,diff:t,to:s,el:d,callback:i.callback,prev:m,next:l,repeat:h||a.times,origin:d.attr(),totalOrigin:g},ic.push(u),f&&!j&&!k&&(u.stop=!0,u.start=new Date-p*f,1==ic.length))return kc();k&&(u.start=new Date-u.ms*f),1==ic.length&&jc(kc)}b("raphael.anim.start."+d.id,d,a)}}function t(a){for(var b=0;be;e++)for(i=a[e],f=1,h=i.length;h>f;f+=2)c=b.x(i[f],i[f+1]),d=b.y(i[f],i[f+1]),i[f]=c,i[f+1]=d;return a};if(c._g=A,c.type=A.win.SVGAngle||A.doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML","VML"==c.type){var sb,tb=A.doc.createElement("div");if(tb.innerHTML='',sb=tb.firstChild,sb.style.behavior="url(#default#VML)",!sb||"object"!=typeof sb.adj)return c.type=G;tb=null}c.svg=!(c.vml="VML"==c.type),c._Paper=C,c.fn=v=C.prototype=c.prototype,c._id=0,c._oid=0,c.is=function(a,b){return b=M.call(b),"finite"==b?!Y[z](+a):"array"==b?a instanceof Array:"null"==b&&null===a||b==typeof a&&null!==a||"object"==b&&a===Object(a)||"array"==b&&Array.isArray&&Array.isArray(a)||W.call(a).slice(8,-1).toLowerCase()==b},c.angle=function(a,b,d,e,f,g){if(null==f){var h=a-d,i=b-e;return h||i?(180+180*N.atan2(-i,-h)/S+360)%360:0}return c.angle(a,b,f,g)-c.angle(d,e,f,g)},c.rad=function(a){return a%360*S/180},c.deg=function(a){return Math.round(180*a/S%360*1e3)/1e3},c.snapTo=function(a,b,d){if(d=c.is(d,"finite")?d:10,c.is(a,V)){for(var e=a.length;e--;)if(Q(a[e]-b)<=d)return a[e]}else{a=+a;var f=b%a;if(d>f)return b-f;if(f>a-d)return b-f+a}return b};c.createUUID=function(a,b){return function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(a,b).toUpperCase()}}(/[xy]/g,function(a){var b=16*N.random()|0,c="x"==a?b:3&b|8;return c.toString(16)});c.setWindow=function(a){b("raphael.setWindow",c,A.win,a),A.win=a,A.doc=A.win.document,c._engine.initWin&&c._engine.initWin(A.win)};var ub=function(a){if(c.vml){var b,d=/^\s+|\s+$/g;try{var e=new ActiveXObject("htmlfile");e.write(""),e.close(),b=e.body}catch(g){b=createPopup().document.body}var h=b.createTextRange();ub=f(function(a){try{b.style.color=I(a).replace(d,G);var c=h.queryCommandValue("ForeColor");return c=(255&c)<<16|65280&c|(16711680&c)>>>16,"#"+("000000"+c.toString(16)).slice(-6)}catch(e){return"none"}})}else{var i=A.doc.createElement("i");i.title="Raphaël Colour Picker",i.style.display="none",A.doc.body.appendChild(i),ub=f(function(a){return i.style.color=a,A.doc.defaultView.getComputedStyle(i,G).getPropertyValue("color")})}return ub(a)},vb=function(){return"hsb("+[this.h,this.s,this.b]+")"},wb=function(){return"hsl("+[this.h,this.s,this.l]+")"},xb=function(){return this.hex},yb=function(a,b,d){if(null==b&&c.is(a,"object")&&"r"in a&&"g"in a&&"b"in a&&(d=a.b,b=a.g,a=a.r),null==b&&c.is(a,U)){var e=c.getRGB(a);a=e.r,b=e.g,d=e.b}return(a>1||b>1||d>1)&&(a/=255,b/=255,d/=255),[a,b,d]},zb=function(a,b,d,e){a*=255,b*=255,d*=255;var f={r:a,g:b,b:d,hex:c.rgb(a,b,d),toString:xb};return c.is(e,"finite")&&(f.opacity=e),f};c.color=function(a){var b;return c.is(a,"object")&&"h"in a&&"s"in a&&"b"in a?(b=c.hsb2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.hex=b.hex):c.is(a,"object")&&"h"in a&&"s"in a&&"l"in a?(b=c.hsl2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.hex=b.hex):(c.is(a,"string")&&(a=c.getRGB(a)),c.is(a,"object")&&"r"in a&&"g"in a&&"b"in a?(b=c.rgb2hsl(a),a.h=b.h,a.s=b.s,a.l=b.l,b=c.rgb2hsb(a),a.v=b.b):(a={hex:"none"},a.r=a.g=a.b=a.h=a.s=a.v=a.l=-1)),a.toString=xb,a},c.hsb2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"b"in a&&(c=a.b,b=a.s,d=a.o,a=a.h),a*=360;var e,f,g,h,i;return a=a%360/60,i=c*b,h=i*(1-Q(a%2-1)),e=f=g=c-i,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],zb(e,f,g,d)},c.hsl2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"l"in a&&(c=a.l,b=a.s,a=a.h),(a>1||b>1||c>1)&&(a/=360,b/=100,c/=100),a*=360;var e,f,g,h,i;return a=a%360/60,i=2*b*(.5>c?c:1-c),h=i*(1-Q(a%2-1)),e=f=g=c-i/2,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],zb(e,f,g,d)},c.rgb2hsb=function(a,b,c){c=yb(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g;return f=O(a,b,c),g=f-P(a,b,c),d=0==g?null:f==a?(b-c)/g:f==b?(c-a)/g+2:(a-b)/g+4,d=(d+360)%6*60/360,e=0==g?0:g/f,{h:d,s:e,b:f,toString:vb}},c.rgb2hsl=function(a,b,c){c=yb(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g,h,i;return g=O(a,b,c),h=P(a,b,c),i=g-h,d=0==i?null:g==a?(b-c)/i:g==b?(c-a)/i+2:(a-b)/i+4,d=(d+360)%6*60/360,f=(g+h)/2,e=0==i?0:.5>f?i/(2*f):i/(2-2*f),{h:d,s:e,l:f,toString:wb}},c._path2string=function(){return this.join(",").replace(gb,"$1")};c._preload=function(a,b){var c=A.doc.createElement("img");c.style.cssText="position:absolute;left:-9999em;top:-9999em",c.onload=function(){b.call(this),this.onload=null,A.doc.body.removeChild(this)},c.onerror=function(){A.doc.body.removeChild(this)},A.doc.body.appendChild(c),c.src=a};c.getRGB=f(function(a){if(!a||(a=I(a)).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:g};if("none"==a)return{r:-1,g:-1,b:-1,hex:"none",toString:g};!(fb[z](a.toLowerCase().substring(0,2))||"#"==a.charAt())&&(a=ub(a));var b,d,e,f,h,i,j=a.match(X);return j?(j[2]&&(e=ab(j[2].substring(5),16),d=ab(j[2].substring(3,5),16),b=ab(j[2].substring(1,3),16)),j[3]&&(e=ab((h=j[3].charAt(3))+h,16),d=ab((h=j[3].charAt(2))+h,16),b=ab((h=j[3].charAt(1))+h,16)),j[4]&&(i=j[4][J](eb),b=_(i[0]),"%"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),"%"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),"%"==i[2].slice(-1)&&(e*=2.55),"rgba"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&"%"==i[3].slice(-1)&&(f/=100)),j[5]?(i=j[5][J](eb),b=_(i[0]),"%"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),"%"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),"%"==i[2].slice(-1)&&(e*=2.55),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsba"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&"%"==i[3].slice(-1)&&(f/=100),c.hsb2rgb(b,d,e,f)):j[6]?(i=j[6][J](eb),b=_(i[0]),"%"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),"%"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),"%"==i[2].slice(-1)&&(e*=2.55),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsla"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&"%"==i[3].slice(-1)&&(f/=100),c.hsl2rgb(b,d,e,f)):(j={r:b,g:d,b:e,toString:g},j.hex="#"+(16777216|e|d<<8|b<<16).toString(16).slice(1),c.is(f,"finite")&&(j.opacity=f),j)):{r:-1,g:-1,b:-1,hex:"none",error:1,toString:g}},c),c.hsb=f(function(a,b,d){return c.hsb2rgb(a,b,d).hex}),c.hsl=f(function(a,b,d){return c.hsl2rgb(a,b,d).hex}),c.rgb=f(function(a,b,c){return"#"+(16777216|c|b<<8|a<<16).toString(16).slice(1)}),c.getColor=function(a){var b=this.getColor.start=this.getColor.start||{h:0,s:1,b:a||.75},c=this.hsb2rgb(b.h,b.s,b.b);return b.h+=.075,b.h>1&&(b.h=0,b.s-=.2,b.s<=0&&(this.getColor.start={h:0,s:1,b:b.b})),c.hex},c.getColor.reset=function(){delete this.start},c.parsePathString=function(a){if(!a)return null;var b=Ab(a);if(b.arr)return Cb(b.arr);var d={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},e=[];return c.is(a,V)&&c.is(a[0],V)&&(e=Cb(a)),e.length||I(a).replace(hb,function(a,b,c){var f=[],g=b.toLowerCase();if(c.replace(jb,function(a,b){b&&f.push(+b)}),"m"==g&&f.length>2&&(e.push([b][E](f.splice(0,2))),g="l",b="m"==b?"l":"L"),"r"==g)e.push([b][E](f));else for(;f.length>=d[g]&&(e.push([b][E](f.splice(0,d[g]))),d[g]););}),e.toString=c._path2string,b.arr=Cb(e),e},c.parseTransformString=f(function(a){if(!a)return null;var b=[];return c.is(a,V)&&c.is(a[0],V)&&(b=Cb(a)),b.length||I(a).replace(ib,function(a,c,d){{var e=[];M.call(c)}d.replace(jb,function(a,b){b&&e.push(+b)}),b.push([c][E](e))}),b.toString=c._path2string,b});var Ab=function(a){var b=Ab.ps=Ab.ps||{};return b[a]?b[a].sleep=100:b[a]={sleep:100},setTimeout(function(){for(var c in b)b[z](c)&&c!=a&&(b[c].sleep--,!b[c].sleep&&delete b[c])}),b[a]};c.findDotsAtSegment=function(a,b,c,d,e,f,g,h,i){var j=1-i,k=R(j,3),l=R(j,2),m=i*i,n=m*i,o=k*a+3*l*i*c+3*j*i*i*e+n*g,p=k*b+3*l*i*d+3*j*i*i*f+n*h,q=a+2*i*(c-a)+m*(e-2*c+a),r=b+2*i*(d-b)+m*(f-2*d+b),s=c+2*i*(e-c)+m*(g-2*e+c),t=d+2*i*(f-d)+m*(h-2*f+d),u=j*a+i*c,v=j*b+i*d,w=j*e+i*g,x=j*f+i*h,y=90-180*N.atan2(q-s,r-t)/S;return(q>s||t>r)&&(y+=180),{x:o,y:p,m:{x:q,y:r},n:{x:s,y:t},start:{x:u,y:v},end:{x:w,y:x},alpha:y}},c.bezierBBox=function(a,b,d,e,f,g,h,i){c.is(a,"array")||(a=[a,b,d,e,f,g,h,i]);var j=Jb.apply(null,a);return{x:j.min.x,y:j.min.y,x2:j.max.x,y2:j.max.y,width:j.max.x-j.min.x,height:j.max.y-j.min.y}},c.isPointInsideBBox=function(a,b,c){return b>=a.x&&b<=a.x2&&c>=a.y&&c<=a.y2},c.isBBoxIntersect=function(a,b){var d=c.isPointInsideBBox;return d(b,a.x,a.y)||d(b,a.x2,a.y)||d(b,a.x,a.y2)||d(b,a.x2,a.y2)||d(a,b.x,b.y)||d(a,b.x2,b.y)||d(a,b.x,b.y2)||d(a,b.x2,b.y2)||(a.xb.x||b.xa.x)&&(a.yb.y||b.ya.y)},c.pathIntersection=function(a,b){return n(a,b)},c.pathIntersectionNumber=function(a,b){return n(a,b,1)},c.isPointInsidePath=function(a,b,d){var e=c.pathBBox(a);return c.isPointInsideBBox(e,b,d)&&n(a,[["M",b,d],["H",e.x2+10]],1)%2==1},c._removedFactory=function(a){return function(){b("raphael.log",null,"Raphaël: you are calling to method “"+a+"” of removed object",a)}};var Bb=c.pathBBox=function(a){var b=Ab(a);if(b.bbox)return d(b.bbox);if(!a)return{x:0,y:0,width:0,height:0,x2:0,y2:0};a=Kb(a);for(var c,e=0,f=0,g=[],h=[],i=0,j=a.length;j>i;i++)if(c=a[i],"M"==c[0])e=c[1],f=c[2],g.push(e),h.push(f);else{var k=Jb(e,f,c[1],c[2],c[3],c[4],c[5],c[6]);g=g[E](k.min.x,k.max.x),h=h[E](k.min.y,k.max.y),e=c[5],f=c[6]}var l=P[D](0,g),m=P[D](0,h),n=O[D](0,g),o=O[D](0,h),p=n-l,q=o-m,r={x:l,y:m,x2:n,y2:o,width:p,height:q,cx:l+p/2,cy:m+q/2};return b.bbox=d(r),r},Cb=function(a){var b=d(a);return b.toString=c._path2string,b},Db=c._pathToRelative=function(a){var b=Ab(a);if(b.rel)return Cb(b.rel);c.is(a,V)&&c.is(a&&a[0],V)||(a=c.parsePathString(a));var d=[],e=0,f=0,g=0,h=0,i=0;"M"==a[0][0]&&(e=a[0][1],f=a[0][2],g=e,h=f,i++,d.push(["M",e,f]));for(var j=i,k=a.length;k>j;j++){var l=d[j]=[],m=a[j];if(m[0]!=M.call(m[0]))switch(l[0]=M.call(m[0]),l[0]){case"a":l[1]=m[1],l[2]=m[2],l[3]=m[3],l[4]=m[4],l[5]=m[5],l[6]=+(m[6]-e).toFixed(3),l[7]=+(m[7]-f).toFixed(3);break;case"v":l[1]=+(m[1]-f).toFixed(3);break;case"m":g=m[1],h=m[2];default:for(var n=1,o=m.length;o>n;n++)l[n]=+(m[n]-(n%2?e:f)).toFixed(3)}else{l=d[j]=[],"m"==m[0]&&(g=m[1]+e,h=m[2]+f);for(var p=0,q=m.length;q>p;p++)d[j][p]=m[p]}var r=d[j].length;switch(d[j][0]){case"z":e=g,f=h;break;case"h":e+=+d[j][r-1];break;case"v":f+=+d[j][r-1];break;default:e+=+d[j][r-2],f+=+d[j][r-1]}}return d.toString=c._path2string,b.rel=Cb(d),d},Eb=c._pathToAbsolute=function(a){var b=Ab(a);if(b.abs)return Cb(b.abs);if(c.is(a,V)&&c.is(a&&a[0],V)||(a=c.parsePathString(a)),!a||!a.length)return[["M",0,0]];var d=[],e=0,f=0,g=0,i=0,j=0;"M"==a[0][0]&&(e=+a[0][1],f=+a[0][2],g=e,i=f,j++,d[0]=["M",e,f]);for(var k,l,m=3==a.length&&"M"==a[0][0]&&"R"==a[1][0].toUpperCase()&&"Z"==a[2][0].toUpperCase(),n=j,o=a.length;o>n;n++){if(d.push(k=[]),l=a[n],l[0]!=bb.call(l[0]))switch(k[0]=bb.call(l[0]),k[0]){case"A":k[1]=l[1],k[2]=l[2],k[3]=l[3],k[4]=l[4],k[5]=l[5],k[6]=+(l[6]+e),k[7]=+(l[7]+f);break;case"V":k[1]=+l[1]+f;break;case"H":k[1]=+l[1]+e;break;case"R":for(var p=[e,f][E](l.slice(1)),q=2,r=p.length;r>q;q++)p[q]=+p[q]+e,p[++q]=+p[q]+f;d.pop(),d=d[E](h(p,m));break;case"M":g=+l[1]+e,i=+l[2]+f;default:for(q=1,r=l.length;r>q;q++)k[q]=+l[q]+(q%2?e:f)}else if("R"==l[0])p=[e,f][E](l.slice(1)),d.pop(),d=d[E](h(p,m)),k=["R"][E](l.slice(-2));else for(var s=0,t=l.length;t>s;s++)k[s]=l[s];switch(k[0]){case"Z":e=g,f=i;break;case"H":e=k[1];break;case"V":f=k[1];break;case"M":g=k[k.length-2],i=k[k.length-1];default:e=k[k.length-2],f=k[k.length-1]}}return d.toString=c._path2string,b.abs=Cb(d),d},Fb=function(a,b,c,d){return[a,b,c,d,c,d]},Gb=function(a,b,c,d,e,f){var g=1/3,h=2/3;return[g*a+h*c,g*b+h*d,g*e+h*c,g*f+h*d,e,f]},Hb=function(a,b,c,d,e,g,h,i,j,k){var l,m=120*S/180,n=S/180*(+e||0),o=[],p=f(function(a,b,c){var d=a*N.cos(c)-b*N.sin(c),e=a*N.sin(c)+b*N.cos(c);return{x:d,y:e}});if(k)y=k[0],z=k[1],w=k[2],x=k[3];else{l=p(a,b,-n),a=l.x,b=l.y,l=p(i,j,-n),i=l.x,j=l.y;var q=(N.cos(S/180*e),N.sin(S/180*e),(a-i)/2),r=(b-j)/2,s=q*q/(c*c)+r*r/(d*d);s>1&&(s=N.sqrt(s),c=s*c,d=s*d);var t=c*c,u=d*d,v=(g==h?-1:1)*N.sqrt(Q((t*u-t*r*r-u*q*q)/(t*r*r+u*q*q))),w=v*c*r/d+(a+i)/2,x=v*-d*q/c+(b+j)/2,y=N.asin(((b-x)/d).toFixed(9)),z=N.asin(((j-x)/d).toFixed(9));y=w>a?S-y:y,z=w>i?S-z:z,0>y&&(y=2*S+y),0>z&&(z=2*S+z),h&&y>z&&(y-=2*S),!h&&z>y&&(z-=2*S)}var A=z-y;if(Q(A)>m){var B=z,C=i,D=j;z=y+m*(h&&z>y?1:-1),i=w+c*N.cos(z),j=x+d*N.sin(z),o=Hb(i,j,c,d,e,0,h,C,D,[z,B,w,x])}A=z-y;var F=N.cos(y),G=N.sin(y),H=N.cos(z),I=N.sin(z),K=N.tan(A/4),L=4/3*c*K,M=4/3*d*K,O=[a,b],P=[a+L*G,b-M*F],R=[i+L*I,j-M*H],T=[i,j];if(P[0]=2*O[0]-P[0],P[1]=2*O[1]-P[1],k)return[P,R,T][E](o);o=[P,R,T][E](o).join()[J](",");for(var U=[],V=0,W=o.length;W>V;V++)U[V]=V%2?p(o[V-1],o[V],n).y:p(o[V],o[V+1],n).x;return U},Ib=function(a,b,c,d,e,f,g,h,i){var j=1-i;return{x:R(j,3)*a+3*R(j,2)*i*c+3*j*i*i*e+R(i,3)*g,y:R(j,3)*b+3*R(j,2)*i*d+3*j*i*i*f+R(i,3)*h}},Jb=f(function(a,b,c,d,e,f,g,h){var i,j=e-2*c+a-(g-2*e+c),k=2*(c-a)-2*(e-c),l=a-c,m=(-k+N.sqrt(k*k-4*j*l))/2/j,n=(-k-N.sqrt(k*k-4*j*l))/2/j,o=[b,h],p=[a,g];return Q(m)>"1e12"&&(m=.5),Q(n)>"1e12"&&(n=.5),m>0&&1>m&&(i=Ib(a,b,c,d,e,f,g,h,m),p.push(i.x),o.push(i.y)),n>0&&1>n&&(i=Ib(a,b,c,d,e,f,g,h,n),p.push(i.x),o.push(i.y)),j=f-2*d+b-(h-2*f+d),k=2*(d-b)-2*(f-d),l=b-d,m=(-k+N.sqrt(k*k-4*j*l))/2/j,n=(-k-N.sqrt(k*k-4*j*l))/2/j,Q(m)>"1e12"&&(m=.5),Q(n)>"1e12"&&(n=.5),m>0&&1>m&&(i=Ib(a,b,c,d,e,f,g,h,m),p.push(i.x),o.push(i.y)),n>0&&1>n&&(i=Ib(a,b,c,d,e,f,g,h,n),p.push(i.x),o.push(i.y)),{min:{x:P[D](0,p),y:P[D](0,o)},max:{x:O[D](0,p),y:O[D](0,o)}}}),Kb=c._path2curve=f(function(a,b){var c=!b&&Ab(a);if(!b&&c.curve)return Cb(c.curve);for(var d=Eb(a),e=b&&Eb(b),f={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},g={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},h=(function(a,b,c){var d,e,f={T:1,Q:1};if(!a)return["C",b.x,b.y,b.x,b.y,b.x,b.y];switch(!(a[0]in f)&&(b.qx=b.qy=null),a[0]){case"M":b.X=a[1],b.Y=a[2];break;case"A":a=["C"][E](Hb[D](0,[b.x,b.y][E](a.slice(1))));break;case"S":"C"==c||"S"==c?(d=2*b.x-b.bx,e=2*b.y-b.by):(d=b.x,e=b.y),a=["C",d,e][E](a.slice(1));break;case"T":"Q"==c||"T"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y),a=["C"][E](Gb(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case"Q":b.qx=a[1],b.qy=a[2],a=["C"][E](Gb(b.x,b.y,a[1],a[2],a[3],a[4]));break;case"L":a=["C"][E](Fb(b.x,b.y,a[1],a[2]));break;case"H":a=["C"][E](Fb(b.x,b.y,a[1],b.y));break;case"V":a=["C"][E](Fb(b.x,b.y,b.x,a[1]));break;case"Z":a=["C"][E](Fb(b.x,b.y,b.X,b.Y))}return a}),i=function(a,b){if(a[b].length>7){a[b].shift();for(var c=a[b];c.length;)k[b]="A",e&&(l[b]="A"),a.splice(b++,0,["C"][E](c.splice(0,6)));a.splice(b,1),p=O(d.length,e&&e.length||0)}},j=function(a,b,c,f,g){a&&b&&"M"==a[g][0]&&"M"!=b[g][0]&&(b.splice(g,0,["M",f.x,f.y]),c.bx=0,c.by=0,c.x=a[g][1],c.y=a[g][2],p=O(d.length,e&&e.length||0))},k=[],l=[],m="",n="",o=0,p=O(d.length,e&&e.length||0);p>o;o++){d[o]&&(m=d[o][0]),"C"!=m&&(k[o]=m,o&&(n=k[o-1])),d[o]=h(d[o],f,n),"A"!=k[o]&&"C"==m&&(k[o]="C"),i(d,o),e&&(e[o]&&(m=e[o][0]),"C"!=m&&(l[o]=m,o&&(n=l[o-1])),e[o]=h(e[o],g,n),"A"!=l[o]&&"C"==m&&(l[o]="C"),i(e,o)),j(d,e,f,g,o),j(e,d,g,f,o);var q=d[o],r=e&&e[o],s=q.length,t=e&&r.length;f.x=q[s-2],f.y=q[s-1],f.bx=_(q[s-4])||f.x,f.by=_(q[s-3])||f.y,g.bx=e&&(_(r[t-4])||g.x),g.by=e&&(_(r[t-3])||g.y),g.x=e&&r[t-2],g.y=e&&r[t-1]}return e||(c.curve=Cb(d)),e?[d,e]:d},null,Cb),Lb=(c._parseDots=f(function(a){for(var b=[],d=0,e=a.length;e>d;d++){var f={},g=a[d].match(/^([^:]*):?([\d\.]*)/);if(f.color=c.getRGB(g[1]),f.color.error)return null;f.color=f.color.hex,g[2]&&(f.offset=g[2]+"%"),b.push(f)}for(d=1,e=b.length-1;e>d;d++)if(!b[d].offset){for(var h=_(b[d-1].offset||0),i=0,j=d+1;e>j;j++)if(b[j].offset){i=b[j].offset;break}i||(i=100,j=e),i=_(i);for(var k=(i-h)/(j-d+1);j>d;d++)h+=k,b[d].offset=h+"%"}return b}),c._tear=function(a,b){a==b.top&&(b.top=a.prev),a==b.bottom&&(b.bottom=a.next),a.next&&(a.next.prev=a.prev),a.prev&&(a.prev.next=a.next)}),Mb=(c._tofront=function(a,b){b.top!==a&&(Lb(a,b),a.next=null,a.prev=b.top,b.top.next=a,b.top=a)},c._toback=function(a,b){b.bottom!==a&&(Lb(a,b),a.next=b.bottom,a.prev=null,b.bottom.prev=a,b.bottom=a)},c._insertafter=function(a,b,c){Lb(a,c),b==c.top&&(c.top=a),b.next&&(b.next.prev=a),a.next=b.next,a.prev=b,b.next=a},c._insertbefore=function(a,b,c){Lb(a,c),b==c.bottom&&(c.bottom=a),b.prev&&(b.prev.next=a),a.prev=b.prev,b.prev=a,a.next=b},c.toMatrix=function(a,b){var c=Bb(a),d={_:{transform:G},getBBox:function(){return c}};return Nb(d,b),d.matrix}),Nb=(c.transformPath=function(a,b){return rb(a,Mb(a,b))},c._extractTransform=function(a,b){if(null==b)return a._.transform;b=I(b).replace(/\.{3}|\u2026/g,a._.transform||G);var d=c.parseTransformString(b),e=0,f=0,g=0,h=1,i=1,j=a._,k=new o;if(j.transform=d||[],d)for(var l=0,m=d.length;m>l;l++){var n,p,q,r,s,t=d[l],u=t.length,v=I(t[0]).toLowerCase(),w=t[0]!=v,x=w?k.invert():0;"t"==v&&3==u?w?(n=x.x(0,0),p=x.y(0,0),q=x.x(t[1],t[2]),r=x.y(t[1],t[2]),k.translate(q-n,r-p)):k.translate(t[1],t[2]):"r"==v?2==u?(s=s||a.getBBox(1),k.rotate(t[1],s.x+s.width/2,s.y+s.height/2),e+=t[1]):4==u&&(w?(q=x.x(t[2],t[3]),r=x.y(t[2],t[3]),k.rotate(t[1],q,r)):k.rotate(t[1],t[2],t[3]),e+=t[1]):"s"==v?2==u||3==u?(s=s||a.getBBox(1),k.scale(t[1],t[u-1],s.x+s.width/2,s.y+s.height/2),h*=t[1],i*=t[u-1]):5==u&&(w?(q=x.x(t[3],t[4]),r=x.y(t[3],t[4]),k.scale(t[1],t[2],q,r)):k.scale(t[1],t[2],t[3],t[4]),h*=t[1],i*=t[2]):"m"==v&&7==u&&k.add(t[1],t[2],t[3],t[4],t[5],t[6]),j.dirtyT=1,a.matrix=k}a.matrix=k,j.sx=h,j.sy=i,j.deg=e,j.dx=f=k.e,j.dy=g=k.f,1==h&&1==i&&!e&&j.bbox?(j.bbox.x+=+f,j.bbox.y+=+g):j.dirtyT=1}),Ob=function(a){var b=a[0];switch(b.toLowerCase()){case"t":return[b,0,0];case"m":return[b,1,0,0,1,0,0];case"r":return 4==a.length?[b,0,a[2],a[3]]:[b,0];case"s":return 5==a.length?[b,1,1,a[3],a[4]]:3==a.length?[b,1,1]:[b,1]}},Pb=c._equaliseTransform=function(a,b){b=I(b).replace(/\.{3}|\u2026/g,a),a=c.parseTransformString(a)||[],b=c.parseTransformString(b)||[]; -for(var d,e,f,g,h=O(a.length,b.length),i=[],j=[],k=0;h>k;k++){if(f=a[k]||Ob(b[k]),g=b[k]||Ob(f),f[0]!=g[0]||"r"==f[0].toLowerCase()&&(f[2]!=g[2]||f[3]!=g[3])||"s"==f[0].toLowerCase()&&(f[3]!=g[3]||f[4]!=g[4]))return;for(i[k]=[],j[k]=[],d=0,e=O(f.length,g.length);e>d;d++)d in f&&(i[k][d]=f[d]),d in g&&(j[k][d]=g[d])}return{from:i,to:j}};c._getContainer=function(a,b,d,e){var f;return f=null!=e||c.is(a,"object")?a:A.doc.getElementById(a),null!=f?f.tagName?null==b?{container:f,width:f.style.pixelWidth||f.offsetWidth,height:f.style.pixelHeight||f.offsetHeight}:{container:f,width:b,height:d}:{container:1,x:a,y:b,width:d,height:e}:void 0},c.pathToRelative=Db,c._engine={},c.path2curve=Kb,c.matrix=function(a,b,c,d,e,f){return new o(a,b,c,d,e,f)},function(a){function b(a){return a[0]*a[0]+a[1]*a[1]}function d(a){var c=N.sqrt(b(a));a[0]&&(a[0]/=c),a[1]&&(a[1]/=c)}a.add=function(a,b,c,d,e,f){var g,h,i,j,k=[[],[],[]],l=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],m=[[a,c,e],[b,d,f],[0,0,1]];for(a&&a instanceof o&&(m=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1]]),g=0;3>g;g++)for(h=0;3>h;h++){for(j=0,i=0;3>i;i++)j+=l[g][i]*m[i][h];k[g][h]=j}this.a=k[0][0],this.b=k[1][0],this.c=k[0][1],this.d=k[1][1],this.e=k[0][2],this.f=k[1][2]},a.invert=function(){var a=this,b=a.a*a.d-a.b*a.c;return new o(a.d/b,-a.b/b,-a.c/b,a.a/b,(a.c*a.f-a.d*a.e)/b,(a.b*a.e-a.a*a.f)/b)},a.clone=function(){return new o(this.a,this.b,this.c,this.d,this.e,this.f)},a.translate=function(a,b){this.add(1,0,0,1,a,b)},a.scale=function(a,b,c,d){null==b&&(b=a),(c||d)&&this.add(1,0,0,1,c,d),this.add(a,0,0,b,0,0),(c||d)&&this.add(1,0,0,1,-c,-d)},a.rotate=function(a,b,d){a=c.rad(a),b=b||0,d=d||0;var e=+N.cos(a).toFixed(9),f=+N.sin(a).toFixed(9);this.add(e,f,-f,e,b,d),this.add(1,0,0,1,-b,-d)},a.x=function(a,b){return a*this.a+b*this.c+this.e},a.y=function(a,b){return a*this.b+b*this.d+this.f},a.get=function(a){return+this[I.fromCharCode(97+a)].toFixed(4)},a.toString=function(){return c.svg?"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")":[this.get(0),this.get(2),this.get(1),this.get(3),0,0].join()},a.toFilter=function(){return"progid:DXImageTransform.Microsoft.Matrix(M11="+this.get(0)+", M12="+this.get(2)+", M21="+this.get(1)+", M22="+this.get(3)+", Dx="+this.get(4)+", Dy="+this.get(5)+", sizingmethod='auto expand')"},a.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},a.split=function(){var a={};a.dx=this.e,a.dy=this.f;var e=[[this.a,this.c],[this.b,this.d]];a.scalex=N.sqrt(b(e[0])),d(e[0]),a.shear=e[0][0]*e[1][0]+e[0][1]*e[1][1],e[1]=[e[1][0]-e[0][0]*a.shear,e[1][1]-e[0][1]*a.shear],a.scaley=N.sqrt(b(e[1])),d(e[1]),a.shear/=a.scaley;var f=-e[0][1],g=e[1][1];return 0>g?(a.rotate=c.deg(N.acos(g)),0>f&&(a.rotate=360-a.rotate)):a.rotate=c.deg(N.asin(f)),a.isSimple=!(+a.shear.toFixed(9)||a.scalex.toFixed(9)!=a.scaley.toFixed(9)&&a.rotate),a.isSuperSimple=!+a.shear.toFixed(9)&&a.scalex.toFixed(9)==a.scaley.toFixed(9)&&!a.rotate,a.noRotation=!+a.shear.toFixed(9)&&!a.rotate,a},a.toTransformString=function(a){var b=a||this[J]();return b.isSimple?(b.scalex=+b.scalex.toFixed(4),b.scaley=+b.scaley.toFixed(4),b.rotate=+b.rotate.toFixed(4),(b.dx||b.dy?"t"+[b.dx,b.dy]:G)+(1!=b.scalex||1!=b.scaley?"s"+[b.scalex,b.scaley,0,0]:G)+(b.rotate?"r"+[b.rotate,0,0]:G)):"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]}}(o.prototype);var Qb=navigator.userAgent.match(/Version\/(.*?)\s/)||navigator.userAgent.match(/Chrome\/(\d+)/);v.safari="Apple Computer, Inc."==navigator.vendor&&(Qb&&Qb[1]<4||"iP"==navigator.platform.slice(0,2))||"Google Inc."==navigator.vendor&&Qb&&Qb[1]<8?function(){var a=this.rect(-99,-99,this.width+99,this.height+99).attr({stroke:"none"});setTimeout(function(){a.remove()})}:mb;for(var Rb=function(){this.returnValue=!1},Sb=function(){return this.originalEvent.preventDefault()},Tb=function(){this.cancelBubble=!0},Ub=function(){return this.originalEvent.stopPropagation()},Vb=function(a){var b=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,c=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft;return{x:a.clientX+c,y:a.clientY+b}},Wb=function(){return A.doc.addEventListener?function(a,b,c,d){var e=function(a){var b=Vb(a);return c.call(d,a,b.x,b.y)};if(a.addEventListener(b,e,!1),F&&L[b]){var f=function(b){for(var e=Vb(b),f=b,g=0,h=b.targetTouches&&b.targetTouches.length;h>g;g++)if(b.targetTouches[g].target==a){b=b.targetTouches[g],b.originalEvent=f,b.preventDefault=Sb,b.stopPropagation=Ub;break}return c.call(d,b,e.x,e.y)};a.addEventListener(L[b],f,!1)}return function(){return a.removeEventListener(b,e,!1),F&&L[b]&&a.removeEventListener(L[b],f,!1),!0}}:A.doc.attachEvent?function(a,b,c,d){var e=function(a){a=a||A.win.event;var b=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,e=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft,f=a.clientX+e,g=a.clientY+b;return a.preventDefault=a.preventDefault||Rb,a.stopPropagation=a.stopPropagation||Tb,c.call(d,a,f,g)};a.attachEvent("on"+b,e);var f=function(){return a.detachEvent("on"+b,e),!0};return f}:void 0}(),Xb=[],Yb=function(a){for(var c,d=a.clientX,e=a.clientY,f=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,g=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft,h=Xb.length;h--;){if(c=Xb[h],F&&a.touches){for(var i,j=a.touches.length;j--;)if(i=a.touches[j],i.identifier==c.el._drag.id){d=i.clientX,e=i.clientY,(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();var k,l=c.el.node,m=l.nextSibling,n=l.parentNode,o=l.style.display;A.win.opera&&n.removeChild(l),l.style.display="none",k=c.el.paper.getElementByPoint(d,e),l.style.display=o,A.win.opera&&(m?n.insertBefore(l,m):n.appendChild(l)),k&&b("raphael.drag.over."+c.el.id,c.el,k),d+=g,e+=f,b("raphael.drag.move."+c.el.id,c.move_scope||c.el,d-c.el._drag.x,e-c.el._drag.y,d,e,a)}},Zb=function(a){c.unmousemove(Yb).unmouseup(Zb);for(var d,e=Xb.length;e--;)d=Xb[e],d.el._drag={},b("raphael.drag.end."+d.el.id,d.end_scope||d.start_scope||d.move_scope||d.el,a);Xb=[]},$b=c.el={},_b=K.length;_b--;)!function(a){c[a]=$b[a]=function(b,d){return c.is(b,"function")&&(this.events=this.events||[],this.events.push({name:a,f:b,unbind:Wb(this.shape||this.node||A.doc,a,b,d||this)})),this},c["un"+a]=$b["un"+a]=function(b){for(var d=this.events||[],e=d.length;e--;)d[e].name!=a||!c.is(b,"undefined")&&d[e].f!=b||(d[e].unbind(),d.splice(e,1),!d.length&&delete this.events);return this}}(K[_b]);$b.data=function(a,d){var e=kb[this.id]=kb[this.id]||{};if(0==arguments.length)return e;if(1==arguments.length){if(c.is(a,"object")){for(var f in a)a[z](f)&&this.data(f,a[f]);return this}return b("raphael.data.get."+this.id,this,e[a],a),e[a]}return e[a]=d,b("raphael.data.set."+this.id,this,d,a),this},$b.removeData=function(a){return null==a?kb[this.id]={}:kb[this.id]&&delete kb[this.id][a],this},$b.getData=function(){return d(kb[this.id]||{})},$b.hover=function(a,b,c,d){return this.mouseover(a,c).mouseout(b,d||c)},$b.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var ac=[];$b.drag=function(a,d,e,f,g,h){function i(i){(i.originalEvent||i).preventDefault();var j=i.clientX,k=i.clientY,l=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,m=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft;if(this._drag.id=i.identifier,F&&i.touches)for(var n,o=i.touches.length;o--;)if(n=i.touches[o],this._drag.id=n.identifier,n.identifier==this._drag.id){j=n.clientX,k=n.clientY;break}this._drag.x=j+m,this._drag.y=k+l,!Xb.length&&c.mousemove(Yb).mouseup(Zb),Xb.push({el:this,move_scope:f,start_scope:g,end_scope:h}),d&&b.on("raphael.drag.start."+this.id,d),a&&b.on("raphael.drag.move."+this.id,a),e&&b.on("raphael.drag.end."+this.id,e),b("raphael.drag.start."+this.id,g||f||this,i.clientX+m,i.clientY+l,i)}return this._drag={},ac.push({el:this,start:i}),this.mousedown(i),this},$b.onDragOver=function(a){a?b.on("raphael.drag.over."+this.id,a):b.unbind("raphael.drag.over."+this.id)},$b.undrag=function(){for(var a=ac.length;a--;)ac[a].el==this&&(this.unmousedown(ac[a].start),ac.splice(a,1),b.unbind("raphael.drag.*."+this.id));!ac.length&&c.unmousemove(Yb).unmouseup(Zb),Xb=[]},v.circle=function(a,b,d){var e=c._engine.circle(this,a||0,b||0,d||0);return this.__set__&&this.__set__.push(e),e},v.rect=function(a,b,d,e,f){var g=c._engine.rect(this,a||0,b||0,d||0,e||0,f||0);return this.__set__&&this.__set__.push(g),g},v.ellipse=function(a,b,d,e){var f=c._engine.ellipse(this,a||0,b||0,d||0,e||0);return this.__set__&&this.__set__.push(f),f},v.path=function(a){a&&!c.is(a,U)&&!c.is(a[0],V)&&(a+=G);var b=c._engine.path(c.format[D](c,arguments),this);return this.__set__&&this.__set__.push(b),b},v.image=function(a,b,d,e,f){var g=c._engine.image(this,a||"about:blank",b||0,d||0,e||0,f||0);return this.__set__&&this.__set__.push(g),g},v.text=function(a,b,d){var e=c._engine.text(this,a||0,b||0,I(d));return this.__set__&&this.__set__.push(e),e},v.set=function(a){!c.is(a,"array")&&(a=Array.prototype.splice.call(arguments,0,arguments.length));var b=new mc(a);return this.__set__&&this.__set__.push(b),b.paper=this,b.type="set",b},v.setStart=function(a){this.__set__=a||this.set()},v.setFinish=function(){var a=this.__set__;return delete this.__set__,a},v.getSize=function(){var a=this.canvas.parentNode;return{width:a.offsetWidth,height:a.offsetHeight}},v.setSize=function(a,b){return c._engine.setSize.call(this,a,b)},v.setViewBox=function(a,b,d,e,f){return c._engine.setViewBox.call(this,a,b,d,e,f)},v.top=v.bottom=null,v.raphael=c;var bc=function(a){var b=a.getBoundingClientRect(),c=a.ownerDocument,d=c.body,e=c.documentElement,f=e.clientTop||d.clientTop||0,g=e.clientLeft||d.clientLeft||0,h=b.top+(A.win.pageYOffset||e.scrollTop||d.scrollTop)-f,i=b.left+(A.win.pageXOffset||e.scrollLeft||d.scrollLeft)-g;return{y:h,x:i}};v.getElementByPoint=function(a,b){var c=this,d=c.canvas,e=A.doc.elementFromPoint(a,b);if(A.win.opera&&"svg"==e.tagName){var f=bc(d),g=d.createSVGRect();g.x=a-f.x,g.y=b-f.y,g.width=g.height=1;var h=d.getIntersectionList(g,null);h.length&&(e=h[h.length-1])}if(!e)return null;for(;e.parentNode&&e!=d.parentNode&&!e.raphael;)e=e.parentNode;return e==c.canvas.parentNode&&(e=d),e=e&&e.raphael?c.getById(e.raphaelid):null},v.getElementsByBBox=function(a){var b=this.set();return this.forEach(function(d){c.isBBoxIntersect(d.getBBox(),a)&&b.push(d)}),b},v.getById=function(a){for(var b=this.bottom;b;){if(b.id==a)return b;b=b.next}return null},v.forEach=function(a,b){for(var c=this.bottom;c;){if(a.call(b,c)===!1)return this;c=c.next}return this},v.getElementsByPoint=function(a,b){var c=this.set();return this.forEach(function(d){d.isPointInside(a,b)&&c.push(d)}),c},$b.isPointInside=function(a,b){var d=this.realPath=qb[this.type](this);return this.attr("transform")&&this.attr("transform").length&&(d=c.transformPath(d,this.attr("transform"))),c.isPointInsidePath(d,a,b)},$b.getBBox=function(a){if(this.removed)return{};var b=this._;return a?((b.dirty||!b.bboxwt)&&(this.realPath=qb[this.type](this),b.bboxwt=Bb(this.realPath),b.bboxwt.toString=p,b.dirty=0),b.bboxwt):((b.dirty||b.dirtyT||!b.bbox)&&((b.dirty||!this.realPath)&&(b.bboxwt=0,this.realPath=qb[this.type](this)),b.bbox=Bb(rb(this.realPath,this.matrix)),b.bbox.toString=p,b.dirty=b.dirtyT=0),b.bbox)},$b.clone=function(){if(this.removed)return null;var a=this.paper[this.type]().attr(this.attr());return this.__set__&&this.__set__.push(a),a},$b.glow=function(a){if("text"==this.type)return null;a=a||{};var b={width:(a.width||10)+(+this.attr("stroke-width")||1),fill:a.fill||!1,opacity:a.opacity||.5,offsetx:a.offsetx||0,offsety:a.offsety||0,color:a.color||"#000"},c=b.width/2,d=this.paper,e=d.set(),f=this.realPath||qb[this.type](this);f=this.matrix?rb(f,this.matrix):f;for(var g=1;c+1>g;g++)e.push(d.path(f).attr({stroke:b.color,fill:b.fill?b.color:"none","stroke-linejoin":"round","stroke-linecap":"round","stroke-width":+(b.width/c*g).toFixed(3),opacity:+(b.opacity/c).toFixed(3)}));return e.insertBefore(this).translate(b.offsetx,b.offsety)};var cc=function(a,b,d,e,f,g,h,i,l){return null==l?j(a,b,d,e,f,g,h,i):c.findDotsAtSegment(a,b,d,e,f,g,h,i,k(a,b,d,e,f,g,h,i,l))},dc=function(a,b){return function(d,e,f){d=Kb(d);for(var g,h,i,j,k,l="",m={},n=0,o=0,p=d.length;p>o;o++){if(i=d[o],"M"==i[0])g=+i[1],h=+i[2];else{if(j=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6]),n+j>e){if(b&&!m.start){if(k=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n),l+=["C"+k.start.x,k.start.y,k.m.x,k.m.y,k.x,k.y],f)return l;m.start=l,l=["M"+k.x,k.y+"C"+k.n.x,k.n.y,k.end.x,k.end.y,i[5],i[6]].join(),n+=j,g=+i[5],h=+i[6];continue}if(!a&&!b)return k=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n),{x:k.x,y:k.y,alpha:k.alpha}}n+=j,g=+i[5],h=+i[6]}l+=i.shift()+i}return m.end=l,k=a?n:b?m:c.findDotsAtSegment(g,h,i[0],i[1],i[2],i[3],i[4],i[5],1),k.alpha&&(k={x:k.x,y:k.y,alpha:k.alpha}),k}},ec=dc(1),fc=dc(),gc=dc(0,1);c.getTotalLength=ec,c.getPointAtLength=fc,c.getSubpath=function(a,b,c){if(this.getTotalLength(a)-c<1e-6)return gc(a,b).end;var d=gc(a,c,1);return b?gc(d,b).end:d},$b.getTotalLength=function(){var a=this.getPath();if(a)return this.node.getTotalLength?this.node.getTotalLength():ec(a)},$b.getPointAtLength=function(a){var b=this.getPath();if(b)return fc(b,a)},$b.getPath=function(){var a,b=c._getPath[this.type];if("text"!=this.type&&"set"!=this.type)return b&&(a=b(this)),a},$b.getSubpath=function(a,b){var d=this.getPath();if(d)return c.getSubpath(d,a,b)};var hc=c.easing_formulas={linear:function(a){return a},"<":function(a){return R(a,1.7)},">":function(a){return R(a,.48)},"<>":function(a){var b=.48-a/1.04,c=N.sqrt(.1734+b*b),d=c-b,e=R(Q(d),1/3)*(0>d?-1:1),f=-c-b,g=R(Q(f),1/3)*(0>f?-1:1),h=e+g+.5;return 3*(1-h)*h*h+h*h*h},backIn:function(a){var b=1.70158;return a*a*((b+1)*a-b)},backOut:function(a){a-=1;var b=1.70158;return a*a*((b+1)*a+b)+1},elastic:function(a){return a==!!a?a:R(2,-10*a)*N.sin(2*(a-.075)*S/.3)+1},bounce:function(a){var b,c=7.5625,d=2.75;return 1/d>a?b=c*a*a:2/d>a?(a-=1.5/d,b=c*a*a+.75):2.5/d>a?(a-=2.25/d,b=c*a*a+.9375):(a-=2.625/d,b=c*a*a+.984375),b}};hc.easeIn=hc["ease-in"]=hc["<"],hc.easeOut=hc["ease-out"]=hc[">"],hc.easeInOut=hc["ease-in-out"]=hc["<>"],hc["back-in"]=hc.backIn,hc["back-out"]=hc.backOut;var ic=[],jc=a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame||a.msRequestAnimationFrame||function(a){setTimeout(a,16)},kc=function(){for(var a=+new Date,d=0;dh))if(i>h){var q=j(h/i);for(var r in k)if(k[z](r)){switch(db[r]){case T:f=+k[r]+q*i*l[r];break;case"colour":f="rgb("+[lc($(k[r].r+q*i*l[r].r)),lc($(k[r].g+q*i*l[r].g)),lc($(k[r].b+q*i*l[r].b))].join(",")+")";break;case"path":f=[];for(var t=0,u=k[r].length;u>t;t++){f[t]=[k[r][t][0]];for(var v=1,w=k[r][t].length;w>v;v++)f[t][v]=+k[r][t][v]+q*i*l[r][t][v];f[t]=f[t].join(H)}f=f.join(H);break;case"transform":if(l[r].real)for(f=[],t=0,u=k[r].length;u>t;t++)for(f[t]=[k[r][t][0]],v=1,w=k[r][t].length;w>v;v++)f[t][v]=k[r][t][v]+q*i*l[r][t][v];else{var x=function(a){return+k[r][a]+q*i*l[r][a]};f=[["m",x(0),x(1),x(2),x(3),x(4),x(5)]]}break;case"csv":if("clip-rect"==r)for(f=[],t=4;t--;)f[t]=+k[r][t]+q*i*l[r][t];break;default:var y=[][E](k[r]);for(f=[],t=n.paper.customAttributes[r].length;t--;)f[t]=+y[t]+q*i*l[r][t]}o[r]=f}n.attr(o),function(a,c,d){setTimeout(function(){b("raphael.anim.frame."+a,c,d)})}(n.id,n,e.anim)}else{if(function(a,d,e){setTimeout(function(){b("raphael.anim.frame."+d.id,d,e),b("raphael.anim.finish."+d.id,d,e),c.is(a,"function")&&a.call(d)})}(e.callback,n,e.anim),n.attr(m),ic.splice(d--,1),e.repeat>1&&!e.next){for(g in m)m[z](g)&&(p[g]=e.totalOrigin[g]);e.el.attr(p),s(e.anim,e.el,e.anim.percents[0],null,e.totalOrigin,e.repeat-1)}e.next&&!e.stop&&s(e.anim,e.el,e.next,null,e.totalOrigin,e.repeat)}}}c.svg&&n&&n.paper&&n.paper.safari(),ic.length&&jc(kc)},lc=function(a){return a>255?255:0>a?0:a};$b.animateWith=function(a,b,d,e,f,g){var h=this;if(h.removed)return g&&g.call(h),h;var i=d instanceof r?d:c.animation(d,e,f,g);s(i,h,i.percents[0],null,h.attr());for(var j=0,k=ic.length;k>j;j++)if(ic[j].anim==b&&ic[j].el==a){ic[k-1].start=ic[j].start;break}return h},$b.onAnimation=function(a){return a?b.on("raphael.anim.frame."+this.id,a):b.unbind("raphael.anim.frame."+this.id),this},r.prototype.delay=function(a){var b=new r(this.anim,this.ms);return b.times=this.times,b.del=+a||0,b},r.prototype.repeat=function(a){var b=new r(this.anim,this.ms);return b.del=this.del,b.times=N.floor(O(a,0))||1,b},c.animation=function(a,b,d,e){if(a instanceof r)return a;(c.is(d,"function")||!d)&&(e=e||d||null,d=null),a=Object(a),b=+b||0;var f,g,h={};for(g in a)a[z](g)&&_(g)!=g&&_(g)+"%"!=g&&(f=!0,h[g]=a[g]);if(f)return d&&(h.easing=d),e&&(h.callback=e),new r({100:h},b);if(e){var i=0;for(var j in a){var k=ab(j);a[z](j)&&k>i&&(i=k)}i+="%",!a[i].callback&&(a[i].callback=e)}return new r(a,b)},$b.animate=function(a,b,d,e){var f=this;if(f.removed)return e&&e.call(f),f;var g=a instanceof r?a:c.animation(a,b,d,e);return s(g,f,g.percents[0],null,f.attr()),f},$b.setTime=function(a,b){return a&&null!=b&&this.status(a,P(b,a.ms)/a.ms),this},$b.status=function(a,b){var c,d,e=[],f=0;if(null!=b)return s(a,this,-1,P(b,1)),this;for(c=ic.length;c>f;f++)if(d=ic[f],d.el.id==this.id&&(!a||d.anim==a)){if(a)return d.status;e.push({anim:d.anim,status:d.status})}return a?0:e},$b.pause=function(a){for(var c=0;cb;b++)!a[b]||a[b].constructor!=$b.constructor&&a[b].constructor!=mc||(this[this.items.length]=this.items[this.items.length]=a[b],this.length++)},nc=mc.prototype;nc.push=function(){for(var a,b,c=0,d=arguments.length;d>c;c++)a=arguments[c],!a||a.constructor!=$b.constructor&&a.constructor!=mc||(b=this.items.length,this[b]=this.items[b]=a,this.length++);return this},nc.pop=function(){return this.length&&delete this[this.length--],this.items.pop()},nc.forEach=function(a,b){for(var c=0,d=this.items.length;d>c;c++)if(a.call(b,this.items[c],c)===!1)return this;return this};for(var oc in $b)$b[z](oc)&&(nc[oc]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a][D](c,b)})}}(oc));return nc.attr=function(a,b){if(a&&c.is(a,V)&&c.is(a[0],"object"))for(var d=0,e=a.length;e>d;d++)this.items[d].attr(a[d]);else for(var f=0,g=this.items.length;g>f;f++)this.items[f].attr(a,b);return this},nc.clear=function(){for(;this.length;)this.pop()},nc.splice=function(a,b){a=0>a?O(this.length+a,0):a,b=O(0,P(this.length-a,b));var c,d=[],e=[],f=[];for(c=2;cc;c++)e.push(this[a+c]);for(;cc?f[c]:d[c-g];for(c=this.items.length=this.length-=b-g;this[c];)delete this[c++];return new mc(e)},nc.exclude=function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]==a)return this.splice(b,1),!0},nc.animate=function(a,b,d,e){(c.is(d,"function")||!d)&&(e=d||null);var f,g,h=this.items.length,i=h,j=this;if(!h)return this;e&&(g=function(){!--h&&e.call(j)}),d=c.is(d,U)?d:g;var k=c.animation(a,b,d,g);for(f=this.items[--i].animate(k);i--;)this.items[i]&&!this.items[i].removed&&this.items[i].animateWith(f,k,k),this.items[i]&&!this.items[i].removed||h--;return this},nc.insertAfter=function(a){for(var b=this.items.length;b--;)this.items[b].insertAfter(a);return this},nc.getBBox=function(){for(var a=[],b=[],c=[],d=[],e=this.items.length;e--;)if(!this.items[e].removed){var f=this.items[e].getBBox();a.push(f.x),b.push(f.y),c.push(f.x+f.width),d.push(f.y+f.height)}return a=P[D](0,a),b=P[D](0,b),c=O[D](0,c),d=O[D](0,d),{x:a,y:b,x2:c,y2:d,width:c-a,height:d-b}},nc.clone=function(a){a=this.paper.set();for(var b=0,c=this.items.length;c>b;b++)a.push(this.items[b].clone());return a},nc.toString=function(){return"Raphaël‘s set"},nc.glow=function(a){var b=this.paper.set();return this.forEach(function(c){var d=c.glow(a);null!=d&&d.forEach(function(a){b.push(a)})}),b},nc.isPointInside=function(a,b){var c=!1;return this.forEach(function(d){return d.isPointInside(a,b)?(c=!0,!1):void 0}),c},c.registerFont=function(a){if(!a.face)return a;this.fonts=this.fonts||{};var b={w:a.w,face:{},glyphs:{}},c=a.face["font-family"];for(var d in a.face)a.face[z](d)&&(b.face[d]=a.face[d]);if(this.fonts[c]?this.fonts[c].push(b):this.fonts[c]=[b],!a.svg){b.face["units-per-em"]=ab(a.face["units-per-em"],10);for(var e in a.glyphs)if(a.glyphs[z](e)){var f=a.glyphs[e];if(b.glyphs[e]={w:f.w,k:{},d:f.d&&"M"+f.d.replace(/[mlcxtrv]/g,function(a){return{l:"L",c:"C",x:"z",t:"m",r:"l",v:"c"}[a]||"M"})+"z"},f.k)for(var g in f.k)f[z](g)&&(b.glyphs[e].k[g]=f.k[g])}}return a},v.getFont=function(a,b,d,e){if(e=e||"normal",d=d||"normal",b=+b||{normal:400,bold:700,lighter:300,bolder:800}[b]||400,c.fonts){var f=c.fonts[a];if(!f){var g=new RegExp("(^|\\s)"+a.replace(/[^\w\d\s+!~.:_-]/g,G)+"(\\s|$)","i");for(var h in c.fonts)if(c.fonts[z](h)&&g.test(h)){f=c.fonts[h];break}}var i;if(f)for(var j=0,k=f.length;k>j&&(i=f[j],i.face["font-weight"]!=b||i.face["font-style"]!=d&&i.face["font-style"]||i.face["font-stretch"]!=e);j++);return i}},v.print=function(a,b,d,e,f,g,h,i){g=g||"middle",h=O(P(h||0,1),-1),i=O(P(i||1,3),1);var j,k=I(d)[J](G),l=0,m=0,n=G;if(c.is(e,"string")&&(e=this.getFont(e)),e){j=(f||16)/e.face["units-per-em"];for(var o=e.face.bbox[J](w),p=+o[0],q=o[3]-o[1],r=0,s=+o[1]+("baseline"==g?q+ +e.face.descent:q/2),t=0,u=k.length;u>t;t++){if("\n"==k[t])l=0,x=0,m=0,r+=q*i;else{var v=m&&e.glyphs[k[t-1]]||{},x=e.glyphs[k[t]];l+=m?(v.w||e.w)+(v.k&&v.k[k[t]]||0)+e.w*h:0,m=1}x&&x.d&&(n+=c.transformPath(x.d,["t",l*j,r*j,"s",j,j,p,s,"t",(a-p)/j,(b-s)/j]))}}return this.path(n).attr({fill:"#000",stroke:"none"})},v.add=function(a){if(c.is(a,"array"))for(var b,d=this.set(),e=0,f=a.length;f>e;e++)b=a[e]||{},x[z](b.type)&&d.push(this[b.type]().attr(b));return d},c.format=function(a,b){var d=c.is(b,V)?[0][E](b):arguments;return a&&c.is(a,U)&&d.length-1&&(a=a.replace(y,function(a,b){return null==d[++b]?G:d[b]})),a||G},c.fullfill=function(){var a=/\{([^\}]+)\}/g,b=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,c=function(a,c,d){var e=d;return c.replace(b,function(a,b,c,d,f){b=b||d,e&&(b in e&&(e=e[b]),"function"==typeof e&&f&&(e=e()))}),e=(null==e||e==d?a:e)+""};return function(b,d){return String(b).replace(a,function(a,b){return c(a,b,d)})}}(),c.ninja=function(){return B.was?A.win.Raphael=B.is:delete Raphael,c},c.st=nc,b.on("raphael.DOMload",function(){u=!0}),function(a,b,d){function e(){/in/.test(a.readyState)?setTimeout(e,9):c.eve("raphael.DOMload")}null==a.readyState&&a.addEventListener&&(a.addEventListener(b,d=function(){a.removeEventListener(b,d,!1),a.readyState="complete"},!1),a.readyState="loading"),e()}(document,"DOMContentLoaded"),function(){if(c.svg){var a="hasOwnProperty",b=String,d=parseFloat,e=parseInt,f=Math,g=f.max,h=f.abs,i=f.pow,j=/[, ]+/,k=c.eve,l="",m=" ",n="http://www.w3.org/1999/xlink",o={block:"M5,0 0,2.5 5,5z",classic:"M5,0 0,2.5 5,5 3.5,3 3.5,2z",diamond:"M2.5,0 5,2.5 2.5,5 0,2.5z",open:"M6,1 1,3.5 6,6",oval:"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z"},p={};c.toString=function(){return"Your browser supports SVG.\nYou are running Raphaël "+this.version};var q=function(d,e){if(e){"string"==typeof d&&(d=q(d));for(var f in e)e[a](f)&&("xlink:"==f.substring(0,6)?d.setAttributeNS(n,f.substring(6),b(e[f])):d.setAttribute(f,b(e[f])))}else d=c._g.doc.createElementNS("http://www.w3.org/2000/svg",d),d.style&&(d.style.webkitTapHighlightColor="rgba(0,0,0,0)");return d},r=function(a,e){var j="linear",k=a.id+e,m=.5,n=.5,o=a.node,p=a.paper,r=o.style,s=c._g.doc.getElementById(k);if(!s){if(e=b(e).replace(c._radial_gradient,function(a,b,c){if(j="radial",b&&c){m=d(b),n=d(c);var e=2*(n>.5)-1;i(m-.5,2)+i(n-.5,2)>.25&&(n=f.sqrt(.25-i(m-.5,2))*e+.5)&&.5!=n&&(n=n.toFixed(5)-1e-5*e)}return l}),e=e.split(/\s*\-\s*/),"linear"==j){var t=e.shift();if(t=-d(t),isNaN(t))return null;var u=[0,0,f.cos(c.rad(t)),f.sin(c.rad(t))],v=1/(g(h(u[2]),h(u[3]))||1);u[2]*=v,u[3]*=v,u[2]<0&&(u[0]=-u[2],u[2]=0),u[3]<0&&(u[1]=-u[3],u[3]=0)}var w=c._parseDots(e);if(!w)return null;if(k=k.replace(/[\(\)\s,\xb0#]/g,"_"),a.gradient&&k!=a.gradient.id&&(p.defs.removeChild(a.gradient),delete a.gradient),!a.gradient){s=q(j+"Gradient",{id:k}),a.gradient=s,q(s,"radial"==j?{fx:m,fy:n}:{x1:u[0],y1:u[1],x2:u[2],y2:u[3],gradientTransform:a.matrix.invert()}),p.defs.appendChild(s);for(var x=0,y=w.length;y>x;x++)s.appendChild(q("stop",{offset:w[x].offset?w[x].offset:x?"100%":"0%","stop-color":w[x].color||"#fff"}))}}return q(o,{fill:"url('"+document.location+"#"+k+"')",opacity:1,"fill-opacity":1}),r.fill=l,r.opacity=1,r.fillOpacity=1,1},s=function(a){var b=a.getBBox(1);q(a.pattern,{patternTransform:a.matrix.invert()+" translate("+b.x+","+b.y+")"})},t=function(d,e,f){if("path"==d.type){for(var g,h,i,j,k,m=b(e).toLowerCase().split("-"),n=d.paper,r=f?"end":"start",s=d.node,t=d.attrs,u=t["stroke-width"],v=m.length,w="classic",x=3,y=3,z=5;v--;)switch(m[v]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":w=m[v];break;case"wide":y=5;break;case"narrow":y=2;break;case"long":x=5;break;case"short":x=2}if("open"==w?(x+=2,y+=2,z+=2,i=1,j=f?4:1,k={fill:"none",stroke:t.stroke}):(j=i=x/2,k={fill:t.stroke,stroke:"none"}),d._.arrows?f?(d._.arrows.endPath&&p[d._.arrows.endPath]--,d._.arrows.endMarker&&p[d._.arrows.endMarker]--):(d._.arrows.startPath&&p[d._.arrows.startPath]--,d._.arrows.startMarker&&p[d._.arrows.startMarker]--):d._.arrows={},"none"!=w){var A="raphael-marker-"+w,B="raphael-marker-"+r+w+x+y+"-obj"+d.id;c._g.doc.getElementById(A)?p[A]++:(n.defs.appendChild(q(q("path"),{"stroke-linecap":"round",d:o[w],id:A})),p[A]=1);var C,D=c._g.doc.getElementById(B);D?(p[B]++,C=D.getElementsByTagName("use")[0]):(D=q(q("marker"),{id:B,markerHeight:y,markerWidth:x,orient:"auto",refX:j,refY:y/2}),C=q(q("use"),{"xlink:href":"#"+A,transform:(f?"rotate(180 "+x/2+" "+y/2+") ":l)+"scale("+x/z+","+y/z+")","stroke-width":(1/((x/z+y/z)/2)).toFixed(4)}),D.appendChild(C),n.defs.appendChild(D),p[B]=1),q(C,k);var E=i*("diamond"!=w&&"oval"!=w);f?(g=d._.arrows.startdx*u||0,h=c.getTotalLength(t.path)-E*u):(g=E*u,h=c.getTotalLength(t.path)-(d._.arrows.enddx*u||0)),k={},k["marker-"+r]="url(#"+B+")",(h||g)&&(k.d=c.getSubpath(t.path,g,h)),q(s,k),d._.arrows[r+"Path"]=A,d._.arrows[r+"Marker"]=B,d._.arrows[r+"dx"]=E,d._.arrows[r+"Type"]=w,d._.arrows[r+"String"]=e}else f?(g=d._.arrows.startdx*u||0,h=c.getTotalLength(t.path)-g):(g=0,h=c.getTotalLength(t.path)-(d._.arrows.enddx*u||0)),d._.arrows[r+"Path"]&&q(s,{d:c.getSubpath(t.path,g,h)}),delete d._.arrows[r+"Path"],delete d._.arrows[r+"Marker"],delete d._.arrows[r+"dx"],delete d._.arrows[r+"Type"],delete d._.arrows[r+"String"];for(k in p)if(p[a](k)&&!p[k]){var F=c._g.doc.getElementById(k);F&&F.parentNode.removeChild(F)}}},u={"":[0],none:[0],"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]},v=function(a,c,d){if(c=u[b(c).toLowerCase()]){for(var e=a.attrs["stroke-width"]||"1",f={round:e,square:e,butt:0}[a.attrs["stroke-linecap"]||d["stroke-linecap"]]||0,g=[],h=c.length;h--;)g[h]=c[h]*e+(h%2?1:-1)*f;q(a.node,{"stroke-dasharray":g.join(",")})}},w=function(d,f){var i=d.node,k=d.attrs,m=i.style.visibility;i.style.visibility="hidden";for(var o in f)if(f[a](o)){if(!c._availableAttrs[a](o))continue;var p=f[o];switch(k[o]=p,o){case"blur":d.blur(p);break;case"title":var u=i.getElementsByTagName("title");if(u.length&&(u=u[0]))u.firstChild.nodeValue=p;else{u=q("title");var w=c._g.doc.createTextNode(p);u.appendChild(w),i.appendChild(u)}break;case"href":case"target":var x=i.parentNode;if("a"!=x.tagName.toLowerCase()){var z=q("a");x.insertBefore(z,i),z.appendChild(i),x=z}"target"==o?x.setAttributeNS(n,"show","blank"==p?"new":p):x.setAttributeNS(n,o,p);break;case"cursor":i.style.cursor=p;break;case"transform":d.transform(p);break;case"arrow-start":t(d,p);break;case"arrow-end":t(d,p,1);break;case"clip-rect":var A=b(p).split(j);if(4==A.length){d.clip&&d.clip.parentNode.parentNode.removeChild(d.clip.parentNode);var B=q("clipPath"),C=q("rect");B.id=c.createUUID(),q(C,{x:A[0],y:A[1],width:A[2],height:A[3]}),B.appendChild(C),d.paper.defs.appendChild(B),q(i,{"clip-path":"url(#"+B.id+")"}),d.clip=C}if(!p){var D=i.getAttribute("clip-path");if(D){var E=c._g.doc.getElementById(D.replace(/(^url\(#|\)$)/g,l));E&&E.parentNode.removeChild(E),q(i,{"clip-path":l}),delete d.clip}}break;case"path":"path"==d.type&&(q(i,{d:p?k.path=c._pathToAbsolute(p):"M0,0"}),d._.dirty=1,d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1)));break;case"width":if(i.setAttribute(o,p),d._.dirty=1,!k.fx)break;o="x",p=k.x;case"x":k.fx&&(p=-k.x-(k.width||0));case"rx":if("rx"==o&&"rect"==d.type)break;case"cx":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case"height":if(i.setAttribute(o,p),d._.dirty=1,!k.fy)break;o="y",p=k.y;case"y":k.fy&&(p=-k.y-(k.height||0));case"ry":if("ry"==o&&"rect"==d.type)break;case"cy":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case"r":"rect"==d.type?q(i,{rx:p,ry:p}):i.setAttribute(o,p),d._.dirty=1;break;case"src":"image"==d.type&&i.setAttributeNS(n,"href",p);break;case"stroke-width":(1!=d._.sx||1!=d._.sy)&&(p/=g(h(d._.sx),h(d._.sy))||1),i.setAttribute(o,p),k["stroke-dasharray"]&&v(d,k["stroke-dasharray"],f),d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1));break;case"stroke-dasharray":v(d,p,f);break;case"fill":var F=b(p).match(c._ISURL);if(F){B=q("pattern");var G=q("image");B.id=c.createUUID(),q(B,{x:0,y:0,patternUnits:"userSpaceOnUse",height:1,width:1}),q(G,{x:0,y:0,"xlink:href":F[1]}),B.appendChild(G),function(a){c._preload(F[1],function(){var b=this.offsetWidth,c=this.offsetHeight;q(a,{width:b,height:c}),q(G,{width:b,height:c}),d.paper.safari()})}(B),d.paper.defs.appendChild(B),q(i,{fill:"url(#"+B.id+")"}),d.pattern=B,d.pattern&&s(d);break}var H=c.getRGB(p);if(H.error){if(("circle"==d.type||"ellipse"==d.type||"r"!=b(p).charAt())&&r(d,p)){if("opacity"in k||"fill-opacity"in k){var I=c._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g,l));if(I){var J=I.getElementsByTagName("stop");q(J[J.length-1],{"stop-opacity":("opacity"in k?k.opacity:1)*("fill-opacity"in k?k["fill-opacity"]:1)})}}k.gradient=p,k.fill="none";break}}else delete f.gradient,delete k.gradient,!c.is(k.opacity,"undefined")&&c.is(f.opacity,"undefined")&&q(i,{opacity:k.opacity}),!c.is(k["fill-opacity"],"undefined")&&c.is(f["fill-opacity"],"undefined")&&q(i,{"fill-opacity":k["fill-opacity"]});H[a]("opacity")&&q(i,{"fill-opacity":H.opacity>1?H.opacity/100:H.opacity});case"stroke":H=c.getRGB(p),i.setAttribute(o,H.hex),"stroke"==o&&H[a]("opacity")&&q(i,{"stroke-opacity":H.opacity>1?H.opacity/100:H.opacity}),"stroke"==o&&d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1));break;case"gradient":("circle"==d.type||"ellipse"==d.type||"r"!=b(p).charAt())&&r(d,p);break; -case"opacity":k.gradient&&!k[a]("stroke-opacity")&&q(i,{"stroke-opacity":p>1?p/100:p});case"fill-opacity":if(k.gradient){I=c._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g,l)),I&&(J=I.getElementsByTagName("stop"),q(J[J.length-1],{"stop-opacity":p}));break}default:"font-size"==o&&(p=e(p,10)+"px");var K=o.replace(/(\-.)/g,function(a){return a.substring(1).toUpperCase()});i.style[K]=p,d._.dirty=1,i.setAttribute(o,p)}}y(d,f),i.style.visibility=m},x=1.2,y=function(d,f){if("text"==d.type&&(f[a]("text")||f[a]("font")||f[a]("font-size")||f[a]("x")||f[a]("y"))){var g=d.attrs,h=d.node,i=h.firstChild?e(c._g.doc.defaultView.getComputedStyle(h.firstChild,l).getPropertyValue("font-size"),10):10;if(f[a]("text")){for(g.text=f.text;h.firstChild;)h.removeChild(h.firstChild);for(var j,k=b(f.text).split("\n"),m=[],n=0,o=k.length;o>n;n++)j=q("tspan"),n&&q(j,{dy:i*x,x:g.x}),j.appendChild(c._g.doc.createTextNode(k[n])),h.appendChild(j),m[n]=j}else for(m=h.getElementsByTagName("tspan"),n=0,o=m.length;o>n;n++)n?q(m[n],{dy:i*x,x:g.x}):q(m[0],{dy:0});q(h,{x:g.x,y:g.y}),d._.dirty=1;var p=d._getBBox(),r=g.y-(p.y+p.height/2);r&&c.is(r,"finite")&&q(m[0],{dy:r})}},z=function(a){return a.parentNode&&"a"===a.parentNode.tagName.toLowerCase()?a.parentNode:a},A=function(a,b){this[0]=this.node=a,a.raphael=!0,this.id=c._oid++,a.raphaelid=this.id,this.matrix=c.matrix(),this.realPath=null,this.paper=b,this.attrs=this.attrs||{},this._={transform:[],sx:1,sy:1,deg:0,dx:0,dy:0,dirty:1},!b.bottom&&(b.bottom=this),this.prev=b.top,b.top&&(b.top.next=this),b.top=this,this.next=null},B=c.el;A.prototype=B,B.constructor=A,c._engine.path=function(a,b){var c=q("path");b.canvas&&b.canvas.appendChild(c);var d=new A(c,b);return d.type="path",w(d,{fill:"none",stroke:"#000",path:a}),d},B.rotate=function(a,c,e){if(this.removed)return this;if(a=b(a).split(j),a.length-1&&(c=d(a[1]),e=d(a[2])),a=d(a[0]),null==e&&(c=e),null==c||null==e){var f=this.getBBox(1);c=f.x+f.width/2,e=f.y+f.height/2}return this.transform(this._.transform.concat([["r",a,c,e]])),this},B.scale=function(a,c,e,f){if(this.removed)return this;if(a=b(a).split(j),a.length-1&&(c=d(a[1]),e=d(a[2]),f=d(a[3])),a=d(a[0]),null==c&&(c=a),null==f&&(e=f),null==e||null==f)var g=this.getBBox(1);return e=null==e?g.x+g.width/2:e,f=null==f?g.y+g.height/2:f,this.transform(this._.transform.concat([["s",a,c,e,f]])),this},B.translate=function(a,c){return this.removed?this:(a=b(a).split(j),a.length-1&&(c=d(a[1])),a=d(a[0])||0,c=+c||0,this.transform(this._.transform.concat([["t",a,c]])),this)},B.transform=function(b){var d=this._;if(null==b)return d.transform;if(c._extractTransform(this,b),this.clip&&q(this.clip,{transform:this.matrix.invert()}),this.pattern&&s(this),this.node&&q(this.node,{transform:this.matrix}),1!=d.sx||1!=d.sy){var e=this.attrs[a]("stroke-width")?this.attrs["stroke-width"]:1;this.attr({"stroke-width":e})}return this},B.hide=function(){return!this.removed&&this.paper.safari(this.node.style.display="none"),this},B.show=function(){return!this.removed&&this.paper.safari(this.node.style.display=""),this},B.remove=function(){var a=z(this.node);if(!this.removed&&a.parentNode){var b=this.paper;b.__set__&&b.__set__.exclude(this),k.unbind("raphael.*.*."+this.id),this.gradient&&b.defs.removeChild(this.gradient),c._tear(this,b),a.parentNode.removeChild(a),this.removeData();for(var d in this)this[d]="function"==typeof this[d]?c._removedFactory(d):null;this.removed=!0}},B._getBBox=function(){if("none"==this.node.style.display){this.show();var a=!0}var b,c=!1;this.paper.canvas.parentElement?b=this.paper.canvas.parentElement.style:this.paper.canvas.parentNode&&(b=this.paper.canvas.parentNode.style),b&&"none"==b.display&&(c=!0,b.display="");var d={};try{d=this.node.getBBox()}catch(e){d={x:this.node.clientLeft,y:this.node.clientTop,width:this.node.clientWidth,height:this.node.clientHeight}}finally{d=d||{},c&&(b.display="none")}return a&&this.hide(),d},B.attr=function(b,d){if(this.removed)return this;if(null==b){var e={};for(var f in this.attrs)this.attrs[a](f)&&(e[f]=this.attrs[f]);return e.gradient&&"none"==e.fill&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform,e}if(null==d&&c.is(b,"string")){if("fill"==b&&"none"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;if("transform"==b)return this._.transform;for(var g=b.split(j),h={},i=0,l=g.length;l>i;i++)b=g[i],h[b]=b in this.attrs?this.attrs[b]:c.is(this.paper.customAttributes[b],"function")?this.paper.customAttributes[b].def:c._availableAttrs[b];return l-1?h:h[g[0]]}if(null==d&&c.is(b,"array")){for(h={},i=0,l=b.length;l>i;i++)h[b[i]]=this.attr(b[i]);return h}if(null!=d){var m={};m[b]=d}else null!=b&&c.is(b,"object")&&(m=b);for(var n in m)k("raphael.attr."+n+"."+this.id,this,m[n]);for(n in this.paper.customAttributes)if(this.paper.customAttributes[a](n)&&m[a](n)&&c.is(this.paper.customAttributes[n],"function")){var o=this.paper.customAttributes[n].apply(this,[].concat(m[n]));this.attrs[n]=m[n];for(var p in o)o[a](p)&&(m[p]=o[p])}return w(this,m),this},B.toFront=function(){if(this.removed)return this;var a=z(this.node);a.parentNode.appendChild(a);var b=this.paper;return b.top!=this&&c._tofront(this,b),this},B.toBack=function(){if(this.removed)return this;var a=z(this.node),b=a.parentNode;b.insertBefore(a,b.firstChild),c._toback(this,this.paper);this.paper;return this},B.insertAfter=function(a){if(this.removed||!a)return this;var b=z(this.node),d=z(a.node||a[a.length-1].node);return d.nextSibling?d.parentNode.insertBefore(b,d.nextSibling):d.parentNode.appendChild(b),c._insertafter(this,a,this.paper),this},B.insertBefore=function(a){if(this.removed||!a)return this;var b=z(this.node),d=z(a.node||a[0].node);return d.parentNode.insertBefore(b,d),c._insertbefore(this,a,this.paper),this},B.blur=function(a){var b=this;if(0!==+a){var d=q("filter"),e=q("feGaussianBlur");b.attrs.blur=a,d.id=c.createUUID(),q(e,{stdDeviation:+a||1.5}),d.appendChild(e),b.paper.defs.appendChild(d),b._blur=d,q(b.node,{filter:"url(#"+d.id+")"})}else b._blur&&(b._blur.parentNode.removeChild(b._blur),delete b._blur,delete b.attrs.blur),b.node.removeAttribute("filter");return b},c._engine.circle=function(a,b,c,d){var e=q("circle");a.canvas&&a.canvas.appendChild(e);var f=new A(e,a);return f.attrs={cx:b,cy:c,r:d,fill:"none",stroke:"#000"},f.type="circle",q(e,f.attrs),f},c._engine.rect=function(a,b,c,d,e,f){var g=q("rect");a.canvas&&a.canvas.appendChild(g);var h=new A(g,a);return h.attrs={x:b,y:c,width:d,height:e,rx:f||0,ry:f||0,fill:"none",stroke:"#000"},h.type="rect",q(g,h.attrs),h},c._engine.ellipse=function(a,b,c,d,e){var f=q("ellipse");a.canvas&&a.canvas.appendChild(f);var g=new A(f,a);return g.attrs={cx:b,cy:c,rx:d,ry:e,fill:"none",stroke:"#000"},g.type="ellipse",q(f,g.attrs),g},c._engine.image=function(a,b,c,d,e,f){var g=q("image");q(g,{x:c,y:d,width:e,height:f,preserveAspectRatio:"none"}),g.setAttributeNS(n,"href",b),a.canvas&&a.canvas.appendChild(g);var h=new A(g,a);return h.attrs={x:c,y:d,width:e,height:f,src:b},h.type="image",h},c._engine.text=function(a,b,d,e){var f=q("text");a.canvas&&a.canvas.appendChild(f);var g=new A(f,a);return g.attrs={x:b,y:d,"text-anchor":"middle",text:e,"font-family":c._availableAttrs["font-family"],"font-size":c._availableAttrs["font-size"],stroke:"none",fill:"#000"},g.type="text",w(g,g.attrs),g},c._engine.setSize=function(a,b){return this.width=a||this.width,this.height=b||this.height,this.canvas.setAttribute("width",this.width),this.canvas.setAttribute("height",this.height),this._viewBox&&this.setViewBox.apply(this,this._viewBox),this},c._engine.create=function(){var a=c._getContainer.apply(0,arguments),b=a&&a.container,d=a.x,e=a.y,f=a.width,g=a.height;if(!b)throw new Error("SVG container not found.");var h,i=q("svg"),j="overflow:hidden;";return d=d||0,e=e||0,f=f||512,g=g||342,q(i,{height:g,version:1.1,width:f,xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"}),1==b?(i.style.cssText=j+"position:absolute;left:"+d+"px;top:"+e+"px",c._g.doc.body.appendChild(i),h=1):(i.style.cssText=j+"position:relative",b.firstChild?b.insertBefore(i,b.firstChild):b.appendChild(i)),b=new c._Paper,b.width=f,b.height=g,b.canvas=i,b.clear(),b._left=b._top=0,h&&(b.renderfix=function(){}),b.renderfix(),b},c._engine.setViewBox=function(a,b,c,d,e){k("raphael.setViewBox",this,this._viewBox,[a,b,c,d,e]);var f,h,i=this.getSize(),j=g(c/i.width,d/i.height),l=this.top,n=e?"xMidYMid meet":"xMinYMin";for(null==a?(this._vbSize&&(j=1),delete this._vbSize,f="0 0 "+this.width+m+this.height):(this._vbSize=j,f=a+m+b+m+c+m+d),q(this.canvas,{viewBox:f,preserveAspectRatio:n});j&&l;)h="stroke-width"in l.attrs?l.attrs["stroke-width"]:1,l.attr({"stroke-width":h}),l._.dirty=1,l._.dirtyT=1,l=l.prev;return this._viewBox=[a,b,c,d,!!e],this},c.prototype.renderfix=function(){var a,b=this.canvas,c=b.style;try{a=b.getScreenCTM()||b.createSVGMatrix()}catch(d){a=b.createSVGMatrix()}var e=-a.e%1,f=-a.f%1;(e||f)&&(e&&(this._left=(this._left+e)%1,c.left=this._left+"px"),f&&(this._top=(this._top+f)%1,c.top=this._top+"px"))},c.prototype.clear=function(){c.eve("raphael.clear",this);for(var a=this.canvas;a.firstChild;)a.removeChild(a.firstChild);this.bottom=this.top=null,(this.desc=q("desc")).appendChild(c._g.doc.createTextNode("Created with Raphaël "+c.version)),a.appendChild(this.desc),a.appendChild(this.defs=q("defs"))},c.prototype.remove=function(){k("raphael.remove",this),this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var a in this)this[a]="function"==typeof this[a]?c._removedFactory(a):null};var C=c.st;for(var D in B)B[a](D)&&!C[a](D)&&(C[D]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(D))}}(),function(){if(c.vml){var a="hasOwnProperty",b=String,d=parseFloat,e=Math,f=e.round,g=e.max,h=e.min,i=e.abs,j="fill",k=/[, ]+/,l=c.eve,m=" progid:DXImageTransform.Microsoft",n=" ",o="",p={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},q=/([clmz]),?([^clmz]*)/gi,r=/ progid:\S+Blur\([^\)]+\)/g,s=/-?[^,\s-]+/g,t="position:absolute;left:0;top:0;width:1px;height:1px;behavior:url(#default#VML)",u=21600,v={path:1,rect:1,image:1},w={circle:1,ellipse:1},x=function(a){var d=/[ahqstv]/gi,e=c._pathToAbsolute;if(b(a).match(d)&&(e=c._path2curve),d=/[clmz]/g,e==c._pathToAbsolute&&!b(a).match(d)){var g=b(a).replace(q,function(a,b,c){var d=[],e="m"==b.toLowerCase(),g=p[b];return c.replace(s,function(a){e&&2==d.length&&(g+=d+p["m"==b?"l":"L"],d=[]),d.push(f(a*u))}),g+d});return g}var h,i,j=e(a);g=[];for(var k=0,l=j.length;l>k;k++){h=j[k],i=j[k][0].toLowerCase(),"z"==i&&(i="x");for(var m=1,r=h.length;r>m;m++)i+=f(h[m]*u)+(m!=r-1?",":o);g.push(i)}return g.join(n)},y=function(a,b,d){var e=c.matrix();return e.rotate(-a,.5,.5),{dx:e.x(b,d),dy:e.y(b,d)}},z=function(a,b,c,d,e,f){var g=a._,h=a.matrix,k=g.fillpos,l=a.node,m=l.style,o=1,p="",q=u/b,r=u/c;if(m.visibility="hidden",b&&c){if(l.coordsize=i(q)+n+i(r),m.rotation=f*(0>b*c?-1:1),f){var s=y(f,d,e);d=s.dx,e=s.dy}if(0>b&&(p+="x"),0>c&&(p+=" y")&&(o=-1),m.flip=p,l.coordorigin=d*-q+n+e*-r,k||g.fillsize){var t=l.getElementsByTagName(j);t=t&&t[0],l.removeChild(t),k&&(s=y(f,h.x(k[0],k[1]),h.y(k[0],k[1])),t.position=s.dx*o+n+s.dy*o),g.fillsize&&(t.size=g.fillsize[0]*i(b)+n+g.fillsize[1]*i(c)),l.appendChild(t)}m.visibility="visible"}};c.toString=function(){return"Your browser doesn’t support SVG. Falling down to VML.\nYou are running Raphaël "+this.version};var A=function(a,c,d){for(var e=b(c).toLowerCase().split("-"),f=d?"end":"start",g=e.length,h="classic",i="medium",j="medium";g--;)switch(e[g]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":h=e[g];break;case"wide":case"narrow":j=e[g];break;case"long":case"short":i=e[g]}var k=a.node.getElementsByTagName("stroke")[0];k[f+"arrow"]=h,k[f+"arrowlength"]=i,k[f+"arrowwidth"]=j},B=function(e,i){e.attrs=e.attrs||{};var l=e.node,m=e.attrs,p=l.style,q=v[e.type]&&(i.x!=m.x||i.y!=m.y||i.width!=m.width||i.height!=m.height||i.cx!=m.cx||i.cy!=m.cy||i.rx!=m.rx||i.ry!=m.ry||i.r!=m.r),r=w[e.type]&&(m.cx!=i.cx||m.cy!=i.cy||m.r!=i.r||m.rx!=i.rx||m.ry!=i.ry),s=e;for(var t in i)i[a](t)&&(m[t]=i[t]);if(q&&(m.path=c._getPath[e.type](e),e._.dirty=1),i.href&&(l.href=i.href),i.title&&(l.title=i.title),i.target&&(l.target=i.target),i.cursor&&(p.cursor=i.cursor),"blur"in i&&e.blur(i.blur),(i.path&&"path"==e.type||q)&&(l.path=x(~b(m.path).toLowerCase().indexOf("r")?c._pathToAbsolute(m.path):m.path),e._.dirty=1,"image"==e.type&&(e._.fillpos=[m.x,m.y],e._.fillsize=[m.width,m.height],z(e,1,1,0,0,0))),"transform"in i&&e.transform(i.transform),r){var y=+m.cx,B=+m.cy,D=+m.rx||+m.r||0,E=+m.ry||+m.r||0;l.path=c.format("ar{0},{1},{2},{3},{4},{1},{4},{1}x",f((y-D)*u),f((B-E)*u),f((y+D)*u),f((B+E)*u),f(y*u)),e._.dirty=1}if("clip-rect"in i){var G=b(i["clip-rect"]).split(k);if(4==G.length){G[2]=+G[2]+ +G[0],G[3]=+G[3]+ +G[1];var H=l.clipRect||c._g.doc.createElement("div"),I=H.style;I.clip=c.format("rect({1}px {2}px {3}px {0}px)",G),l.clipRect||(I.position="absolute",I.top=0,I.left=0,I.width=e.paper.width+"px",I.height=e.paper.height+"px",l.parentNode.insertBefore(H,l),H.appendChild(l),l.clipRect=H)}i["clip-rect"]||l.clipRect&&(l.clipRect.style.clip="auto")}if(e.textpath){var J=e.textpath.style;i.font&&(J.font=i.font),i["font-family"]&&(J.fontFamily='"'+i["font-family"].split(",")[0].replace(/^['"]+|['"]+$/g,o)+'"'),i["font-size"]&&(J.fontSize=i["font-size"]),i["font-weight"]&&(J.fontWeight=i["font-weight"]),i["font-style"]&&(J.fontStyle=i["font-style"])}if("arrow-start"in i&&A(s,i["arrow-start"]),"arrow-end"in i&&A(s,i["arrow-end"],1),null!=i.opacity||null!=i["stroke-width"]||null!=i.fill||null!=i.src||null!=i.stroke||null!=i["stroke-width"]||null!=i["stroke-opacity"]||null!=i["fill-opacity"]||null!=i["stroke-dasharray"]||null!=i["stroke-miterlimit"]||null!=i["stroke-linejoin"]||null!=i["stroke-linecap"]){var K=l.getElementsByTagName(j),L=!1;if(K=K&&K[0],!K&&(L=K=F(j)),"image"==e.type&&i.src&&(K.src=i.src),i.fill&&(K.on=!0),(null==K.on||"none"==i.fill||null===i.fill)&&(K.on=!1),K.on&&i.fill){var M=b(i.fill).match(c._ISURL);if(M){K.parentNode==l&&l.removeChild(K),K.rotate=!0,K.src=M[1],K.type="tile";var N=e.getBBox(1);K.position=N.x+n+N.y,e._.fillpos=[N.x,N.y],c._preload(M[1],function(){e._.fillsize=[this.offsetWidth,this.offsetHeight]})}else K.color=c.getRGB(i.fill).hex,K.src=o,K.type="solid",c.getRGB(i.fill).error&&(s.type in{circle:1,ellipse:1}||"r"!=b(i.fill).charAt())&&C(s,i.fill,K)&&(m.fill="none",m.gradient=i.fill,K.rotate=!1)}if("fill-opacity"in i||"opacity"in i){var O=((+m["fill-opacity"]+1||2)-1)*((+m.opacity+1||2)-1)*((+c.getRGB(i.fill).o+1||2)-1);O=h(g(O,0),1),K.opacity=O,K.src&&(K.color="none")}l.appendChild(K);var P=l.getElementsByTagName("stroke")&&l.getElementsByTagName("stroke")[0],Q=!1;!P&&(Q=P=F("stroke")),(i.stroke&&"none"!=i.stroke||i["stroke-width"]||null!=i["stroke-opacity"]||i["stroke-dasharray"]||i["stroke-miterlimit"]||i["stroke-linejoin"]||i["stroke-linecap"])&&(P.on=!0),("none"==i.stroke||null===i.stroke||null==P.on||0==i.stroke||0==i["stroke-width"])&&(P.on=!1);var R=c.getRGB(i.stroke);P.on&&i.stroke&&(P.color=R.hex),O=((+m["stroke-opacity"]+1||2)-1)*((+m.opacity+1||2)-1)*((+R.o+1||2)-1);var S=.75*(d(i["stroke-width"])||1);if(O=h(g(O,0),1),null==i["stroke-width"]&&(S=m["stroke-width"]),i["stroke-width"]&&(P.weight=S),S&&1>S&&(O*=S)&&(P.weight=1),P.opacity=O,i["stroke-linejoin"]&&(P.joinstyle=i["stroke-linejoin"]||"miter"),P.miterlimit=i["stroke-miterlimit"]||8,i["stroke-linecap"]&&(P.endcap="butt"==i["stroke-linecap"]?"flat":"square"==i["stroke-linecap"]?"square":"round"),"stroke-dasharray"in i){var T={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};P.dashstyle=T[a](i["stroke-dasharray"])?T[i["stroke-dasharray"]]:o}Q&&l.appendChild(P)}if("text"==s.type){s.paper.canvas.style.display=o;var U=s.paper.span,V=100,W=m.font&&m.font.match(/\d+(?:\.\d*)?(?=px)/);p=U.style,m.font&&(p.font=m.font),m["font-family"]&&(p.fontFamily=m["font-family"]),m["font-weight"]&&(p.fontWeight=m["font-weight"]),m["font-style"]&&(p.fontStyle=m["font-style"]),W=d(m["font-size"]||W&&W[0])||10,p.fontSize=W*V+"px",s.textpath.string&&(U.innerHTML=b(s.textpath.string).replace(/"));var X=U.getBoundingClientRect();s.W=m.w=(X.right-X.left)/V,s.H=m.h=(X.bottom-X.top)/V,s.X=m.x,s.Y=m.y+s.H/2,("x"in i||"y"in i)&&(s.path.v=c.format("m{0},{1}l{2},{1}",f(m.x*u),f(m.y*u),f(m.x*u)+1));for(var Y=["x","y","text","font","font-family","font-weight","font-style","font-size"],Z=0,$=Y.length;$>Z;Z++)if(Y[Z]in i){s._.dirty=1;break}switch(m["text-anchor"]){case"start":s.textpath.style["v-text-align"]="left",s.bbx=s.W/2;break;case"end":s.textpath.style["v-text-align"]="right",s.bbx=-s.W/2;break;default:s.textpath.style["v-text-align"]="center",s.bbx=0}s.textpath.style["v-text-kern"]=!0}},C=function(a,f,g){a.attrs=a.attrs||{};var h=(a.attrs,Math.pow),i="linear",j=".5 .5";if(a.attrs.gradient=f,f=b(f).replace(c._radial_gradient,function(a,b,c){return i="radial",b&&c&&(b=d(b),c=d(c),h(b-.5,2)+h(c-.5,2)>.25&&(c=e.sqrt(.25-h(b-.5,2))*(2*(c>.5)-1)+.5),j=b+n+c),o}),f=f.split(/\s*\-\s*/),"linear"==i){var k=f.shift();if(k=-d(k),isNaN(k))return null}var l=c._parseDots(f);if(!l)return null;if(a=a.shape||a.node,l.length){a.removeChild(g),g.on=!0,g.method="none",g.color=l[0].color,g.color2=l[l.length-1].color;for(var m=[],p=0,q=l.length;q>p;p++)l[p].offset&&m.push(l[p].offset+n+l[p].color);g.colors=m.length?m.join():"0% "+g.color,"radial"==i?(g.type="gradientTitle",g.focus="100%",g.focussize="0 0",g.focusposition=j,g.angle=0):(g.type="gradient",g.angle=(270-k)%360),a.appendChild(g)}return 1},D=function(a,b){this[0]=this.node=a,a.raphael=!0,this.id=c._oid++,a.raphaelid=this.id,this.X=0,this.Y=0,this.attrs={},this.paper=b,this.matrix=c.matrix(),this._={transform:[],sx:1,sy:1,dx:0,dy:0,deg:0,dirty:1,dirtyT:1},!b.bottom&&(b.bottom=this),this.prev=b.top,b.top&&(b.top.next=this),b.top=this,this.next=null},E=c.el;D.prototype=E,E.constructor=D,E.transform=function(a){if(null==a)return this._.transform;var d,e=this.paper._viewBoxShift,f=e?"s"+[e.scale,e.scale]+"-1-1t"+[e.dx,e.dy]:o;e&&(d=a=b(a).replace(/\.{3}|\u2026/g,this._.transform||o)),c._extractTransform(this,f+a);var g,h=this.matrix.clone(),i=this.skew,j=this.node,k=~b(this.attrs.fill).indexOf("-"),l=!b(this.attrs.fill).indexOf("url(");if(h.translate(1,1),l||k||"image"==this.type)if(i.matrix="1 0 0 1",i.offset="0 0",g=h.split(),k&&g.noRotation||!g.isSimple){j.style.filter=h.toFilter();var m=this.getBBox(),p=this.getBBox(1),q=m.x-p.x,r=m.y-p.y;j.coordorigin=q*-u+n+r*-u,z(this,1,1,q,r,0)}else j.style.filter=o,z(this,g.scalex,g.scaley,g.dx,g.dy,g.rotate);else j.style.filter=o,i.matrix=b(h),i.offset=h.offset();return null!==d&&(this._.transform=d,c._extractTransform(this,d)),this},E.rotate=function(a,c,e){if(this.removed)return this;if(null!=a){if(a=b(a).split(k),a.length-1&&(c=d(a[1]),e=d(a[2])),a=d(a[0]),null==e&&(c=e),null==c||null==e){var f=this.getBBox(1);c=f.x+f.width/2,e=f.y+f.height/2}return this._.dirtyT=1,this.transform(this._.transform.concat([["r",a,c,e]])),this}},E.translate=function(a,c){return this.removed?this:(a=b(a).split(k),a.length-1&&(c=d(a[1])),a=d(a[0])||0,c=+c||0,this._.bbox&&(this._.bbox.x+=a,this._.bbox.y+=c),this.transform(this._.transform.concat([["t",a,c]])),this)},E.scale=function(a,c,e,f){if(this.removed)return this;if(a=b(a).split(k),a.length-1&&(c=d(a[1]),e=d(a[2]),f=d(a[3]),isNaN(e)&&(e=null),isNaN(f)&&(f=null)),a=d(a[0]),null==c&&(c=a),null==f&&(e=f),null==e||null==f)var g=this.getBBox(1);return e=null==e?g.x+g.width/2:e,f=null==f?g.y+g.height/2:f,this.transform(this._.transform.concat([["s",a,c,e,f]])),this._.dirtyT=1,this},E.hide=function(){return!this.removed&&(this.node.style.display="none"),this},E.show=function(){return!this.removed&&(this.node.style.display=o),this},E.auxGetBBox=c.el.getBBox,E.getBBox=function(){var a=this.auxGetBBox();if(this.paper&&this.paper._viewBoxShift){var b={},c=1/this.paper._viewBoxShift.scale;return b.x=a.x-this.paper._viewBoxShift.dx,b.x*=c,b.y=a.y-this.paper._viewBoxShift.dy,b.y*=c,b.width=a.width*c,b.height=a.height*c,b.x2=b.x+b.width,b.y2=b.y+b.height,b}return a},E._getBBox=function(){return this.removed?{}:{x:this.X+(this.bbx||0)-this.W/2,y:this.Y-this.H,width:this.W,height:this.H}},E.remove=function(){if(!this.removed&&this.node.parentNode){this.paper.__set__&&this.paper.__set__.exclude(this),c.eve.unbind("raphael.*.*."+this.id),c._tear(this,this.paper),this.node.parentNode.removeChild(this.node),this.shape&&this.shape.parentNode.removeChild(this.shape);for(var a in this)this[a]="function"==typeof this[a]?c._removedFactory(a):null;this.removed=!0}},E.attr=function(b,d){if(this.removed)return this;if(null==b){var e={};for(var f in this.attrs)this.attrs[a](f)&&(e[f]=this.attrs[f]);return e.gradient&&"none"==e.fill&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform,e}if(null==d&&c.is(b,"string")){if(b==j&&"none"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;for(var g=b.split(k),h={},i=0,m=g.length;m>i;i++)b=g[i],h[b]=b in this.attrs?this.attrs[b]:c.is(this.paper.customAttributes[b],"function")?this.paper.customAttributes[b].def:c._availableAttrs[b];return m-1?h:h[g[0]]}if(this.attrs&&null==d&&c.is(b,"array")){for(h={},i=0,m=b.length;m>i;i++)h[b[i]]=this.attr(b[i]);return h}var n;null!=d&&(n={},n[b]=d),null==d&&c.is(b,"object")&&(n=b);for(var o in n)l("raphael.attr."+o+"."+this.id,this,n[o]);if(n){for(o in this.paper.customAttributes)if(this.paper.customAttributes[a](o)&&n[a](o)&&c.is(this.paper.customAttributes[o],"function")){var p=this.paper.customAttributes[o].apply(this,[].concat(n[o]));this.attrs[o]=n[o];for(var q in p)p[a](q)&&(n[q]=p[q])}n.text&&"text"==this.type&&(this.textpath.string=n.text),B(this,n)}return this},E.toFront=function(){return!this.removed&&this.node.parentNode.appendChild(this.node),this.paper&&this.paper.top!=this&&c._tofront(this,this.paper),this},E.toBack=function(){return this.removed?this:(this.node.parentNode.firstChild!=this.node&&(this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild),c._toback(this,this.paper)),this)},E.insertAfter=function(a){return this.removed?this:(a.constructor==c.st.constructor&&(a=a[a.length-1]),a.node.nextSibling?a.node.parentNode.insertBefore(this.node,a.node.nextSibling):a.node.parentNode.appendChild(this.node),c._insertafter(this,a,this.paper),this)},E.insertBefore=function(a){return this.removed?this:(a.constructor==c.st.constructor&&(a=a[0]),a.node.parentNode.insertBefore(this.node,a.node),c._insertbefore(this,a,this.paper),this)},E.blur=function(a){var b=this.node.runtimeStyle,d=b.filter;return d=d.replace(r,o),0!==+a?(this.attrs.blur=a,b.filter=d+n+m+".Blur(pixelradius="+(+a||1.5)+")",b.margin=c.format("-{0}px 0 0 -{0}px",f(+a||1.5))):(b.filter=d,b.margin=0,delete this.attrs.blur),this},c._engine.path=function(a,b){var c=F("shape");c.style.cssText=t,c.coordsize=u+n+u,c.coordorigin=b.coordorigin;var d=new D(c,b),e={fill:"none",stroke:"#000"};a&&(e.path=a),d.type="path",d.path=[],d.Path=o,B(d,e),b.canvas.appendChild(c);var f=F("skew");return f.on=!0,c.appendChild(f),d.skew=f,d.transform(o),d},c._engine.rect=function(a,b,d,e,f,g){var h=c._rectPath(b,d,e,f,g),i=a.path(h),j=i.attrs;return i.X=j.x=b,i.Y=j.y=d,i.W=j.width=e,i.H=j.height=f,j.r=g,j.path=h,i.type="rect",i},c._engine.ellipse=function(a,b,c,d,e){{var f=a.path();f.attrs}return f.X=b-d,f.Y=c-e,f.W=2*d,f.H=2*e,f.type="ellipse",B(f,{cx:b,cy:c,rx:d,ry:e}),f},c._engine.circle=function(a,b,c,d){{var e=a.path();e.attrs}return e.X=b-d,e.Y=c-d,e.W=e.H=2*d,e.type="circle",B(e,{cx:b,cy:c,r:d}),e},c._engine.image=function(a,b,d,e,f,g){var h=c._rectPath(d,e,f,g),i=a.path(h).attr({stroke:"none"}),k=i.attrs,l=i.node,m=l.getElementsByTagName(j)[0];return k.src=b,i.X=k.x=d,i.Y=k.y=e,i.W=k.width=f,i.H=k.height=g,k.path=h,i.type="image",m.parentNode==l&&l.removeChild(m),m.rotate=!0,m.src=b,m.type="tile",i._.fillpos=[d,e],i._.fillsize=[f,g],l.appendChild(m),z(i,1,1,0,0,0),i},c._engine.text=function(a,d,e,g){var h=F("shape"),i=F("path"),j=F("textpath");d=d||0,e=e||0,g=g||"",i.v=c.format("m{0},{1}l{2},{1}",f(d*u),f(e*u),f(d*u)+1),i.textpathok=!0,j.string=b(g),j.on=!0,h.style.cssText=t,h.coordsize=u+n+u,h.coordorigin="0 0";var k=new D(h,a),l={fill:"#000",stroke:"none",font:c._availableAttrs.font,text:g};k.shape=h,k.path=i,k.textpath=j,k.type="text",k.attrs.text=b(g),k.attrs.x=d,k.attrs.y=e,k.attrs.w=1,k.attrs.h=1,B(k,l),h.appendChild(j),h.appendChild(i),a.canvas.appendChild(h);var m=F("skew");return m.on=!0,h.appendChild(m),k.skew=m,k.transform(o),k},c._engine.setSize=function(a,b){var d=this.canvas.style;return this.width=a,this.height=b,a==+a&&(a+="px"),b==+b&&(b+="px"),d.width=a,d.height=b,d.clip="rect(0 "+a+" "+b+" 0)",this._viewBox&&c._engine.setViewBox.apply(this,this._viewBox),this},c._engine.setViewBox=function(a,b,d,e,f){c.eve("raphael.setViewBox",this,this._viewBox,[a,b,d,e,f]);var g,h,i=this.getSize(),j=i.width,k=i.height;return f&&(g=k/e,h=j/d,j>d*g&&(a-=(j-d*g)/2/g),k>e*h&&(b-=(k-e*h)/2/h)),this._viewBox=[a,b,d,e,!!f],this._viewBoxShift={dx:-a,dy:-b,scale:i},this.forEach(function(a){a.transform("...")}),this};var F;c._engine.initWin=function(a){var b=a.document;b.styleSheets.length<31?b.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)"):b.styleSheets[0].addRule(".rvml","behavior:url(#default#VML)");try{!b.namespaces.rvml&&b.namespaces.add("rvml","urn:schemas-microsoft-com:vml"),F=function(a){return b.createElement("')}}catch(c){F=function(a){return b.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}},c._engine.initWin(c._g.win),c._engine.create=function(){var a=c._getContainer.apply(0,arguments),b=a.container,d=a.height,e=a.width,f=a.x,g=a.y;if(!b)throw new Error("VML container not found.");var h=new c._Paper,i=h.canvas=c._g.doc.createElement("div"),j=i.style;return f=f||0,g=g||0,e=e||512,d=d||342,h.width=e,h.height=d,e==+e&&(e+="px"),d==+d&&(d+="px"),h.coordsize=1e3*u+n+1e3*u,h.coordorigin="0 0",h.span=c._g.doc.createElement("span"),h.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;",i.appendChild(h.span),j.cssText=c.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden",e,d),1==b?(c._g.doc.body.appendChild(i),j.left=f+"px",j.top=g+"px",j.position="absolute"):b.firstChild?b.insertBefore(i,b.firstChild):b.appendChild(i),h.renderfix=function(){},h},c.prototype.clear=function(){c.eve("raphael.clear",this),this.canvas.innerHTML=o,this.span=c._g.doc.createElement("span"),this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;",this.canvas.appendChild(this.span),this.bottom=this.top=null},c.prototype.remove=function(){c.eve("raphael.remove",this),this.canvas.parentNode.removeChild(this.canvas);for(var a in this)this[a]="function"==typeof this[a]?c._removedFactory(a):null;return!0};var G=c.st;for(var H in E)E[a](H)&&!G[a](H)&&(G[H]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(H))}}(),B.was?A.win.Raphael=c:Raphael=c,"object"==typeof exports&&(module.exports=c),c}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-sparkline/jquery.sparkline.min.js b/htdocs/public/high/plugins/jquery-sparkline/jquery.sparkline.min.js deleted file mode 100644 index fa616bf9..00000000 --- a/htdocs/public/high/plugins/jquery-sparkline/jquery.sparkline.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/* jquery.sparkline 2.1.2 - http://omnipotent.net/jquery.sparkline/ -** Licensed under the New BSD License - see above site for details */ - -(function(a,b,c){(function(a){typeof define=="function"&&define.amd?define(["jquery"],a):jQuery&&!jQuery.fn.sparkline&&a(jQuery)})(function(d){"use strict";var e={},f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L=0;f=function(){return{common:{type:"line",lineColor:"#00f",fillColor:"#cdf",defaultPixelsPerValue:3,width:"auto",height:"auto",composite:!1,tagValuesAttribute:"values",tagOptionsPrefix:"spark",enableTagOptions:!1,enableHighlight:!0,highlightLighten:1.4,tooltipSkipNull:!0,tooltipPrefix:"",tooltipSuffix:"",disableHiddenCheck:!1,numberFormatter:!1,numberDigitGroupCount:3,numberDigitGroupSep:",",numberDecimalMark:".",disableTooltips:!1,disableInteraction:!1},line:{spotColor:"#f80",highlightSpotColor:"#5f5",highlightLineColor:"#f22",spotRadius:1.5,minSpotColor:"#f80",maxSpotColor:"#f80",lineWidth:1,normalRangeMin:c,normalRangeMax:c,normalRangeColor:"#ccc",drawNormalOnTop:!1,chartRangeMin:c,chartRangeMax:c,chartRangeMinX:c,chartRangeMaxX:c,tooltipFormat:new h(' {{prefix}}{{y}}{{suffix}}')},bar:{barColor:"#3366cc",negBarColor:"#f44",stackedBarColor:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],zeroColor:c,nullColor:c,zeroAxis:!0,barWidth:4,barSpacing:1,chartRangeMax:c,chartRangeMin:c,chartRangeClip:!1,colorMap:c,tooltipFormat:new h(' {{prefix}}{{value}}{{suffix}}')},tristate:{barWidth:4,barSpacing:1,posBarColor:"#6f6",negBarColor:"#f44",zeroBarColor:"#999",colorMap:{},tooltipFormat:new h(' {{value:map}}'),tooltipValueLookups:{map:{"-1":"Loss",0:"Draw",1:"Win"}}},discrete:{lineHeight:"auto",thresholdColor:c,thresholdValue:0,chartRangeMax:c,chartRangeMin:c,chartRangeClip:!1,tooltipFormat:new h("{{prefix}}{{value}}{{suffix}}")},bullet:{targetColor:"#f33",targetWidth:3,performanceColor:"#33f",rangeColors:["#d3dafe","#a8b6ff","#7f94ff"],base:c,tooltipFormat:new h("{{fieldkey:fields}} - {{value}}"),tooltipValueLookups:{fields:{r:"Range",p:"Performance",t:"Target"}}},pie:{offset:0,sliceColors:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],borderWidth:0,borderColor:"#000",tooltipFormat:new h(' {{value}} ({{percent.1}}%)')},box:{raw:!1,boxLineColor:"#000",boxFillColor:"#cdf",whiskerColor:"#000",outlierLineColor:"#333",outlierFillColor:"#fff",medianColor:"#f00",showOutliers:!0,outlierIQR:1.5,spotRadius:1.5,target:c,targetColor:"#4a2",chartRangeMax:c,chartRangeMin:c,tooltipFormat:new h("{{field:fields}}: {{value}}"),tooltipFormatFieldlistKey:"field",tooltipValueLookups:{fields:{lq:"Lower Quartile",med:"Median",uq:"Upper Quartile",lo:"Left Outlier",ro:"Right Outlier",lw:"Left Whisker",rw:"Right Whisker"}}}}},E='.jqstooltip { position: absolute;left: 0px;top: 0px;visibility: hidden;background: rgb(0, 0, 0) transparent;background-color: rgba(0,0,0,0.6);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";color: white;font: 10px arial, san serif;text-align: left;white-space: nowrap;padding: 5px;border: 1px solid white;z-index: 10000;}.jqsfield { color: white;font: 10px arial, san serif;text-align: left;}',g=function(){var a,b;return a=function(){this.init.apply(this,arguments)},arguments.length>1?(arguments[0]?(a.prototype=d.extend(new arguments[0],arguments[arguments.length-1]),a._super=arguments[0].prototype):a.prototype=arguments[arguments.length-1],arguments.length>2&&(b=Array.prototype.slice.call(arguments,1,-1),b.unshift(a.prototype),d.extend.apply(d,b))):a.prototype=arguments[0],a.prototype.cls=a,a},d.SPFormatClass=h=g({fre:/\{\{([\w.]+?)(:(.+?))?\}\}/g,precre:/(\w+)\.(\d+)/,init:function(a,b){this.format=a,this.fclass=b},render:function(a,b,d){var e=this,f=a,g,h,i,j,k;return this.format.replace(this.fre,function(){var a;return h=arguments[1],i=arguments[3],g=e.precre.exec(h),g?(k=g[2],h=g[1]):k=!1,j=f[h],j===c?"":i&&b&&b[i]?(a=b[i],a.get?b[i].get(j)||j:b[i][j]||j):(n(j)&&(d.get("numberFormatter")?j=d.get("numberFormatter")(j):j=s(j,k,d.get("numberDigitGroupCount"),d.get("numberDigitGroupSep"),d.get("numberDecimalMark"))),j)})}}),d.spformat=function(a,b){return new h(a,b)},i=function(a,b,c){return ac?c:a},j=function(a,c){var d;return c===2?(d=b.floor(a.length/2),a.length%2?a[d]:(a[d-1]+a[d])/2):a.length%2?(d=(a.length*c+c)/4,d%1?(a[b.floor(d)]+a[b.floor(d)-1])/2:a[d-1]):(d=(a.length*c+2)/4,d%1?(a[b.floor(d)]+a[b.floor(d)-1])/2:a[d-1])},k=function(a){var b;switch(a){case"undefined":a=c;break;case"null":a=null;break;case"true":a=!0;break;case"false":a=!1;break;default:b=parseFloat(a),a==b&&(a=b)}return a},l=function(a){var b,c=[];for(b=a.length;b--;)c[b]=k(a[b]);return c},m=function(a,b){var c,d,e=[];for(c=0,d=a.length;c0;h-=c)a.splice(h,0,e);return a.join("")},o=function(a,b,c){var d;for(d=b.length;d--;){if(c&&b[d]===null)continue;if(b[d]!==a)return!1}return!0},p=function(a){var b=0,c;for(c=a.length;c--;)b+=typeof a[c]=="number"?a[c]:0;return b},r=function(a){return d.isArray(a)?a:[a]},q=function(b){var c;a.createStyleSheet?a.createStyleSheet().cssText=b:(c=a.createElement("style"),c.type="text/css",a.getElementsByTagName("head")[0].appendChild(c),c[typeof a.body.style.WebkitAppearance=="string"?"innerText":"innerHTML"]=b)},d.fn.simpledraw=function(b,e,f,g){var h,i;if(f&&(h=this.data("_jqs_vcanvas")))return h;if(d.fn.sparkline.canvas===!1)return!1;if(d.fn.sparkline.canvas===c){var j=a.createElement("canvas");if(!j.getContext||!j.getContext("2d")){if(!a.namespaces||!!a.namespaces.v)return d.fn.sparkline.canvas=!1,!1;a.namespaces.add("v","urn:schemas-microsoft-com:vml","#default#VML"),d.fn.sparkline.canvas=function(a,b,c,d){return new J(a,b,c)}}else d.fn.sparkline.canvas=function(a,b,c,d){return new I(a,b,c,d)}}return b===c&&(b=d(this).innerWidth()),e===c&&(e=d(this).innerHeight()),h=d.fn.sparkline.canvas(b,e,this,g),i=d(this).data("_jqs_mhandler"),i&&i.registerCanvas(h),h},d.fn.cleardraw=function(){var a=this.data("_jqs_vcanvas");a&&a.reset()},d.RangeMapClass=t=g({init:function(a){var b,c,d=[];for(b in a)a.hasOwnProperty(b)&&typeof b=="string"&&b.indexOf(":")>-1&&(c=b.split(":"),c[0]=c[0].length===0?-Infinity:parseFloat(c[0]),c[1]=c[1].length===0?Infinity:parseFloat(c[1]),c[2]=a[b],d.push(c));this.map=a,this.rangelist=d||!1},get:function(a){var b=this.rangelist,d,e,f;if((f=this.map[a])!==c)return f;if(b)for(d=b.length;d--;){e=b[d];if(e[0]<=a&&e[1]>=a)return e[2]}return c}}),d.range_map=function(a){return new t(a)},u=g({init:function(a,b){var c=d(a);this.$el=c,this.options=b,this.currentPageX=0,this.currentPageY=0,this.el=a,this.splist=[],this.tooltip=null,this.over=!1,this.displayTooltips=!b.get("disableTooltips"),this.highlightEnabled=!b.get("disableHighlight")},registerSparkline:function(a){this.splist.push(a),this.over&&this.updateDisplay()},registerCanvas:function(a){var b=d(a.canvas);this.canvas=a,this.$canvas=b,b.mouseenter(d.proxy(this.mouseenter,this)),b.mouseleave(d.proxy(this.mouseleave,this)),b.click(d.proxy(this.mouseclick,this))},reset:function(a){this.splist=[],this.tooltip&&a&&(this.tooltip.remove(),this.tooltip=c)},mouseclick:function(a){var b=d.Event("sparklineClick");b.originalEvent=a,b.sparklines=this.splist,this.$el.trigger(b)},mouseenter:function(b){d(a.body).unbind("mousemove.jqs"),d(a.body).bind("mousemove.jqs",d.proxy(this.mousemove,this)),this.over=!0,this.currentPageX=b.pageX,this.currentPageY=b.pageY,this.currentEl=b.target,!this.tooltip&&this.displayTooltips&&(this.tooltip=new v(this.options),this.tooltip.updatePosition(b.pageX,b.pageY)),this.updateDisplay()},mouseleave:function(){d(a.body).unbind("mousemove.jqs");var b=this.splist,c=b.length,e=!1,f,g;this.over=!1,this.currentEl=null,this.tooltip&&(this.tooltip.remove(),this.tooltip=null);for(g=0;g",l},_drawCircle:function(a,b,d,e,f,g,h){var i,j,k;return b-=e,d-=e,i=f===c?' stroked="false" ':' strokeWeight="'+h+'px" strokeColor="'+f+'" ',j=g===c?' filled="false"':' fillColor="'+g+'" filled="true" ',k='',k},_drawPieSlice:function(a,d,e,f,g,h,i,j){var k,l,m,n,o,p,q,r;if(g===h)return"";h-g===2*b.PI&&(g=0,h=2*b.PI),l=d+b.round(b.cos(g)*f),m=e+b.round(b.sin(g)*f),n=d+b.round(b.cos(h)*f),o=e+b.round(b.sin(h)*f);if(l===n&&m===o){if(h-g'+" ",r)},_drawRect:function(a,b,c,d,e,f,g){return this._drawShape(a,[[b,c],[b,c+e],[b+d,c+e],[b+d,c],[b,c]],f,g)},reset:function(){this.group.innerHTML=""},appendShape:function(a){var b=this["_draw"+a.type].apply(this,a.args);return this.rendered?this.group.insertAdjacentHTML("beforeEnd",b):this.prerender+=b,this.lastShapeId=a.id,a.id},replaceWithShape:function(a,b){var c=d("#jqsshape"+a),e=this["_draw"+b.type].apply(this,b.args);c[0].outerHTML=e},replaceWithShapes:function(a,b){var c=d("#jqsshape"+a[0]),e="",f=b.length,g;for(g=0;g
    ",{"class":"jq-toast-single"}),o+='',this.options.allowToastClose&&(o+='×'),this.options.text instanceof Array){this.options.heading&&(o+='

    '+this.options.heading+"

    "),o+='
      ';for(var i=0;i'+this.options.text[i]+"";o+="
    "}else this.options.heading&&(o+='

    '+this.options.heading+"

    "),o+=this.options.text;this._toastEl.html(o),this.options.bgColor!==!1&&this._toastEl.css("background-color",this.options.bgColor),this.options.textColor!==!1&&this._toastEl.css("color",this.options.textColor),this.options.textAlign&&this._toastEl.css("text-align",this.options.textAlign),this.options.icon!==!1&&(this._toastEl.addClass("jq-has-icon"),-1!==t.inArray(this.options.icon,this._defaultIcons)&&this._toastEl.addClass("jq-icon-"+this.options.icon))},position:function(){"string"==typeof this.options.position&&-1!==t.inArray(this.options.position,this._positionClasses)?"bottom-center"===this.options.position?this._container.css({left:t(o).outerWidth()/2-this._container.outerWidth()/2,bottom:20}):"top-center"===this.options.position?this._container.css({left:t(o).outerWidth()/2-this._container.outerWidth()/2,top:20}):"mid-center"===this.options.position?this._container.css({left:t(o).outerWidth()/2-this._container.outerWidth()/2,top:t(o).outerHeight()/2-this._container.outerHeight()/2}):this._container.addClass(this.options.position):"object"==typeof this.options.position?this._container.css({top:this.options.position.top?this.options.position.top:"auto",bottom:this.options.position.bottom?this.options.position.bottom:"auto",left:this.options.position.left?this.options.position.left:"auto",right:this.options.position.right?this.options.position.right:"auto"}):this._container.addClass("bottom-left")},bindToast:function(){var t=this;this._toastEl.on("afterShown",function(){t.processLoader()}),this._toastEl.find(".close-jq-toast-single").on("click",function(o){o.preventDefault(),"fade"===t.options.showHideTransition?(t._toastEl.trigger("beforeHide"),t._toastEl.fadeOut(function(){t._toastEl.trigger("afterHidden")})):"slide"===t.options.showHideTransition?(t._toastEl.trigger("beforeHide"),t._toastEl.slideUp(function(){t._toastEl.trigger("afterHidden")})):(t._toastEl.trigger("beforeHide"),t._toastEl.hide(function(){t._toastEl.trigger("afterHidden")}))}),"function"==typeof this.options.beforeShow&&this._toastEl.on("beforeShow",function(){t.options.beforeShow()}),"function"==typeof this.options.afterShown&&this._toastEl.on("afterShown",function(){t.options.afterShown()}),"function"==typeof this.options.beforeHide&&this._toastEl.on("beforeHide",function(){t.options.beforeHide()}),"function"==typeof this.options.afterHidden&&this._toastEl.on("afterHidden",function(){t.options.afterHidden()})},addToDom:function(){var o=t(".jq-toast-wrap");if(0===o.length?(o=t("
    ",{"class":"jq-toast-wrap"}),t("body").append(o)):(!this.options.stack||isNaN(parseInt(this.options.stack,10)))&&o.empty(),o.find(".jq-toast-single:hidden").remove(),o.append(this._toastEl),this.options.stack&&!isNaN(parseInt(this.options.stack),10)){var i=o.find(".jq-toast-single").length,s=i-this.options.stack;s>0&&t(".jq-toast-wrap").find(".jq-toast-single").slice(0,s).remove()}this._container=o},canAutoHide:function(){return this.options.hideAfter!==!1&&!isNaN(parseInt(this.options.hideAfter,10))},processLoader:function(){if(!this.canAutoHide()||this.options.loader===!1)return!1;var t=this._toastEl.find(".jq-toast-loader"),o=(this.options.hideAfter-400)/1e3+"s",i=this.options.loaderBg,s=t.attr("style")||"";s=s.substring(0,s.indexOf("-webkit-transition")),s+="-webkit-transition: width "+o+" ease-in; -o-transition: width "+o+" ease-in; transition: width "+o+" ease-in; background-color: "+i+";",t.attr("style",s).addClass("jq-toast-loaded")},animate:function(){var t=this;if(this._toastEl.hide(),this._toastEl.trigger("beforeShow"),"fade"===this.options.showHideTransition.toLowerCase()?this._toastEl.fadeIn(function(){t._toastEl.trigger("afterShown")}):"slide"===this.options.showHideTransition.toLowerCase()?this._toastEl.slideDown(function(){t._toastEl.trigger("afterShown")}):this._toastEl.show(function(){t._toastEl.trigger("afterShown")}),this.canAutoHide()){var t=this;o.setTimeout(function(){"fade"===t.options.showHideTransition.toLowerCase()?(t._toastEl.trigger("beforeHide"),t._toastEl.fadeOut(function(){t._toastEl.trigger("afterHidden")})):"slide"===t.options.showHideTransition.toLowerCase()?(t._toastEl.trigger("beforeHide"),t._toastEl.slideUp(function(){t._toastEl.trigger("afterHidden")})):(t._toastEl.trigger("beforeHide"),t._toastEl.hide(function(){t._toastEl.trigger("afterHidden")}))},this.options.hideAfter)}},reset:function(o){"all"===o?t(".jq-toast-wrap").remove():this._toastEl.remove()},update:function(t){this.prepareOptions(t,this.options),this.setup(),this.bindToast()}};t.toast=function(t){var o=Object.create(i);return o.init(t,this),{reset:function(t){o.reset(t)},update:function(t){o.update(t)}}},t.toast.options={text:"",heading:"",showHideTransition:"fade",allowToastClose:!0,hideAfter:3e3,loader:!0,loaderBg:"#9EC600",stack:5,position:"bottom-left",bgColor:!1,textColor:!1,textAlign:"left",icon:!1,beforeShow:function(){},afterShown:function(){},beforeHide:function(){},afterHidden:function(){}}}(jQuery,window,document); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-ui/jquery-ui.min.css b/htdocs/public/high/plugins/jquery-ui/jquery-ui.min.css deleted file mode 100644 index efccc476..00000000 --- a/htdocs/public/high/plugins/jquery-ui/jquery-ui.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! jQuery UI - v1.11.4 - 2015-03-11 -* http://jqueryui.com -* Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css -* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=gloss_wave&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=highlight_soft&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=glass&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=diagonals_thick&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px -* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ - -.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,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");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #ddd;background:#eee url("images/ui-bg_highlight-soft_100_eeeeee_1x100.png") 50% top repeat-x;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #e78f08;background:#f6a828 url("images/ui-bg_gloss-wave_35_f6a828_500x100.png") 50% 50% repeat-x;color:#fff;font-weight:bold}.ui-widget-header a{color:#fff}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#f6f6f6 url("images/ui-bg_glass_100_f6f6f6_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#1c94c4}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#1c94c4;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #fbcb09;background:#fdf5ce url("images/ui-bg_glass_100_fdf5ce_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#c77405}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#c77405;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #fbd850;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#eb8f00}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#eb8f00;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fed22f;background:#ffe45c url("images/ui-bg_highlight-soft_75_ffe45c_1x100.png") 50% top repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#b81900 url("images/ui-bg_diagonals-thick_18_b81900_40x40.png") 50% 50% repeat;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_228ef1_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_ffd27a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#666 url("images/ui-bg_diagonals-thick_20_666666_40x40.png") 50% 50% repeat;opacity:.5;filter:Alpha(Opacity=50)}.ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url("images/ui-bg_flat_10_000000_40x100.png") 50% 50% repeat-x;opacity:.2;filter:Alpha(Opacity=20);border-radius:5px} \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-ui/jquery-ui.min.js b/htdocs/public/high/plugins/jquery-ui/jquery-ui.min.js deleted file mode 100644 index 5824d129..00000000 --- a/htdocs/public/high/plugins/jquery-ui/jquery-ui.min.js +++ /dev/null @@ -1,13 +0,0 @@ -/*! jQuery UI - v1.11.4 - 2015-03-11 -* http://jqueryui.com -* Includes: core.js, widget.js, mouse.js, position.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, progressbar.js, resizable.js, selectable.js, selectmenu.js, slider.js, sortable.js, spinner.js, tabs.js, tooltip.js -* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ - -(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=t.parentNode,a=n.name,t.href&&a&&"map"===n.nodeName.toLowerCase()?(o=e("img[usemap='#"+a+"']")[0],!!o&&i(o)):!1):(/^(input|select|textarea|button|object)$/.test(r)?!t.disabled:"a"===r?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}function s(e){for(var t,i;e.length&&e[0]!==document;){if(t=e.css("position"),("absolute"===t||"relative"===t||"fixed"===t)&&(i=parseInt(e.css("zIndex"),10),!isNaN(i)&&0!==i))return i;e=e.parent()}return 0}function n(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},e.extend(this._defaults,this.regional[""]),this.regional.en=e.extend(!0,{},this.regional[""]),this.regional["en-US"]=e.extend(!0,{},this.regional.en),this.dpDiv=a(e("
    "))}function a(t){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return t.delegate(i,"mouseout",function(){e(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).removeClass("ui-datepicker-next-hover")}).delegate(i,"mouseover",o)}function o(){e.datepicker._isDisabledDatepicker(v.inline?v.dpDiv.parent()[0]:v.input[0])||(e(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),e(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).addClass("ui-datepicker-next-hover"))}function r(t,i){e.extend(t,i);for(var s in i)null==i[s]&&(t[s]=i[s]);return t}function h(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var i=this.css("position"),s="absolute"===i,n=t?/(auto|scroll|hidden)/:/(auto|scroll)/,a=this.parents().filter(function(){var t=e(this);return s&&"static"===t.css("position")?!1:n.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==i&&a.length?a:e(this[0].ownerDocument||document)},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var s=e.attr(i,"tabindex"),n=isNaN(s);return(n||s>=0)&&t(i,!n)}}),e("").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function s(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],a=i.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return void 0===t?o["inner"+i].call(this):this.each(function(){e(this).css(a,s(this,t)+"px")})},e.fn["outer"+i]=function(t,n){return"number"!=typeof t?o["outer"+i].call(this,t):this.each(function(){e(this).css(a,s(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var i,s,n=e(this[0]);n.length&&n[0]!==document;){if(i=n.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(n.css("zIndex"),10),!isNaN(s)&&0!==s))return s;n=n.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var n,a=e.ui[t].prototype;for(n in s)a.plugins[n]=a.plugins[n]||[],a.plugins[n].push([i,s[n]])},call:function(e,t,i,s){var n,a=e.plugins[t];if(a&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(n=0;a.length>n;n++)e.options[a[n][0]]&&a[n][1].apply(e.element,i)}};var l=0,u=Array.prototype.slice;e.cleanData=function(t){return function(i){var s,n,a;for(a=0;null!=(n=i[a]);a++)try{s=e._data(n,"events"),s&&s.remove&&e(n).triggerHandler("remove")}catch(o){}t(i)}}(e.cleanData),e.widget=function(t,i,s){var n,a,o,r,h={},l=t.split(".")[0];return t=t.split(".")[1],n=l+"-"+t,s||(s=i,i=e.Widget),e.expr[":"][n.toLowerCase()]=function(t){return!!e.data(t,n)},e[l]=e[l]||{},a=e[l][t],o=e[l][t]=function(e,t){return this._createWidget?(arguments.length&&this._createWidget(e,t),void 0):new o(e,t)},e.extend(o,a,{version:s.version,_proto:e.extend({},s),_childConstructors:[]}),r=new i,r.options=e.widget.extend({},r.options),e.each(s,function(t,s){return e.isFunction(s)?(h[t]=function(){var e=function(){return i.prototype[t].apply(this,arguments)},n=function(e){return i.prototype[t].apply(this,e)};return function(){var t,i=this._super,a=this._superApply;return this._super=e,this._superApply=n,t=s.apply(this,arguments),this._super=i,this._superApply=a,t}}(),void 0):(h[t]=s,void 0)}),o.prototype=e.widget.extend(r,{widgetEventPrefix:a?r.widgetEventPrefix||t:t},h,{constructor:o,namespace:l,widgetName:t,widgetFullName:n}),a?(e.each(a._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete a._childConstructors):i._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var i,s,n=u.call(arguments,1),a=0,o=n.length;o>a;a++)for(i in n[a])s=n[a][i],n[a].hasOwnProperty(i)&&void 0!==s&&(t[i]=e.isPlainObject(s)?e.isPlainObject(t[i])?e.widget.extend({},t[i],s):e.widget.extend({},s):s);return t},e.widget.bridge=function(t,i){var s=i.prototype.widgetFullName||t;e.fn[t]=function(n){var a="string"==typeof n,o=u.call(arguments,1),r=this;return a?this.each(function(){var i,a=e.data(this,s);return"instance"===n?(r=a,!1):a?e.isFunction(a[n])&&"_"!==n.charAt(0)?(i=a[n].apply(a,o),i!==a&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):e.error("no such method '"+n+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method '"+n+"'")}):(o.length&&(n=e.widget.extend.apply(null,[n].concat(o))),this.each(function(){var t=e.data(this,s);t?(t.option(n||{}),t._init&&t._init()):e.data(this,s,new i(n,this))})),r}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
    ",options:{disabled:!1,create:null},_createWidget:function(t,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=l++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,i){var s,n,a,o=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(o={},s=t.split("."),t=s.shift(),s.length){for(n=o[t]=e.widget.extend({},this.options[t]),a=0;s.length-1>a;a++)n[s[a]]=n[s[a]]||{},n=n[s[a]];if(t=s.pop(),1===arguments.length)return void 0===n[t]?null:n[t];n[t]=i}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=i}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,i,s){var n,a=this;"boolean"!=typeof t&&(s=i,i=t,t=!1),s?(i=n=e(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),e.each(s,function(s,o){function r(){return t||a.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?a[o]:o).apply(a,arguments):void 0}"string"!=typeof o&&(r.guid=o.guid=o.guid||r.guid||e.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+a.eventNamespace,u=h[2];u?n.delegate(u,l,r):i.bind(l,r)})},_off:function(t,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(i).undelegate(i),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,o=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(o)&&o.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var o,r=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),o=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),o&&e.effects&&e.effects.effect[r]?s[t](n):r!==t&&s[r]?s[r](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}}),e.widget;var d=!1;e(document).mouseup(function(){d=!1}),e.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(i){return!0===e.data(i.target,t.widgetName+".preventClickEvent")?(e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!d){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var i=this,s=1===t.which,n="string"==typeof this.options.cancel&&t.target.nodeName?e(t.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(t)!==!1,!this._mouseStarted)?(t.preventDefault(),!0):(!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return i._mouseMove(e)},this._mouseUpDelegate=function(e){return i._mouseUp(e)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),d=!0,!0)):!0}},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button)return this._mouseUp(t);if(!t.which)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),d=!1,!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),function(){function t(e,t,i){return[parseFloat(e[0])*(p.test(e[0])?t/100:1),parseFloat(e[1])*(p.test(e[1])?i/100:1)]}function i(t,i){return parseInt(e.css(t,i),10)||0}function s(t){var i=t[0];return 9===i.nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(i)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var n,a,o=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,u=/top|center|bottom/,d=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,p=/%$/,f=e.fn.position;e.position={scrollbarWidth:function(){if(void 0!==n)return n;var t,i,s=e("
    "),a=s.children()[0];return e("body").append(s),t=a.offsetWidth,s.css("overflow","scroll"),i=a.offsetWidth,t===i&&(i=s[0].clientWidth),s.remove(),n=t-i},getScrollInfo:function(t){var i=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),s=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),n="scroll"===i||"auto"===i&&t.widthi?"left":t>0?"right":"center",vertical:0>a?"top":s>0?"bottom":"middle"};d>m&&m>r(t+i)&&(h.horizontal="center"),c>g&&g>r(s+a)&&(h.vertical="middle"),h.important=o(r(t),r(i))>o(r(s),r(a))?"horizontal":"vertical",n.using.call(this,e,h)}),u.offset(e.extend(M,{using:l}))})},e.ui.position={fit:{left:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=e.left-t.collisionPosition.marginLeft,h=n-r,l=r+t.collisionWidth-a-n;t.collisionWidth>a?h>0&&0>=l?(i=e.left+h+t.collisionWidth-a-n,e.left+=h-i):e.left=l>0&&0>=h?n:h>l?n+a-t.collisionWidth:n:h>0?e.left+=h:l>0?e.left-=l:e.left=o(e.left-r,e.left)},top:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollTop:s.offset.top,a=t.within.height,r=e.top-t.collisionPosition.marginTop,h=n-r,l=r+t.collisionHeight-a-n;t.collisionHeight>a?h>0&&0>=l?(i=e.top+h+t.collisionHeight-a-n,e.top+=h-i):e.top=l>0&&0>=h?n:h>l?n+a-t.collisionHeight:n:h>0?e.top+=h:l>0?e.top-=l:e.top=o(e.top-r,e.top)}},flip:{left:function(e,t){var i,s,n=t.within,a=n.offset.left+n.scrollLeft,o=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=e.left-t.collisionPosition.marginLeft,u=l-h,d=l+t.collisionWidth-o-h,c="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,p="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,f=-2*t.offset[0];0>u?(i=e.left+c+p+f+t.collisionWidth-o-a,(0>i||r(u)>i)&&(e.left+=c+p+f)):d>0&&(s=e.left-t.collisionPosition.marginLeft+c+p+f-h,(s>0||d>r(s))&&(e.left+=c+p+f))},top:function(e,t){var i,s,n=t.within,a=n.offset.top+n.scrollTop,o=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=e.top-t.collisionPosition.marginTop,u=l-h,d=l+t.collisionHeight-o-h,c="top"===t.my[1],p=c?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,f="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,m=-2*t.offset[1];0>u?(s=e.top+p+f+m+t.collisionHeight-o-a,(0>s||r(u)>s)&&(e.top+=p+f+m)):d>0&&(i=e.top-t.collisionPosition.marginTop+p+f+m-h,(i>0||d>r(i))&&(e.top+=p+f+m))}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,i,s,n,o,r=document.getElementsByTagName("body")[0],h=document.createElement("div");t=document.createElement(r?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},r&&e.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in s)t.style[o]=s[o];t.appendChild(h),i=r||document.documentElement,i.insertBefore(t,i.firstChild),h.style.cssText="position: absolute; left: 10.7432222px;",n=e(h).offset().left,a=n>10&&11>n,t.innerHTML="",i.removeChild(t)}()}(),e.ui.position,e.widget("ui.accordion",{version:"1.11.4",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),t.collapsible||t.active!==!1&&null!=t.active||(t.active=0),this._processPanels(),0>t.active&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId(),this._destroyIcons(),e=this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&e.css("height","")},_setOption:function(e,t){return"active"===e?(this._activate(t),void 0):("event"===e&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),"collapsible"!==e||t||this.options.active!==!1||this._activate(0),"icons"===e&&(this._destroyIcons(),t&&this._createIcons()),"disabled"===e&&(this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t)),void 0)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var i=e.ui.keyCode,s=this.headers.length,n=this.headers.index(t.target),a=!1;switch(t.keyCode){case i.RIGHT:case i.DOWN:a=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:a=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(t);break;case i.HOME:a=this.headers[0];break;case i.END:a=this.headers[s-1]}a&&(e(t.target).attr("tabIndex",-1),e(a).attr("tabIndex",0),a.focus(),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t=this.options;this._processPanels(),t.active===!1&&t.collapsible===!0||!this.headers.length?(t.active=!1,this.active=e()):t.active===!1?this._activate(0):this.active.length&&!e.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=e()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var e=this.headers,t=this.panels;this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all"),this.panels=this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide(),t&&(this._off(e.not(this.headers)),this._off(t.not(this.panels)))},_refresh:function(){var t,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(){var t=e(this),i=t.uniqueId().attr("id"),s=t.next(),n=s.uniqueId().attr("id");t.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(t=n.height(),this.element.siblings(":visible").each(function(){var i=e(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(t-=i.outerHeight(!0))}),this.headers.each(function(){t-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===s&&(t=0,this.headers.next().each(function(){t=Math.max(t,e(this).css("height","").height())}).height(t))},_activate:function(t){var i=this._findActive(t)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):e()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var i=this.options,s=this.active,n=e(t.currentTarget),a=n[0]===s[0],o=a&&i.collapsible,r=o?e():n.next(),h=s.next(),l={oldHeader:s,oldPanel:h,newHeader:o?e():n,newPanel:r};t.preventDefault(),a&&!i.collapsible||this._trigger("beforeActivate",t,l)===!1||(i.active=o?!1:this.headers.index(n),this.active=a?e():n,this._toggle(l),s.removeClass("ui-accordion-header-active ui-state-active"),i.icons&&s.children(".ui-accordion-header-icon").removeClass(i.icons.activeHeader).addClass(i.icons.header),a||(n.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),i.icons&&n.children(".ui-accordion-header-icon").removeClass(i.icons.header).addClass(i.icons.activeHeader),n.next().addClass("ui-accordion-content-active")))},_toggle:function(t){var i=t.newPanel,s=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,t):(s.hide(),i.show(),this._toggleComplete(t)),s.attr({"aria-hidden":"true"}),s.prev().attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===parseInt(e(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(e,t,i){var s,n,a,o=this,r=0,h=e.css("box-sizing"),l=e.length&&(!t.length||e.index()",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item":function(e){e.preventDefault()},"click .ui-menu-item":function(t){var i=e(t.target);!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&e(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){if(!this.previousFilter){var i=e(t.currentTarget); -i.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(t,i)}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var i=this.active||this.element.find(this.options.items).eq(0);t||this.focus(e,i)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){this._closeOnDocumentClick(e)&&this.collapseAll(e),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){var i,s,n,a,o=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:o=!1,s=this.previousFilter||"",n=String.fromCharCode(t.keyCode),a=!1,clearTimeout(this.filterTimer),n===s?a=!0:n=s+n,i=this._filterMenuItems(n),i=a&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(t.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(t,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}o&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.is("[aria-haspopup='true']")?this.expand(e):this.select(e))},refresh:function(){var t,i,s=this,n=this.options.icons.submenu,a=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),a.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),i=t.parent(),s=e("").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);i.attr("aria-haspopup","true").prepend(s),t.attr("aria-labelledby",i.attr("id"))}),t=a.add(this.element),i=t.find(this.options.items),i.not(".ui-menu-item").each(function(){var t=e(this);s._isDivider(t)&&t.addClass("ui-widget-content ui-menu-divider")}),i.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){"icons"===e&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(t.submenu),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},focus:function(e,t){var i,s;this.blur(e,e&&"focus"===e.type),this._scrollIntoView(t),this.active=t.first(),s=this.active.addClass("ui-state-focus").removeClass("ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"),e&&"keydown"===e.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=t.children(".ui-menu"),i.length&&e&&/^mouse/.test(e.type)&&this._startOpening(i),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var i,s,n,a,o,r;this._hasScroll()&&(i=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,n=t.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.scrollTop(),o=this.activeMenu.height(),r=t.outerHeight(),0>n?this.activeMenu.scrollTop(a+n):n+r>o&&this.activeMenu.scrollTop(a+n-o+r))},blur:function(e,t){t||clearTimeout(this.timer),this.active&&(this.active.removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active}))},_startOpening:function(e){clearTimeout(this.timer),"true"===e.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(e)},this.delay))},_open:function(t){var i=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(t,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(t),this.activeMenu=s},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(t){return!e(t.target).closest(".ui-menu").length},_isDivider:function(e){return!/[^\-\u2014\u2013\s]/.test(e.text())},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,i){var s;this.active&&(s="first"===e||"last"===e?this.active["first"===e?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[e+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[t]()),this.focus(i,s)},nextPage:function(t){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=e(this),0>i.offset().top-s-n}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(t),void 0)},previousPage:function(t){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=e(this),i.offset().top-s+n>0}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items).first())),void 0):(this.next(t),void 0)},_hasScroll:function(){return this.element.outerHeight()",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var t,i,s,n=this.element[0].nodeName.toLowerCase(),a="textarea"===n,o="input"===n;this.isMultiLine=a?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[a||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return t=!0,s=!0,i=!0,void 0;t=!1,s=!1,i=!1;var a=e.ui.keyCode;switch(n.keyCode){case a.PAGE_UP:t=!0,this._move("previousPage",n);break;case a.PAGE_DOWN:t=!0,this._move("nextPage",n);break;case a.UP:t=!0,this._keyEvent("previous",n);break;case a.DOWN:t=!0,this._keyEvent("next",n);break;case a.ENTER:this.menu.active&&(t=!0,n.preventDefault(),this.menu.select(n));break;case a.TAB:this.menu.active&&this.menu.select(n);break;case a.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(t)return t=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=e.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(e){return s?(s=!1,e.preventDefault(),void 0):(this._searchTimeout(e),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(e),this._change(e),void 0)}}),this._initSource(),this.menu=e("
    "),item:'
  • ',events:["open","close","change","radixChange"]};a.extend(true,this,b)},createInstance:function(){var b=this;b._Long();b._regex={2:new RegExp(/([0-1])/),8:new RegExp(/([0-7])/),10:new RegExp(/([0-9\-])/),16:new RegExp(/([0-9]|[a-f])/i)};b.render()},render:function(){var e=this;e._radixNumber=e._getRadix(e.radix);if(e.value!==""){e._number=new e.longObj.math.Long.fromString((e.value).toString(),e._radixNumber)}if(e.baseHost){e.host=e.baseHost;e.element=e.host[0]}if(this.element.nodeName.toLowerCase()==="div"){this.baseHost=this.element;var b=this.host.find("input");var d=false;a.each(b,function(){var f=this.type;if(f===null||f==="text"||f==="textarea"){b=a(this);d=true;return false}});if(!d){throw new Error("jqxFormattedInput: Missing Text Input in the Input Group")}if(b.length>0){this.baseHost=a(this.element);this.host=b;this.element=b[0];this.baseHost.addClass(this.toThemeProperty("jqx-widget"));this.baseHost.addClass(this.toThemeProperty("jqx-rc-all"));this.baseHost.addClass(this.toThemeProperty("jqx-input-group"));var c=this.baseHost.children();a.each(c,function(f){a(this).addClass(e.toThemeProperty("jqx-input-group-addon"));a(this).removeClass(e.toThemeProperty("jqx-rc-all"));if(f===0){a(this).addClass(e.toThemeProperty("jqx-rc-l"))}if(f===c.length-1){a(this).addClass(e.toThemeProperty("jqx-rc-r"))}if(this!==e.element){a(this).addClass(e.toThemeProperty("jqx-fill-state-normal"))}if(this.nodeName.toLowerCase()==="div"){e.appendSpinButtons=function(i){e._spinButtonsContainer=a(i);e._spinButtonsContainer.addClass(e.toThemeProperty("jqx-formatted-input-spin-buttons-container"));var h='
    ';e._upbutton=a(h);e._spinButtonsContainer.append(e._upbutton);e._downbutton=a(h);e._spinButtonsContainer.append(e._downbutton);e._upArrow=e._upbutton.find("div");e._upArrow.addClass(e.toThemeProperty("jqx-icon-arrow-up"));e._downArrow=e._downbutton.find("div");e._downArrow.addClass(e.toThemeProperty("jqx-icon-arrow-down"));e._spinButtonsStepLong=new e.longObj.math.Long.fromNumber(e.spinButtonsStep)};var g=function(h){e._addon=a(h);e._addon.addClass(e.toThemeProperty("jqx-formatted-input-addon"));if(!e._arrow){e._arrow=a('
    ');e._arrow.appendTo(e._addon)}};if(e.rtl===false){if(!e._spinButtonsContainer&&e.spinButtons===true){e.appendSpinButtons(this)}else{if(!e._addon&&e.dropDown===true&&((f===2)||(f===1&&e.spinButtons===false))){g(this)}}}else{if(!e._addon&&e.dropDown===true){g(this);if(e.spinButtons===true){e._addon.addClass(e.toThemeProperty("jqx-formatted-input-addon-rtl"))}}else{if(!e._spinButtonsContainer&&e.spinButtons===true&&((f===1)||(f===0&&e.dropDown===false))){e.appendSpinButtons(this);e._spinButtonsContainer.addClass(e.toThemeProperty("jqx-formatted-input-spin-buttons-container-rtl"));if(e.dropDown===true){e._addon.addClass(e.toThemeProperty("jqx-formatted-input-addon-rtl"))}}}}}})}}e._inputAndAddon=e.host;if(e.baseHost){if(e._spinButtonsContainer){e._inputAndAddon=e._inputAndAddon.add(e._spinButtonsContainer)}if(e._addon){e._inputAndAddon=e._inputAndAddon.add(e._addon)}}e.removeHandlers();this.addHandlers();if(this.rtl){this.host.addClass(this.toThemeProperty("jqx-rtl"))}this.host.attr("role","textbox");a.jqx.aria(this,"aria-autocomplete","both");a.jqx.aria(this,"aria-disabled",this.disabled);a.jqx.aria(this,"aria-readonly",false);a.jqx.aria(this,"aria-multiline",false);a.jqx.aria(this,"aria-haspopup",true);if(e.value!==""&&e.value!==null){if(e.upperCase===true){e.host.addClass(e.toThemeProperty("jqx-formatted-input-upper-case"))}else{e.host.addClass(e.toThemeProperty("jqx-formatted-input-lower-case"))}if(e._radixNumber===10&&e.decimalNotation==="exponential"){e.element.value=e._getDecimalNotation("exponential")}else{e.element.value=e.value}}else{if(e._spinButtonsContainer){e._spinButtonsContainer.addClass(e.toThemeProperty("jqx-fill-state-disabled"))}}if(e._radixNumber!==10&&e.min.toString()==="-9223372036854775808"){e._minLong=new e.longObj.math.Long.fromNumber(e.min)}else{e._setMinMax("min")}if(e._radixNumber!==10&&e.max.toString()==="9223372036854775807"){e._maxLong=new e.longObj.math.Long.fromNumber(e.max)}else{e._setMinMax("max")}},_refreshClasses:function(c){var b=c?"addClass":"removeClass";this.host[b](this.toThemeProperty("jqx-widget-content"));this.host[b](this.toThemeProperty("jqx-input"));this.host[b](this.toThemeProperty("jqx-formatted-input"));this.host[b](this.toThemeProperty("jqx-widget"));this.$popup[b](this.toThemeProperty("jqx-popup"));if(a.jqx.browser.msie){this.$popup[b](this.toThemeProperty("jqx-noshadow"))}this.$popup[b](this.toThemeProperty("jqx-input-popup"));this.$popup[b](this.toThemeProperty("jqx-menu"));this.$popup[b](this.toThemeProperty("jqx-menu-vertical"));this.$popup[b](this.toThemeProperty("jqx-menu-dropdown"));this.$popup[b](this.toThemeProperty("jqx-widget"));this.$popup[b](this.toThemeProperty("jqx-widget-content"));if(this.roundedCorners){this.host[b](this.toThemeProperty("jqx-rc-all"));this.$popup[b](this.toThemeProperty("jqx-rc-all"));if(this.baseHost){this.baseHost[b](this.toThemeProperty("jqx-rc-all"));if(this.rtl===false){this.host[b](this.toThemeProperty("jqx-rc-l"));if(this._addon){this._addon[b](this.toThemeProperty("jqx-rc-r"))}}else{this.host[b](this.toThemeProperty("jqx-rc-r"));if(this._addon){this._addon[b](this.toThemeProperty("jqx-rc-l"))}}}}else{this.host.removeClass(this.toThemeProperty("jqx-rc-all"));this.$popup.removeClass(this.toThemeProperty("jqx-rc-all"));if(this.baseHost){this.baseHost.removeClass(this.toThemeProperty("jqx-rc-all"));if(this.rtl===false){this.host.removeClass(this.toThemeProperty("jqx-rc-l"));if(this._addon){this._addon.removeClass(this.toThemeProperty("jqx-rc-r"))}}else{this.host.removeClass(this.toThemeProperty("jqx-rc-r"));if(this._addon){this._addon.removeClass(this.toThemeProperty("jqx-rc-l"))}}}}if(this.disabled){this.host[b](this.toThemeProperty("jqx-fill-state-disabled"));if(this.baseHost){if(this._spinButtonsContainer){this._spinButtonsContainer[b](this.toThemeProperty("jqx-fill-state-disabled"))}if(this._addon){this._addon[b](this.toThemeProperty("jqx-fill-state-disabled"))}}}else{this.host.removeClass(this.toThemeProperty("jqx-fill-state-disabled"));if(this.baseHost&&this.value!==""&&this.value!==null){if(this._spinButtonsContainer){this._spinButtonsContainer.removeClass(this.toThemeProperty("jqx-fill-state-disabled"))}if(this._addon){this._addon.removeClass(this.toThemeProperty("jqx-fill-state-disabled"))}}}},selectAll:function(){var b=this.host;setTimeout(function(){if("selectionStart" in b[0]){b[0].focus();b[0].setSelectionRange(0,b[0].value.length)}else{var c=b[0].createTextRange();c.collapse(true);c.moveEnd("character",b[0].value.length);c.moveStart("character",0);c.select()}},10)},selectLast:function(){var b=this.host;this.selectStart(b[0].value.length)},selectFirst:function(){this.selectStart(0)},selectStart:function(c){var b=this.host;setTimeout(function(){if("selectionStart" in b[0]){b[0].focus();b[0].setSelectionRange(c,c)}else{var d=b[0].createTextRange();d.collapse(true);d.moveEnd("character",c);d.moveStart("character",c);d.select()}},10)},focus:function(){try{this.host.focus();var c=this;setTimeout(function(){c.host.focus()},25)}catch(b){}},refresh:function(){var f=this;this._refreshClasses(false);this._refreshClasses(true);if(!this.baseHost){if(this.width){this.host.width(this.width)}if(this.height){this.host.height(this.height)}}else{if(this.width){this.baseHost.width(this.width)}if(this.height){this.baseHost.height(this.height);var e=0;var j=this.baseHost.height()-2;if(a.jqx.browser.msie&&a.jqx.browser.version<8){this.baseHost.css("display","inline-block")}a.each(this.baseHost.children(),function(){a(this).css("height","100%");if(a.jqx.browser.msie&&a.jqx.browser.version<8){a(this).css("height",j+"px")}if(this!==f.element){e+=a(this).outerWidth()}});var c=(typeof f.width==="string"&&f.width.charAt(f.width.length-1)==="%")?1:0;this.host.css("width",this.baseHost.width()-e-c+"px");if(a.jqx.browser.msie&&a.jqx.browser.version<9){if(f._spinButtonsContainer){if(f.rtl===false||f.rtl===true&&f._addon){f._spinButtonsContainer.css("border-left-width","0")}}if(f._addon){if(f.rtl===false){f._addon.css("border-left-width","0")}else{if(!f._spinButtonsContainer){f._addon.css("border-right-width","0")}}}var h=0;if(a.jqx.browser.version<8){var g=0;var d=parseInt(f.host.css("border-left-width"),10)+parseInt(f.host.css("border-right-width"),10);var i=parseInt(f.host.css("padding-left"),10)+parseInt(f.host.css("padding-right"),10);if(f._spinButtonsContainer){d+=parseInt(f._spinButtonsContainer.css("border-left-width"),10)+parseInt(f._spinButtonsContainer.css("border-right-width"),10);i+=parseInt(f._spinButtonsContainer.css("padding-left"),10)+parseInt(f._spinButtonsContainer.css("padding-right"),10);if(!f._addon){g=2}}if(f._addon){d+=parseInt(f._addon.css("border-left-width"),10)+parseInt(f._addon.css("border-right-width"),10);i+=parseInt(f._addon.css("padding-left"),10)+parseInt(f._addon.css("padding-right"),10);if(!f._spinButtonsContainer){g=2}}f.host.width(f.host.width()-(i+d)-g);h=6}f.host.height(f.baseHost.height()-(parseInt(f.host.css("border-top-width"),10)+parseInt(f.host.css("border-bottom-width"),10)+parseInt(f.host.css("padding-top"),10)+parseInt(f.host.css("padding-bottom"),10)+h));var b=f.host.height()+"px";f.host.css("min-height",b);f.host.css("line-height",b)}}}this.host.attr("disabled",this.disabled);if(!this.host.attr("placeholder")){this._refreshPlaceHolder()}},_refreshPlaceHolder:function(){if("placeholder" in this.element){this.host.attr("placeHolder",this.placeHolder)}else{var b=this;if(this.element.value===""){this.element.value=this.placeHolder;this.host.focus(function(){if(b.element.value===b.placeHolder){b.element.value=""}});this.host.blur(function(){if(b.element.value===""||b.element.value===b.placeHolder){b.element.value=b.placeHolder}})}}},destroy:function(){this.removeHandlers();if(this.baseHost){a.jqx.utilities.resize(this.baseHost,null,true);this.baseHost.remove()}else{a.jqx.utilities.resize(this.host,null,true);this.host.remove()}if(this.$popup){this.$popup.remove()}},propertyChangedHandler:function(b,d,g,f){if(d==="placeHolder"){b._refreshPlaceHolder();return}if(d==="theme"){a.jqx.utilities.setTheme(g,f,b.host);return}if(d==="disabled"){a.jqx.aria(b,"aria-disabled",b.disabled)}if(d==="value"&&g.toString().toUpperCase()!==f.toString().toUpperCase()){b.val(f);return}if(g!==f&&d==="radix"){b._changeRadix(f);return}if(g!==f&&d==="decimalNotation"&&b._radixNumber===10){if(f==="exponential"){b.element.value=b._getDecimalNotation("exponential")}else{b.element.value=b._number.toString(10)}}if(g!==f&&(d==="min"||d==="max")){b._setMinMax(d);b._validateValue(b.value,true);b.value=b.element.value;return}if(g!==f&&(d==="upperCase")&&b.element.value!==""){if(f===true){b.host.removeClass(b.toThemeProperty("jqx-formatted-input-lower-case"));b.host.addClass(b.toThemeProperty("jqx-formatted-input-upper-case"))}else{b.host.removeClass(b.toThemeProperty("jqx-formatted-input-upper-case"));b.host.addClass(b.toThemeProperty("jqx-formatted-input-lower-case"))}return}function c(i,j){var k=b.host.width();var h=i.outerWidth();if(j===false){b.host.width(k+h);i.hide();if(b.rtl===true){if(b.spinButtons===true){b._spinButtonsContainer.addClass(b.toThemeProperty("jqx-formatted-input-spin-buttons-container-rtl-border"))}if(b.dropDown===true){b._addon.removeClass(b.toThemeProperty("jqx-formatted-input-addon-rtl"))}}}else{b.host.width(k-h);i.show();if(b.rtl===true&&b.spinButtons===true&&b.dropDown===true){b._spinButtonsContainer.removeClass(b.toThemeProperty("jqx-formatted-input-spin-buttons-container-rtl-border"));b._addon.addClass(b.toThemeProperty("jqx-formatted-input-addon-rtl"))}}}function e(j,l){if(l===true){var k=a("
    ");if(b.baseHost){var h=b.baseHost.children("div");if((b.rtl===false&&j==="spinButtons")||(b.rtl===true&&j==="dropDown")){h.before(k)}else{h.after(k)}b.render();b.host.width(b.host.width()-k.outerWidth())}else{var n=b.element.id;b.host.removeAttr("id");b.host.wrap('
    ');var m=a("#"+n);if(b.rtl===false){m.append(k)}else{m.prepend(k)}var i=b.host.data();i.jqxFormattedInput.host=m;i.jqxFormattedInput.element=m[0];b.baseHost=m;b.baseHost.data(i);b.render();b.refresh()}}}if(d==="spinButtons"){if(g!==f){if(b._spinButtonsContainer){c(b._spinButtonsContainer,f)}else{e("spinButtons",f)}return}else{return}}if(g!==f&&d==="spinButtonsStep"){b._spinButtonsStepLong=new b.longObj.math.Long.fromNumber(f)}if(d==="dropDown"){if(g!==f){if(b._addon){c(b._addon,f)}else{e("dropDown",f)}return}else{return}}b.refresh()},select:function(d,e,b){var c=this;if(!b){b=c.$popup.find(".jqx-fill-state-pressed").attr("data-value")}c._changeRadix(parseInt(b,10));c._setMaxLength(true);c.close()},val:function(g){var f=this;if((g||g==="")&&!(typeof g==="object"&&a.isEmptyObject(g)===true)&&g!=="binary"&&g!=="octal"&&g!=="decimal"&&g!=="exponential"&&g!=="scientific"&&g!=="engineering"&&g!=="hexadecimal"){g=g.toString();if(g.toUpperCase()!==f.element.value.toString().toUpperCase()){var b=f.element.value;if(f.upperCase===true){g=g.toUpperCase()}var e=g.split("");for(var c=0;c=96&&o<=105){m=o-96;o=o-48}if(k.altKey===true){if(o===40){if(j._addon){this.open()}return}else{if(o===38){if(j._addon){this.close()}return}}}if(k.ctrlKey===true){if(o===67){return}else{if(o===65){j.selectAll();return}}}var d=[8,9,13,37,38,39,40,46,88];var i=j._regex[""+j._radixNumber+""];if(d.indexOf(o)===-1&&(!i.test(m)&&!i.test(k.key)&&!i.test(k["char"]))){k.preventDefault();return false}else{var l=j.host[0].selectionStart;var g=j.host[0].selectionEnd-l;var f=this._getCaretPosition(this.host[0]);var b=this.element.value;var c=b.split("");if(o===8){if(g>0){c.splice(l,g)}else{c.splice(f-1,1)}}else{if(o===46){if(g>0){c.splice(l,g)}else{c.splice(f,1)}}else{if(o===88){if(k.ctrlKey===true){if(g>0){c.splice(l,g)}}else{k.preventDefault()}}else{if(o===189){if(c[0]==="-"){c.splice(0,1);j._minus=false}else{c.splice(0,0,"-");j._minus=true}k.preventDefault()}else{var h=d.indexOf(o)===-1?m:"";if(g>0){c.splice(l,g);c.splice(l,0,h)}else{c.splice(f,0,h)}}}}}c=c.join("");if(c!==b){var n=j._validateValue(c,false);if(n===false){j._inputAndAddon.addClass(j.toThemeProperty("jqx-input-invalid"))}else{j._inputAndAddon.removeClass(j.toThemeProperty("jqx-input-invalid"))}}}},keypress:function(c){var b=this;if(b.suppressKeyPressRepeat){return}b.move(c)},keyup:function(c){var b=this;switch(c.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(this._opened){this.select(c,this)}else{b._change()}break;case 27:if(!this._opened){return}this.close();break;case 189:if(b._radixNumber===10){if(b._minus===true){b.element.value="-"+b.element.value}else{b.element.value=b.element.value.slice(1)}}break}c.stopPropagation();c.preventDefault();if(b.element.value!==""){if(b.upperCase){b.host.addClass(b.toThemeProperty("jqx-formatted-input-upper-case"))}else{b.host.addClass(b.toThemeProperty("jqx-formatted-input-lower-case"))}if(b._spinButtonsContainer){b._spinButtonsContainer.removeClass(b.toThemeProperty("jqx-fill-state-disabled"))}}else{b.host.removeClass(b.toThemeProperty("jqx-formatted-input-upper-case jqx-formatted-input-lower-case"));if(b._spinButtonsContainer){b._spinButtonsContainer.addClass(b.toThemeProperty("jqx-fill-state-disabled"))}}},_getCaretPosition:function(b){var d=0;if(document.selection){b.focus();var c=document.selection.createRange();c.moveStart("character",-b.value.length);d=c.text.length}else{if(b.selectionStart||b.selectionStart==="0"){d=b.selectionStart}}return(d)},onBlur:function(){var b=this;if(b._opened){b.close()}b._setMaxLength();b._inputAndAddon.removeClass(b.toThemeProperty("jqx-fill-state-focus"));b._change();if(b._radixNumber===10&&b.decimalNotation==="exponential"){b.element.value=b._getDecimalNotation("exponential")}b._refreshPlaceHolder()},onFocus:function(){var b=this;b._setMaxLength(true);b._inputAndAddon.addClass(b.toThemeProperty("jqx-fill-state-focus"));if(b._radixNumber===10&&b.decimalNotation==="exponential"){b.element.value=b._number.toString(10)}},click:function(c){c.stopPropagation();c.preventDefault();var b=a(c.target).attr("data-value");this.select(c,this,b)},mouseenter:function(b){this.$popup.find(".jqx-fill-state-pressed").removeClass(this.toThemeProperty("jqx-fill-state-pressed"));a(b.currentTarget).addClass(this.toThemeProperty("jqx-fill-state-pressed"))},_change:function(){var c=this;var b=c.value;var d=c._validateValue(c.element.value,true);c._inputAndAddon.removeClass(c.toThemeProperty("jqx-input-invalid"));if(d.toUpperCase()!==b.toString().toUpperCase()){c._raiseEvent("2",{value:d,oldValue:b,radix:c._radixNumber});c.value=d}},_getRadix:function(b){switch(b){case 10:case"decimal":return 10;case 2:case"binary":return 2;case 8:case"octal":return 8;case 16:case"hexadecimal":return 16}},_setPopupOptions:function(){var b=this;b._popupOptions=new Array();if(b.value!==""){b._popupOptions.push(b._number.toString(2)+" (BIN)");b._popupOptions.push(b._number.toString(8)+" (OCT)");b._popupOptions.push(b._number.toString(10)+" (DEC)");b._popupOptions.push(b._number.toString(16)+" (HEX)")}else{b._popupOptions.push("BIN");b._popupOptions.push("OCT");b._popupOptions.push("DEC");b._popupOptions.push("HEX")}},_validateValue:function(e,g){var d=this;if(e!==""){var f=new d.longObj.math.Long.fromString((e).toString(),d._radixNumber);if(f.lessThan(d._minLong)){if(g){d._number=d._minLong;var c=d._minLong.toString(d._radixNumber);if(d._radixNumber===16&&d.upperCase===true){c=c.toUpperCase()}d.element.value=c;return c}else{return false}}else{if(f.greaterThan(d._maxLong)){if(g){d._number=d._maxLong;var b=d._maxLong.toString(d._radixNumber);if(d._radixNumber===16&&d.upperCase===true){b=b.toUpperCase()}d.element.value=b;return b}else{return false}}else{if(g){d._number=f;d.element.value=e;return e}else{return true}}}}else{if(g){d.element.value="";return e}else{return true}}},_getNegativeDecimal:function(l,h){var o=l;if(h===8){var n=new Array();for(var f=0;f<11;f++){var b=parseInt(l.charAt(f),8).toString(2);while(b.length!==3){b="0"+b}n.push(b)}o=n.join("");if(o.charAt(0)==="0"){o=o.slice(1)}}else{if(h===16){var p=new Array();for(var e=0;e<8;e++){var m=parseInt(l.charAt(e),16).toString(2);while(m.length!==4){m="0"+m}p.push(m)}o=p.join("")}}var d="";for(var c=0;c=0){k=k.toFixed(j)}var i=k+"×10"+e._toSuperScript((parseInt(m,10)-l).toString());return i}var g=h(f);if(c==="scientific"){return d(g)}else{if(c==="engineering"){return b(g)}else{return g}}},_toSuperScript:function(h,g){var f="-0123456789";var d="⁻⁰¹²³⁴⁵⁶⁷⁸⁹";var c="";for(var e=0;e=0;n--){var q=s.charAt(n);var b;if(q==="0"){if(d===true){b="1";d=false}else{b="0"}}else{if(d===true){b="0"}else{b="1"}}g=b+""+g}switch(r){case 2:return g;case 8:g="00"+g;var f="";for(var m=22;m>=1;m--){var p=g[m*3-3]+""+g[m*3-2]+""+g[m*3-1];f=parseInt(p,2).toString(8)+""+f}return f;case 16:var e="";for(var h=16;h>=1;h--){var c=g[h*4-4]+""+g[h*4-3]+""+g[h*4-2]+""+g[h*4-1];e=parseInt(c,2).toString(16)+""+e}return e}},_Long:function(){var c=this;c.longObj=new Object();var b=c.longObj;b.math=new Object();b.math.Long=new Object();b.math.Long=function(d,e){this.lowBits=d|0;this.highBits=e|0};b.math.Long.IntCache={};b.math.Long.fromInt=function(d){if(-128<=d&&d<128){var f=b.math.Long.IntCache[d];if(f){return f}}var e=new b.math.Long(d|0,d<0?-1:0);if(-128<=d&&d<128){b.math.Long.IntCache[d]=e}return e};b.math.Long.fromNumber=function(d){if(isNaN(d)||!isFinite(d)){return b.math.Long.ZERO}else{if(d<=-b.math.Long.TWO_PWR_63_DBL_){return b.math.Long.MIN_VALUE}else{if(d+1>=b.math.Long.TWO_PWR_63_DBL_){return b.math.Long.MAX_VALUE}else{if(d<0){return b.math.Long.fromNumber(-d).negate()}else{return new b.math.Long((d%b.math.Long.TWO_PWR_32_DBL_)|0,(d/b.math.Long.TWO_PWR_32_DBL_)|0)}}}}};b.math.Long.fromBits=function(d,e){return new b.math.Long(d,e)};b.math.Long.fromString=function(f,j){if(f.length===0){throw new Error("number format error: empty string")}var g=j||10;if(g<2||36=0){throw new Error('number format error: interior "-" character: '+f)}}var k=b.math.Long.fromNumber(Math.pow(g,8));var m=b.math.Long.ZERO;for(var e=0;e=0)?this.lowBits:b.math.Long.TWO_PWR_32_DBL_+this.lowBits};b.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative()){if(this.equals(b.math.Long.MIN_VALUE)){return 64}else{return this.negate().getNumBitsAbs()}}else{var e=this.highBits!==0?this.highBits:this.lowBits;for(var d=31;d>0;d--){if((e&(1<0};b.math.Long.prototype.greaterThanOrEqual=function(d){return this.compare(d)>=0};b.math.Long.prototype.compare=function(e){if(this.equals(e)){return 0}var d=this.isNegative();var f=e.isNegative();if(d&&!f){return -1}if(!d&&f){return 1}if(this.subtract(e).isNegative()){return -1}else{return 1}};b.math.Long.prototype.negate=function(){if(this.equals(b.math.Long.MIN_VALUE)){return b.math.Long.MIN_VALUE}else{return this.not().add(b.math.Long.ONE)}};b.math.Long.prototype.add=function(k){var i=this.highBits>>>16;var e=this.highBits&65535;var l=this.lowBits>>>16;var f=this.lowBits&65535;var n=k.highBits>>>16;var g=k.highBits&65535;var o=k.lowBits>>>16;var h=k.lowBits&65535;var p=0,j=0,d=0,m=0;m+=f+h;d+=m>>>16;m&=65535;d+=l+o;j+=d>>>16;d&=65535;j+=e+g;p+=j>>>16;j&=65535;p+=i+n;p&=65535;return b.math.Long.fromBits((d<<16)|m,(p<<16)|j)};b.math.Long.prototype.subtract=function(d){return this.add(d.negate())};b.math.Long.prototype.multiply=function(k){if(this.isZero()){return b.math.Long.ZERO}else{if(k.isZero()){return b.math.Long.ZERO}}if(this.equals(b.math.Long.MIN_VALUE)){return k.isOdd()?b.math.Long.MIN_VALUE:b.math.Long.ZERO}else{if(k.equals(b.math.Long.MIN_VALUE)){return this.isOdd()?b.math.Long.MIN_VALUE:b.math.Long.ZERO}}if(this.isNegative()){if(k.isNegative()){return this.negate().multiply(k.negate())}else{return this.negate().multiply(k).negate()}}else{if(k.isNegative()){return this.multiply(k.negate()).negate()}}if(this.lessThan(b.math.Long.TWO_PWR_24_)&&k.lessThan(b.math.Long.TWO_PWR_24_)){return b.math.Long.fromNumber(this.toNumber()*k.toNumber())}var i=this.highBits>>>16;var e=this.highBits&65535;var l=this.lowBits>>>16;var f=this.lowBits&65535;var n=k.highBits>>>16;var g=k.highBits&65535;var o=k.lowBits>>>16;var h=k.lowBits&65535;var p=0,j=0,d=0,m=0;m+=f*h;d+=m>>>16;m&=65535;d+=l*h;j+=d>>>16;d&=65535;d+=f*o;j+=d>>>16;d&=65535;j+=e*h;p+=j>>>16;j&=65535;j+=l*o;p+=j>>>16;j&=65535;j+=f*g;p+=j>>>16;j&=65535;p+=i*h+e*o+l*g+f*n;p&=65535;return b.math.Long.fromBits((d<<16)|m,(p<<16)|j)};b.math.Long.prototype.div=function(f){if(f.isZero()){throw new Error("division by zero")}else{if(this.isZero()){return b.math.Long.ZERO}}var i,k;if(this.equals(b.math.Long.MIN_VALUE)){if(f.equals(b.math.Long.ONE)||f.equals(b.math.Long.NEG_ONE)){return b.math.Long.MIN_VALUE}else{if(f.equals(b.math.Long.MIN_VALUE)){return b.math.Long.ONE}else{var d=this.shiftRight(1);i=d.div(f).shiftLeft(1);if(i.equals(b.math.Long.ZERO)){return f.isNegative()?b.math.Long.ONE:b.math.Long.NEG_ONE}else{k=this.subtract(f.multiply(i));var m=i.add(k.div(f));return m}}}}else{if(f.equals(b.math.Long.MIN_VALUE)){return b.math.Long.ZERO}}if(this.isNegative()){if(f.isNegative()){return this.negate().div(f.negate())}else{return this.negate().div(f).negate()}}else{if(f.isNegative()){return this.div(f.negate()).negate()}}var g=b.math.Long.ZERO;k=this;while(k.greaterThanOrEqual(f)){i=Math.max(1,Math.floor(k.toNumber()/f.toNumber()));var l=Math.ceil(Math.log(i)/Math.LN2);var j=(l<=48)?1:Math.pow(2,l-48);var e=b.math.Long.fromNumber(i);var h=e.multiply(f);while(h.isNegative()||h.greaterThan(k)){i-=j;e=b.math.Long.fromNumber(i);h=e.multiply(f)}if(e.isZero()){e=b.math.Long.ONE}g=g.add(e);k=k.subtract(h)}return g};b.math.Long.prototype.modulo=function(d){return this.subtract(this.div(d).multiply(d))};b.math.Long.prototype.not=function(){return b.math.Long.fromBits(~this.lowBits,~this.highBits)};b.math.Long.prototype.and=function(d){return b.math.Long.fromBits(this.lowBits&d.lowBits,this.highBits&d.highBits)};b.math.Long.prototype.or=function(d){return b.math.Long.fromBits(this.lowBits|d.lowBits,this.highBits|d.highBits)};b.math.Long.prototype.xor=function(d){return b.math.Long.fromBits(this.lowBits^d.lowBits,this.highBits^d.highBits)};b.math.Long.prototype.shiftLeft=function(f){f&=63;if(f===0){return this}else{var d=this.lowBits;if(f<32){var e=this.highBits;return b.math.Long.fromBits(d<>>(32-f)))}else{return b.math.Long.fromBits(0,d<<(f-32))}}};b.math.Long.prototype.shiftRight=function(f){f&=63;if(f===0){return this}else{var e=this.highBits;if(f<32){var d=this.lowBits;return b.math.Long.fromBits((d>>>f)|(e<<(32-f)),e>>f)}else{return b.math.Long.fromBits(e>>(f-32),e>=0?0:-1)}}};b.math.Long.prototype.shiftRightUnsigned=function(f){f&=63;if(f===0){return this}else{var e=this.highBits;if(f<32){var d=this.lowBits;return b.math.Long.fromBits((d>>>f)|(e<<(32-f)),e>>>f)}else{if(f===32){return b.math.Long.fromBits(e,0)}else{return b.math.Long.fromBits(e>>>(f-32),0)}}}}}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxRibbon","",{});a.extend(a.jqx._jqxRibbon.prototype,{defineInstance:function(){var b={width:null,height:"auto",mode:"default",position:"top",selectedIndex:-1,selectionMode:"click",popupCloseMode:"click",animationType:"fade",animationDelay:400,scrollPosition:"both",disabled:false,rtl:false,scrollStep:10,scrollDelay:30,reorder:false,initContent:null,_roundedCorners:true,_removeByDrag:false,events:["select","unselect","change","_removeByDrag","reorder"]};a.extend(true,this,b)},createInstance:function(){var b=this;b._browser=a.jqx.browser;if(b.mode!=="popup"&&b.selectedIndex===-1){b.selectedIndex=0}b._originalHTML=b.host.html();b._render(true)},render:function(){this._render()},refresh:function(b){if(b!==true){this._render()}},destroy:function(){var b=this;b._removeHandlers();b.host.remove()},selectAt:function(b){this._selectAt(b)},clearSelection:function(){this._clearSelection()},disableAt:function(b){var c=this;c._items[b]._disabled=true;a(c._items[b]).addClass(c.toThemeProperty("jqx-fill-state-disabled"));if(b===c.selectedIndex){c._clearSelection()}},enableAt:function(b){var c=this;c._items[b]._disabled=false;a(c._items[b]).removeClass(c.toThemeProperty("jqx-fill-state-disabled"))},hideAt:function(b){var c=this;a(c._items[b]).css("display","none");c._checkScrollButtons();if(b===c.selectedIndex){c._clearSelection()}else{c._updatePositions()}},showAt:function(b){var c=this;if(c._orientation==="horizontal"){a(c._items[b]).css("display","inline-block")}else{a(c._items[b]).css("display","inherit")}c._checkScrollButtons();c._updatePositions()},val:function(b){var c=this;if(b){c._selectAt(b)}else{return c.selectedIndex}},addAt:function(b,e){var c=this;c._removeHandlers();var f=a('
  • '+e.title+"
  • ");var d=a('
    ');d.append(e.content);switch(c.position){case"top":f.addClass(c.toThemeProperty("jqx-rc-t"));d.addClass(c.toThemeProperty("jqx-rc-b"));break;case"bottom":f.addClass(c.toThemeProperty("jqx-rc-b"));d.addClass(c.toThemeProperty("jqx-rc-t"));break;case"left":f.addClass(c.toThemeProperty("jqx-rc-l"));d.addClass(c.toThemeProperty("jqx-rc-r"));break;case"right":f.addClass(c.toThemeProperty("jqx-rc-r"));d.addClass(c.toThemeProperty("jqx-rc-l"));break}if(c.mode==="popup"){d.addClass(c.toThemeProperty("jqx-ribbon-content-section-popup"));if(c._orientation==="horizontal"){d.addClass(c.toThemeProperty("jqx-ribbon-content-section-horizontal-popup"))}else{d.addClass(c.toThemeProperty("jqx-ribbon-content-section-vertical-popup"))}}if(c.rtl===true){f.addClass(c.toThemeProperty("jqx-ribbon-item-rtl"))}if(c._items.length-1>=b){a(c._items[b]).before(f);a(c._contentSections[b]).before(d)}else{c._header.append(f);c._content.append(d)}c._updateItems();c._addHandlers();c._checkScrollButtons();if(b<=c.selectedIndex){c.selectedIndex++}c._updatePositions()},removeAt:function(b){var c=this;if(b===c.selectedIndex){c._clearSelection()}a(c._items[b]).add(c._contentSections[b]).remove();c._updateItems();c._updatePositions()},updateAt:function(b,c){var d=this;a(d._items[b]).html(c.newTitle);a(d._contentSections[b]).html(c.newContent);d._items[b]._isInitialized=false;if(d.initContent&&b===d.selectedIndex){d.initContent(b);d._items[b]._isInitialized=true}d._updatePositions()},setPopupLayout:function(c,f,d,b){var e=this;if(e.mode==="popup"){if(!a(e._contentSections[c]).attr("data-width")){if(a(e._contentSections[c])[0].style.width){a(e._contentSections[c]).attr("data-width",a(e._contentSections[c])[0].style.width)}if(a(e._contentSections[c])[0].style.height){a(e._contentSections[c]).attr("data-height",a(e._contentSections[c])[0].style.height)}}if(d){a(e._contentSections[c]).css("width",d)}if(b){a(e._contentSections[c]).css("height",b)}e._contentSections[c]._layout=f;e._positionContent(c)}},propertyChangedHandler:function(c,d,f,e){if(e!==f){switch(d){case"width":case"height":c.host.css(d,e);c._updateSize();break;case"position":c._render();break;case"mode":c._content.width("auto");c._removeHandlers(null,f);c._render();break;case"selectedIndex":c._selectAt(e,f);break;case"selectionMode":c._removeHandlers(f);c._addHandlers();break;case"scrollPosition":c._scrollButtons.removeClass(c.toThemeProperty("jqx-ribbon-scrollbutton-"+f));c._scrollButtons.addClass(c.toThemeProperty("jqx-ribbon-scrollbutton-"+e));var b=a(c._scrollButtons[0]);var g=a(c._scrollButtons[1]);c._scrollButtons.removeClass(c.toThemeProperty("jqx-rc-tr"));c._scrollButtons.removeClass(c.toThemeProperty("jqx-rc-bl"));b.removeClass(c.toThemeProperty("jqx-rc-tl"));g.removeClass(c.toThemeProperty("jqx-rc-br"));c._scrollButtonRc(b,g);c._checkScrollButtons();c._updatePositions();break;case"disabled":if(e===true){c._removeHandlers();c.host.addClass(c.toThemeProperty("jqx-fill-state-disabled"))}else{c.host.removeClass(c.toThemeProperty("jqx-fill-state-disabled"));c._addHandlers()}break;case"theme":a.jqx.utilities.setTheme(f,e,c.host);break;case"rtl":if(e===true){c._header.addClass(c.toThemeProperty("jqx-ribbon-header-rtl"));c._items.addClass(c.toThemeProperty("jqx-ribbon-item-rtl"))}else{c._header.removeClass(c.toThemeProperty("jqx-ribbon-header-rtl"));c._items.removeClass(c.toThemeProperty("jqx-ribbon-item-rtl"))}c._positionSelectionToken(c.selectedIndex);break}}},_raiseEvent:function(g,e){var c=this.events[g];var f=new jQuery.Event(c);f.owner=this;f.args=e;var b;try{b=this.host.trigger(f)}catch(d){}return b},_render:function(c){var d=this;if(c!==true){d._removeHandlers()}d._selectionTokenOffsetY=0;switch(d._browser.browser){case"mozilla":d._browserWidthRtlFlag=0;d._browserScrollRtlFlag=1;d._selectionTokenOffsetX=1;break;case"msie":d._browserWidthRtlFlag=0;d._browserScrollRtlFlag=-1;if(d._browser.version==="8.0"){d._selectionTokenOffsetX=1}else{if(d._browser.version==="7.0"){d._selectionTokenOffsetX=0;if(d.mode==="popup"&&(d.position==="bottom"||d.position==="right")){d._selectionTokenOffsetY=2}}else{d._selectionTokenOffsetX=0}}break;default:d._browserWidthRtlFlag=1;d._browserScrollRtlFlag=1;d._selectionTokenOffsetX=0}if(c===true){var b=d.host.children();d._header=a(b[0]);d._content=a(b[1]);d._checkStructure(b)}d._header.css("float","none");d._content.css("padding","0px");d.host.width(d.width);d.host.height(d.height);if(d.position==="bottom"||d.position==="right"){d._content.after(d._header)}if(d.position==="top"||d.position==="bottom"){d._orientation="horizontal"}else{d._orientation="vertical"}if(d.position==="right"){d._header.css("float","right")}else{if(d.position==="left"){d._header.css("float","left")}}d._contentSections=d._content.children();a.each(d._contentSections,function(){if(a(this).attr("data-width")!==undefined){a(this).css("width",a(this).attr("data-width"));a(this).css("height",a(this).attr("data-height"));a(this).removeAttr("data-width");a(this).removeAttr("data-height")}});if(c===true){d._selectionToken=a('
    ');d.host.append(d._selectionToken)}d._updateItems();d._addClasses();if(c===true){d._appendScrollButtons();d._checkScrollButtons()}d._allowSelection=true;if(d.selectedIndex!==-1){a(d._items[d.selectedIndex]).addClass(d.toThemeProperty("jqx-widget-content")).addClass(d.toThemeProperty("jqx-ribbon-item-selected"));d._positionSelectionToken(d.selectedIndex);a(d._contentSections[d.selectedIndex]).css("display","block");if(d.initContent){d.initContent(d.selectedIndex);d._items[d.selectedIndex]._isInitialized=true}}if(!d.disabled){d._addHandlers()}else{d.host.addClass(d.toThemeProperty("jqx-fill-state-disabled"))}a.jqx.utilities.resize(d.host,function(){d._updateSize()})},_updateSize:function(){var b=this;if(b._browser.version==="7.0"&&b._browser.browser==="msie"){if(b._orientation==="horizontal"){b._header.css("width",(b.host.width()-parseInt(b._header.css("padding-left"),10)-parseInt(b._header.css("padding-right"),10)-parseInt(b._header.css("border-left-width"),10)-parseInt(b._header.css("border-right-width"),10)));b._contentSections.width(b._content.width()-parseInt(b._contentSections.css("border-left-width"),10)-parseInt(b._contentSections.css("border-right-width"),10)-parseInt(b._contentSections.css("padding-left"),10)-parseInt(b._contentSections.css("padding-right"),10));if(b.mode==="default"&&typeof b.height==="string"&&b.height.indexOf("%")!==-1){b._contentSections.height(b._content.height()-b._header.height()-parseInt(b._contentSections.css("border-bottom-width"),10)-parseInt(b._contentSections.css("border-top-width"),10)-1)}}else{b._header.css("height",(b.host.height()-parseInt(b._header.css("padding-top"),10)-parseInt(b._header.css("padding-bottom"),10)-parseInt(b._header.css("border-top-width"),10)-parseInt(b._header.css("border-bottom-width"),10)));b._contentSections.height(b._content.height()-parseInt(b._contentSections.css("border-top-width"),10)-parseInt(b._contentSections.css("border-bottom-width"),10)-parseInt(b._contentSections.css("padding-top"),10)-parseInt(b._contentSections.css("padding-bottom"),10));if(b.mode==="default"&&typeof b.width==="string"&&b.height.indexOf("%")!==-1){var c=b.position==="left"?parseInt(b._contentSections.css("border-left-width"),10)+parseInt(b._contentSections.css("border-right-width"),10)+1:0;b._contentSections.width(b._content.width()-b._header.width()-c)}}}b._checkScrollButtons(true);b._updatePositions();if(b.mode==="popup"){b._positionPopup()}},_stopAnimation:function(){var b=this;if(!b._allowSelection){b.selectedIndex=b._animatingIndex;a(b._contentSections[b._animatingIndex]).finish();b._clearSelection(true,b._animatingIndex);b._allowSelection=true}},_selectAt:function(b,e){var c=this;if(e===undefined){e=c.selectedIndex}if(b!==e){c._stopAnimation();if(c._allowSelection){c._animatingIndex=b;c._clearSelection(true,e);c._allowSelection=false;c._selecting=b;if(c.selectionMode==="click"){a(c._items[b]).removeClass(c.toThemeProperty("jqx-fill-state-hover"));a(c._items[b]).removeClass(c.toThemeProperty("jqx-ribbon-item-hover"))}if(c.mode==="popup"&&c._roundedCorners){c._header.removeClass(c.toThemeProperty("jqx-rc-all"));switch(c.position){case"top":c._header.add(c._items).addClass(c.toThemeProperty("jqx-rc-t"));c._contentSections.addClass(c.toThemeProperty("jqx-rc-b"));break;case"bottom":c._header.add(c._items).addClass(c.toThemeProperty("jqx-rc-b"));c._contentSections.addClass(c.toThemeProperty("jqx-rc-t"));break;case"left":c._header.add(c._items).addClass(c.toThemeProperty("jqx-rc-l"));c._contentSections.addClass(c.toThemeProperty("jqx-rc-r"));break;case"right":c._header.add(c._items).addClass(c.toThemeProperty("jqx-rc-r"));c._contentSections.addClass(c.toThemeProperty("jqx-rc-l"));break}}a(c._items[b]).addClass(c.toThemeProperty("jqx-widget-content")).addClass(c.toThemeProperty("jqx-ribbon-item-selected"));c._selectionToken.css("display","block");c._updatePositions(b);switch(c.animationType){case"fade":a(c._contentSections[b]).fadeToggle(c.animationDelay,function(){c._animationComplete(b,e)});break;case"slide":var d=c.position;if(d==="top"){d="up"}else{if(d==="bottom"){d="down"}}c.slideAnimation=c._slide(a(c._contentSections[b]),{mode:"show",direction:d,duration:c.animationDelay},b,e);break;case"none":a(c._contentSections[b]).css("display","block");c._animationComplete(b,e);break}}else{}}},_clearSelection:function(b,e){var c=this;if(c.mode==="popup"){if(c._roundedCorners){c._header.addClass(c.toThemeProperty("jqx-rc-all"))}}c._selecting=-1;if(e===undefined){e=c.selectedIndex}a(c._items[e]).removeClass(c.toThemeProperty("jqx-widget-content")).removeClass(c.toThemeProperty("jqx-ribbon-item-selected"));c._selectionToken.css("display","none");if(b!==true&&c.animationType!=="none"){if(c.animationType==="fade"){a(c._contentSections[e]).fadeOut(c.animationDelay,function(){c._clearSelectionComplete(e)})}else{if(c.animationType==="slide"){var d=c.position;if(d==="top"){d="up"}else{if(d==="bottom"){d="down"}}c._stopAnimation();e=c.selectedIndex;c.slideAnimation=c._slide(a(c._contentSections[e]),{mode:"hide",direction:d,duration:c.animationDelay},e);c.selectedIndex=-1}}}else{a(c._contentSections[e]).css("display","none");c._clearSelectionComplete(e,b)}},_addHandlers:function(){var g=this,b=g.element.id;var i=function(m){if(g.popupCloseMode==="click"&&g.mode==="popup"){if(m.target.tagName==="svg"){return}var l=a(m.target).closest(".jqx-ribbon");if(l.length>0&&l.attr("id")!==b){g._clearSelection();return}if(m.target.className.indexOf("jqx-ribbon-content-popup")!==-1){g._clearSelection();return}if(a(m.target).ischildof(g.host)){return}var k=false;a.each(a(m.target).parents(),function(){if(this.className!==undefined){if(this.className.indexOf){if(this.className.indexOf("jqx-ribbon")!==-1){k=true;return false}if(this.className.indexOf("jqx-ribbon")!==-1){if(b===this.id){k=true}return false}}}});if(!k){g._clearSelection()}}};if(g.selectionMode==="click"){g.addHandler(g._items,"click.ribbon"+b,function(l){var m=a(l.target).closest("li")[0],k=m._index;if(!g._items[k]._disabled){if(k!==g.selectedIndex){g._selectAt(k)}else{if(g.mode==="popup"){if(g.popupCloseMode!=="none"){a(m).addClass(g.toThemeProperty("jqx-fill-state-hover"));a(m).addClass(g.toThemeProperty("jqx-ribbon-item-hover"));g._clearSelection()}}}}});var d=function(k){return((g._selecting!==k&&g._allowSelection===false)||((g._selecting===-1||g.selectedIndex!==k)&&g._allowSelection===true))&&!g._items[k]._disabled};g.addHandler(g._items,"mouseenter.ribbon"+b,function(k){var l=a(k.target).closest("li")[0];if(d(l._index)){a(l).addClass(g.toThemeProperty("jqx-fill-state-hover"));a(l).addClass(g.toThemeProperty("jqx-ribbon-item-hover"))}});g.addHandler(g._items,"mouseleave.ribbon"+b,function(k){var l=a(k.target).closest("li")[0];if(d(l._index)){a(l).removeClass(g.toThemeProperty("jqx-fill-state-hover"));a(l).removeClass(g.toThemeProperty("jqx-ribbon-item-hover"))}});if(g.mode==="popup"){g.addHandler(g.host,"mouseleave.ribbon"+b,function(){if(g.popupCloseMode==="mouseLeave"&&g.mode==="popup"){g._clearSelection()}});g.addHandler(g._contentSections,"mouseleave.ribbon"+b,function(){if(g.popupCloseMode==="mouseLeave"&&g.mode==="popup"){g._clearSelection()}});g.addHandler(a(document),"mousedown.ribbon"+b,function(k){i(k)})}var j=false,e;if(g._removeByDrag===true){g._items.addClass(g.toThemeProperty("jqx-ribbon-item-docking-layout"))}g.addHandler(g._items,"mousedown.ribbon"+b,function(k){var l=a(k.target).closest("li")[0];if((g.reorder===true||g._removeByDrag===true)&&l._index===g.selectedIndex){j=true;e=l._index;l.style.cursor="move"}});g.addHandler(g.host,"mouseup.ribbon"+b,function(){j=false;g._items.css("cursor","")});g.addHandler(g._items,"mouseenter.ribbon"+b,function(n){if(g.reorder===true&&j===true){var l=a(n.target).closest("li")[0]._index,m=a(g._items[e]).html(),k=a(g._contentSections[e]).contents().detach();g._supressSelectionEvents=true;g._oldReorderIndex=e;g.removeAt(e);g.clearSelection();g.addAt(l,{title:m,content:k});g.selectAt(l);setTimeout(function(){a(g._items[l]).mousedown()},0)}});g.addHandler(g._header,"mouseleave.ribbon"+b,function(k){if(g._removeByDrag===true&&j===true){g._raiseEvent("3",{draggedIndex:e,x:k.pageX,y:k.pageY});if(g._items.length>1){g.removeAt(e)}j=false;k.target.style.cursor=""}})}else{if(g.selectionMode==="hover"){g.addHandler(g._items,"mouseenter.ribbon"+b,function(l){var k=a(l.target).closest("li")[0]._index;if(!g._items[k]._disabled&&k!==g.selectedIndex){g._selectAt(k)}});if(g.mode==="popup"){g.addHandler(g.host,"mouseleave.ribbon"+b,function(){if(g.popupCloseMode==="mouseLeave"&&g.mode==="popup"){g._clearSelection()}});g.addHandler(g._contentSections,"mouseleave.ribbon"+b,function(){if(g.popupCloseMode==="mouseLeave"&&g.mode==="popup"){g._clearSelection()}});g.addHandler(a(document),"mousedown.ribbon"+b,function(k){i(k)});g.addHandler(g._items,"click.ribbon"+b,function(l){var k=a(l.target).closest("li")[0]._index;if(!g._items[k]._disabled){if(g.mode==="popup"){if(g.popupCloseMode!=="none"){g._clearSelection()}}}})}}}var h=(g.rtl&&g._browser.browser==="msie")?-1:1;var c=a(g._scrollButtons[0]);g.addHandler(c,"mousedown.ribbon"+b,function(){if(g._orientation==="horizontal"){g._timeoutNear=setInterval(function(){var k=g._header.scrollLeft();g._header.scrollLeft(k-g.scrollStep*h);g._updatePositions()},g.scrollDelay)}else{g._timeoutNear=setInterval(function(){var k=g._header.scrollTop();g._header.scrollTop(k-g.scrollStep);g._updatePositions()},g.scrollDelay)}return false});g.addHandler(c,"mouseup.ribbon"+b,function(){clearInterval(g._timeoutNear)});var f=a(g._scrollButtons[1]);g.addHandler(f,"mousedown.ribbon"+b,function(){if(g._orientation==="horizontal"){g._timeoutFar=setInterval(function(){var k=g._header.scrollLeft();g._header.scrollLeft(k+g.scrollStep*h);g._updatePositions()},g.scrollDelay)}else{g._timeoutFar=setInterval(function(){var k=g._header.scrollTop();g._header.scrollTop(k+g.scrollStep);g._updatePositions()},g.scrollDelay)}return false});g.addHandler(f,"mouseup.ribbon"+b,function(){clearInterval(g._timeoutFar)})},_removeHandlers:function(f,e){var c=this,g=c.element.id;if(!f){f=c.selectionMode}if(!e){e=c.mode}c.removeHandler(c._items,"mouseenter.ribbon"+g);if(f==="click"){c.removeHandler(c._items,"click.ribbon"+g);c.removeHandler(c._items,"mouseleave.ribbon"+g);c.removeHandler(c._items,"mousedown.ribbon"+g);c.removeHandler(c.host,"mouseup.ribbon"+g);c.removeHandler(c._header,"mouseleave.ribbon"+g)}else{if(f==="hover"){if(e==="popup"){c.removeHandler(c.host,"mouseleave.ribbon"+g)}}}var b=a(c._scrollButtons[0]);c.removeHandler(b,"mousedown.ribbon"+g);c.removeHandler(b,"mouseup.ribbon"+g);var d=a(c._scrollButtons[1]);c.removeHandler(d,"mousedown.ribbon"+g);c.removeHandler(d,"mouseup.ribbon"+g)},_checkStructure:function(c){var d=this;var f=c.length;if(f!==2){throw new Error("jqxRibbon: Invalid HTML structure. You need to add a ul and a div to the widget container.")}var b=d._header.children().length;var e=d._content.children().length;if(b!==e){throw new Error("jqxRibbon: Invalid HTML structure. For each list item you must have a corresponding div element.")}},_addClasses:function(){var d=this;d._contentSections.removeClass();d._content.removeClass();d._header.removeClass(d.toThemeProperty("jqx-rc-all jqx-widget-header jqx-disableselect jqx-rc-t jqx-rc-b jqx-rc-l jqx-rc-r jqx-rc-all jqx-ribbon-header-"+d._orientation+"-popup jqx-ribbon-header-bottom jqx-ribbon-header-auto jqx-ribbon-header-right jqx-ribbon-header-rtl"));d._items.removeClass(d.toThemeProperty("jqx-fill-state-disabled jqx-ribbon-item-rtl jqx-widget-content jqx-ribbon-item-selected jqx-rc-t jqx-rc-b jqx-rc-l jqx-rc-r jqx-ribbon-item-docking-layout jqx-ribbon-item jqx-ribbon-item-"+d.position));d.host.removeClass();d.host.addClass(d.toThemeProperty("jqx-widget")+" "+d.toThemeProperty("jqx-ribbon"));d._header.addClass(d.toThemeProperty("jqx-widget-header")+" "+d.toThemeProperty("jqx-disableselect")+" "+d.toThemeProperty("jqx-ribbon-header")+" "+d.toThemeProperty("jqx-ribbon-header-"+d._orientation));d._items.addClass(d.toThemeProperty("jqx-ribbon-item")+" "+d.toThemeProperty("jqx-ribbon-item-"+d.position));d._content.addClass(d.toThemeProperty("jqx-widget-content")+" "+d.toThemeProperty("jqx-ribbon-content")+" "+d.toThemeProperty("jqx-ribbon-content-"+d._orientation));d._contentSections.addClass(d.toThemeProperty("jqx-widget-content")+" "+d.toThemeProperty("jqx-ribbon-content-section")+" "+d.toThemeProperty("jqx-ribbon-content-section-"+d.position));if(d._roundedCorners){switch(d.position){case"top":d._header.add(d._items).addClass(d.toThemeProperty("jqx-rc-t"));d._contentSections.addClass(d.toThemeProperty("jqx-rc-b"));break;case"bottom":d._header.add(d._items).addClass(d.toThemeProperty("jqx-rc-b"));d._contentSections.addClass(d.toThemeProperty("jqx-rc-t"));break;case"left":d._header.add(d._items).addClass(d.toThemeProperty("jqx-rc-l"));d._contentSections.addClass(d.toThemeProperty("jqx-rc-r"));break;case"right":d._header.add(d._items).addClass(d.toThemeProperty("jqx-rc-r"));d._contentSections.addClass(d.toThemeProperty("jqx-rc-l"));break}}else{switch(d.position){case"top":d._items.addClass(d.toThemeProperty("jqx-rc-t"));break;case"bottom":d._items.addClass(d.toThemeProperty("jqx-rc-b"));break;case"left":d._items.addClass(d.toThemeProperty("jqx-rc-l"));break;case"right":d._items.addClass(d.toThemeProperty("jqx-rc-r"));break}}var c,b;if(d.mode==="popup"){if(d.selectedIndex===-1){if(d._roundedCorners){d.host.addClass(d.toThemeProperty("jqx-rc-all"));d._header.addClass(d.toThemeProperty("jqx-rc-all"))}}d.host.addClass(d.toThemeProperty("jqx-ribbon-popup"));d._header.addClass(d.toThemeProperty("jqx-ribbon-header-"+d._orientation+"-popup"));d._content.addClass(d.toThemeProperty("jqx-ribbon-content-popup"));d._contentSections.addClass(d.toThemeProperty("jqx-ribbon-content-section-popup"));d._contentSections.addClass(d.toThemeProperty("jqx-ribbon-content-popup-"+d.position));if(d._orientation==="horizontal"){d._contentSections.addClass(d.toThemeProperty("jqx-ribbon-content-section-horizontal-popup"))}else{d._contentSections.addClass(d.toThemeProperty("jqx-ribbon-content-section-vertical-popup"))}d._positionPopup()}else{if(d._orientation==="horizontal"){if(d.height!=="auto"){b=d._header.outerHeight();if(d.position==="top"){d._content.css("padding-top",b)}else{d._header.addClass(d.toThemeProperty("jqx-ribbon-header-bottom"));d._content.css("padding-bottom",b)}}else{d._header.addClass(d.toThemeProperty("jqx-ribbon-header-auto"))}}else{if(d._orientation==="vertical"){if(d.width!=="auto"){c=d._header.outerWidth();if(d.position==="left"){d._content.css("padding-left",c)}else{d._header.addClass(d.toThemeProperty("jqx-ribbon-header-right"));d._content.css("padding-right",c)}}else{d.host.addClass(d.toThemeProperty("jqx-ribbon-auto"));d._header.addClass(d.toThemeProperty("jqx-ribbon-header-auto"));d._content.addClass(d.toThemeProperty("jqx-ribbon-content-auto-width"))}}}}if(d._browser.version==="7.0"&&d._browser.browser==="msie"){if(d._orientation==="horizontal"){d._header.css("width",(d.host.width()-parseInt(d._header.css("padding-left"),10)-parseInt(d._header.css("padding-right"),10)-parseInt(d._header.css("border-left-width"),10)-parseInt(d._header.css("border-right-width"),10)));d._items.height(d._items.height()-parseInt(d._items.css("padding-top"),10)-parseInt(d._items.css("padding-bottom"),10)-parseInt(d._items.css("border-top-width"),10)-parseInt(d._items.css("border-bottom-width"),10));d._contentSections.width(d._contentSections.width()-parseInt(d._contentSections.css("border-left-width"),10)-parseInt(d._contentSections.css("border-right-width"),10)-parseInt(d._contentSections.css("padding-left"),10)-parseInt(d._contentSections.css("padding-right"),10));if(d.mode==="default"){if(d.height!=="auto"){if(d.position==="top"){d._contentSections.css("padding-top",b)}else{d._contentSections.css("padding-bottom",b)}d._content.css("height",d.host.height()+2);d._contentSections.css("height",d._content.height()-parseInt(d._contentSections.css("border-bottom-width"),10)-parseInt(d._contentSections.css("border-top-width"),10)-1)}}else{}}else{var e;if(d.position==="left"){d._content.addClass(d.toThemeProperty("jqx-ribbon-content-left"));e=parseInt(d._contentSections.css("border-left-width"),10)+parseInt(d._contentSections.css("border-right-width"),10)+1}else{d._content.addClass(d.toThemeProperty("jqx-ribbon-content-right"));e=0}d._header.css("height",(d.host.height()-parseInt(d._header.css("padding-top"),10)-parseInt(d._header.css("padding-bottom"),10)-parseInt(d._header.css("border-top-width"),10)-parseInt(d._header.css("border-bottom-width"),10)));d._items.width(d._items.width()-parseInt(d._items.css("padding-left"),10)-parseInt(d._items.css("padding-right"),10)-parseInt(d._items.css("border-left-width"),10)-parseInt(d._items.css("border-right-width"),10));d._contentSections.height(d._contentSections.height()-parseInt(d._contentSections.css("border-top-width"),10)-parseInt(d._contentSections.css("border-bottom-width"),10)-parseInt(d._contentSections.css("padding-top"),10)-parseInt(d._contentSections.css("padding-bottom"),10));if(d.mode==="default"){if(d.width!=="auto"){if(d.position==="left"){d._contentSections.css("padding-left",c)}else{d._contentSections.css("padding-right",c)}d._contentSections.width(d._content.width()-d._header.width()-e)}}else{}}}if(d.rtl===true){d._header.addClass(d.toThemeProperty("jqx-ribbon-header-rtl"));d._items.addClass(d.toThemeProperty("jqx-ribbon-item-rtl"))}},_positionPopup:function(){var e=this;var c=(e._browser.version==="7.0"&&e._browser.browser==="msie");switch(e.position){case"top":e._content.css("top",e._header.outerHeight());break;case"bottom":if(!c){e._content.css("bottom",e._header.outerHeight())}else{e._content.css("bottom",e._header.height())}break;case"left":e._content.css("left",e._header.outerWidth());break;case"right":e._content.css("right",e._header.outerWidth());if(c){var b=e._content.children();for(var d=0;d
    ';var b=a(e);var f=a(e);var c=(d._orientation==="horizontal")?["left","right"]:["up","down"];b.find(".jqx-ribbon-scrollbutton-inner").addClass(d.toThemeProperty("jqx-icon-arrow-"+c[0]));f.find(".jqx-ribbon-scrollbutton-inner").addClass(d.toThemeProperty("jqx-icon-arrow-"+c[1]));b.addClass(d.toThemeProperty("jqx-ribbon-scrollbutton-lt"));f.addClass(d.toThemeProperty("jqx-ribbon-scrollbutton-rb"));d._scrollButtons=b.add(f);d.host.append(d._scrollButtons);if(d._orientation==="horizontal"){d._scrollButtons.height(d._header.height())}else{d._scrollButtons.width(d._header.width())}d._scrollButtonRc(b,f);if(!d.roundedCorners){return}switch(d.position){case"top":case"bottom":b.css("margin-left","-1px");f.css("margin-right","-1px");break;case"right":case"left":b.css("margin-top","-1px");f.css("margin-bottom","-1px");break}},_scrollButtonRc:function(b,d){var c=this;if(!c.roundedCorners){return}switch(c.position){case"top":if(c.scrollPosition!=="far"){b.addClass(c.toThemeProperty("jqx-rc-tl"))}if(c.scrollPosition!=="near"){d.addClass(c.toThemeProperty("jqx-rc-tr"))}break;case"bottom":if(c.scrollPosition!=="far"){b.addClass(c.toThemeProperty("jqx-rc-bl"))}if(c.scrollPosition!=="near"){d.addClass(c.toThemeProperty("jqx-rc-br"))}break;case"left":if(c.scrollPosition!=="far"){b.addClass(c.toThemeProperty("jqx-rc-tl"))}if(c.scrollPosition!=="near"){d.addClass(c.toThemeProperty("jqx-rc-bl"))}break;case"right":if(c.scrollPosition!=="far"){b.addClass(c.toThemeProperty("jqx-rc-tr"))}if(c.scrollPosition!=="near"){d.addClass(c.toThemeProperty("jqx-rc-br"))}break}},_updateItems:function(){var c=this;c._items=c._header.children();c._items.attr("unselectable","on");c._contentSections=c._content.children();for(var b=0;bc){m=c-b}}e.css(j,m)};var i;switch(e[0]._layout){case"near":i=h-k;d(i);break;case"far":i=h-k-(b-l);d(i);break;case"center":i=h-k-(b-l)/2;d(i);break;default:e.css(j,"")}},_checkScrollButtons:function(d){var f=this;var g=0;a.each(f._items,function(){var i=a(this);if(i.css("display")!=="none"){g+=(f._orientation==="horizontal")?i.outerWidth(true):i.outerHeight(true)}});var h=f._orientation==="horizontal"?["margin-left","margin-right"]:["margin-top","margin-bottom"];var b=(f._orientation==="horizontal")?f._header.width():f._header.height();if(!f._itemMargins){f._itemMargins=[];f._itemMargins.push(a(f._items[0]).css(h[0]));f._itemMargins.push(a(f._items[f._items.length-1]).css(h[1]))}if(g>b){f._scrollButtons.css("display","block");var e=f.rtl?f._itemMargins[0]:17;var c=f.rtl?f._itemMargins[0]:17;switch(f.scrollPosition){case"near":c=0;e=34;break;case"far":c=34;e=17;break}a(f._items[0]).css(h[0],e);a(f._items[f._items.length-1]).css(h[1],c)}else{a(f._items[0]).css(h[0],f._itemMargins[0]);a(f._items[f._items.length-1]).css(h[1],f._itemMargins[1]);f._scrollButtons.css("display","none")}if(d===true){if(f._orientation==="horizontal"){f._scrollButtons.height(f._header.height())}else{f._scrollButtons.width(f._header.width())}}},_positionSelectionToken:function(h){var i=this;if(h!==-1){var e=a(i._items[h]);var j,b,d,k,g;if(i._orientation==="horizontal"){var f,m;if(i.rtl===true){if(i._browserWidthRtlFlag===1){f=i._header[0].scrollWidth-i._header[0].clientWidth}else{f=0}m=i._browserScrollRtlFlag}else{f=0;m=1}d=e[0].offsetLeft+f-i._header[0].scrollLeft*m-i._selectionTokenOffsetX+2;g=i._header.outerHeight()-1;var c=e.width()+parseInt(e.css("padding-left"),10)+parseInt(e.css("padding-right"),10);if(i.position==="top"){j=g-i._selectionTokenOffsetY;b=""}else{j="";b=g-i._selectionTokenOffsetY}i._selectionToken.css({top:j,bottom:b,left:d,width:c})}else{j=e[0].offsetTop-i._header[0].scrollTop-i._selectionTokenOffsetX+2;g=i._header.outerWidth()-1;var l=e.height()+parseInt(e.css("padding-top"),10)+parseInt(e.css("padding-bottom"),10);if(i.position==="left"){d=g-i._selectionTokenOffsetY;k=""}else{d="";k=g-i._selectionTokenOffsetY}i._selectionToken.css({top:j,left:d,right:k,height:l})}}},_updatePositions:function(b){var c=this;if(isNaN(b)){b=c.selectedIndex}if(b!==-1){c._positionSelectionToken(b);if(c.mode==="popup"&&c._contentSections[b]._layout!=="default"){c._positionContent(b)}if(c.mode==="popup"&&(c.position==="left"||c.position==="right")){c._content.width("auto");var d=c._contentSections[b].style.width&&c._contentSections[b].style.width.toString().indexOf("%")>=0;if(d){c._content[0].style.width=c._contentSections[b].style.width;c._content.width(a(c._contentSections[b]).width()-c._header.width())}else{c._content.width(a(c._contentSections[b]).width())}}}},_animationComplete:function(c,e){var d=this,b=e!==-1?e:null;d._content.css("pointer-events","auto");if(d._supressSelectionEvents!==true){d._raiseEvent("0",{selectedIndex:c});d._raiseEvent("2",{unselectedIndex:b,selectedIndex:c})}else{if(c!==d._oldReorderIndex){d._raiseEvent("4",{newIndex:c,oldIndex:d._oldReorderIndex})}d._supressSelectionEvents=false}d.selectedIndex=c;if(d.initContent&&d._items[c]._isInitialized===false){d.initContent(c);d._items[c]._isInitialized=true}d._allowSelection=true;d._selecting=null},_clearSelectionComplete:function(d,b){var c=this;c._selecting=null;if(d===undefined){d=c.selectedIndex}if(d!==-1){c._content.css("pointer-events","none");if(c._supressSelectionEvents!==true){c._raiseEvent("1",{unselectedIndex:d})}}if(b!==true){c.selectedIndex=-1}},_slide:function(f,e,m,s){var q=this;if(!q.activeAnimations){q.activeAnimations=[]}if(q.activeAnimations.length>0){for(var k=0;k0){u.data(h+v[o],u[0].style[v[o]])}}},restore:function(u,w){var v,o;for(o=0;o
    ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),i={width:o.width(),height:o.height()},w=document.activeElement;try{w.id}catch(v){w=document.body}o.wrap(x);if(o[0]===w||a.contains(o[0],w)){a(w).focus()}x=o.parent();if(o.css("position")==="static"){x.css({position:"relative"});o.css({position:"relative"})}else{a.extend(u,{position:o.css("position"),zIndex:o.css("z-index")});a.each(["top","left","bottom","right"],function(y,z){u[z]=o.css(z);if(isNaN(parseInt(u[z],10))){u[z]="auto"}});o.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}o.css(i);return x.css(u).show()},removeWrapper:function(i){var o=document.activeElement;if(i.parent().is(".ui-effects-wrapper")){i.parent().replaceWith(i);if(i[0]===o||a.contains(i[0],o)){a(o).focus()}}return i}};var p=["position","top","bottom","left","right","width","height"],l=e.mode,t=l==="show",r=e.direction||"left",g=(r==="up"||r==="down")?"top":"left",c=(r==="up"||r==="left"),b,j={};d.save(f,p);f.show();b=e.distance||f[g==="top"?"outerHeight":"outerWidth"](true);d.createWrapper(f).css({overflow:"hidden"});if(t){f.css(g,c?(isNaN(b)?"-"+b:-b):b)}j[g]=(t?(c?"+=":"-="):(c?"-=":"+="))+b;var n=function(){f.clearQueue();f.stop(true,true)};q.activeAnimations.push(f);f.animate(j,{duration:e.duration,easing:e.easing,complete:function(){q.activeAnimations.pop(f);if(l==="show"){q._animationComplete(m,s)}else{if(l==="hide"){f.hide();q._clearSelectionComplete(m)}}d.restore(f,p);d.removeWrapper(f)}});return n}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxNavBar","",{});a.extend(a.jqx._jqxNavBar.prototype,{defineInstance:function(){var b={height:"auto",minimizedHeight:30,popupAnimationDelay:250,minimizeButtonPosition:"left",width:"100%",selectedItem:0,selection:true,disabled:false,rtl:false,minimized:false,columns:null,minimizedTitle:"",orientation:"horizontal",events:["change"]};a.extend(true,this,b)},createInstance:function(b){this.render()},render:function(){var b=this;if(b.ul&&b.ul.parent()[0]!==b.element){b.ul.detach();b.host.children().remove();b.host.append(b.ul);if(b.popup){b.popup.remove()}b.host.height(null);b.host.removeClass(b.toThemeProperty("jqx-widget-header"));b.host.removeClass(b.toThemeProperty("jqx-navbar-minimized"))}b.ul=b.host.children();b._items=b.ul.children();a.each(b._items,function(){a(this).removeClass()});if(this.width!==null&&(this.width.toString().indexOf("%")>=0||this.width.toString().indexOf("px")>=0)){this.element.style.width=this.width}else{this.element.style.width=this.width+"px"}b._layoutItems();b._addClasses();b._addHandlers();b._handleMinimize();a.jqx.utilities.resize(this.host,function(){b._resizePopup()})},_layoutItems:function(){var k=this;var t=1;var s=0;var o=this.height===null||this.height==="auto";if(k.orientation==="horizontal"){if(k._items.length>5){var c=50+"%";k._items.css("width",c);var q=k.height;t=Math.ceil(k._items.length/2);if(!o){var p;var h=false;if(q.toString().indexOf("%")>=0){p=parseInt(q)/t;p+="%";h=true}else{p=parseInt(q)/t}s=2;if(h){k._items.css("height",p);k._items.css("line-height",k._items.height()+"px")}else{k._items.height(p);k._items.css("line-height",p+"px")}}}else{var c=k.host.width/2;var g=k._items.length;var c=100/g+"%";k._items.css("width",c);if(!o){if(k.height.toString().indexOf("%")>=0){k._items.css("height",p);k._items.css("line-height",k.height)}else{k._items.height(k.height);k._items.css("line-height",parseInt(k.height)+"px")}}s=g}if(k.columns){var q=k.height;var l=0;for(var e=0;e=k.columns.length){l=0;if(k.columns.length!==k._items.length){t++}}}var h=false;var p;if(q.toString().indexOf("%")>=0){p=parseInt(q)/t;p+="%";h=true}else{p=parseInt(q)/t}if(!o){if(h){k._items.css("height",p);k._items.css("line-height",k._items.height()+"px")}else{k._items.height(p);k._items.css("line-height",p+"px")}}s=k.columns.length}}else{var q=k.height;var l=0;for(var e=0;e=0){p=parseInt(q)/t;p+="%";h=true}else{p=parseInt(q)/t}if(h){k._items.css("height",p);k._items.css("line-height",k._items.height()+"px")}else{k._items.height(p);k._items.css("line-height",p+"px")}}s=1}if(k.selection){var b=0;var f=k._items.length/s;var n=false;if(f1&&e>0){a(k._items[b]).css("border-top-width","1px");a(k._items[b]).css("border-top-style","solid")}if(n&&e===t-2&&d===s-1){a(k._items[b]).css("border-bottom-width","1px");a(k._items[b]).css("border-bottom-style","solid")}b++}}}if(a.jqx.browser.msie&&a.jqx.browser.version<8){k._items.css("padding-left","0px");k._items.css("padding-right","0px");a.each(k._items,function(){a(this).css("border-left-width","0px");a(this).css("border-right-width","0px");a(this).css("position","relative");a(this).css("margin-left","-1px")});k.host.css("border","none")}},_handlePopupHeight:function(){var b=this;if(!b.minimized){return}var d;var c=false;if(b.height.toString().indexOf("%")>=0){b.host.css("height",b.height);d=b.host.height()-b.minimizedHeight-1;c=true}if(c){b.popup.height(d);b.ul.height(d);b.host.height(b.minimizedHeight);b._layoutItems()}},_handleMinimize:function(){var d=this;if(d.minimized){var f=d.host;f.height(d.minimizedHeight);f.css("box-sizing","border-box");f.addClass(d.toThemeProperty("jqx-widget-header"));f.addClass(d.toThemeProperty("jqx-navbar-minimized"));var c=a('
    ');f.append(c);c.css("float",d.minimizeButtonPosition);var e=a('
    ');e.append(d.minimizedTitle);e.css("float",d.minimizeButtonPosition==="left"?"right":"left");if(d.minimizedHeight!=="auto"){if(d.minimizedHeight.toString().indexOf("%")>=0){e.css("line-height",d.minimizedHeight)}else{e.css("line-height",parseInt(d.minimizedHeight)+"px")}}f.append(e);c.addClass(d.toThemeProperty("jqx-menu-minimized-button"));f.removeClass(d.toThemeProperty("jqx-widget-content"));d.ul.detach();var b=a("
    ");b.addClass(d.toThemeProperty("jqx-widget jqx-widget-content jqx-popup jqx-navbar jqx-navbar-popup"));b.append(d.ul);d.popup=b;a(document.body).append(b);d.opened=false;c.click(function(){if(!d.opened){d.open()}else{d.close()}});d.button=c}},close:function(){var b=this;b.popup.fadeOut(b.popupAnimationDelay);b.opened=false},open:function(){var b=this;b.popup.fadeIn(b.popupAnimationDelay);b.popup.css("top",parseInt(b.host.coord().top)+b.host.outerHeight()-1);b.popup.width(b.host.width());var c=b.host.coord().left;b.popup.css("left",c);if(c.toString().indexOf(".5")>=0){b.popup.width(b.host.width()-0.5)}b._handlePopupHeight();b.opened=true},_resizePopup:function(){var b=this;if(b.minimized&&b.popup){b.popup.width(b.host.width());var c=b.host.coord().left;b.popup.css("left",c);if(c.toString().indexOf(".5")>=0){b.popup.width(b.host.width()-0.5)}b.popup.css("top",parseInt(b.host.coord().top)+b.host.outerHeight()-1);b._handlePopupHeight()}},selectAt:function(c){var d=this;if(!d.selection){return}a(d._items[d.selectedItem]).removeClass(d.toThemeProperty("jqx-fill-state-pressed"));a(d._items[c]).addClass(d.toThemeProperty("jqx-fill-state-pressed"));var b=d.selectedItem;d.selectedItem=c;d._raiseEvent("0",{selectedItem:c,oldSelectedItem:b})},getSelectedIndex:function(){return this.selectedItem},destroy:function(){var b=this;b._removeHandlers();b.host.remove()},propertyChangedHandler:function(b,c,e,d){b.render()},_raiseEvent:function(h,e){var g=this;var c=g.events[h];var f=new a.Event(c);f.owner=g;f.args=e;try{var b=g.host.trigger(f)}catch(d){}return b},_removeHandlers:function(){var b=this;b.removeHandler(b._items,"click.navbar"+b.element.id);b.removeHandler(b._items,"mouseenter.navbar"+b.element.id);b.removeHandler(b._items,"mouseleave.navbar"+b.element.id)},_addClasses:function(){var b=this;b.host.addClass(b.toThemeProperty("jqx-navbar"));if(b.disabled){b.host.addClass(b.toThemeProperty("jqx-fill-state-disabled"))}b._items.addClass(b.toThemeProperty("jqx-navbar-block"));if(b.selection){b.host.addClass(b.toThemeProperty("jqx-widget"));b.host.addClass(b.toThemeProperty("jqx-widget-content"));b.host.addClass(b.toThemeProperty("jqx-fill-state-normal"));b._items.addClass(b.toThemeProperty("jqx-fill-state-normal"));b._items.addClass(b.toThemeProperty("jqx-button"));if(b.selectedItem!==-1){a(b._items[b.selectedItem]).addClass(b.toThemeProperty("jqx-fill-state-pressed"))}}else{this.host.css("border","none")}if(b.rtl){b._items.addClass(b.toThemeProperty("jqx-navbar-block-rtl"))}},_addHandlers:function(){var b=this;b.addHandler(b._items,"click.navbar"+b.element.id,function(d){if(!b.disabled&&b.selection){var c=a(b._items).index(this);b.selectAt(c)}});b.addHandler(b._items,"mouseenter.navbar"+b.element.id,function(c){if(!b.disabled&&b.selection){a(c.target).addClass(b.toThemeProperty("jqx-fill-state-hover"))}});b.addHandler(b._items,"mouseleave.navbar"+b.element.id,function(c){if(!b.disabled&&b.selection){a(c.target).removeClass(b.toThemeProperty("jqx-fill-state-hover"))}})}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxFileUpload","",{});a.extend(a.jqx._jqxFileUpload.prototype,{defineInstance:function(){var b={width:null,height:"auto",uploadUrl:"",fileInputName:"",autoUpload:false,multipleFilesUpload:true,accept:null,browseTemplate:"",uploadTemplate:"",cancelTemplate:"",localization:null,renderFiles:null,disabled:false,rtl:false,events:["select","remove","uploadStart","uploadEnd"]};a.extend(true,this,b)},createInstance:function(){var b=this;if(b.host.jqxButton===undefined){throw new Error("jqxFileUpload: Missing reference to jqxbuttons.js")}if(a.jqx.browser.msie){if(a.jqx.browser.version<11){b._ieOldWebkit=true;if(a.jqx.browser.version<8){b._ie7=true}}}else{if(a.jqx.browser.webkit){b._ieOldWebkit=true}}b._fluidWidth=typeof b.width==="string"&&b.width.charAt(b.width.length-1)==="%";b._fluidHeight=typeof b.height==="string"&&b.height.charAt(b.height.length-1)==="%";b._render(true)},_render:function(b){var c=this;c._setSize();c._addClasses();if(b===true){c._appendElements()}else{c._removeHandlers()}c._addHandlers();if(c._ie7){c._borderAndPadding("width",c.host);if(c.height!=="auto"){c._borderAndPadding("height",c.host)}}a.jqx.utilities.resize(c.host,null,true);a.jqx.utilities.resize(c.host,function(){if(c._fluidWidth){if(c._ie7){c.host.css("width",c.width);c._borderAndPadding("width",c.host)}for(var f=0;f0){for(var b=c._fileRows.length-1;b>=0;b--){c._uploadQueue.push(c._fileRows[b])}c._uploadFile(c._fileRows[0])}},cancelFile:function(b){var c=this;c._removeSingleFileRow(c._fileRows[b])},cancelAll:function(){var c=this;if(c._fileRows.length>0){for(var b=0;b8){e._uploadButton[o](e.toThemeProperty("jqx-file-upload-button-upload-rtl-ie"))}for(var i=0;i'+c+"");g.host.append(g._browseButton);g._browseButton.jqxButton({theme:g.theme,width:b,template:g.browseTemplate,disabled:g.disabled});g._browseButton.after('
    ');g._bottomButtonsContainer=a('
    ');g.host.append(g._bottomButtonsContainer);g._uploadButton=a('");g._bottomButtonsContainer.append(g._uploadButton);g._uploadButton.jqxButton({theme:g.theme,width:e,template:g.uploadTemplate,disabled:g.disabled});g._cancelButton=a('");g._bottomButtonsContainer.append(g._cancelButton);g._cancelButton.jqxButton({theme:g.theme,width:f,template:g.cancelTemplate,disabled:g.disabled});g._bottomButtonsContainer.after('
    ');if(g.rtl){g._browseButton.addClass(g.toThemeProperty("jqx-file-upload-button-browse-rtl"));g._cancelButton.addClass(g.toThemeProperty("jqx-file-upload-button-cancel-rtl"));g._uploadButton.addClass(g.toThemeProperty("jqx-file-upload-button-upload-rtl"));if(a.jqx.browser.msie&&a.jqx.browser.version>8){g._uploadButton.addClass(g.toThemeProperty("jqx-file-upload-button-upload-rtl-ie"))}}g._uploadIframe=a('');g.host.append(g._uploadIframe);g._iframeInitialized=false;g._uploadQueue=[];g._forms=[];g._addFormAndFileInput();g._fileRows=[]},_addFormAndFileInput:function(){var f=this;var i=f.element.id;var e=a('
    ');f.host.append(e);var d=a('');if(f.accept){d.attr("accept",f.accept)}e.append(d);if(f._ieOldWebkit){var c=f._browseButton.position();var g=f._browseButton.outerWidth();var h=f._browseButton.outerHeight();var b=f.rtl&&f._ie7?12:0;e.css({left:c.left-b,top:c.top,width:g,height:h});e.addClass(f.toThemeProperty("jqx-file-upload-form-ie9"));d.addClass(f.toThemeProperty("jqx-file-upload-file-input-ie9"));f.addHandler(e,"mouseenter.jqxFileUpload"+i,function(){f._browseButton.addClass(f.toThemeProperty("jqx-fill-state-hover"))});f.addHandler(e,"mouseleave.jqxFileUpload"+i,function(){f._browseButton.removeClass(f.toThemeProperty("jqx-fill-state-hover"))});f.addHandler(e,"mousedown.jqxFileUpload"+i,function(){f._browseButton.addClass(f.toThemeProperty("jqx-fill-state-pressed"))});f.addHandler(a(document),"mouseup.jqxFileUpload"+i,function(){if(f._browseButton.hasClass("jqx-fill-state-pressed")){f._browseButton.removeClass(f.toThemeProperty("jqx-fill-state-pressed"))}})}f.addHandler(d,"change.jqxFileUpload"+i,function(){var l=this.value,j;if(!a.jqx.browser.mozilla){if(l.indexOf("fakepath")!==-1){l=l.slice(12)}else{l=l.slice(l.lastIndexOf("\\")+1)}}if(a.jqx.browser.msie&&a.jqx.browser.version<10){j="IE9 and earlier do not support getting the file size."}else{j=this.files[0].size}var k=f._addFileRow(l,e,d,j);if(f._fileRows.length===1){f._browseButton.css("margin-bottom","10px");f._hideButtons(false)}if(f._ieOldWebkit){f.removeHandler(e,"mouseenter.jqxFileUpload"+i);f.removeHandler(e,"mouseleave.jqxFileUpload"+i);f.removeHandler(e,"mousedown.jqxFileUpload"+i)}f._addFormAndFileInput();f.removeHandler(d,"change.jqxFileUpload"+i);if(f.autoUpload===true){f._uploadFile(k)}});if(f._ieOldWebkit===true){f.addHandler(d,"click.jqxFileUpload"+i,function(j){if(f.multipleFilesUpload===false&&f._fileRows.length>0){j.preventDefault()}})}f._forms.push({form:e,fileInput:d})},_addFileRow:function(f,b,e,d){var h=this,l,g,m,j,n,i="Cancel",k="Upload File";l=a('
    ');if(h._fileRows.length===0){h._browseButton.after(l)}else{h._fileRows[h._fileRows.length-1].fileRow.after(l)}if(!h.renderFiles){g=a('
    '+f+"
    ");l.append(g);if(h.localization){if(h.localization.cancelFileTooltip){i=h.localization.cancelFileTooltip}if(h.localization.uploadFileTooltip){k=h.localization.uploadFileTooltip}}j=a('
    ');l.append(j);n=a('
    ');l.append(n);m=a('
    ');l.append(m);if(h.rtl){g.addClass(h.toThemeProperty("jqx-file-upload-file-name-rtl"));j.addClass(h.toThemeProperty("jqx-file-upload-file-cancel-rtl"));n.addClass(h.toThemeProperty("jqx-file-upload-file-upload-rtl"));m.addClass(h.toThemeProperty("jqx-file-upload-loading-element-rtl"))}h._setMaxWidth({fileNameContainer:g,uploadFile:n,cancelFile:j})}else{l.html(h.renderFiles(f))}if(h._ie7){h._borderAndPadding("width",l);h._borderAndPadding("height",l);if(!h.renderFiles){h._borderAndPadding("height",g);h._borderAndPadding("height",n);h._borderAndPadding("height",j)}}var c={fileRow:l,fileNameContainer:g,fileName:f,uploadFile:n,cancelFile:j,loadingElement:m,form:b,fileInput:e,index:h._fileRows.length};h._addFileHandlers(c);h._fileRows.push(c);h._raiseEvent("0",{file:f,size:d});return c},_setMaxWidth:function(c){var e=this;var f=c.cancelFile.outerWidth(true)+c.uploadFile.outerWidth(true);var b=e._ie7?6:0;var d=e.host.width()-parseInt(e.host.css("padding-left"),10)-parseInt(e.host.css("padding-right"),10)-f-b-7;c.fileNameContainer.css("max-width",d)},_addFileHandlers:function(b){var c=this;if(!c.renderFiles){var d=c.element.id;c.addHandler(b.uploadFile,"mouseenter.jqxFileUpload"+d,function(){if(c.disabled===false){b.uploadFile.addClass(c.toThemeProperty("jqx-fill-state-hover"))}});c.addHandler(b.uploadFile,"mouseleave.jqxFileUpload"+d,function(){if(c.disabled===false){b.uploadFile.removeClass(c.toThemeProperty("jqx-fill-state-hover"))}});c.addHandler(b.uploadFile,"click.jqxFileUpload"+d,function(){if(c.disabled===false){c._uploadFile(b)}});c.addHandler(b.cancelFile,"mouseenter.jqxFileUpload"+d,function(){if(c.disabled===false){b.cancelFile.addClass(c.toThemeProperty("jqx-fill-state-hover"))}});c.addHandler(b.cancelFile,"mouseleave.jqxFileUpload"+d,function(){if(c.disabled===false){b.cancelFile.removeClass(c.toThemeProperty("jqx-fill-state-hover"))}});c.addHandler(b.cancelFile,"click.jqxFileUpload"+d,function(){if(c.disabled===false){c._removeSingleFileRow(b)}})}},_removeSingleFileRow:function(c){var d=this;d._removeFileRow(c);d._fileRows.splice(c.index,1);if(d._fileRows.length===0){setTimeout(function(){d._browseButton.css("margin-bottom",0)},400);d._hideButtons(true)}else{for(var b=0;b0){b._uploadFile(b._uploadQueue[b._uploadQueue.length-1])}}})},_removeHandlers:function(b){var d=this;var e=d.element.id;d.removeHandler(d._browseButton,"click.jqxFileUpload"+e);d.removeHandler(d._uploadButton,"click.jqxFileUpload"+e);d.removeHandler(d._cancelButton,"click.jqxFileUpload"+e);d.removeHandler(d._uploadIframe,"load.jqxFileUpload"+e);if(b===true){var c=d._forms[d._forms.length-1];d.removeHandler(c.fileInput,"change.jqxFileUpload"+e);if(d._ieOldWebkit){d.removeHandler(c.form,"mouseenter.jqxFileUpload"+e);d.removeHandler(c.form,"mouseleave.jqxFileUpload"+e);d.removeHandler(c.form,"mousedown.jqxFileUpload"+e);d.removeHandler(a("body"),"mouseup.jqxFileUpload"+e)}}}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxLoader","",{});a.extend(a.jqx._jqxLoader.prototype,{defineInstance:function(){var b={width:200,height:150,text:"Loading...",html:null,textPosition:"bottom",imagePosition:"center",isModal:false,autoOpen:false,rtl:false,events:["create"]};a.extend(true,this,b)},createInstance:function(b){var c=this;c._render(true);c._raiseEvent("0")},render:function(){this._render()},open:function(d,c){var b=this;if(this.width!==null&&this.width.toString().indexOf("%")!==-1){b.host.css("width",this.width)}if(this.height!==null&&this.height.toString().indexOf("%")!==-1){b.host.css("height",this.height)}b.host.show();b.host.css("left",-b.host.width()/2);b.host.css("top",-b.host.height()/2);if(d&&c){b.host.css("left",d);b.host.css("top",c)}if(b.isModal){b._modal.show()}},close:function(){var b=this;b.host.hide();if(b.isModal){b._modal.hide()}},_checkBrowser:function(){var b=this;if(a.jqx.browser.browser==="msie"){if(a.jqx.browser.version==="7.0"){if(b.isModal===false){b.host.addClass(b.toThemeProperty("jqx-loader-ie-transparency"))}b.host.css("top",Math.max(0,((a(window).height()-a(b.host).outerHeight())/2)+a(window).scrollTop())+"px");b.host.css("left",Math.max(0,((a(window).width()-a(b.host).outerWidth())/2)+a(window).scrollLeft())+"px");a(window).resize(function(){b.host.css("top",Math.max(0,((a(window).height()-a(b.host).outerHeight())/2)+a(window).scrollTop())+"px");b.host.css("left",Math.max(0,((a(window).width()-a(b.host).outerWidth())/2)+a(window).scrollLeft())+"px")});this.host.css({"margin-top":"0","margin-left":"0"})}else{if(a.jqx.browser.version==="8.0"){if(b.isModal===false){b.host.addClass(b.toThemeProperty("jqx-loader-ie-transparency"))}}}}},_textPos:function(){var b=this;this._text=b.host.children("div:eq(1)");if(this._image){this._image.css("background-position-y",b.imagePosition)}if(b.textPosition==="top"){this._text.addClass(b.toThemeProperty("jqx-loader-text-top"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-bottom"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-left"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-right"))}else{if(b.textPosition==="bottom"){this._text.addClass(b.toThemeProperty("jqx-loader-text-bottom"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-top"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-left"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-right"))}else{if(b.textPosition==="left"){this._text.addClass(b.toThemeProperty("jqx-loader-text-left"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-right"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-top"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-bottom"))}else{if(b.textPosition==="right"){this._text.addClass(b.toThemeProperty("jqx-loader-text-right"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-left"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-top"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-bottom"))}}}}},refresh:function(b){if(b!==true){this._render(false)}},destroy:function(){var b=this;b._removeHandlers();b.host.remove()},propertyChangedHandler:function(b,c,e,d){if(d!==e){switch(c){case"width":b.host.width(d);break;case"height":b.host.height(d);break;case"text":b._text.text(d);break;case"html":b.host.html(d);break;case"textPosition":b._textPos(d);break;case"rtl":if(d===true){b._text.addClass(b.toThemeProperty("jqx-loader-rtl"))}else{b._text.removeClass(b.toThemeProperty("jqx-loader-rtl"))}break}}},_raiseEvent:function(h,e){var g=this;var c=g.events[h];var f=new a.Event(c);f.owner=g;f.args=e;try{var b=g.host.trigger(f)}catch(d){}return b},_render:function(b){var c=this;c.host.width(c.width);c.host.height(c.height);if(c.autoOpen===false){c.host.hide()}if(b){if(c.html===null){c.host.append('
    '+c.text+"
    ");c._image=c.host.children("div:eq(0)");c._text=c.host.children("div:eq(1)")}else{c.host.html(this.html)}if(c.isModal===true){var d=c.host.css("display");c._modal=a('
    ');a("body").append(c._modal)}}c._checkBrowser();c._textPos();c._addClass();c._removeHandlers();c._addHandlers()},_addHandlers:function(){var b=this;if(b.isModal===true){b.addHandler(a(document),"keyup.loader"+b.element.id,function(c){if(c.keyCode===27){b.close()}})}},_removeHandlers:function(){var b=this;b.removeHandler(a(document),"keyup.loader"+b.element.id)},_addClass:function(){var b=this;b.host.addClass(b.toThemeProperty("jqx-widget"));b.host.addClass(b.toThemeProperty("jqx-loader"));b.host.addClass(b.toThemeProperty("jqx-rc-all"));b.host.addClass(b.toThemeProperty("jqx-fill-state-normal"));if(b.rtl){b._text.addClass(b.toThemeProperty("jqx-loader-rtl"))}if(a.jqx.browser.msie){b.host.addClass(this.toThemeProperty("jqx-noshadow"))}b.host.addClass(this.toThemeProperty("jqx-rc-t"));b.host.addClass(this.toThemeProperty("jqx-rc-b"));b.host.addClass(this.toThemeProperty("jqx-popup"))}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxTextArea","",{});a.extend(a.jqx._jqxTextArea.prototype,{defineInstance:function(){var b=this;var c={disabled:false,filter:b._filter,sort:b._sort,highlight:b._highlight,dropDownWidth:null,renderer:b._renderer,opened:false,$popup:a("
      "),source:[],roundedCorners:true,searchMode:"default",placeHolder:"",width:null,height:null,rtl:false,displayMember:"",valueMember:"",popupZIndex:20000,items:8,item:'
    • ',minLength:1,maxLength:null,scrollBarSize:a.jqx.utilities.scrollBarSize,query:"",changeType:null,events:["change","select","open","close"]};a.extend(true,b,c)},createInstance:function(){var b=this;b.render();b.isInitialized=true},render:function(){var c=this,f=c.element.id;if(c.isInitialized===true){c.refresh();return}if(a.jqx.utilities.scrollBarSize!==15){c.scrollBarSize=a.jqx.utilities.scrollBarSize}var b=a('
      ');var e=a('
      ');c._id=c.element.id;if(c.element.tagName.toLowerCase()==="div"){c._baseHost=c.host;c.host.append(b);b.append('');b.append(e)}else{if(c.element.tagName.toLowerCase()==="textarea"){c._baseHost=a(c.element);c._baseHost.wrap("
      ");c._baseHost.wrap(b);c._baseHost.after(e);c.host=c._baseHost.parent().parent();c.host[0].style.cssText=c.element.style.cssText;c.element.style.cssText="";c._baseHost.addClass(c.toThemeProperty("jqx-text-area-element"))}}var d=c.host;c.wrapper=b;c.textarea=d.find("textarea");c._addClasses();if(!d.jqxButton){throw new Error("jqxTextArea: Missing reference to jqxbuttons.js.")}if(!d.jqxScrollBar){throw new Error("jqxTextArea: Missing reference to jqxscrollbar.js.")}if(null===c.width&&d[0].style&&null!==d[0].style.width){c.width=d[0].style.width}if(null===c.height&&d[0].style&&null!==d[0].style.height){c.height=d[0].style.height}c._setSize();c.vScrollBar=e;e.jqxScrollBar({vertical:true,width:15,height:"100%",max:c.height,theme:c.theme});if(a.trim(c.textarea.val())===""){c.textarea.val("")}c.textarea.attr("placeholder",c.placeHolder);if(c.maxLength!==null){c.textarea.attr("maxlength",c.maxLength)}if(a.jqx.browser.msie&&a.jqx.browser.version<10&&c.textarea.val()===""){c.textarea.val(c.placeHolder)}if((c.source instanceof Array&&c.source.length)||c.source._source||a.isFunction(c.source)){c._oldsource=c.source;c._updateSource();c._addPopupClasses();a.jqx.aria(c,"aria-haspopup",true)}c._arrange();c._addHandlers()},refresh:function(c){if(c!==true){var b=this;b._setSize();b._arrange();b._removeHandlers();b._addHandlers();if(b.opened===true){b.open()}}},_arrange:function(){var d=this;var e=d.textarea;var c=e[0].scrollHeight-e.height();var b=e[0].scrollHeight-e.height();if(b<0){b=0}d.vScrollBar.jqxScrollBar({max:b,value:e[0].scrollTop});if(c<5){e.width(d.host.width());d.vScrollBar.css("visibility","hidden")}else{e.width(d.host.width()-d.scrollBarSize);d.vScrollBar.css("visibility","visible");d._arrangeScrollbars(d.scrollBarSize)}},val:function(e){var d=this,c=d.textarea,f=c[0].value,b;if(a.jqx.browser.msie&&a.jqx.browser.version<10&&f===d.placeHolder){f=""}if(arguments.length===0||(typeof e==="object"&&a.isEmptyObject(e)===true)){if(d.displayMember!==""&&d.valueMember!==""&&d.selectedItem){if(f===""){return""}return d.selectedItem}return f}if(e&&e.label){if(d.selectedItem&&e.label===d.selectedItem.label&&e.value===d.selectedItem.value){return e.label}d.selectedItem={label:e.label,value:e.value};d.host.attr("data-value",e.value);d.host.attr("data-label",e.label);c[0].value=e.label;b=e.label}else{if(f===e){return e}c[0].value=e;d.host.attr("data-value",e);d.host.attr("data-label",e);b=e}d._arrange();d._raiseEvent("0");return b},focus:function(){this.textarea.focus()},selectAll:function(){var b=this.textarea;setTimeout(function(){if("selectionStart" in b[0]){b[0].focus();b[0].setSelectionRange(0,b[0].value.length)}else{var c=b[0].createTextRange();c.collapse(true);c.moveEnd("character",b[0].value.length);c.moveStart("character",0);c.select()}},10)},_arrangeScrollbars:function(b){var k=this;var d=k.host.width();var j=k.host.height();var i=k.vScrollBar;var h=i[0].style.visibility!=="hidden";var g=2;var f=2;i.width(b);i.height(parseInt(j,10)-g+"px");i.css({left:parseInt(d,10)-parseInt(b,10)-g-f+"px",top:"0px"});if(k.rtl){i.css({left:"0px"});var c=h?(parseInt(b,10)-2)+"px":0;if(k.textarea.children().css("direction")!=="rtl"){var e=false;if(a.jqx.browser.msie&&a.jqx.browser.version<8){e=true}if(!e){k.textarea.css("padding-left",c)}}}else{if(i.css("visibility")!=="hidden"){k.textarea.css("width",k.host.width()-k.vScrollBar.outerWidth())}}i.jqxScrollBar("refresh")},destroy:function(){var b=this;if(b.opened){b._removeItemHandlers()}b.$popup.remove();b.vScrollBar.jqxScrollBar("destroy");b._removeHandlers();b.host.remove()},propertyChangedHandler:function(b,c,e,d){if(b.isInitialized===undefined||b.isInitialized===false){return}if(d!==e){switch(c){case"theme":b.vScrollBar.jqxScrollBar({theme:b.theme});break;case"width":b.host.css("width",d);b._arrange();break;case"height":b.host.css("height",d);b._arrange();break;case"source":b._oldsource=d;b._updateSource();break;case"displayMember":case"valueMember":b.source=b._oldsource;b._updateSource();break;case"opened":if(d===true){b.open()}else{b.close()}break;case"maxLength":b.textarea.attr("maxlength",d);break;case"placeHolder":b.textarea.attr("placeholder",d);if(a.jqx.browser.msie&&a.jqx.browser.version<10&&b.textarea.val()===e){b.textarea.val(d)}break;case"scrollBarSize":b._arrange();break;case"dropDownWidth":b.$popup.width(d);break;case"roundedCorners":if(d===true){b.host.add(b.$popup).addClass(b.toThemeProperty("jqx-rc-all"))}else{b.host.add(b.$popup).removeClass(b.toThemeProperty("jqx-rc-all"))}break;case"disabled":b.vScrollBar.jqxScrollBar({disabled:d});if(d===true){b.host.addClass(b.toThemeProperty("jqx-fill-state-disabled"));b.textarea.attr("disabled","")}else{b.host.removeClass(b.toThemeProperty("jqx-fill-state-disabled"));b.textarea.removeAttr("disabled")}a.jqx.aria(b,"aria-disabled",d);break;case"rtl":if(d===true){b.textarea.addClass(b.toThemeProperty("jqx-text-area-element-rtl"))}else{b.textarea.removeClass(b.toThemeProperty("jqx-text-area-element-rtl"))}b._arrange();break}}},_raiseEvent:function(h,c){var e=this;if(c===undefined){c={owner:null}}var d=e.events[h];c.owner=e;var g=new a.Event(d);g.owner=e;if(h==0){c.type=this.changeType;this.changeType=null}g.args=c;if(g.preventDefault){g.preventDefault()}var f;if(d==="change"||e._baseHost[0].tagName.toLowerCase()==="div"){f=e.host}else{f=e._baseHost}var b=f.trigger(g);return b},_addHandlers:function(){var c=this,f=c.element.id,e=c.host,d=c.textarea;a.jqx.utilities.resize(c._baseHost,function(){c._ttimer=setTimeout(function(){c._arrange()},100)},false,true);var b=a.jqx.browser.mozilla?"wheel":"mousewheel";c.addHandler(e,b+".jqxTextArea"+f,function(g){c.wheel(g,c)});c.addHandler(e,"mouseenter.jqxTextArea"+f,function(){c.focused=true});c.addHandler(e,"mouseleave.jqxTextArea"+f,function(){c.focused=false});c.addHandler(e,"focus.jqxTextArea"+f,function(){c.focused=true});c.addHandler(e,"blur.jqxTextArea"+f,function(){c.focused=false});c.addHandler(c.wrapper,"scroll.jqxTextArea"+f,function(){if(c.wrapper[0].scrollTop!==0){c.wrapper[0].scrollTop=0}if(c.wrapper[0].scrollLeft!==0){c.wrapper[0].scrollLeft=0}});c.addHandler(d,"change.jqxTextArea"+f,function(g){g.stopPropagation();g.preventDefault();c._arrange();c._raiseEvent("0")});c.addHandler(d,"select.jqxTextArea"+f,function(g){g.stopPropagation();g.preventDefault()});c.addHandler(d,"scroll.jqxTextArea"+f,function(){c._arrange()});c.addHandler(d,"focus.jqxTextArea"+f,function(){c.host.addClass(c.toThemeProperty("jqx-fill-state-focus"));if(a.jqx.browser.msie&&a.jqx.browser.version<10&&c.textarea.val()===c.placeHolder){c.textarea.val("")}});c.addHandler(d,"blur.jqxTextArea"+f,function(){c.host.removeClass(c.toThemeProperty("jqx-fill-state-focus"));if(a.jqx.browser.msie&&a.jqx.browser.version<10){var g=c.textarea.val();if(g===""){c.textarea.val(c.placeHolder)}else{if(c.maxLength!==null&&g.length>c.maxLength){c.textarea.val(g.substr(0,c.maxLength))}}}});c.addHandler(d,"keydown.jqxTextArea"+f,function(g){c._suppressKeyPressRepeat=~a.inArray(g.keyCode,[40,38,9,13,27]);c.changeType="keyboard";c._move(g)});c.addHandler(d,"keypress.jqxTextArea"+f,function(g){if(c.maxLength!==null&&a.jqx.browser.msie&&a.jqx.browser.version<10&&d.val().length>c.maxLength){return false}if(c._suppressKeyPressRepeat){return}c._move(g)});c.addHandler(d,"keyup.jqxTextArea"+f,function(g){switch(g.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!c.opened){return}c._select();break;case 27:if(!c.opened){return}c.close();break;default:if(c.timer){clearTimeout(c.timer)}c.timer=setTimeout(function(){c._suggest()},300)}g.stopPropagation();g.preventDefault();c._arrange()});c.addHandler(c.vScrollBar,"valueChanged.jqxTextArea"+f,function(g){d.scrollTop(g.currentValue)});c.addHandler(c.$popup,"mousedown.jqxTextArea"+f,function(g){g.stopPropagation();g.preventDefault();c.changeType="mouse";c._select()})},_removeHandlers:function(){var b=this,e=b.element.id,d=b.host,c=b.textarea;a.jqx.utilities.resize(b._baseHost,null,true);b.removeHandler(d,"mousewheel.jqxTextArea"+e);b.removeHandler(d,"mouseenter.jqxTextArea"+e);b.removeHandler(d,"mouseleave.jqxTextArea"+e);b.removeHandler(d,"focus.jqxTextArea"+e);b.removeHandler(d,"blur.jqxTextArea"+e);b.removeHandler(b.wrapper,"scroll.jqxTextArea"+e);b.removeHandler(c,"change.jqxTextArea"+e);b.removeHandler(c,"select.jqxTextArea"+e);b.removeHandler(c,"scroll.jqxTextArea"+e);b.removeHandler(c,"focus.jqxTextArea"+e);b.removeHandler(c,"blur.jqxTextArea"+e);b.removeHandler(c,"keydown.jqxTextArea"+e);b.removeHandler(c,"keypress.jqxTextArea"+e);b.removeHandler(c,"keyup.jqxTextArea"+e);b.removeHandler(b.vScrollBar,"valueChanged.jqxTextArea"+e);b.removeHandler(b.$popup,"mousedown.jqxTextArea"+e)},_addItemHandlers:function(){var b=this;b.addHandler(b.$popup.find("li"),"mouseenter.jqxTextArea"+b.element.id,function(c){b.$popup.find(".jqx-fill-state-pressed").removeClass(b.toThemeProperty("jqx-fill-state-pressed"));a(c.currentTarget).addClass(b.toThemeProperty("jqx-fill-state-pressed"))})},_removeItemHandlers:function(){var b=this;b.removeHandler(b.$popup.find("li"),"mouseenter.jqxTextArea"+b.element.id)},wheel:function(d,c){var e=0;if(d.originalEvent&&a.jqx.browser.msie&&d.originalEvent.wheelDelta){e=d.originalEvent.wheelDelta/120}if(!d){d=window.event}if(d.wheelDelta){e=d.wheelDelta/120}else{if(d.detail){e=-d.detail/3}else{if(d.originalEvent.wheelDelta){e=d.originalEvent.wheelDelta/120}else{if(d.originalEvent.detail){e=-d.originalEvent.detail/3}else{if(d.originalEvent.deltaY){e=-d.originalEvent.deltaY/3}}}}}if(e){var b=c._handleDelta(e);if(!b){if(d.preventDefault){d.preventDefault()}}if(!b){return b}else{return false}}if(d.preventDefault){d.preventDefault()}d.returnValue=false},_handleDelta:function(f){var c=this,d=c.vScrollBar.jqxScrollBar("getInstance");if(c.focused){var e=d.value;if(f<0){c.scrollDown()}else{c.scrollUp()}var b=d.value;if(e!==b){return false}}return true},scrollDown:function(){var b=this;if(b.vScrollBar.css("visibility")==="hidden"){return false}var d=b.vScrollBar.jqxScrollBar("getInstance");var c=Math.min(d.value+d.largestep,d.max);d.setPosition(c);b._arrange();return true},scrollUp:function(){var b=this;if(b.vScrollBar.css("visibility")==="hidden"){return false}var d=b.vScrollBar.jqxScrollBar("getInstance");var c=Math.max(d.value-d.largestep,d.min);d.setPosition(c);b._arrange();return true},_setSize:function(){var b=this;b.host.css("width",b.width);b.host.css("height",b.height)},_addClasses:function(){var b=this;b.host.addClass(b.toThemeProperty("jqx-panel"));b.host.addClass(b.toThemeProperty("jqx-widget"));b.host.addClass(b.toThemeProperty("jqx-widget-content"));b.host.addClass(b.toThemeProperty("jqx-text-area"));b.textarea.addClass(b.toThemeProperty("jqx-widget"));b.textarea.addClass(b.toThemeProperty("jqx-widget-content"));if(b.roundedCorners===true){b.host.addClass(b.toThemeProperty("jqx-rc-all"))}if(b.disabled===true){b.host.addClass(b.toThemeProperty("jqx-fill-state-disabled"));b.textarea.attr("disabled","");a.jqx.aria(b,"aria-disabled",true)}else{a.jqx.aria(b,"aria-disabled",false)}if(b.rtl===true){b.textarea.addClass(b.toThemeProperty("jqx-text-area-element-rtl"))}},_addPopupClasses:function(){var c=this,b=c.$popup;b.addClass(c.toThemeProperty("jqx-popup"));if(a.jqx.browser.msie){b.addClass(c.toThemeProperty("jqx-noshadow"))}b.addClass(c.toThemeProperty("jqx-input-popup"));b.addClass(c.toThemeProperty("jqx-menu"));b.addClass(c.toThemeProperty("jqx-menu-vertical"));b.addClass(c.toThemeProperty("jqx-menu-dropdown"));b.addClass(c.toThemeProperty("jqx-widget"));b.addClass(c.toThemeProperty("jqx-widget-content"));if(c.roundedCorners){b.addClass(c.toThemeProperty("jqx-rc-all"))}},_updateSource:function(){var d=this;var b=function(f){var e=[];e=a.map(f,function(h){if(h===undefined){return null}if(typeof h==="string"||h instanceof String){return{label:h,value:h}}if(typeof h!=="string"&&h instanceof String===false){var g="";var i="";if(d.displayMember!==""&&d.displayMember!==undefined){if(h[d.displayMember]){g=h[d.displayMember]}}if(d.valueMember!==""&&d.valueMember!==undefined){i=h[d.valueMember]}if(g===""){g=h.label}if(i===""){i=h.value}return{label:g,value:i}}return h});return e};if(d.source&&d.source._source){d.adapter=d.source;if(d.adapter._source.localdata){d.adapter.unbindBindingUpdate(d.element.id);d.adapter.bindBindingUpdate(d.element.id,function(){d.source=b(d.adapter.records)})}else{var c={};if(d.adapter._options.data){a.extend(d.adapter._options.data,c)}else{if(d.source._source.data){a.extend(c,d.source._source.data)}d.adapter._options.data=c}d.adapter.unbindDownloadComplete(d.element.id);d.adapter.bindDownloadComplete(d.element.id,function(){d.source=b(d.adapter.records)})}d.source.dataBind();return}if(!a.isFunction(d.source)){d.source=b(d.source)}},open:function(){var d=this;if(a.jqx.isHidden(d.host)){return}var c=a.extend({},d.host.coord(true),{height:d.host[0].offsetHeight});if(d.$popup.parent().length===0){var f=d._id+"_popup";d.$popup[0].id=f;a.jqx.aria(d,"aria-owns",f)}d.$popup.appendTo(a(document.body)).css({position:"absolute",zIndex:d.popupZIndex,top:c.top+c.height,left:c.left}).show();var b=0;var e=d.$popup.children();a.each(e,function(){b+=a(this).outerHeight(true)-1});d.$popup.height(b);d.opened=true;d._raiseEvent("2",{popup:d.$popup});a.jqx.aria(d,"aria-expanded",true);d._addItemHandlers();return d},close:function(){var b=this;b._removeItemHandlers();b.$popup.hide();b.opened=false;b._raiseEvent("3",{popup:b.$popup});a.jqx.aria(b,"aria-expanded",false);return b},_suggest:function(){var c=this,b;c.query=c.textarea[0].value;if(!c.query||c.query.length=0){e.push(f)}else{if(h.toString().toLowerCase().indexOf(b.query.toString().toLowerCase())>=0){g.push(f)}}}}return j.concat(e,g)},_render:function(b){var c=this;b=a(b).map(function(e,f){var h=f;if(f.value!==undefined){if(f.label!==undefined){e=a(c.item).attr({"data-name":f.label,"data-value":f.value})}else{e=a(c.item).attr({"data-name":f.value,"data-value":f.value})}}else{if(f.label!==undefined){e=a(c.item).attr({"data-value":f.label,"data-name":f.label})}else{if(c.displayMember!==undefined&&c.displayMember!==""){e=a(c.item).attr({"data-name":f[c.displayMember],"data-value":f[c.valueMember]})}else{e=a(c.item).attr({"data-value":f,"data-name":f})}}}if(f.label){h=f.label}else{if(c.displayMember){h=f[c.displayMember]}}e.find("a").html(c.highlight(h));var g="",d="";if(c.roundedCorners===true){g=" "+c.toThemeProperty("jqx-rc-all")}if(c.rtl){d=" "+c.toThemeProperty("jqx-rtl")}e[0].className=c.toThemeProperty("jqx-item")+" "+c.toThemeProperty("jqx-menu-item")+g+d;return e[0]});b.first().addClass(c.toThemeProperty("jqx-fill-state-pressed"));c.$popup.html(b);if(!c.dropDownWidth){c.$popup.width(c.host.outerWidth()-6)}else{c.$popup.width(c.dropDownWidth)}return c},_highlight:function(c){var d=this.query;d=d.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var b=new RegExp("("+d+")","ig");return c.replace(b,function(e,f){return""+f+""})},_select:function(){var b=this;var d=b.$popup.find(".jqx-fill-state-pressed").attr("data-value");var c=b.$popup.find(".jqx-fill-state-pressed").attr("data-name");b.textarea[0].value=b.renderer(c,b.textarea[0].value);b.selectedItem={label:c,value:d};b.host.attr("data-value",d);b.host.attr("data-label",c);b._raiseEvent("1",{item:{label:c,value:d}});b._arrange();b.textarea[0].scrollTop=b.textarea[0].scrollHeight;b._raiseEvent("0");return b.close()},_renderer:function(b){return b},_move:function(c){var b=this;if(!b.opened){return}switch(c.keyCode){case 9:case 13:case 27:c.preventDefault();break;case 38:if(!c.shiftKey){c.preventDefault();b._prev()}break;case 40:if(!c.shiftKey){c.preventDefault();b._next()}break}c.stopPropagation()},_next:function(){var b=this,d=b.$popup.find(".jqx-fill-state-pressed").removeClass(b.toThemeProperty("jqx-fill-state-pressed")),c=d.next();if(!c.length){c=a(b.$popup.find("li")[0])}c.addClass(b.toThemeProperty("jqx-fill-state-pressed"))},_prev:function(){var b=this,d=b.$popup.find(".jqx-fill-state-pressed").removeClass(b.toThemeProperty("jqx-fill-state-pressed")),c=d.prev();if(!c.length){c=b.$popup.find("li").last()}c.addClass(b.toThemeProperty("jqx-fill-state-pressed"))}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxPopover","",{});a.extend(a.jqx._jqxPopover.prototype,{defineInstance:function(){var b={arrowOffsetValue:null,animationType:"fade",position:"bottom",animationOpenDelay:"fast",animationCloseDelay:"fast",autoClose:true,isModal:false,height:null,initContent:null,offset:null,rtl:false,showArrow:true,showCloseButton:false,selector:null,title:"",width:null,_toggleElement:null,_popover:null,_popoverTop:0,_popoverLeft:0,_init:false,_ie8:(a.jqx.browser.msie&&a.jqx.browser.version===8),_ie7:(a.jqx.browser.msie&&a.jqx.browser.version<8),_left:0,_top:0,events:["open","close"]};a.extend(true,this,b)},createInstance:function(){var b=this;b._content=b.host.children()},render:function(){var h=this;var c=h.element.id;h._content.detach();h._toggleElement=a(h.selector);if(h._toggleElement.length===0){throw new Error('jqxPopover: Invalid Popover toggler: "'+h.selector+'".')}else{if(h._toggleElement===null){throw new Error("jqxPopover: Missing Popover toggler.")}}var k=a('
      ');a("body").append(k);var g=h.host.data();h.host.detach();h.host=k;h.host.data(g);h.element=k[0];h.element.id=c;h._popover=a("#"+c);var j=h._popover.find(".jqx-popover-title");j.append(h.title);var i=h._popover.find(".jqx-popover-content");i.append(h._content);h._popover.hide();h._removeHandlers();h._addHandlers();h._popover.addClass(h.position);j.addClass(h.toThemeProperty("jqx-widget-header"));h._popover.addClass(h.toThemeProperty("jqx-widget jqx-widget-content jqx-rc-all"));if(h.showArrow){h._popover.addClass(h.toThemeProperty("jqx-popover-arrow-"+h.position))}if(h.rtl){j.addClass(h.toThemeProperty("jqx-rtl"));j.css("direction","rtl");i.css("direction","rtl")}if(h.showCloseButton){var d=a('
      ');var e=a('
      ');d.append(e);j.append(d);j.css("min-height","16px");d.addClass(h.toThemeProperty("jqx-popover-close-button"));h.closeButton=e;if(h.rtl){d.addClass(h.toThemeProperty("jqx-popover-close-button-rtl"))}}if(h.arrowOffsetValue){if(h.position=="bottom"||h.position=="top"){var b=h._popover.find(".jqx-popover-arrow").css("margin-left");h._popover.find(".jqx-popover-arrow").css("margin-left",parseInt(b)+h.arrowOffsetValue)}else{var f=h._popover.find(".jqx-popover-arrow").css("margin-top");h._popover.find(".jqx-popover-arrow").css("margin-top",parseInt(f)+h.arrowOffsetValue)}}if(h.width||h.height){h._popover.css("width",h.width);h._popover.css("height",h.height)}},refresh:function(b){this.render()},destroy:function(){var b=this;if(b.length!==0){b._removeHandlers();b._popover.remove();b._removeModalBackground()}},propertyChangedHandler:function(b,c,f,e){var d=this;d.render()},_stickToToggleElement:function(){var g=this;g._popover.css("left","0px");g._popover.css("top","0px");var j=g._toggleElement;var e=j.offset();var b=j.outerHeight();var h=j.outerWidth();var d=g._popover.height();var i=g._popover.width();switch(g.position){case"left":g._popoverTop=e.top-d/2+b/2;g._popoverLeft=e.left-g._popover.outerWidth();break;case"right":g._popoverTop=e.top-d/2+b/2;g._popoverLeft=e.left+h;break;case"top":g._popoverTop=e.top-g._popover.outerHeight();g._popoverLeft=e.left-i/2+h/2;break;case"bottom":g._popoverTop=e.top+b;g._popoverLeft=e.left-i/2+h/2;break}var c=g.offset?g.offset.left:0;var f=g.offset?g.offset.top:0;g._popover.css("top",f+g._popoverTop);g._popover.css("left",c+g._popoverLeft)},open:function(){var c=this;c._stickToToggleElement();function d(){c._popover.show();c._raiseEvent("0");c._isOpen=true}function b(){if(c.initContent&&c._init===false){c.initContent();c._init=true;c._stickToToggleElement()}}if(c._ie7===true){d();b();return}switch(c.animationType){case"fade":c._popover.fadeIn(c.animationOpenDelay,function(){c._raiseEvent("0");b();c._isOpen=true});break;case"none":d();b();break}c._makeModalBackground()},close:function(){var c=this;if(!c._isOpen){return}function b(){c._popover.hide();c._raiseEvent("1");c._isOpen=false}if(c._ie7===true){b();return}switch(c.animationType){case"fade":c._popover.fadeOut(c.animationCloseDelay,function(){c._raiseEvent("1");c._isOpen=false});break;case"none":b();break}c._removeModalBackground()},_raiseEvent:function(f,c){if(c===undefined){c={owner:null}}var d=this.events[f];c.owner=this;var e=new a.Event(d);e.owner=this;e.args=c;if(e.preventDefault){e.preventDefault()}var b=this._popover.trigger(e);return b},_makeModalBackground:function(){var b=this;if(b.isModal===true){b.modalBackground=a("
      ");b.modalBackground.addClass(this.toThemeProperty("jqx-popover-modal-background"));a(document.body).prepend(b.modalBackground);a(document.body).addClass(b.toThemeProperty("jqx-unselectable"));b.host.addClass(b.toThemeProperty("jqx-selectable"))}},_removeModalBackground:function(){var b=this;if((b.isModal===true)&&(b.modalBackground!==undefined)){b.modalBackground.remove();a(document.body).removeClass(b.toThemeProperty("jqx-unselectable"));b.host.removeClass(b.toThemeProperty("jqx-selectable"))}},_addHandlers:function(){var b=this,c=b.element.id;b.addHandler(a(document),"keydown.jqxPopover"+c,function(d){if(d.keyCode==27){b.close()}});b.addHandler(a(document),"click.jqxPopover"+c,function(d){if(b.closeButton&&d.target==b.closeButton[0]){b.close()}if(b.autoClose===true){if(d.target!=b.element&&!a(d.target).ischildof(b._popover)){if(!b.isModal){b.close()}}}});b.addHandler(a(window),"resize.jqxPopover"+c,function(d){if(b.element.style.display!="none"){b._stickToToggleElement()}});if(b.selector){b.addHandler(b._toggleElement,"click.jqxPopover"+c,function(d){d.stopPropagation();if(b.host.css("display")!="none"){b.close()}else{b.open()}})}},_removeHandlers:function(){var b=this,c=b.element.id;b.removeHandler(a(document),"click.jqxPopover"+c);if(b.selector){b.removeHandler(b._toggleElement,"click.jqxPopover"+c)}b.removeHandler(a(document),"keydown.jqxPopover"+c);b.removeHandler(a(window),"resize.jqxPopover"+c)}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxLayout","",{});a.extend(a.jqx._jqxLayout.prototype,{defineInstance:function(){var b={width:null,height:null,minGroupWidth:100,minGroupHeight:100,layout:[],resizable:true,contextMenu:false,rtl:false,events:["create","resize","pin","unpin"]};a.extend(true,this,b)},createInstance:function(){var b=this;b._originalElement=b.host.clone();b._coordinates=[];b._ie7=a.jqx.browser.msie&&a.jqx.browser.version<8;b._touchDevice=a.jqx.mobile.isTouchDevice();b._initialization=true;b.render()},render:function(){var e=this,g,b,h;e._tabbedGroupsList=[];if(e.dockingLayout){e._overlayGroups=[];if(e._initialization===false){g=e.dockingLayout._overlay.detach();b=e.dockingLayout._dropOverlay.detach();h=e.dockingLayout._edgeOverlays.detach()}}if(e._rendered===true){e._detachContent(e.layout[0].items)}e.host.empty();if(!e.host.jqxRibbon){throw new Error("jqxLayout: Missing reference to jqxribbon.js.")}e._setSize();e._addClasses();e._removeHandlers();if(!e._rendered){if(e.layout[0].type!=="layoutGroup"){throw new Error('jqxLayout: Invalid layout structure. The first member of the layout array has to be with type: "layoutGroup".')}var f=e.layout[0].items[0].width,d=e.layout[0].items[0].height;if(!(f&&typeof f==="string"&&f.charAt(f.length-1)==="%"||d&&typeof d==="string"&&d.charAt(d.length-1)==="%")){e.layout[0].initialPxWidth=e.host.width();e.layout[0].initialPxHeight=e.host.height();e._pxToPercent(e.layout[0],true)}}e._createLayout(e.layout,e.host,{type:"host"},0);if(e.resizable===true){e._addResizeFeedbacks();e._getGroupCoordinates();e._addHandlers()}if(e.contextMenu===true){e._initMenu()}if(e._initialization===true){e._initialization=false;e._raiseEvent("0");a.jqx.utilities.resize(e.host,function(){e.render()})}else{if(e.dockingLayout){if(!e._ie7){e.host.append(g,b,h)}else{a("body").append(g,b,h)}e.dockingLayout._trackFloatGroups()}}for(var c=0;c0){a("."+b.element.id+"FloatGroup").jqxWindow({theme:f})}}break;case"layout":case"resizable":b.render();break;case"contextMenu":if(f===true&&!b._menuInitialized){b.render()}break;case"rtl":var c=a("."+b.element.id+"FloatGroup");if(c.length>0){c.jqxWindow({rtl:f})}var e=b.host.add(c);if(f===true){e.find(".jqx-layout-pseudo-window-title-ltr").removeClass(b.toThemeProperty("jqx-layout-pseudo-window-title-ltr")).addClass(b.toThemeProperty("jqx-layout-pseudo-window-title-rtl"));e.find(".jqx-layout-pseudo-window-pin-background-ltr").removeClass(b.toThemeProperty("jqx-layout-pseudo-window-pin-background-ltr")).addClass(b.toThemeProperty("jqx-layout-pseudo-window-pin-background-rtl"));e.find(".jqx-layout-pseudo-window-close-background-ltr").removeClass(b.toThemeProperty("jqx-layout-pseudo-window-close-background-ltr")).addClass(b.toThemeProperty("jqx-layout-pseudo-window-close-background-rtl"));e.find(".jqx-layout-ribbon-header").removeClass(b.toThemeProperty("jqx-layout-ribbon-header-ltr")).addClass(b.toThemeProperty("jqx-layout-ribbon-header-rtl"))}else{e.find(".jqx-layout-pseudo-window-title-rtl").removeClass(b.toThemeProperty("jqx-layout-pseudo-window-title-rtl")).addClass(b.toThemeProperty("jqx-layout-pseudo-window-title-ltr"));e.find(".jqx-layout-pseudo-window-pin-background-rtl").removeClass(b.toThemeProperty("jqx-layout-pseudo-window-pin-background-rtl")).addClass(b.toThemeProperty("jqx-layout-pseudo-window-pin-background-ltr"));e.find(".jqx-layout-pseudo-window-close-background-rtl").removeClass(b.toThemeProperty("jqx-layout-pseudo-window-close-background-rtl")).addClass(b.toThemeProperty("jqx-layout-pseudo-window-close-background-ltr"));e.find(".jqx-layout-ribbon-header").removeClass(b.toThemeProperty("jqx-layout-ribbon-header-rtl")).addClass(b.toThemeProperty("jqx-layout-ribbon-header-ltr"))}e.find(".jqx-ribbon").jqxRibbon({rtl:f});break}}}else{b.render()}},_raiseEvent:function(f,c){if(c===undefined){c={owner:null}}var d=this.events[f];c.owner=this;var e=new a.Event(d);e.owner=this;e.args=c;if(e.preventDefault){e.preventDefault()}var b=this.host.trigger(e);return b},_setSize:function(){var b=this;b.host.css({width:b.width,height:b.height})},_addClasses:function(){var b=this;b.host.addClass(b.toThemeProperty("jqx-layout jqx-widget jqx-widget-content jqx-rc-all"))},_getPercentage:function(c,b,d){return(c/b.widget[d]())*100},_addHandlers:function(){var g=this,b=g.element.id,d,j;g._resize={allowed:false};g._clickedToResize=false;function i(l,o){for(var m=0;m=n.x.from&&l<=n.x.to&&o>=n.y.from&&o<=n.y.to){if(n.orientation==="horizontal"){g.element.style.cursor="col-resize"}else{g.element.style.cursor="row-resize"}g._resize={allowed:true,widget:n.widget,side:n.side};break}else{g.element.style.cursor="default";g._resize.allowed=false}}}function k(l){if(g._resize.allowed===true){var r=g._resize.widget,w=r.current.parent,x=g._percentToPx("width",r.current.minWidth,w),t=g._percentToPx("height",r.current.minHeight,w),n=w.items[r.current.index-1],q=w.items[r.current.index+1];g._resizeStartPosition={x:l.pageX,y:l.pageY};if(!x){x=g._percentToPx("width",g.minGroupWidth,w)}if(!t){t=g._percentToPx("height",g.minGroupHeight,w)}switch(g._resize.side){case"left":var u=g._percentToPx("width",n.minWidth,w);if(!u){u=g._percentToPx("width",g.minGroupWidth,w)}d=n.widget.offset().left+u;j=r.offset().left+r.width()-x;break;case"right":var m=g._percentToPx("width",q.minWidth,w);if(!m){m=g._percentToPx("width",g.minGroupWidth,w)}d=r.offset().left+x;j=q.widget.offset().left+q.widget.width()-m;break;case"top":var v=g._percentToPx("height",n.minHeight,w);if(!v){v=g._percentToPx("height",g.minGroupHeight,w)}d=n.widget.offset().top+v;j=r.offset().top+r.height()-t;break;case"bottom":var o=g._percentToPx("height",q.minHeight,w);if(!o){o=g._percentToPx("height",g.minGroupHeight,w)}d=r.offset().top+t;j=q.widget.offset().top+q.widget.height()-o;break}var p=function(z,A){A=(typeof A==="undefined")?{top:0,left:0}:A;if(z!==top){var y=z.frameElement.getBoundingClientRect();A.left+=y.left;A.top+=y.top;A=p(z.parent,A)}return A},s;g._clickedToResize=true;g._overlay[0].style.display="block";if(g._resize.side==="left"||g._resize.side==="right"){g._verticalFeedback[0].style.height=g._resize.widget.height()+"px";s=g._ie7?p(window).top:0;g._verticalFeedback.offset({top:g._resize.widget.offset().top-g.host.offset().top+a(window).scrollTop()-s})}else{g._horizontalFeedback[0].style.width=g._resize.widget.width()+"px";s=g._ie7?p(window).left:0;g._horizontalFeedback.offset({left:g._resize.widget.offset().left-g.host.offset().left+a(window).scrollLeft()+1-s})}}}function c(n,o,t,r,m){var p=m.charAt(0).toUpperCase()+m.slice(1),s=o.parent,l,q;if(n){l=g._percentToPx(m,t["min"+p],s);q=parseFloat(t[m])/100*o.parent.widget[m]()-r}else{l=g._percentToPx(m,o["min"+p],s);q=parseFloat(o[m])/100*o.parent.widget[m]()-r}if(!l){l=g._percentToPx(m,g["minGroup"+p],s)}if(q=v}w=Math.abs(p-v);if(w===0){r();return}if(q){s=g._getPercentage(c(true,u,y,w,"width"),u.parent,"width");w=Math.abs(s-parseFloat(y.width));y.width=s+"%";u.width=parseFloat(u.width)+w+"%"}else{s=g._getPercentage(c(false,u,y,w,"width"),u.parent,"width");w=Math.abs(s-parseFloat(u.width));u.width=s+"%";y.width=parseFloat(y.width)+w+"%"}if(u.width===n){r();return}}else{n=u.height;if(g._resize.side==="top"){y=u.parent.items[u.index-1];v=m;q=o=v}w=Math.abs(o-v);if(w===0){r();return}if(q){s=g._getPercentage(c(true,u,y,w,"height"),u.parent,"height");w=Math.abs(s-parseFloat(y.height));y.height=s+"%";u.height=parseFloat(u.height)+w+"%"}else{s=g._getPercentage(c(false,u,y,w,"height"),u.parent,"height");w=Math.abs(s-parseFloat(u.height));u.height=s+"%";y.height=parseFloat(y.height)+w+"%"}if(u.height===n){r();return}}r();g.render();g._raiseEvent("1",{item:u})}}function f(m){if(g._clickedToResize===true){var l=m.pageX,n=m.pageY;if(g._resize.side==="left"||g._resize.side==="right"){g._verticalFeedback[0].style.display="block";if(lj){l=j;g._verticalFeedback.addClass(g.toThemeProperty("jqx-layout-resize-feedback-warning"))}else{g._verticalFeedback.removeClass(g.toThemeProperty("jqx-layout-resize-feedback-warning"))}}g._verticalFeedback.offset({left:l-2})}else{g._horizontalFeedback[0].style.display="block";if(nj){n=j;g._horizontalFeedback.addClass(g.toThemeProperty("jqx-layout-resize-feedback-warning"))}else{g._horizontalFeedback.removeClass(g.toThemeProperty("jqx-layout-resize-feedback-warning"))}}g._horizontalFeedback.offset({top:n-2});g._horizontalFeedback.offset({left:g._resize.widget.offset().left+a(window).scrollLeft()+1})}}}g._docUP=e;if(!g._touchDevice){g.addHandler(g.host,"mousemove.jqxLayout"+b,function(m){if(g._clickedToResize===false&&(!g.dockingLayout||g.dockingLayout&&g.dockingLayout._windowDragged!==true)){var l=m.pageX,n=m.pageY;i(l,n)}});g.addHandler(a(document),"mousemove.jqxLayout"+b,function(l){f(l)});g.addHandler(g.host,"mousedown.jqxLayout"+b,function(l){k(l)});g.addHandler(a(document),"mouseup.jqxLayout"+b,function(l){e(l)})}else{g.addHandler(a(document),"touchstart.jqxDockingLayout"+b,function(m){var l=m.originalEvent.touches[0];i(l.pageX,l.pageY);k(l)});g.addHandler(a(document),"touchmove.jqxDockingLayout"+b,function(m){var l=m.originalEvent.touches[0];f(l)});g.addHandler(a(document),"touchend.jqxDockingLayout"+b,function(m){var l=m.originalEvent.changedTouches[0];e(l)})}g.addHandler(a(document),"selectstart.jqxLayout"+b,function(){if(g._clickedToResize===true){return false}});if(g.dockingLayout){try{if(document.referrer!==""||window.frameElement){if(window.top.document.addEventListener){window.top.document.addEventListener("mouseup",g._mouseupHandler,false)}else{if(window.top.document.attachEvent){window.top.document.attachEvent("onmouseup",g._mouseupHandler)}}}}catch(h){}}},_removeHandlers:function(){var c=this,d=c.element.id;if(!c._touchDevice){c.removeHandler(c.host,"mousemove.jqxLayout"+d);c.removeHandler(a(document),"mousemove.jqxLayout"+d);c.removeHandler(c.host,"mousedown.jqxLayout"+d);c.removeHandler(a(document),"mouseup.jqxLayout"+d)}else{c.removeHandler(a(document),"touchstart.jqxLayout"+d);c.removeHandler(a(document),"touchmove.jqxLayout"+d);c.removeHandler(a(document),"touchend.jqxLayout"+d)}c.removeHandler(a(document),"selectstart.jqxLayout"+d);if(c.dockingLayout){try{if(document.referrer!==""||window.frameElement){if(window.top.document.removeEventListener){window.top.document.removeEventListener("mouseup",c._mouseupHandler,false)}else{if(window.top.document.detachEvent){window.top.document.detachEvent("onmouseup",c._mouseupHandler)}}}}catch(b){}}a("."+d+"FloatGroup").off("close")},_createLayout:function(o,e,k){function m(w){var v=e.children(),x=v.eq(0),i=v.eq(1);x.text(w.title);if(!w.content){c=f._originalElement.find('[data-container="'+w.contentContainer+'"]').html()}else{c=w.content}if(c===undefined){c=""}i.html(c)}var f=this,d=k.type;for(var s=0;s
      ");b.addClass(f.toThemeProperty("jqx-layout-group-default"));if(p.orientation==="horizontal"){b.addClass(f.toThemeProperty("jqx-layout-group-default-horizontal"))}e.append(b);if(d==="host"){b.addClass(f.toThemeProperty("jqx-layout-group-root"))}else{var r=k.orientation==="horizontal"?p.width:"100%";var n=k.orientation==="horizontal"?"100%":p.height;b.css({width:r,height:n})}break;case"tabbedGroup":if(d!=="floatGroup"){b=a('
        ');e.append(b);f._addRightClickHandler(b.find(".jqx-layout-window-header"),b)}else{b=a('
          ');e.children().eq(1).append(b)}break;case"documentGroup":case"autoHideGroup":b=a("
            ");e.append(b);if(p.type==="documentGroup"){b.find("ul").addClass("jqx-layout-ribbon-header jqx-layout-ribbon-header-"+(f.rtl?"rtl":"ltr"))}if(f._ie7&&p.type==="autoHideGroup"){b.css("z-index",9999-500*s)}break;case"floatGroup":if(!f._rendered||p.programmaticallyAdded===true){if(!f.dockingLayout){throw new Error("Float groups are only available in the jqxDockingLayout widget. Initialize a jqxDockingLayout (requires jqxdockinglayout.js) instead of a jqxLayout.")}b=a('
            ');e.append(b);if(p.programmaticallyAdded===true){delete p.programmaticallyAdded}}else{continue}break;case"layoutPanel":b={};if(d==="tabbedGroup"){var t=e.find(".jqx-layout-window-header").text();if(t===""){e.find(".jqx-layout-window-header div:eq(0)").text(p.title)}l=a("
          • "+p.title+"
          • ");e.find(".jqx-layout-ribbon-header").append(l);if(!f._rendered&&!p.docked){c=f._originalElement.find('[data-container="'+p.contentContainer+'"]').html();if(c===undefined){c=""}}else{c=p.detachedContent}q=a("
            ");q.append(c);e.find(".jqx-layout-ribbon-content").append(q);f._addRightClickHandler(l,b)}else{if(d==="autoHideGroup"){a(e.children()[0]).append("
          • "+p.title+"
          • ");if(!f._rendered){c=f._originalElement.find('[data-container="'+p.contentContainer+'"]').html();if(c===undefined){c=""}}else{c=p.detachedContent}q=a("
            ");q.append(c);var h;if(k.alignment==="left"||k.alignment==="right"){h="jqx-layout-group-auto-hide-content-vertical"}else{h="jqx-layout-group-auto-hide-content-horizontal"}q.addClass(f.toThemeProperty(h));var g=a('
            '+p.title+"
            ");g.children().append(q);a(e.children()[1]).append(g);f._addRightClickHandler(g.find(".jqx-layout-window"),b)}else{if(d==="floatGroup"){m(p)}}}break;case"documentPanel":b={};if(d==="floatGroup"){m(p)}else{l=a("
          • "+p.title+"
          • ");a(e.children()[0]).append(l);if(!f._rendered){c=f._originalElement.find('[data-container="'+p.contentContainer+'"]').html();if(c===undefined){c=""}}else{c=p.detachedContent}q=a("
            ");q.append(c);a(e.children()[1]).append(q);f._addRightClickHandler(l,b)}break}if(p.items&&p.items.length>0){var j=b;f._createLayout(p.items,j,p)}f._createWidget(k,e,p,b,s);if(f.dockingLayout&&(p.type==="documentGroup"||p.type==="tabbedGroup"||(p.type==="layoutGroup"&&p.items.length===0))){var u={element:b,width:b.width(),height:b.height(),offset:b.offset(),settings:p};f._overlayGroups.push(u);if(p.parent.type==="floatGroup"){p.parent._overlayGroup=u}}}},_createWidget:function(m,k,i,e,g){var f=this,b=m.orientation==="horizontal"?i.width:"100%",l=m.orientation==="horizontal"?"100%":i.height,d=false;i.parent=m;i.widget=e;i.index=g;if(i.widget){i.widget.current=i}function h(){var o=0;for(var n=0;n
            ');p.append(c);j+=16}if((e==="tabbedGroup"&&d.current.allowPin!==false)||(e==="autoHideGroup"&&d.current.parent.allowUnpin!==false)){var l;switch(e){case"tabbedGroup":l="jqx-layout-pseudo-window-pin-icon";d.pinned=false;break;case"autoHideGroup":l="jqx-layout-pseudo-window-pinned-icon";d.pinned=true;break}h=a('
            ');if(c){h.addClass(i.toThemeProperty("jqx-layout-pseudo-window-pin-background-"+f))}else{if(i.rtl===false){h.css("right",0)}}p.append(h);j+=16;if(i.dockingLayout&&e==="autoHideGroup"){i.dockingLayout._addAutoHideGroupHandlers(d.current,p,d.current.title,a(d.children()[1]).contents())}}u.css("max-width",p.width()-j);var o=a(d.children()[1]);o.css("height",1+d.height()-p.outerHeight());o.css("margin-left","-1px");o.css("margin-right","-1px");i._addWindowPanelHandlers(c,h,d);return u},_addWindowPanelHandlers:function(g,c,b){var f=this,h=f.element.id,e=b.current,d=e.type;if(g){f.addHandler(g,"click.jqxLayout"+h,function(){if(d==="tabbedGroup"&&e.items.length>1){var i=b.find(".jqx-ribbon-item-selected")[0]._index;f._close(e.items[i])}else{b.fadeOut(function(){f._close(e);b.remove()})}})}if(c){f.addHandler(c,"click.jqxLayout"+h,function(){if(d==="tabbedGroup"&&e.pinValid===true){f._pin(e)}else{if(d==="layoutPanel"){f._unPin(e.parent)}}})}},_getGroupCoordinates:function(){var d=this;d._coordinates=[];function b(e){return e==="layoutGroup"||e==="tabbedGroup"||e==="documentGroup"}function c(n){for(var j=0;j');b._verticalFeedback=a('
            ');b._overlay=a('
            ');if(b.dockingLayout&&b.dockingLayout._windowDragged){b._overlay[0].style.display="block"}b.host.append(b._horizontalFeedback,b._verticalFeedback,b._overlay)},_detachContent:function(h,d){function c(l){if(l.prevent===true){l.prevent=false}else{var i=l.parent.widget.find(".jqx-ribbon-content-section").eq(l.index);f=i.contents().detach();i.remove();l.detachedContent=f;if(d===true){l.prevent=true}}}for(var e=h.length-1;e>=0;e--){var k=h[e],j=k.type,f;if(j==="layoutGroup"||j==="tabbedGroup"||j==="documentGroup"||j==="autoHideGroup"||j==="floatGroup"){if(k.items&&k.items.length>0){this._detachContent(k.items)}}else{if(j==="layoutPanel"){if(k.parent.type==="tabbedGroup"){c(k)}else{if(k.parent.type==="autoHideGroup"){if(k.prevent===true){k.prevent=false}else{if(k.parent.alignment==="left"||k.parent.alignment==="right"){var b=k.parent.widget.find(".jqx-layout-group-auto-hide-content-vertical").eq(e);f=b.contents().detach();b.remove()}else{var g=k.parent.widget.find(".jqx-layout-group-auto-hide-content-horizontal").eq(e);f=g.contents().detach();g.remove()}k.detachedContent=f;if(d===true){k.prevent=true}}}}}else{if(j==="documentPanel"){c(k)}}}}},_pxToPercent:function(f,b){function g(k,j){var h,i;k=parseInt(k,10);if(b){i=e.host[j]()}else{i=f["initialPx"+j.charAt(0).toUpperCase()+j.slice(1)]}h=(100*k/i).toString()+"%";return h}var e=this;for(var d=0;d0){e._pxToPercent(c,false)}}},_percentToPx:function(d,c,b){if(c===undefined){return undefined}else{if(typeof c!=="string"||(typeof c==="string"&&c.charAt(c.length-1)!=="%")){return parseFloat(c)}else{return parseFloat(c.slice(0,c.length-1))/100*b.widget[d]()}}},_swapPanelsInLayout:function(f,d,c){var e=f[d];f[d]=f[c];f[d].index=d;f[c]=e;f[c].index=c},_initMenu:function(){var c=this;if(!c._menuInitialized){var f=c.element.id,e="",d=function(h,g,i){c._menu.jqxMenu("disable","dockOption"+f,h);c._menu.jqxMenu("disable","autoHideOption"+f,g);c._menu.jqxMenu("disable","closeOption"+f,i)};if(!c.host.jqxMenu){throw new Error("jqxLayout: Missing reference to jqxmenu.js.")}if(c.dockingLayout){e='
          • Float
          • '}c._menu=a('
              '+e+'
            • Dock
            • Auto Hide
            • Close
            ');a("body").append(c._menu);c._menu.jqxMenu({theme:c.theme,width:100,height:"auto",autoOpenPopup:false,mode:"popup",popupZIndex:99999,rtl:c.rtl});c._menuInitialized=true;c._menu.on("itemclick",function(g){c._handleMenuItemClick(a(g.target).text())});var b=function(g){if(c.dockingLayout){return g.allowClose===false}else{return g.allowClose!==true}};c._menu.on("shown",function(){switch(c._contextMenuTarget.type){case"tabbedGroup":d(true,c._contextMenuTarget.allowPin===false||c._contextMenuTarget.pinValid===false,b(c._contextMenuTarget));break;case"layoutPanel":var g=c._contextMenuTarget.parent;if(g.type==="tabbedGroup"){d(true,g.allowPin===false||c._isMiddleTabbedGroup(g),b(g))}else{if(g.type==="autoHideGroup"){d(g.allowUnpin===false,true,b(c._contextMenuTarget))}}break;case"documentPanel":d(true,true,b(c._contextMenuTarget));break}})}},_addRightClickHandler:function(d,b){var c=this;if(c.contextMenu===true){c.addHandler(d,"mousedown.jqxLayout"+c.element.id,function(e){if(c.contextMenu===true&&((e.which&&e.which===3)||(e.button&&e.button===2))){var f=a(window).scrollTop(),g=a(window).scrollLeft();c._contextMenuTarget=b.current;c._menu.jqxMenu("open",parseInt(e.clientX,10)+5+g,parseInt(e.clientY,10)+5+f)}});c.addHandler(d,"contextmenu.jqxLayout"+c.element.id,function(){if(c.contextMenu===true){return false}})}},_handleMenuItemClick:function(f){var e=this,c=e._contextMenuTarget.type,b=e._contextMenuTarget.parent;switch(f){case"Float":switch(c){case"tabbedGroup":e.dockingLayout._floatTabbedGroup(e._contextMenuTarget,e._contextMenuTarget.widget);break;case"layoutPanel":if(b.type==="tabbedGroup"){e.dockingLayout._removeByDragHandler(undefined,b,b.widget,e._contextMenuTarget.index,false)}else{if(b.type==="autoHideGroup"){var d=e._contextMenuTarget.parent.widget.find(".jqx-ribbon-content").children().eq(e._contextMenuTarget.index).find(".jqx-layout-window").children().eq(1).contents();e.dockingLayout._floatAutoHideGroup(e._contextMenuTarget,e._contextMenuTarget.title,d)}}break;case"documentPanel":e.dockingLayout._removeByDragHandler(undefined,b,b.widget,e._contextMenuTarget.index,false);break}break;case"Dock":e._unPin(e._contextMenuTarget.parent);break;case"Auto Hide":switch(c){case"tabbedGroup":e._pin(e._contextMenuTarget);break;case"layoutPanel":e._pin(e._contextMenuTarget.parent);break}break;case"Close":switch(c){case"tabbedGroup":e._close(e._contextMenuTarget);break;case"layoutPanel":if(e._contextMenuTarget.parent.items.length>1){e._close(e._contextMenuTarget)}else{e._close(e._contextMenuTarget.parent)}break;case"documentPanel":e._closeDocumentPanel(e._contextMenuTarget.index,e._contextMenuTarget.parent.items,e._contextMenuTarget.parent,e._contextMenuTarget.parent.widget,false);break}}},_closeDocumentPanel:function(c,f,b,j,e){var g=this;if(e===false){j.jqxRibbon("removeAt",c)}if(f.length>1){var h=false;f[c].removed=true;g._updateLayout(f);for(var d=0;d1;if(d){if(c.parent.items.length===2){var b=c.index===0?1:0;if(c.parent.items[b].type==="autoHideGroup"){d=false}}}if(d){d=d&&!e._isMiddleTabbedGroup(c)}c.pinValid=d;if(d===false){c.widget.find(".jqx-layout-pseudo-window-pin-background").addClass("jqx-fill-state-disabled")}},_mouseupHandler:function(d){var c=this;try{if(c.dockingLayout){c._docUP(d);c.dockingLayout._windowCreate=false;c.dockingLayout._hideOverlays()}}catch(b){}}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxDockingLayout","jqxLayout",{});a.extend(a.jqx._jqxDockingLayout.prototype,{defineInstance:function(){if(this.base===null){throw new Error("jqxDockingLayout: Missing reference to jqxlayout.js.")}this.base.dockingLayout=this;var b={events:["float","dock"]};a.extend(true,this,b)},createInstance:function(){var b=this;if(!b.base.host.jqxWindow){throw new Error("jqxDockingLayout: Missing reference to jqxwindow.js.")}b._oldIE=a.jqx.browser.msie&&a.jqx.browser.version<9;b._addClasses();b._createOverlay();b._createEdgeOverlays()},loadLayout:function(b){if(b!==undefined&&a.isEmptyObject(b)===false){var c=this.base,d=c.element.id;if(a("."+d+"FloatGroup").length>0){a("."+d+"FloatGroup").off();a("."+d+"FloatGroup").jqxWindow("destroy")}c.loadLayout(b)}},destroy:function(){var b=this,c=b.base,d=c.element.id;if(a("."+d+"FloatGroup").length>0){a("."+d+"FloatGroup").off();a("."+d+"FloatGroup").jqxWindow("destroy")}b._removeHandlers();c.destroy()},addFloatGroup:function(c,k,d,j,h,e,g){var b=this.base,i={type:"floatGroup",width:c,height:k,position:d,items:[],programmaticallyAdded:true},f={type:j,title:h,content:e,initContent:g};i.items.push(f);b.layout.push(i);b.render()},_raiseEvent:function(f,c){if(c===undefined){c={owner:null}}var d=this.events[f];c.owner=this;var e=new a.Event(d);e.owner=this;e.args=c;if(e.preventDefault){e.preventDefault()}var b=this.base.host.trigger(e);return b},_addClasses:function(){var b=this.base;b.host.addClass(b.toThemeProperty("jqx-docking-layout"))},_removeHandlers:function(){var b=this,c=b.base,d=c.element.id;b.removeHandler(a(document),"mousemove.jqxDockingLayout"+d);b.removeHandler(c.host,"mouseleave.jqxDockingLayout"+d);if(c._touchDevice){b.removeHandler(a(document),"touchmove.jqxDockingLayout"+d);b.removeHandler(a(document),"touchend.jqxDockingLayout"+d)}},_removeByDragHandler:function(b,i,e,g,d){if(g===undefined){g=b.args.draggedIndex}if(d===undefined){d=true}if(!e.hasClass("jqx-ribbon")){e=e.find(".jqx-ribbon")}var f=this,j=i.items,c=j[g],h=i.widget.find(".jqx-ribbon-content-section").eq(g).contents().detach();f._createFloatGroup(b,c.title,h,"documentGroup",i,c);f.base._closeDocumentPanel(g,j,i,e,d)},_floatTabbedGroup:function(h,f,b){var g=this,l,d,j=[],c=f.find(".jqx-ribbon");for(var e=0;e
            ');a("body").append(d);if(f==="documentGroup"){if(B){o=B.args.x;n=B.args.y}v=F.widget.width();u=F.widget.height();D=z}else{if(f==="tabbedGroup"){if(B){o=B.pageX;n=B.pageY}v=F.widget.width();u=F.widget.height();D="";b=a("
            ");var G=a("
            "),E=a('
              ');for(var C=0;C");var r=a("
            • "+h.title+"
            • ");E.append(r);t.append(z[C]);G.append(t)}b.append(E);b.append(G);D=b}else{if(f==="autoHideGroup"){if(B){o=B.pageX;n=B.pageY}v=F.parent.widget.find(".jqx-ribbon-content").width();u=F.parent.widget.height();D=z}}}if(!o&&!n){var c=g.host.offset();o=(g.host.width()-v)/2+c.left+100;n=(g.host.height()-u)/2+c.top+10}d.on("moved close",function(j){l._hideOverlays();var i=d.current;if(j.type==="moved"){i.position.x=j.args.x;i.position.y=j.args.y;if(i._overlayGroup){l._updateOverlayGroup(i._overlayGroup)}l._clearTextSelection();l._windowCreate=false;l._hideOverlays()}else{if(i._overlayGroup){i._overlayGroup.removed=true;l._updateOverlayGroups()}i.removed=true;g._updateLayout(g.layout)}});d.on("resized",function(j){var i=d.current,k=a(this).offset();i.width=j.args.width;i.height=j.args.height;i.position.x=k.left;i.position.y=k.top;if(i._overlayGroup){l._updateOverlayGroup(i._overlayGroup)}});d.jqxWindow({theme:g.theme,title:H,content:D,width:v,maxWidth:null,height:u,maxHeight:null,position:{x:o-100,y:n-10},closeButtonAction:"close",rtl:g.rtl,initContent:function(){var k=d.find(".jqx-window-header"),i=g._touchDevice?"touchstart":"mousedown",j;if(f==="autoHideGroup"){j=F.parent}else{j=F}if(B){l._draggedWindow={fromGroup:j,fromPanel:p,title:H,element:d};k.trigger("mousedown",[o,n]);l._windowDragged=true;l._windowCreate=true;l._interval();if(g.resizable){g._overlay[0].style.display="block"}l._showEdgeOverlays()}k.on(i,function(){l._windowDragged=true;if(d.current._overlayGroup){d.current._overlayGroup.self=true}l._interval();if(g.resizable){g._overlay[0].style.display="block"}l._draggedWindow={fromGroup:j,fromPanel:p,title:H,element:d};l._showEdgeOverlays()});k.on("mouseup",function(){l._hideOverlays();l._windowCreate=false});if(f==="tabbedGroup"){b.jqxRibbon({theme:g.theme,width:"100%",height:"100%",position:"bottom",selectedIndex:e,selectionMode:"click",animationType:"none",rtl:g.rtl,reorder:true,_removeByDrag:true});b.on("select",function(x){if(!(x.owner.widgetName&&x.owner.widgetName!=="jqxRibbon")){var y=d.current.items[0].items[x.args.selectedIndex];d.jqxWindow("setTitle",y.title);y.selected=true}});b.on("unselect",function(x){if(!(x.owner.widgetName&&x.owner.widgetName!=="jqxRibbon")){d.current.items[0].items[x.args.unselectedIndex].selected=false}});b.on("reorder",function(x){g._swapPanelsInLayout(d.current.items[0].items,x.args.newIndex,x.args.oldIndex)});b.on("_removeByDrag",function(x){l._removeByDragHandler(x,d.current.items[0],b);if(d.current.items[0].items.length===1){b.jqxRibbon({_removeByDrag:false})}})}}});var m={type:"floatGroup",parent:{type:"host"},widget:d,position:{x:o-100,y:n-10},index:g.layout.length,width:v,height:u},s,q;d.current=m;if(p){m.items=[];g._copyItem(p,m.items);s=m.items;q=m}else{m.items=[{type:"tabbedGroup",items:[],parent:m,widget:b}];s=m.items[0].items;for(var A=0;A');var c=a('
              ');e._overlay.append(c);e._overlayCenter=e._overlay.find(".jqx-docking-layout-overlay-square-center").children();e._dropOverlay=a('
              ');if(!f._ie7){f.host.append(e._overlay,e._dropOverlay)}else{a("body").append(e._overlay,e._dropOverlay)}e._addOverlayHandlers();e._squares=e._overlay.find(".jqx-docking-layout-overlay-square-top").add(e._overlay.find(".jqx-docking-layout-overlay-square-left")).add(e._overlay.find(".jqx-docking-layout-overlay-square-center")).add(e._overlay.find(".jqx-docking-layout-overlay-square-right")).add(e._overlay.find(".jqx-docking-layout-overlay-square-bottom"));e._sansCenter=e._squares.not(".jqx-docking-layout-overlay-square-center").find(".jqx-docking-layout-overlay-inner-square");var d=false;function h(k,j,m,l){e._dropOverlay.show();e._dropOverlay[0].style.width=k+"px";e._dropOverlay[0].style.height=j+"px";e._dropOverlay.offset({left:m,top:l})}function g(l){l=l.closest(".jqx-docking-layout-overlay-square");d=l;if(l.find(".jqx-docking-layout-overlay-inner-square").hasClass("jqx-fill-state-disabled")){return}var m=e._dropToGroup.element.width(),k=e._dropToGroup.element.height(),j=e._dropToGroup.element.offset();if(l.hasClass("jqx-docking-layout-overlay-square-top")){h(m,k/2,j.left,j.top)}else{if(l.hasClass("jqx-docking-layout-overlay-square-left")){h(m/2,k,j.left,j.top)}else{if(l.hasClass("jqx-docking-layout-overlay-square-center")&&!e._overlayCenter.hasClass("jqx-docking-layout-square-disabled")){h(m,k,j.left,j.top)}else{if(l.hasClass("jqx-docking-layout-overlay-square-right")){h(m/2,k,j.left+m/2,j.top)}else{if(l.hasClass("jqx-docking-layout-overlay-square-bottom")){h(m,k/2,j.left,j.top+k/2)}else{if(f._touchDevice){e._dropOverlay.hide();d=false}}}}}}}function b(t){var l=e._dropToGroup.settings;if(t.find(".jqx-docking-layout-overlay-inner-square").hasClass("jqx-fill-state-disabled")){e._hideOverlays();return}if(t.hasClass("jqx-docking-layout-overlay-square-top")){e._dropHandler(0,"vertical","height","top")}else{if(t.hasClass("jqx-docking-layout-overlay-square-left")){e._dropHandler(0,"horizontal","width","left")}else{if(t.hasClass("jqx-docking-layout-overlay-square-center")){var p=e._getDraggedWindowInformation(),s=p.title,q=p.content,k,r;if(l.type==="documentGroup"){k=l.widget;r="documentPanel"}else{if(l.type==="tabbedGroup"){if(l.parent.type==="floatGroup"){k=l.widget}else{k=l.widget.find(".jqx-ribbon")}r="layoutPanel"}}if(l.type==="layoutGroup"){e._dropToEmptyLayoutGroup(p)}else{for(var n=0;n=d&&l<=d+b&&k>=j&&k<=j+m){if(((o.settings.type==="documentGroup"&&g._draggedWindow.fromGroup.type==="documentGroup")||(o.settings.type==="tabbedGroup"&&(g._draggedWindow.fromGroup.type==="tabbedGroup"||g._draggedWindow.fromGroup.type==="autoHideGroup"))||(o.settings.type==="layoutGroup"))&&o.settings.allowDrop!==false){g._overlayCenter.removeClass(c.toThemeProperty("jqx-fill-state-disabled"))}else{g._overlayCenter.addClass(c.toThemeProperty("jqx-fill-state-disabled"));if(o.settings.parent.type==="floatGroup"){return}}if(o.settings.parent.type==="floatGroup"){g._sansCenter.addClass(c.toThemeProperty("jqx-fill-state-disabled"))}else{g._sansCenter.removeClass(c.toThemeProperty("jqx-fill-state-disabled"))}g._overlay[0].style.display="block";g._overlay.offset({left:parseInt(d+b/2-h/2,10),top:parseInt(j+m/2-n/2,10)});g._dropToGroup=o;return}}}g._overlay[0].style.display="none"},_dropHandler:function(p,u,w,z){var f=this,d=f.base,h=f._dropToGroup.settings,c=h.parent,m=f._getDraggedWindowInformation(),A=m.title,r=m.content,o=m.groupType,y=m.itemType,l=[],b,v;if(c.orientation===u){b=h.index+p;v={type:o,parent:c};v[w]=f._draggedWindow.element[w]();for(var t=0;t
              ',j='
              ',i;if(e==="left"||e==="top"){i=g+j}else{i=j+g}var f=a('
              '+i+"
              ");return f}var c=this,d=c.base;c._leftOverlay=b("left");c._rightOverlay=b("right");c._topOverlay=b("top");c._bottomOverlay=b("bottom");c._edgeOverlays=c._leftOverlay.add(c._rightOverlay).add(c._topOverlay).add(c._bottomOverlay);if(!d._ie7){d.host.append(c._edgeOverlays)}else{a("body").append(c._edgeOverlays)}c._addEdgeOverlaysHandlers()},_addEdgeOverlaysHandlers:function(){function g(k,j,m,l){d._dropOverlay.show();d._dropOverlay[0].style.width=k;d._dropOverlay[0].style.height=j;d._dropOverlay.offset({left:m,top:l})}var d=this,e=d.base,i=e.element.id,c,f=false;function h(j){c=e.host.offset();j=a(j).closest(".jqx-docking-layout-overlay-square-edge")[0];f=j;switch(j){case d._leftOverlay[0]:g("100px",e.host.height()+"px",c.left,c.top);break;case d._rightOverlay[0]:g("100px",e.host.height()+"px",c.left+e.host.width()-100,c.top);break;case d._topOverlay[0]:g(e.host.width()+"px","100px",c.left,c.top);break;case d._bottomOverlay[0]:g(e.host.width()+"px","100px",c.left,c.top+e.host.height()-100);break;default:if(e._touchDevice){f=false}}}function b(j){switch(j){case d._leftOverlay[0]:d._dropToEdge("left",0,"horizontal","width");break;case d._rightOverlay[0]:d._dropToEdge("right",e.layout[0].items.length-1,"horizontal","width");break;case d._topOverlay[0]:d._dropToEdge("top",0,"vertical","height");break;case d._bottomOverlay[0]:d._dropToEdge("bottom",e.layout[0].items.length-1,"vertical","height");break}}if(!e._touchDevice){d.addHandler(d._edgeOverlays,"mouseenter.jqxDockingLayout"+i,function(){h(this)});d.addHandler(d._edgeOverlays,"mouseleave.jqxDockingLayout"+i,function(){d._dropOverlay.hide()});d.addHandler(d._edgeOverlays,"mouseup.jqxDockingLayout"+i,function(){b(this)})}else{d.addHandler(a(document),"touchmove.jqxDockingLayout"+i,function(k){if(d._windowDragged){k.preventDefault();var l=k.originalEvent.touches[0],j=a(document.elementFromPoint(l.pageX,l.pageY));h(j)}});d.addHandler(a(document),"touchend.jqxDockingLayout"+i,function(){if(f!==false){b(f);f=false}})}},_dropToEdge:function(c,d,u,w){var f=this,b=f.base,h=b.layout[0],m=f._getDraggedWindowInformation(),z=m.title,r=m.content,o=m.groupType,y=m.itemType,l=[],v,q;f._removeFloatGroupObject(f._draggedWindow.element.current);if(h.orientation===u){v={type:o,parent:h};v[w]=f._draggedWindow.element[w]();for(var t=0;t=0;b--){var c=d[b];if(c.removed===true){d.splice(b,1)}}},_clearTextSelection:function(){try{if(document.selection){document.selection.empty()}else{if(window.getSelection){if(window.getSelection().empty){window.getSelection().empty()}else{if(window.getSelection().removeAllRanges){window.getSelection().removeAllRanges()}}}}}catch(b){}}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxResponsivePanel","",{});a.extend(a.jqx._jqxResponsivePanel.prototype,{defineInstance:function(){var b={width:null,height:null,collapseBreakpoint:1000,collapseWidth:null,toggleButton:null,toggleButtonSize:30,animationType:"fade",animationDirection:"left",animationShowDelay:"fast",animationHideDelay:"fast",autoClose:true,initContent:null,_collapsed:false,_opened:false,_init:false,_ie7:(a.jqx.browser.msie&&a.jqx.browser.version<8),events:["collapse","expand","open","close"]};a.extend(true,this,b)},createInstance:function(){var b=this;if(b.initContent&&b._init===false){b.initContent();b._init=true}b._render(true)},_render:function(c){var d=this;if(c===true&&d.toggleButton){d._toggleButton=a(d.toggleButton);if(d._toggleButton.length===0){throw new Error('jqxResponsivePanel: Invalid toggleButton selector: "'+d.toggleButton+'".')}var b=a('
              ');d._toggleButton.append(b)}d._setSize();d._addClasses();if(c===false){d._removeHandlers()}d._addHandlers();d._checkWindowSize()},render:function(){this._render(false)},refresh:function(b){if(b!==true){this._checkWindowSize()}},destroy:function(b){var c=this;c._removeHandlers();c.host.remove();if(b!==true&&c.toggleButton){c._toggleButton.remove()}},propertyChangedHandler:function(b,c,e,d){if(d!==e&&c!=="toggleButton"&&c!=="initContent"){switch(c){case"width":case"height":b.host.css(c,d);break;case"collapseBreakpoint":b._checkWindowSize();break;case"toggleButtonSize":if(b.toggleButton){b._toggleButton.css({width:d,height:d})}break;default:b.render()}}},open:function(){var b=this;if(b._collapsed===true&&b._opened===false){function d(){b.host.show();b._opened=true;b._raiseEvent("2");if(b.initContent&&b._init===false){b.initContent();b._init=true}}if(b._ie7===true){d();return}switch(b.animationType){case"fade":b.host.fadeIn(b.animationShowDelay,function(){b._raiseEvent("2");b._opened=true;if(b.initContent&&b._init===false){b.initContent();b._init=true}});break;case"slide":var c=b.animationDirection;if(c==="top"){c="up"}else{if(c==="bottom"){c="down"}}b._slide(b.host,{mode:"show",direction:c,duration:b.animationShowDelay});break;case"none":d();break}}},close:function(){var b=this;if(b._collapsed===true&&b._opened===true){if(b._ie7===true){b.host.hide();b._opened=false;b._raiseEvent("3");return}switch(b.animationType){case"fade":b.host.fadeOut(b.animationHideDelay,function(){b._opened=false;b._raiseEvent("3")});break;case"slide":var c=b.animationDirection;if(c==="top"){c="up"}else{if(c==="bottom"){c="down"}}b._slide(b.host,{mode:"hide",direction:c,duration:b.animationHideDelay});break;case"none":b.host.hide();b._opened=false;b._raiseEvent("3");break}}},_raiseEvent:function(f,c){if(c===undefined){c={owner:null}}var d=this.events[f];c.owner=this;var e=new a.Event(d);e.owner=this;e.args=c;if(e.preventDefault){e.preventDefault()}var b=this.host.trigger(e);return b},_setSize:function(){var b=this;b.host.css("width",b.width);b.host.css("height",b.height);if(b.toggleButton){b._toggleButton.css({width:b.toggleButtonSize,height:b.toggleButtonSize})}},_addClasses:function(){var b=this;b.host.addClass(b.toThemeProperty("jqx-responsive-panel"));b.host.addClass(b.toThemeProperty("jqx-widget"));b.host.addClass(b.toThemeProperty("jqx-widget-content"));b.host.addClass(b.toThemeProperty("jqx-rc-all"));if(b.toggleButton){b._toggleButton.addClass(b.toThemeProperty("jqx-responsive-panel-button"));b._toggleButton.addClass(b.toThemeProperty("jqx-fill-state-normal"));b._toggleButton.addClass(b.toThemeProperty("jqx-rc-all"))}},isCollapsed:function(){return this._collapsed},isOpened:function(){return this._opened},_addHandlers:function(){var b=this,c=b.element.id;b.addHandler(b.host,"click.jqxResponsivePanel"+c,function(d){d.stopPropagation()});b.addHandler(a(document),"click.jqxResponsivePanel"+c,function(){if(b._collapsed===true&&b.autoClose===true){b.close()}});b.addHandler(a(window),"resize.jqxResponsivePanel"+c,function(){setTimeout(function(){b._checkWindowSize()},0)});if(b.toggleButton){b.addHandler(b._toggleButton,"mouseenter.jqxResponsivePanel"+c,function(){b._toggleButton.addClass(b.toThemeProperty("jqx-fill-state-hover"))});b.addHandler(b._toggleButton,"mouseleave.jqxResponsivePanel"+c,function(){b._toggleButton.removeClass(b.toThemeProperty("jqx-fill-state-hover"))});b.addHandler(b._toggleButton,"mousedown.jqxResponsivePanel"+c,function(){b._toggleButton.addClass(b.toThemeProperty("jqx-fill-state-pressed"))});b.addHandler(a(document),"mouseup.jqxResponsivePanel"+c,function(){b._toggleButton.removeClass(b.toThemeProperty("jqx-fill-state-pressed"))});b.addHandler(b._toggleButton,"click.jqxResponsivePanel"+c,function(d){d.stopPropagation();if(b._opened===true){b.close()}else{b.open()}})}},_removeHandlers:function(){var b=this,c=b.element.id;b.removeHandler(b.host,"click.jqxResponsivePanel"+c);b.removeHandler(a(document),"click.jqxResponsivePanel"+c);b.removeHandler(a(window),"resize.jqxResponsivePanel"+c);if(b.toggleButton){b.removeHandler(b._toggleButton,"mouseenter.jqxResponsivePanel"+c);b.removeHandler(b._toggleButton,"mouseleave.jqxResponsivePanel"+c);b.removeHandler(b._toggleButton,"mousedown.jqxResponsivePanel"+c);b.removeHandler(a(document),"mouseup.jqxResponsivePanel"+c);b.removeHandler(b._toggleButton,"click.jqxResponsivePanel"+c)}},_checkWindowSize:function(){var c=this;var b=this.host.parent().width();if(c._collapsed===false&&b<=c.collapseBreakpoint){if(c.toggleButton){c._toggleButton.show()}if(c._opened===false){c.host.hide()}c.host.removeClass(c.toThemeProperty("jqx-responsive-panel-expanded"));c.host.addClass(c.toThemeProperty("jqx-responsive-panel-collapsed"));c._collapsed=true;c._raiseEvent("0");if(c.collapseWidth){c.host.width(c.collapseWidth)}c.host.trigger("resize")}else{if(c._collapsed===true&&b>c.collapseBreakpoint){if(c.collapseWidth){c.host.width(c.width)}if(c.toggleButton){c._toggleButton.hide()}if(c._opened===false){c.host.show()}c.host.removeClass(c.toThemeProperty("jqx-responsive-panel-collapsed"));c.host.addClass(c.toThemeProperty("jqx-responsive-panel-expanded"));c._collapsed=false;c._raiseEvent("1");if(c.initContent&&c._init===false){c.initContent();c._init=true}c.host.trigger("resize")}}},_slide:function(f,e){var m=this;if(!m.activeAnimations){m.activeAnimations=[]}if(m.activeAnimations.length>0){for(var k=0;k0){s.data(h+t[o],s[0].style[t[o]])}}},restore:function(s,u){var t,o;for(o=0;o").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),i={width:o.width(),height:o.height()},u=document.activeElement;try{u.id}catch(t){u=document.body}o.wrap(v);if(o[0]===u||a.contains(o[0],u)){a(u).focus()}v=o.parent();if(o.css("position")==="static"){v.css({position:"relative"});o.css({position:"relative"})}else{a.extend(s,{position:o.css("position"),zIndex:o.css("z-index")});a.each(["top","left","bottom","right"],function(w,x){s[x]=o.css(x);if(isNaN(parseInt(s[x],10))){s[x]="auto"}});o.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}o.css(i);return v.css(s).show()},removeWrapper:function(i){var o=document.activeElement;if(i.parent().is(".ui-effects-wrapper")){i.parent().replaceWith(i);if(i[0]===o||a.contains(i[0],o)){a(o).focus()}}return i}};var p=["position","top","bottom","left","right","width","height"],l=e.mode,r=l==="show",q=e.direction||"left",g=(q==="up"||q==="down")?"top":"left",c=(q==="up"||q==="left"),b,j={};d.save(f,p);f.show();b=e.distance||f[g==="top"?"outerHeight":"outerWidth"](true);d.createWrapper(f).css({overflow:"hidden"});if(r){f.css(g,c?(isNaN(b)?"-"+b:-b):b)}j[g]=(r?(c?"+=":"-="):(c?"-=":"+="))+b;var n=function(){f.clearQueue();f.stop(true,true)};m.activeAnimations.push(f);f.animate(j,{duration:e.duration,easing:e.easing,complete:function(){m.activeAnimations.pop(f);if(l==="show"){m._opened=true;m._raiseEvent("2");if(m.initContent&&m._init===false){m.initContent();m._init=true}}else{if(l==="hide"){f.hide();m._opened=false;m._raiseEvent("3")}}d.restore(f,p);d.removeWrapper(f)}});return n}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxTagCloud","",{});a.extend(a.jqx._jqxTagCloud.prototype,{defineInstance:function(){var b={width:null,height:null,source:null,disabled:false,rtl:false,valueMember:"value",displayMember:"label",urlMember:"url",urlBase:"",autoBind:true,takeTopWeightedItems:false,displayLimit:null,minValueToDisplay:0,maxValueToDisplay:0,minFontSize:10,maxFontSize:24,fontSizeUnit:"px",displayValue:false,sortBy:"none",alterTextCase:"none",sortOrder:"ascending",textColor:null,minColor:null,maxColor:null,tagRenderer:null};a.extend(true,this,b);return b},createInstance:function(){var b=this;b.render();b.dataBind(b.source,true)},dataBind:function(b,c){var h=this;h.records=[];var e=b._source?true:false;var i;if(e){i=b;b=b._source}else{b.datafields=[{name:h.displayMember},{name:h.valueMember},{name:h.urlMember}];i=new a.jqx.dataAdapter(b,{autoBind:true})}var j=function(){if(b.type!==undefined){i._options.type=b.type}if(b.formatdata!==undefined){i._options.formatData=b.formatdata}if(b.contenttype!==undefined){i._options.contentType=b.contenttype}if(b.async!==undefined){i._options.async=b.async}};var f=function(k){k._setSourceData(i);k._raiseEvent(1,{records:k.records});k._renderTags()};j(this);switch(b.datatype){case"local":case"array":default:if(b.localdata!=null||a.isArray(b)){i.unbindBindingUpdate(h.element.id);if(h.autoBind||(!h.autoBind&&!c)){i.dataBind()}f(h);i.bindBindingUpdate(h.element.id,function(k){f(h,k)})}break;case"json":case"jsonp":case"xml":case"xhtml":case"script":case"text":case"csv":case"tab":if(b.localdata!=null){i.unbindBindingUpdate(h.element.id);if(h.autoBind||(!h.autoBind&&!c)){i.dataBind()}f(h);i.bindBindingUpdate(h.element.id,function(){f(h)});return}var d={};if(i._options.data){a.extend(i._options.data,d)}else{if(b.data){a.extend(d,b.data)}i._options.data=d}var g=function(){f(h)};i.unbindDownloadComplete(h.element.id);i.bindDownloadComplete(h.element.id,g);if(h.autoBind||(!h.autoBind&&!c)){i.dataBind()}}h._raiseEvent(2,{records:h.records})},destroy:function(){var b=this;b.removeHandler(b._el,"keydown");b.removeHandler(b._el,"click");b.host.empty();b.host.remove()},findTagIndex:function(c){var d=this;for(var b=0;b=b){d.hiddenList[g]++}}d._renderTags()}})}else{d.records.splice(b,0,e);for(var c=b+1;c=b){d.hiddenList[c]++}}d._renderTags()}},updateAt:function(b,d){var c=this;if(d[this.displayMember]===undefined){throw new Error("jqxTagCloud: Update tag requires a valid displayMember field to be supplied in the parameter")}d.index=b;d.uid=c.records[b].uid;if(c.source.updateTag&&typeof(c.source.updateTag)==="function"){c.source.updateTag(b,d,function(e){if(e){a.each(d,function(f,g){c.records[b][f]=g});c._renderTags()}})}else{a.each(d,function(e,f){c.records[b][e]=f});c._renderTags()}},removeAt:function(b){var d=this;if(d.source.deleteTag&&typeof(d.source.deleteTag)==="function"){d.source.deleteTag(b,function(f){if(f){d.records.splice(b,1);for(var e=b;eb){d.hiddenList[e]--}else{if(d.hiddenList[e]===b){d.hiddentList.splice(b,1)}}}}})}else{d.records.splice(b,1);for(var c=b;cb){d.hiddenList[c]--}else{if(d.hiddenList[c]===b){d.hiddentList.splice(b,1)}}}}d._renderTags()},hideItem:function(b){var d=this;if(!(typeof(b)!=="number"||d.hiddenList.indexOf(b)!==-1)){d.hiddenList.push(b);var e=-1;for(var c=0;c");b.host.addClass(b.toThemeProperty("jqx-widget jqx-tag-cloud"));b._setRtl();b.host.append(b._el);b.focusedItem=null;b.minColor=b._parseColor(b.minColor);b.maxColor=b._parseColor(b.maxColor);b.displayLimit=parseInt(b.displayLimit);if(b.disabled){b.host.addClass(b.toThemeProperty("jqx-fill-state-disabled"))}b.addHandler(b._el,"click",function(d){if(a(document.activeElement).parents("#"+b._el[0].parentElement.id).length){}else{if(b.focusedItem!=null){a(b.focusedItem).focus()}else{a(b._el).find("a")[0].focus();b.focusedItem=document.activeElement}}if(b.disabled){d.preventDefault()}if(d.target.tagName.toLowerCase()==="a"){d.target.focus();b.focusedItem=document.activeElement}if(d.target.tagName.toLowerCase()==="li"){a(d.target).find("a").focus();b.focusedItem=document.activeElement}var c=a(d.target).closest("li").index();if(c!==-1){b._raiseEvent(0,{label:b.renderedData[c][b.displayMember],url:b.renderedData[c][b.urlMember],value:b.renderedData[c][b.valueMember],visibleIndex:c,index:b.renderedData[c].index,target:a(d.target).closest("li")[0],originalEvent:d})}});b._addKeyboardSupport()},resize:function(c,b){var d=this;d.width=c;d.height=b;d._updateSize()},propertyChangedHandler:function(b,c,f,e){var d=this;if(c==="source"){d.dataBind(b.source)}if(c==="displayLimit"){d[c]=parseInt(e)}if(c==="minColor"||c==="maxColor"){d[c]=d._parseColor(e)}if(c==="rtl"){d._setRtl();return}if(c==="width"||c==="height"){d._updateSize();return}if(c==="textColor"){if(!(d.minColor&&d.maxColor)){d._updateColor();return}}d._renderTags()},_alterCase:function(d){var c=this;function e(f){return f.replace(/\w\S*/g,function(g){return g.charAt(0).toUpperCase()+g.substr(1).toLowerCase()})}if(c.alterTextCase!=="none"){switch(c.alterTextCase){case"allLower":for(var b=0;b");var l="";if(null!==m.tagRenderer&&typeof(m.tagRenderer)==="function"){l=m.tagRenderer.apply(m,arguments)}else{l=k[m.displayMember]+(m.displayValue?"("+k[m.valueMember]+")":"")}l=a('
              '+H+"")}}else{if(P.indexOf("jqx-data-table")>=0||P.indexOf("jqx-grid")>=0){if(h(K).find("tr").length>0){h(K).replaceWith('
              '+H+"
              ")}else{h(K).replaceWith('
              ')}}else{if(P.indexOf("jqx-list-box")>=0||P.indexOf("jqx-drop-down-list")>=0||P.indexOf("jqx-combo-box")>=0){if(h(K).find("option").length>0){h(K).replaceWith('")}else{if(h(K).find("li").length>0){h(K).replaceWith('
                '+H+"
              ")}else{h(K).replaceWith('
              ')}}}else{if(P.indexOf("jqx-list-menu")>=0){h(K).replaceWith('
                '+H+"
              ")}else{if(P.indexOf("jqx-tooltip")>=0){var F=h(K).children();F.detach();h(F).insertAfter(h(K));h.each(I,function(){if(h(F)[0]){h(F)[0].setAttribute(this.name,this.value)}});h(K).remove();K=F}else{h(K).replaceWith(L)}}}}}}}}M=Q.find("#jqx-ngwidget").removeAttr("id");h.each(I,function(){if(h(M)[0]){h(M)[0].setAttribute(this.name,this.value)}})}var O=K[0];if(M&&M.length){O=M[0]}var N=this;if(O.id==""){if(i==c[E]){c[E]=0}O.id=E+c[E]++}h.each(S,function(T,U){if(T!==E&&T!="jqxNgModel"&&T.indexOf("jqxOn")==-1&&T!="jqxData"&&T!="jqxWatchSettings"&&T!="jqxCreated"&&T!="jqxSource"&&T!="jqxCreate"&&T!="jqxSettings"&&T.indexOf("jqx")>=0){if(!e[O.id]){e[O.id]=new Array()}e[O.id].push({label:T,value:S.$attr[T]})}});return h(O)}function t(G,H){function F(L){H.filesCount=0;var I=L.length;if(L.scripts){var K=L.scripts.length;for(var N in L.deps){K++;var M=L.deps[N];K+=M.length}I=K}var J=function(S,P){var R=0;var O=0;var Q=function(){var Y=S[R];var T=h('script[src*="'+Y+'"]').length;if(T===0){var V=document.getElementsByTagName("head")[0];var U=document.createElement("script");U.type="text/javascript";var X=function(){H.filesCount++;O++;g[Y]=false;if(r[Y]!=i){h.each(r[Y],function(){this.documentReady=true;if(this.scriptsLoaded){this.scriptsLoaded()}})}r[Y]=true;if(H.filesCount==I){H.documentReady=true;if(H.scriptsLoaded){H.scriptsLoaded()}return}if(O===S.length&&P){P()}};if(U.addEventListener){U.addEventListener("load",X,false)}else{if(window.attachEvent){U.attachEvent("onreadystatechange",function(){if(U.readyState=="complete"||U.readyState=="loaded"){X()}})}}g[Y]=true;var W=l;if(Y=="globalize.js"){W=l+"globalization/"}U.src=W+Y;V.appendChild(U);R++;if(R0){F=F[0]}var H=q.element(F);var G=H.injector();if(E==i){E=F.innerHTML}G.invoke(["$compile","$rootScope",function(K,I){var J=H.html(E).scope();K(H)(J||I);if(!/^\$(digest|apply)$/.test(I.$$phase)){I.$digest()}else{if(!/^\$(digest|apply)$/.test(J.$$phase)){J.$digest()}}}])};function o(E){var F={};var G=function(V,O,U,J,I){if(h(O).attr("data-jqx-ng-include")){h(O).removeAttr("data-jqx-ng-include");var K=h(O.children()).detach();O=w(O,true,U,E);O.append(K);z(O)(V);var T=true;for(var N in U){if(N.toString().indexOf("jqx")==-1){continue}if(V[U[N]]!=i){T=false}if(U[N].split(".").length>1){var L=U[N].split(".");for(var M=0;M0){this._removeHandlers();if(this.showTooltip==true){this.host.jqxTooltip("destroy")}this.host.empty()}this.host.addClass(this.toThemeProperty("jqx-widget"));this.host.addClass(this.toThemeProperty("jqx-bulletchart"));this.host.width(this.width);this.host.height(this.height);var n=this.host.width();var d=this.host.height();var l;var j=this.rtl?"rtl":"ltr";if(this.orientation=="horizontal"){l=a("
              "+this.title+"
              "+this.description+"
              ")}else{if(this.orientation=="vertical"){l=a("
              "+this.title+"
              "+this.description+"
              ")}}this.host.append(l);var k=l.outerWidth();var g=l.outerHeight();l.remove();var e,h,i,b,o,m,f,c;if(this.orientation=="horizontal"){e="jqx-bulletchart-title-container-horizontal";h="jqx-bulletchart-chart-container-horizontal";i=this._checkPercentage(this.barSize,this.host);b=k;o=this.barSize;m=0;f=n-b;c=o;if(this.width&&this.width.toString().indexOf("%")>=0){var f=parseFloat(parseFloat(f*100)/n).toString()+"%";var b=parseFloat(parseFloat(b*100)/n).toString()+"%";this._percentageWidth=true}}else{if(this.orientation=="vertical"){e="jqx-bulletchart-title-container-vertical";h="jqx-bulletchart-chart-container-vertical";i=0;b="100%";o=g;m=this._checkPercentage(this.barSize,this.host);f=this.barSize;c=d-o}}if(this.rtl==false||(this.rtl==true&&this.orientation=="vertical")){this.host.append("
              ")}this.host.append("
              ");if(this.rtl==true&&this.orientation=="horizontal"){this.host.append("
              ")}this._titleContainer=a("#"+this.element.id+"titleContainer");this._chartContainer=a("#"+this.element.id+"ChartContainer");this._titleContainer.css({width:b,height:o});this._chartContainer.css({width:f,height:c});this._min=this.ranges[0].startValue;this._max=this.ranges[this.ranges.length-1].endValue;this._interval=this._max-this._min;this._valueToPixelsHorizontal=this._chartContainer.width()/this._interval;this._valueToPixelsVertical=this._chartContainer.height()/this._interval;this._checkValues();this._appendRanges();this._appendPointerAndTarget();this._appendTitleAndDescription();if(this.ticks.position!="none"){this._appendTicksAndLabels()}if(this.disabled==true){this.host.addClass(this.toThemeProperty("jqx-fill-state-disabled"))}if(this.showTooltip==true){if(this.host.jqxTooltip!=undefined){this._initializeTooltip();this.host.data().jqxWidget=this}else{throw new Error("jqxBulletChart: Missing reference to the following module: 'jqxtooltip.js'.")}}this._updateValue(this.pointer.value,0,true)},refresh:function(b){if(!b){this.render()}},val:function(b){if(arguments.length==0||(b!=null&&typeof(b)=="object")){return this.pointer.value}else{if(b>this._max){b=this._max}else{if(bthis._max){this.pointer.value=this._max}else{if(this.pointer.valuethis._max){this.target.value=this._max}else{if(this.target.value
              "}else{if(this.orientation=="vertical"){var b=(f.startValue-this._min)*this._valueToPixelsVertical;var k=(f.endValue-f.startValue)*this._valueToPixelsVertical;l="
              "}}e+=l}this._chartContainer.append(e)},_appendPointerAndTarget:function(){var o="";var m=this.element.id+"Pointer";var f=this.element.id+"Target";var l=this.pointer.size;var k=this.target.value;var e=this.target.size;var j=k>0?0:parseInt(e);var p=this.pointer.color.length>0?"":this.toThemeProperty("jqx-fill-state-pressed");var g=this.target.color.length>0?"":this.toThemeProperty("jqx-fill-state-pressed");if(this.orientation=="horizontal"){var c=this._normaliseValue(l);var n=this._checkPercentage(l,this._chartContainer);var d=this.rtl?"right":"left";var t=(k-this._min)*this._valueToPixelsHorizontal-j;var u=t+parseInt(e)-this._chartContainer.width();if(t<0){t=0}else{if(u>0){t-=u}}var i=this._normaliseValue(e);o+="
              ";o+="
              "}else{if(this.orientation=="vertical"){var r=this._chartContainer.width();var q=this._normaliseValue(l);var s=this._checkPercentage(l,this._chartContainer);var b=(k-this._min)*this._valueToPixelsVertical-j;var u=b+parseInt(e)-this._chartContainer.height();if(b<0){b=0}else{if(u>0){b-=u}}var h=this._normaliseValue(e);o+="
              ";o+="
              "}}this._chartContainer.append(o)},_updatePointer:function(c,i){var h=a("#"+this.element.id+"Pointer");if(c.value>this._max){this.pointer.value=this._max}else{if(c.valuethis._max){this.target.value=this._max}else{if(b.value0?0:k;if(this.orientation=="horizontal"){var i=this.rtl?"right":"left";var j=(h-this._min)*this._valueToPixelsHorizontal-c;var g=j+k-this._chartContainer.width();if(j<0){j=0}else{if(g>0){j-=g}}if(this.rtl==false){e.css("left",j)}else{e.css("right",j)}e.width(k)}else{if(this.orientation=="vertical"){var f=(h-this._min)*this._valueToPixelsVertical-c;var g=f+k-this._chartContainer.height();if(f<0){f=0}else{if(g>0){f-=g}}e.css({bottom:f,height:k})}}if(this.showTooltip==true){this._updateTooltip()}}if(b.label!=d.label){if(this.showTooltip==true){this._updateTooltip()}}if(b.color!=d.color){if(b.color==""){e.css("background-color","");e.addClass(this.toThemeProperty("jqx-fill-state-pressed"))}else{e.removeClass(this.toThemeProperty("jqx-fill-state-pressed"));e.css("background-color",b.color)}}},_appendTitleAndDescription:function(){var d;if(this.orientation=="horizontal"){if(this.rtl==true){d=this.toThemeProperty("jqx-bulletchart-title-description-rtl")}else{d=this.toThemeProperty("jqx-bulletchart-title-description-ltr")}}else{d=this.toThemeProperty("jqx-bulletchart-title-description-vertical")}var g=this.rtl?"rtl":"ltr";var b="
              "+this.title+"
              "+this.description+"
              ";var e=a("
              "+b+"
              ");this._titleContainer.append(e);var h=e.children();var c=a(h[0]).height()+a(h[1]).height();e.remove();var f;if(this.orientation=="horizontal"){if(this.rtl==false){f=this.toThemeProperty("jqx-bulletchart-title-inner-container")+" "+this.toThemeProperty("jqx-bulletchart-title-inner-container-ltr")}else{f=this.toThemeProperty("jqx-bulletchart-title-inner-container")+" "+this.toThemeProperty("jqx-bulletchart-title-inner-container-rtl")}}else{f=""}this._titleContainer.append("
              "+b+"
              ")},_appendTicksAndLabels:function(){var o=a("
              ");this._chartContainer.append(o);var j="";var e=this._min<0?true:false;var b=this.ticks.size;if(this.orientation=="horizontal"){var k=this._titleContainer.width();var r=this._chartContainer.offset().top-this.host.offset().top;if(this.ticks.position=="both"||this.ticks.position=="far"){var l=this._chartContainer.height()+r}for(var h=0;h<=this._interval;h+=this.ticks.interval){var c=h*this._valueToPixelsHorizontal+k;if(h+this.ticks.interval>this._interval){c-=1}if(e){var d=(h+this._min)==0?true:false;if(d){j+="
              ";e=false}}var n=this._labelValue(h);o.html(n);var p=c-o.width()/2;var m=this.rtl?"right":"left";if(this.ticks.position=="both"||this.ticks.position=="far"){j+="
              ";j+="
              "+n+"
              "}if(this.ticks.position=="both"||this.ticks.position=="near"){j+="
              ";j+="
              "+n+"
              "}}}else{if(this.orientation=="vertical"){var g=this._chartContainer.offset().left-this.host.offset().left;if(this.ticks.position=="both"||this.ticks.position=="far"){var q=this._chartContainer.width()}for(var h=0;h<=this._interval;h+=this.ticks.interval){var f=h*this._valueToPixelsVertical;if(h+this.ticks.interval>this._interval){f-=1}if(e){var d=(h+this._min)==0?true:false;if(d){j+="
              ";e=false}}if(this.ticks.position=="both"||this.ticks.position=="near"){j+="
              ";var n=this._labelValue(h,"near");o.html(n);var p=o.height()/2-1;j+="
              "+n+"
              "}if(this.ticks.position=="both"||this.ticks.position=="far"){j+="
              ";var n=this._labelValue(h,"far");o.html(n);var p=o.height()/2-1;j+="
              "+n+"
              "}}}}this.host.append(j);o.remove()},_labelValue:function(d,b){var e=d+this._min;var c;if(this.labelsFormatFunction){c=this.labelsFormatFunction(e,b)}else{c=a.jqx.dataFormat.formatnumber(e,this.labelsFormat)}return c},_initializeTooltip:function(){var c=this;var d=this._tooltipContent();this.host.jqxTooltip({theme:this.theme,position:"mouse",content:d,trigger:"none",autoHide:false,rtl:this.rtl});this.host.jqxTooltip("getInstance").val=a.proxy(this.val,this);var b=a("#"+this.element.id+"Pointer, #"+this.element.id+"Target");this.addHandler(b,"mouseenter.bulletchart"+this.element.id,function(e){if(c.disabled==false){c.host.jqxTooltip("open",e.pageX,e.pageY);if(e.target.id==c.element.id+"Pointer"&&c.pointer.color==""||e.target.id==c.element.id+"Target"&&c.target.color==""){a(e.target).removeClass(c.toThemeProperty("jqx-fill-state-pressed"));a(e.target).addClass(c.toThemeProperty("jqx-fill-state-hover"))}}});this.addHandler(b,"mouseleave.bulletchart"+this.element.id,function(e){if(c.disabled==false){c.host.jqxTooltip("close");if(e.target.id==c.element.id+"Pointer"&&c.pointer.color==""||e.target.id==c.element.id+"Target"&&c.target.color==""){a(e.target).removeClass(c.toThemeProperty("jqx-fill-state-hover"));a(e.target).addClass(c.toThemeProperty("jqx-fill-state-pressed"))}}})},_updateTooltip:function(){this.host.jqxTooltip({content:this._tooltipContent()})},_tooltipContent:function(){var c;if(this.tooltipFormatFunction){c=this.tooltipFormatFunction(this.pointer.value,this.target.value)}else{var b=a.jqx.dataFormat.formatnumber(this.pointer.value,this.labelsFormat);var d=a.jqx.dataFormat.formatnumber(this.target.value,this.labelsFormat);c="
              "+this.pointer.label+": "+b+"
              "+this.target.label+": "+d+"
              "}return c},_updateValue:function(m,d,k){var j=this;var c=a("#"+this.element.id+"Pointer");var g,h,l,n;var f=function(p,r,q){if(j._min>=0){if(p=="vertical"){c.css("bottom",0)}else{if(j.rtl==true&&p=="horizontal"){c.css("right",0)}}g=(m-j._min)*r}else{if(m>=0){if(p=="horizontal"){if(j.rtl==true){h="right";l="left"}else{h="left"}}else{if(p=="vertical"){h="bottom";l="top"}}var o=-j._min*r}else{if(p=="horizontal"){if(j.rtl==true){h="left"}else{h="right";l="left"}}else{if(p=="vertical"){h="top"}}var o=q+j._min*r}c.css(h,o);if(l){c.css(l,"")}if(m*d<0){if(p=="horizontal"){c.width(0)}else{if(p=="vertical"){c.height(0)}}}g=Math.abs(m*r)}return g};var i=function(){if(!k){j._raiseEvent("0")}};if(this.orientation=="horizontal"){var e=f("horizontal",this._valueToPixelsHorizontal,this._chartContainer.width());setTimeout(function(){c.animate({width:e},j.animationDuration,i)},0)}else{if(this.orientation=="vertical"){var b=f("vertical",this._valueToPixelsVertical,this._chartContainer.height());setTimeout(function(){c.animate({height:b},j.animationDuration,i)},0)}}},_checkPercentage:function(f,d){var c=-1;if(f.indexOf){c=f.indexOf("%")}var g=function(h){if(!f.indexOf||f.indexOf("px")==-1){return h}else{return parseFloat(h.slice(0,f.indexOf("px")))}};var e=function(h){return parseFloat(h.slice(0,c))};if(c==-1){var b;if(this.orientation=="horizontal"){b=d.height()}else{if(this.orientation=="vertical"){b=d.width()}}return((b-g(f))/2)+"px"}else{return((100-e(f))/2)+"%"}},_normaliseValue:function(b){if(!b.indexOf||(b.indexOf("px")==-1&&b.indexOf("%")==-1)){return b+"px"}else{return b}}})})(jqxBaseFramework); \ No newline at end of file diff --git a/htdocs/public/jqwidgets/jqxbuttongroup.js b/htdocs/public/jqwidgets/jqxbuttongroup.js deleted file mode 100644 index 77bf4dc5..00000000 --- a/htdocs/public/jqwidgets/jqxbuttongroup.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -jQWidgets v4.0.0 (2016-Jan) -Copyright (c) 2011-2016 jQWidgets. -License: http://jqwidgets.com/license/ -*/ - -(function(a){a.jqx.jqxWidget("jqxButtonGroup","",{});a.extend(a.jqx._jqxButtonGroup.prototype,{defineInstance:function(){var b={mode:"default",roundedCorners:true,disabled:false,enableHover:false,orientation:"horizontal",width:null,height:null,_eventsMap:{mousedown:a.jqx.mobile.getTouchEventName("touchstart"),mouseup:a.jqx.mobile.getTouchEventName("touchend")},_events:["selected","unselected","buttonclick"],_buttonId:{},_selected:null,_pressed:null,rtl:false,_baseId:"group_button",aria:{"aria-disabled":{name:"disabled",type:"boolean"}}};a.extend(true,this,b);return b},createInstance:function(b){var c=this;c._isTouchDevice=a.jqx.mobile.isTouchDevice();a.jqx.aria(c);c.addHandler(c.host,"selectstart",function(d){if(!c.disabled){d.preventDefault()}})},refresh:function(){var b=this;if(b.width){if(b.width.toString()&&b.width.indexOf("%")>=0){b.element.style.width=b.width}else{b.host.width(b.width)}}if(b.height){b.host.height(b.height)}b._refreshButtons()},render:function(){this.refresh()},resize:function(){this.refresh()},_getEvent:function(c){var b=this;if(b._isTouchDevice){var d=b._eventsMap[c]||c;d+="."+b.element.id;return d}c+="."+b.element.id;return c},_refreshButtons:function(){var f=this;if(f.lastElement){f.lastElement.remove()}f.lastElement=a("
              ");var c=f.host.children(),e=c.length,g;switch(f.mode){case"radio":f.host.attr("role","radiogroup");break;case"checkbox":case"default":f.host.attr("role","group");break}var d=new Number(100/e).toFixed(2);for(var b=0;b");return b},_removeStyles:function(b){var c=this;var d=c.toThemeProperty;c.host.removeClass("jqx-widget");c.host.removeClass("jqx-rc-all");b.removeClass(d.call(this,"jqx-fill-state-normal"));b.removeClass(d.call(this,"jqx-group-button-normal"));b.removeClass(d.call(this,"jqx-rc-tl"));b.removeClass(d.call(this,"jqx-rc-bl"));b.removeClass(d.call(this,"jqx-rc-tr"));b.removeClass(d.call(this,"jqx-rc-br"));b.css("margin-left",0)},_addStyles:function(c,b,e){var d=this;var f=this.toThemeProperty;d.host.addClass(f.call(this,"jqx-widget"));d.host.addClass(f.call(this,"jqx-rc-all"));d.host.addClass(f.call(this,"jqx-buttongroup"));c.addClass(f.call(this,"jqx-button"));c.addClass(f.call(this,"jqx-group-button-normal"));c.addClass(f.call(this,"jqx-fill-state-normal"));if(d.roundedCorners){if(b===0){d._addRoundedCorners(c,true)}else{if(b===e-1){d._addRoundedCorners(c,false)}}}if(d.orientation=="horizontal"){c.css("margin-left",-parseInt(c.css("border-left-width"),10))}else{c.css("margin-top",-parseInt(c.css("border-left-width"),10))}},_addRoundedCorners:function(b,d){var c=this;var e=c.toThemeProperty;if(c.orientation=="horizontal"){if(d){b.addClass(e.call(this,"jqx-rc-tl"));b.addClass(e.call(this,"jqx-rc-bl"))}else{b.addClass(e.call(this,"jqx-rc-tr"));b.addClass(e.call(this,"jqx-rc-br"))}}else{if(d){b.addClass(e.call(this,"jqx-rc-tl"));b.addClass(e.call(this,"jqx-rc-tr"))}else{b.addClass(e.call(this,"jqx-rc-bl"));b.addClass(e.call(this,"jqx-rc-br"))}}},_centerContent:function(c,b){c.css({"margin-top":(b.height()-c.height())/2,"margin-left":(b.width()-c.width())/2});return c},_renderFromButton:function(b){var c=b.val();if(c==""){c=b.html()}var e;var d=b[0].id;b.wrap("
              ");e=b.parent();e.attr("style",b.attr("style"));b.remove();a.jqx.utilities.html(e,c);e[0].id=d;return e},_performLayout:function(b){if(this.orientation=="horizontal"){if(this.rtl){b.css("float","right")}else{b.css("float","left")}}else{b.css("float","none")}this._centerContent(a(b.children()),b)},_mouseEnterHandler:function(d){var b=d.data.self,c=a(d.currentTarget);if(b._isDisabled(c)||!b.enableHover){return}var f=b.toThemeProperty;c.addClass(f.call(b,"jqx-group-button-hover"));c.addClass(f.call(b,"jqx-fill-state-hover"))},_mouseLeaveHandler:function(d){var b=d.data.self,c=a(d.currentTarget);if(b._isDisabled(c)||!b.enableHover){return}var f=b.toThemeProperty;c.removeClass(f.call(b,"jqx-group-button-hover"));c.removeClass(f.call(b,"jqx-fill-state-hover"))},_mouseDownHandler:function(d){var b=d.data.self,c=a(d.currentTarget);if(b._isDisabled(c)){return}b._pressed=c;var f=b.toThemeProperty;c.addClass(f.call(b,"jqx-group-button-pressed"));c.addClass(f.call(b,"jqx-fill-state-pressed"))},_mouseUpHandler:function(d){var b=d.data.self,c=a(d.currentTarget);if(b._isDisabled(c)){return}b._handleSelection(c);b._pressed=null;c=b._buttonId[c[0].id];b._raiseEvent(2,{index:c.num,button:c.btn})},_isDisabled:function(b){if(!b||!b[0]){return false}return this._buttonId[b[0].id].disabled},_documentUpHandler:function(d){var b=d.data.self,c=b._pressed;if(c&&!b._buttonId[c[0].id].selected){c.removeClass(b.toThemeProperty("jqx-fill-state-pressed"));b._pressed=null}},_addButtonListeners:function(c){var e=this;var b=e.addHandler;var d=e._getEvent;b(c,d.call(e,"mouseenter"),e._mouseEnterHandler,{self:e});b(c,d.call(e,"mouseleave"),e._mouseLeaveHandler,{self:e});b(c,d.call(e,"mousedown"),e._mouseDownHandler,{self:e});b(c,d.call(e,"mouseup"),e._mouseUpHandler,{self:e});b(a(document),d.call(e,"mouseup"),e._documentUpHandler,{self:e})},_removeButtonListeners:function(c){var e=this;var b=e.removeHandler;var d=e._getEvent;b(c,d.call(e,"mouseenter"),e._mouseEnterHandler);b(c,d.call(e,"mouseleave"),e._mouseLeaveHandler);b(c,d.call(e,"mousedown"),e._mouseDownHandler);b(c,d.call(e,"mouseup"),e._mouseUpHandler);b(a(document),d.call(e,"mouseup"),e._documentUpHandler)},_handleSelection:function(b){var c=this;if(c.mode==="radio"){c._handleRadio(b)}else{if(c.mode==="checkbox"){c._handleCheckbox(b)}else{c._handleDefault(b)}}},_handleRadio:function(b){var d=this;var c=d._getSelectedButton();if(c&&c.btn[0].id!==b[0].id){d._unselectButton(c.btn,true)}for(var e in d._buttonId){d._buttonId[e].selected=true;d._unselectButton(d._buttonId[e].btn,false)}d._selectButton(b,true)},_handleCheckbox:function(c){var d=this;var b=d._buttonId[c[0].id];if(b.selected){d._unselectButton(b.btn,true)}else{d._selectButton(c,true)}},_handleDefault:function(b){var c=this;c._selectButton(b,false);for(var d in c._buttonId){c._buttonId[d].selected=true;c._unselectButton(c._buttonId[d].btn,false)}},_getSelectedButton:function(){var b=this;for(var c in b._buttonId){if(b._buttonId[c].selected){return b._buttonId[c]}}return null},_getSelectedButtons:function(){var c=this;var b=[];for(var d in c._buttonId){if(c._buttonId[d].selected){b.push(c._buttonId[d].num)}}return b},_getButtonByIndex:function(b){var c=this;var e;for(var d in c._buttonId){if(c._buttonId[d].num===b){return c._buttonId[d]}}return null},_selectButton:function(c,e){var d=this;var b=d._buttonId[c[0].id];if(b.selected){return}var f=d.toThemeProperty;b.btn.addClass(f.call(this,"jqx-group-button-pressed"));b.btn.addClass(f.call(this,"jqx-fill-state-pressed"));b.selected=true;if(e){d._raiseEvent(0,{index:b.num,button:b.btn})}a.jqx.aria(b.btn,"aria-checked",true)},_unselectButton:function(c,e){var d=this;var b=d._buttonId[c[0].id];if(!b.selected){return}var f=d.toThemeProperty;b.btn.removeClass(f.call(this,"jqx-group-button-pressed"));b.btn.removeClass(f.call(this,"jqx-fill-state-pressed"));b.selected=false;if(e){d._raiseEvent(1,{index:b.num,button:b.btn})}a.jqx.aria(b.btn,"aria-checked",false)},setSelection:function(b){var d=this;if(b===-1){d.clearSelection();return}if(d.mode==="checkbox"){if(typeof b==="number"){d._setSelection(b)}else{for(var c=0;c0){if(arguments.length==0||typeof(value)=="object"){return b.val()}b.val(value);c.refresh();return b.val()}if(arguments.length==0||typeof(value)=="object"){if(c.element.nodeName.toLowerCase()=="button"){return a(c.element).text()}return c.element.value}c.element.value=arguments[0];if(c.element.nodeName.toLowerCase()=="button"){a(c.element).text(arguments[0])}c.refresh()},_setSize:function(){var b=this;if(b.width!=null&&(b.width.toString().indexOf("px")!=-1||b.width.toString().indexOf("%")!=-1)){b.host.css("width",b.width)}else{if(b.width!=undefined&&!isNaN(b.width)){b.host.css("width",b.width)}}if(b.height!=null&&(b.height.toString().indexOf("px")!=-1||b.height.toString().indexOf("%")!=-1)){b.host.css("height",b.height)}else{if(b.height!=undefined&&!isNaN(b.height)){b.host.css("height",parseInt(b.height))}}},_removeHandlers:function(){var b=this;b.removeHandler(b.host,"selectstart");b.removeHandler(b.host,"click");b.removeHandler(b.host,"focus");b.removeHandler(b.host,"blur");b.removeHandler(b.host,"mouseenter");b.removeHandler(b.host,"mouseleave");b.removeHandler(b.host,"mousedown");b.removeHandler(a(document),"mouseup.button"+b.element.id,b.mouseupfunc);if(b.isTouchDevice){b.removeHandler(b.host,a.jqx.mobile.getTouchEventName("touchstart"));b.removeHandler(a(document),a.jqx.mobile.getTouchEventName("touchend")+"."+b.element.id)}b.mouseupfunc=null;delete b.mouseupfunc},focus:function(){this.host.focus()},destroy:function(){var b=this;b._removeHandlers();var c=a.data(b.element,"jqxButton");if(c){delete c.instance}b.host.removeClass();b.host.removeData();b.host.remove();delete b.set;delete b.get;delete b.call;delete b.element;delete b.host},render:function(){this.refresh()},refresh:function(){var c=this;if(c.overrideTheme){return}var e=c.toThemeProperty("jqx-fill-state-focus");var i=c.toThemeProperty("jqx-fill-state-disabled");var b=c.toThemeProperty("jqx-fill-state-normal");if(!c.enableDefault){b=""}var h=c.toThemeProperty("jqx-fill-state-hover");var f=c.toThemeProperty("jqx-fill-state-pressed");var g=c.toThemeProperty("jqx-fill-state-pressed");if(!c.enablePressed){f=""}var d="";if(!c.host){return}c.host[0].disabled=c.disabled;if(c.disabled){d=b+" "+i;if(c.template!=="default"&&c.template!==""){d+=" jqx-"+c.template}c.host.addClass(d);c._oldCSSCurrent=d;return}else{if(c.isMouseOver&&!c.isTouchDevice){if(c.isPressed){d=g}else{d=h}}else{if(c.isPressed){d=f}else{d=b}}}if(c.isFocused){d+=" "+e}if(c.template!=="default"&&c.template!==""){d+=" jqx-"+c.template}if(d!=c._oldCSSCurrent){if(c._oldCSSCurrent){c.host.removeClass(c._oldCSSCurrent)}c.host.addClass(d);c._oldCSSCurrent=d}if(c.rtl){c.host.addClass(c.toThemeProperty("jqx-rtl"));c.host.css("direction","rtl")}}});a.jqx.jqxWidget("jqxLinkButton","",{});a.extend(a.jqx._jqxLinkButton.prototype,{defineInstance:function(){this.disabled=false;this.height=null;this.width=null;this.rtl=false;this.href=null},createInstance:function(d){var c=this;this.host.onselectstart=function(){return false};this.host.attr("role","button");var b=this.height||this.host.height();var e=this.width||this.host.width();this.href=this.host.attr("href");this.target=this.host.attr("target");this.content=this.host.text();this.element.innerHTML="";this.host.append("");var f=this.host.find("input");f.addClass(this.toThemeProperty("jqx-reset"));f.width(e);f.height(b);f.val(this.content);this.host.find("tr").addClass(this.toThemeProperty("jqx-reset"));this.host.find("td").addClass(this.toThemeProperty("jqx-reset"));this.host.find("tbody").addClass(this.toThemeProperty("jqx-reset"));this.host.css("color","inherit");this.host.addClass(this.toThemeProperty("jqx-link"));f.css({width:e});f.css({height:b});var g=d==undefined?{}:d[0]||{};f.jqxButton(g);if(this.disabled){this.host[0].disabled=true}this.propertyChangeMap.disabled=function(h,j,i,k){h.host[0].disabled=k;h.host.find("input").jqxButton({disabled:k})};this.addHandler(f,"click",function(h){if(!this.disabled){c.onclick(h)}return false})},onclick:function(b){if(this.target!=null){window.open(this.href,this.target)}else{window.location=this.href}}});a.jqx.jqxWidget("jqxRepeatButton","jqxButton",{});a.extend(a.jqx._jqxRepeatButton.prototype,{defineInstance:function(){this.delay=50},createInstance:function(e){var c=this;var d=a.jqx.mobile.isTouchDevice();var b=!d?"mouseup."+this.base.element.id:"touchend."+this.base.element.id;var f=!d?"mousedown."+this.base.element.id:"touchstart."+this.base.element.id;this.addHandler(a(document),b,function(g){if(c.timeout!=null){clearTimeout(c.timeout);c.timeout=null;c.refresh()}if(c.timer!=undefined){clearInterval(c.timer);c.timer=null;c.refresh()}});this.addHandler(this.base.host,f,function(g){if(c.timer!=null){clearInterval(c.timer)}c.timeout=setTimeout(function(){clearInterval(c.timer);c.timer=setInterval(function(h){c.ontimer(h)},c.delay)},150)});this.mousemovefunc=function(g){if(!d){if(g.which==0){if(c.timer!=null){clearInterval(c.timer);c.timer=null}}}};this.addHandler(this.base.host,"mousemove",this.mousemovefunc)},destroy:function(){var c=a.jqx.mobile.isTouchDevice();var b=!c?"mouseup."+this.base.element.id:"touchend."+this.base.element.id;var e=!c?"mousedown."+this.base.element.id:"touchstart."+this.base.element.id;this.removeHandler(this.base.host,"mousemove",this.mousemovefunc);this.removeHandler(this.base.host,e);this.removeHandler(a(document),b);this.timer=null;delete this.mousemovefunc;delete this.timer;var d=a.data(this.base.element,"jqxRepeatButton");if(d){delete d.instance}a(this.base.element).removeData();this.base.destroy();delete this.base},stop:function(){clearInterval(this.timer);this.timer=null},ontimer:function(b){var b=new a.Event("click");if(this.base!=null&&this.base.host!=null){this.base.host.trigger(b)}}});a.jqx.jqxWidget("jqxToggleButton","jqxButton",{});a.extend(a.jqx._jqxToggleButton.prototype,{defineInstance:function(){this.toggled=false;this.uiToggle=true;this.aria={"aria-checked":{name:"toggled",type:"boolean"},"aria-disabled":{name:"disabled",type:"boolean"}}},createInstance:function(c){var b=this;b.base.overrideTheme=true;b.isTouchDevice=a.jqx.mobile.isTouchDevice();a.jqx.aria(this);b.propertyChangeMap.roundedCorners=function(d,f,e,g){d.base.host.removeClass(d.toThemeProperty(a.jqx.cssroundedcorners(e)));d.base.host.addClass(d.toThemeProperty(a.jqx.cssroundedcorners(g)))};b.propertyChangeMap.toggled=function(d,f,e,g){d.refresh()};b.propertyChangeMap.disabled=function(d,f,e,g){d.base.disabled=g;d.refresh()};b.addHandler(b.base.host,"click",function(d){if(!b.base.disabled&&b.uiToggle){b.toggle()}});if(!b.isTouchDevice){b.addHandler(b.base.host,"mouseenter",function(d){if(!b.base.disabled){b.refresh()}});b.addHandler(b.base.host,"mouseleave",function(d){if(!b.base.disabled){b.refresh()}})}b.addHandler(b.base.host,"mousedown",function(d){if(!b.base.disabled){b.refresh()}});b.addHandler(a(document),"mouseup.togglebutton"+b.base.element.id,function(d){if(!b.base.disabled){b.refresh()}})},destroy:function(){this._removeHandlers();this.base.destroy()},_removeHandlers:function(){this.removeHandler(this.base.host,"click");this.removeHandler(this.base.host,"mouseenter");this.removeHandler(this.base.host,"mouseleave");this.removeHandler(this.base.host,"mousedown");this.removeHandler(a(document),"mouseup.togglebutton"+this.base.element.id)},toggle:function(){this.toggled=!this.toggled;this.refresh();a.jqx.aria(this,"aria-checked",this.toggled)},unCheck:function(){this.toggled=false;this.refresh()},check:function(){this.toggled=true;this.refresh()},refresh:function(){var c=this;var h=c.base.toThemeProperty("jqx-fill-state-disabled");var b=c.base.toThemeProperty("jqx-fill-state-normal");if(!c.base.enableDefault){b=""}var g=c.base.toThemeProperty("jqx-fill-state-hover");var e=c.base.toThemeProperty("jqx-fill-state-pressed");var f=c.base.toThemeProperty("jqx-fill-state-pressed");var d="";c.base.host[0].disabled=c.base.disabled;if(c.base.disabled){d=b+" "+h;c.base.host.addClass(d);return}else{if(c.base.isMouseOver&&!c.isTouchDevice){if(c.base.isPressed||c.toggled){d=f}else{d=g}}else{if(c.base.isPressed||c.toggled){d=e}else{d=b}}}if(c.base.template!=="default"&&c.base.template!==""){d+=" jqx-"+c.base.template}if(c.base.host.hasClass(h)&&h!=d){c.base.host.removeClass(h)}if(c.base.host.hasClass(b)&&b!=d){c.base.host.removeClass(b)}if(c.base.host.hasClass(g)&&g!=d){c.base.host.removeClass(g)}if(c.base.host.hasClass(e)&&e!=d){c.base.host.removeClass(e)}if(c.base.host.hasClass(f)&&f!=d){c.base.host.removeClass(f)}if(!c.base.host.hasClass(d)){c.base.host.addClass(d)}}})})(jqxBaseFramework); \ No newline at end of file diff --git a/htdocs/public/jqwidgets/jqxcalendar.js b/htdocs/public/jqwidgets/jqxcalendar.js deleted file mode 100644 index 8dba1e01..00000000 --- a/htdocs/public/jqwidgets/jqxcalendar.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -jQWidgets v4.0.0 (2016-Jan) -Copyright (c) 2011-2016 jQWidgets. -License: http://jqwidgets.com/license/ -*/ - -(function(a){a.jqx.jqxWidget("jqxCalendar","",{});a.extend(a.jqx._jqxCalendar.prototype,{defineInstance:function(){var b={disabled:false,restrictedDates:new Array(),multipleMonthRows:1,multipleMonthColumns:1,minDate:a.jqx._jqxDateTimeInput.getDateTime(new Date()),maxDate:a.jqx._jqxDateTimeInput.getDateTime(new Date()),min:new Date(1900,0,1),max:new Date(2100,0,1),navigationDelay:400,stepMonths:1,width:null,height:null,value:a.jqx._jqxDateTimeInput.getDateTime(new Date()),firstDayOfWeek:0,showWeekNumbers:false,showDayNames:true,enableWeekend:false,enableOtherMonthDays:true,showOtherMonthDays:true,rowHeaderWidth:25,columnHeaderHeight:20,titleHeight:25,dayNameFormat:"firstTwoLetters",monthNameFormat:"default",titleFormat:["MMMM yyyy","yyyy","yyyy","yyyy"],enableViews:true,readOnly:false,culture:"default",enableFastNavigation:true,enableHover:true,enableAutoNavigation:true,enableTooltips:false,backText:"Back",forwardText:"Forward",specialDates:new Array(),keyboardNavigation:true,selectionMode:"default",selectableDays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],todayString:"Today",clearString:"Clear",showFooter:false,selection:{from:null,to:null},canRender:true,_checkForHiddenParent:true,height:null,rtl:false,view:"month",views:["month","year","decade"],changing:null,change:null,localization:{backString:"Back",forwardString:"Forward",todayString:"Today",clearString:"Clear",calendar:{name:"Gregorian_USEnglish","/":"/",":":":",firstDay:0,days:{names:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],namesAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],namesShort:["Su","Mo","Tu","We","Th","Fr","Sa"]},months:{names:["January","February","March","April","May","June","July","August","September","October","November","December",""],namesAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""]},AM:["AM","am","AM"],PM:["PM","pm","PM"],eras:[{name:"A.D.",start:null,offset:0}],twoDigitYearMax:2029,patterns:{d:"M/d/yyyy",D:"dddd, MMMM dd, yyyy",t:"h:mm tt",T:"h:mm:ss tt",f:"dddd, MMMM dd, yyyy h:mm tt",F:"dddd, MMMM dd, yyyy h:mm:ss tt",M:"MMMM dd",Y:"yyyy MMMM",S:"yyyy\u0027-\u0027MM\u0027-\u0027dd\u0027T\u0027HH\u0027:\u0027mm\u0027:\u0027ss",ISO:"yyyy-MM-dd hh:mm:ss"}}},events:["backButtonClick","nextButtonClick","valuechanged","cellMouseDown","cellMouseUp","cellSelected","cellUnselected","change","viewChange"]};a.extend(true,this,b);this.minDate._setYear(1900);this.minDate._setMonth(1);this.minDate._setDay(1);this.minDate._setHours(0);this.minDate._setMinutes(0);this.minDate._setSeconds(0);this.minDate._setMilliseconds(0);this.maxDate._setYear(2100);this.maxDate._setMonth(1);this.maxDate._setDay(1);this.maxDate._setHours(0);this.maxDate._setMinutes(0);this.maxDate._setSeconds(0);this.maxDate._setMilliseconds(0);this.value._setHours(0);this.value._setMinutes(0);this.value._setSeconds(0);this.value._setMilliseconds(0);return b},createInstance:function(e){this.setCalendarSize();if(this.element.id===""){this.element.id=a.jqx.utilities.createId()}if(a.type(this.value)=="date"){this.value=a.jqx._jqxDateTimeInput.getDateTime(this.value)}this.element.innerHTML="";this.host.attr("data-role","calendar");var i=this.element.id;var h=this;this.propertyChangeMap.width=function(j,l,k,m){h.setCalendarSize()};this.propertyChangeMap.height=function(j,l,k,m){h.setCalendarSize()};if(a.global){a.global.preferCulture(this.culture)}if(this.culture!="default"){if(a.global){a.global.preferCulture(this.culture);this.localization.calendar=a.global.culture.calendar}else{if(Globalize){var c=Globalize.culture(this.culture);this.localization.calendar=c.calendar}}this.firstDayOfWeek=this.localization.calendar.firstDay}if(this.localization.backString!="Back"){this.backText=this.localization.backString}if(this.localization.forwardString!="Forward"){this.forwardText=this.localization.forwardString}if(this.localization.todayString!="Today"&&this.localization.todayString){this.todayString=this.localization.todayString}if(this.localization.clearString!="Clear"&&this.localization.clearString){this.clearString=this.localization.clearString}if(this.localization.calendar&&this.localization.calendar.firstDay!=undefined&&this.culture!="default"){this.firstDayOfWeek=this.localization.calendar.firstDay}this.setMaxDate(this.max,false);this.setMinDate(this.min,false);if(!this.host.attr("tabIndex")){this.host.attr("tabIndex",0)}this.host.css("outline","none");this.host.addClass(this.toThemeProperty("jqx-calendar"));this.host.addClass(this.toThemeProperty("jqx-widget"));this.host.addClass(this.toThemeProperty("jqx-widget-content"));this.host.addClass(this.toThemeProperty("jqx-rc-all"));this._addInput();if(this.views.indexOf("month")==-1){this.view="year"}if(this.views.indexOf("year")==-1&&this.views.indexOf("month")==-1){this.view="decade"}this.addHandler(this.host,"keydown",function(k){var j=true;if(h.keyboardNavigation){if(h._handleKey!=undefined){j=h._handleKey(k);if(!j){if(k.stopPropagation){k.stopPropagation()}if(k.preventDefault){k.preventDefault()}}}}return j});var d=false;var g=this;var b=false;if(h.width!=null&&h.width.toString().indexOf("%")!=-1){b=true}if(h.height!=null&&h.height.toString().indexOf("%")!=-1){b=true}a.jqx.utilities.resize(this.host,function(){var j=g.host.find("#View"+h.element.id);if(!d){d=true;g.render()}else{g.refreshTitle(j)}if(b){if(h.refreshTimer){clearTimeout(h.refreshTimer)}h.refreshTimer=setTimeout(function(){h.refreshControl()},1)}},false,this._checkForHiddenParent);var f="View";this.propertyChangeMap.disabled=function(j,l,k,m){if(m){j.host.addClass(h.toThemeProperty("jqx-fill-state-disabled"))}else{j.host.removeClass(h.toThemeProperty("jqx-fill-state-disabled"))}h.refreshControl()}},_addInput:function(){var b=this.host.attr("name");this.input=a("");this.host.append(this.input);if(b){this.input.attr("name",b)}this.input.val(this.getDate().toString())},setCalendarSize:function(){if(this.width!=null&&this.width.toString().indexOf("px")!=-1){this.host.width(this.width)}else{if(this.width!=undefined&&!isNaN(this.width)){this.host.width(this.width)}}if(this.width!=null&&this.width.toString().indexOf("%")!=-1){this.host.css("width",this.width)}if(this.height!=null&&this.height.toString().indexOf("px")!=-1){this.host.height(this.height)}else{if(this.height!=undefined&&!isNaN(this.height)){this.host.height(this.height)}}if(this.height!=null&&this.height.toString().indexOf("%")!=-1){this.host.css("height",this.height)}},_getYearAndMonthPart:function(c){if(!c){return new Date(1900,0,1)}var b=new Date(c.getFullYear(),c.getMonth(),1);return b},_handleKey:function(p){if(this.readOnly){return true}var A=p.keyCode;var y=this;var b=this._getSelectedDate();if(b==undefined){if(this.view=="month"&&(A==37||A==38||A==39||A==40)){this.selectedDate=new Date(this.value.year,this.value.month-1,1);this._selectDate(this.selectedDate,"key");b=this.selectedDate}else{return true}}if(p.altKey){return true}if(this._animating){return false}if(this.view!="month"&&A==13){var d=this._getSelectedCell();this._setDateAndSwitchViews(d,p,"keyboard")}if(this.view=="year"){var w=b.getMonth();var j=this._getYearAndMonthPart(this.getMinDate());var m=this._getYearAndMonthPart(this.getMaxDate());switch(A){case 37:if(w==0){var h=new Date(b.getFullYear()-1,11,1);if(h>=j){this.selectedDate=h;this.navigateBackward()}else{if(this.selectedDate!=j){this.selectedDate=j;this.navigateBackward()}}}else{var h=new Date(b.getFullYear(),w-1,1);if(h>=j){this._selectDate(h,"key")}}return false;case 38:var h=new Date(b.getFullYear(),w-4,1);if(hm){h=m}if(w+4>11){this.selectedDate=h;this.navigateForward()}else{this._selectDate(h,"key")}return false;case 39:if(w==11){var h=new Date(b.getFullYear()+1,0,1);if(h<=m){this.selectedDate=h;this.navigateForward()}else{if(this.selectedDate!=m){this.selectedDate=m;this.navigateForward()}}}else{var h=new Date(b.getFullYear(),w+1,1);if(h<=m){this._selectDate(h,"key")}}return false}return true}if(this.view=="decade"){var o=this._renderStartDate.getFullYear();var k=this._renderEndDate.getFullYear();var n=b.getFullYear();var v=this.getMinDate().getFullYear();var c=this.getMaxDate().getFullYear();switch(A){case 37:if(n-1>=v){if(n<=o){this.selectedDate=new Date(n-1,b.getMonth(),1);this.navigateBackward()}else{this._selectDate(new Date(n-1,b.getMonth(),1),"key")}}return false;case 38:var x=n-4;if(n-4c){x=c}if(x>k){this.selectedDate=new Date(x,b.getMonth(),1);this.navigateForward()}else{this._selectDate(new Date(x,b.getMonth(),1),"key")}return false;case 39:if(n+1<=c){if(n==k){this.selectedDate=new Date(n+1,b.getMonth(),1);this.navigateForward()}else{this._selectDate(new Date(n+1,b.getMonth(),1),"key")}}return false}return true}var u=new a.jqx._jqxDateTimeInput.getDateTime(b);var f=this.getViewStart();var e=this.getViewEnd();var t=u;var s=a.data(this.element,"View"+this.element.id);if(s==undefined||s==null){return true}if(A==36){u._setDay(1);if(this._isDisabled(u.dateTime)){return false}this._selectDate(u.dateTime,"key");return false}if(A==35){var r=this.value._daysInMonth(this.value.year,this.value.month);u._setDay(r);if(this._isDisabled(u.dateTime)){return false}this._selectDate(u.dateTime,"key");return false}var g=1;if(p.ctrlKey){g=12}if(A==34){var z=this.navigateForward(g);if(z){u._addMonths(g);if(this._isDisabled(u.dateTime)){return false}this._selectDate(u.dateTime,"key")}return false}if(A==33){var z=this.navigateBackward(g);if(z){u._addMonths(-g);if(this._isDisabled(u.dateTime)){return false}this._selectDate(u.dateTime,"key")}return false}if(A==38){u._addDays(-7);if(u.dateTimethis.getMaxDate()){return false}if(u.dateTime>e){var z=this.navigateForward();if(!z){return false}}if(this._isDisabled(u.dateTime)){return false}this._selectDate(u.dateTime,"key");for(var q=0;q=u.dateTime){this.value.day=l.getDate();this.navigateForward();this._selectDate(u.dateTime,"key");break}}return false}}if(A==37){u._addDays(-1);if(u.dateTimethis.getMaxDate()){return false}if(this._isDisabled(u.dateTime)){return false}this.navigateBackward();this._selectDate(u.dateTime,"key");break}}return false}else{if(A==39){u._addDays(1);if(u.dateTime>this.getMaxDate()){return false}if(u.dateTime>e){var z=this.navigateForward();if(!z){return false}}if(this._isDisabled(u.dateTime)){return false}this._selectDate(u.dateTime,"key");for(var q=0;q=u.dateTime){if(u.dateTimethis.getMaxDate()){return false}this.navigateForward();this._selectDate(u.dateTime,"key");break}}return false}}return true},render:function(){if(!this.canRender){return}this.host.children().remove();var c=this._renderSingleCalendar("View"+this.element.id);var b=this;this.host.append(c)},addSpecialDate:function(b,c,d){if(this.multipleMonthRows==1&&this.multipleMonthColumns==1){var e=this.specialDates.length;this.specialDates[e]={Date:b,Class:c,Tooltip:d};this.refreshControl()}},refresh:function(b){this.render()},invalidate:function(){this.refreshControl()},refreshControl:function(){if(this.multipleMonthRows==1&&this.multipleMonthColumns==1){this.refreshSingleCalendar("View"+this.element.id,null)}},getViewStart:function(){var c=this.getVisibleDate();var b=this.getFirstDayOfWeek(c);return b.dateTime},getViewEnd:function(){var c=this.getViewStart();var b=new a.jqx._jqxDateTimeInput.getDateTime(c);b._addDays(41);return b.dateTime},refreshSingleCalendar:function(f,e){if(!this.canRender){return}var h=this.host.find("#"+f);var d=this.getVisibleDate();var b=this.getFirstDayOfWeek(d);this.refreshCalendarCells(h,b,f);this.refreshTitle(h);this.refreshRowHeader(h,f);if(this.selectedDate!=undefined){this._selectDate(this.selectedDate)}var g=this.host.height()-this.titleHeight-this.columnHeaderHeight;if(!this.showDayNames){g=this.host.height()-this.titleHeight}if(this.showFooter){g-=20}var c=h.find("#cellsTable"+f);var i=h.find("#calendarRowHeader"+f);c.height(g);i.height(g)},refreshRowHeader:function(s,m){if(!this.showWeekNumbers){return}var c=this.getVisibleDate();var h=this.getFirstDayOfWeek(c);var n=h.dayOfWeek;var t=this.getWeekOfYear(h);var f=new a.jqx._jqxDateTimeInput.getDateTime(new Date(h.dateTime));f._addDays(5);f.dayOfWeek=f.dateTime.getDay();var k=this.getWeekOfYear(f);var e=this.rowHeader.find("table");e.width(this.rowHeaderWidth);var g=h;var q=new Array();for(var p=0;p<6;p++){var o=t.toString();var b=new a.jqx._jqxCalendar.cell(g.dateTime);var l=p+1+this.element.id;var j=a(e[0].rows[p].cells[0]);b.element=j;b.row=p;b.column=0;var d=j.find("#headerCellContent"+l);d.addClass(this.toThemeProperty("jqx-calendar-row-cell"));d[0].innerHTML=t;q[p]=b;g=new a.jqx._jqxDateTimeInput.getDateTime(new Date(g._addWeeks(1)));t=this.getWeekOfYear(g)}var r=a.data(this.element,s[0].id);r.rowCells=q;this._refreshOtherMonthRows(r,m)},_refreshOtherMonthRows:function(f,e){if(this.showOtherMonthDays){return}this._displayLastRow(true,e);this._displayFirstRow(true,e);var d=false;var g=false;for(var c=0;c=f.cells.length-7){g=true}}}if(!d){this._displayFirstRow(false,e)}if(!g){this._displayLastRow(false,e)}},_displayLastRow:function(b,c){var g=this.host.find("#"+c);var f=g.find("#calendarRowHeader"+g[0].id).find("table");var d=null;if(this.showWeekNumbers){if(f[0].cells){var d=a(f[0].rows[5])}}var e=a(g.find("#cellTable"+g[0].id)[0].rows[5]);if(b){if(this.showWeekNumbers&&d){d.css("display","table-row")}e.css("display","table-row")}else{if(this.showWeekNumbers&&d){d.css("display","none")}e.css("display","none")}},_displayFirstRow:function(b,c){var e=this.host.find("#"+c);var d=e.find("#calendarRowHeader"+e[0].id).find("table");var f=null;if(this.showWeekNumbers){if(d[0].cells){var f=a(d[0].rows[0])}}var g=a(e.find("#cellTable"+e[0].id)[0].rows[0]);if(b){if(this.showWeekNumbers&&f){f.css("display","table-row")}g.css("display","table-row")}else{if(this.showWeekNumbers&&f){f.css("display","none")}g.css("display","none")}},_renderSingleCalendar:function(p,k){if(!this.canRender){return}var m=this.host.find("#"+p.toString());if(m!=null){m.remove()}var s=a("
              ");var b=this.getVisibleDate();var l=this.getFirstDayOfWeek(b);var e=new a.jqx._jqxDateTimeInput.getDateTime(l.dateTime);e._addMonths(1);var r=a.jqx._jqxCalendar.monthView(l,e,null,null,null,s);if(k==undefined||k==null){this.host.append(s);if(this.height!=undefined&&!isNaN(this.height)){s.height(this.height)}else{if(this.height!=null&&this.height.toString().indexOf("px")!=-1){s.height(this.height)}}if(this.width!=undefined&&!isNaN(this.width)){s.width(this.width)}else{if(this.width!=null&&this.width.toString().indexOf("px")!=-1){s.width(this.width)}}if(this.width!=null&&this.width.toString().indexOf("%")!=-1){s.width("100%")}if(this.height!=null&&this.height.toString().indexOf("%")!=-1){s.height("100%")}}else{k.append(s)}a.data(this.element,p,r);var q=this.host.height()-this.titleHeight-this.columnHeaderHeight;if(!this.showDayNames){q=this.host.height()-this.titleHeight}if(this.showFooter){q-=20}if(this.rowHeaderWidth<0){this.rowHeaderWidth=0}if(this.columnHeaderHeight<0){this.columnHeaderHeight=0}if(this.titleHeight<0){this.titleHeight=0}var g=this.rowHeaderWidth;var j=this.columnHeaderHeight;if(!this.showWeekNumbers){g=0}if(!this.showDayNames){j=0}var u="
              ";var c="
              ";var o="";s[0].innerHTML=u+c+o;this.header=s.find("#calendarHeader");this.header[0].id="calendarHeader"+p;this.header.addClass(this.toThemeProperty("calendar-header"));this.columnHeader=s.find("#calendarColumnHeader");this.columnHeader[0].id="calendarColumnHeader"+p;this.table=s.find("#cellsTable");this.table[0].id="cellsTable"+p;this.rowHeader=s.find("#calendarRowHeader");this.rowHeader[0].id="calendarRowHeader"+p;this.selectCell=s.find("#selectCell");this.selectCell[0].id="selectCell"+p;this.title=s.find("#calendarTitle");this.title[0].id="calendarTitle"+p;this.leftButton=s.find("#leftNavigationArrow");this.leftButton[0].id="leftNavigationArrow"+p;this.titleHeader=s.find("#calendarTitleHeader");this.titleHeader[0].id="calendarTitleHeader"+p;this.rightButton=s.find("#rightNavigationArrow");this.rightButton[0].id="rightNavigationArrow"+p;this.footer=s.find("#calendarFooter");this._footer=s.find("#footer");this._footer[0].id="footer"+p;this.footer[0].id="calendarFooter"+p;this.todayButton=s.find("#todayButton");this.todayButton[0].id="todayButton"+p;this.doneButton=s.find("#doneButton");this.doneButton[0].id="doneButton"+p;this.title.addClass(this.toThemeProperty("jqx-calendar-title-container"));var d=20;if(this.showFooter){this._footer.css("display","block")}s.find("tr").addClass(this.toThemeProperty("jqx-reset"));s.addClass(this.toThemeProperty("jqx-widget-content"));s.addClass(this.toThemeProperty("jqx-calendar-month-container"));this.month=s;this.selectCell.addClass(this.toThemeProperty("jqx-reset"));this.selectCell.addClass(this.toThemeProperty("jqx-calendar-top-left-header"));if(this.showWeekNumbers){this._renderRowHeader(s)}else{this.table[0].colSpan=3;this.columnHeader[0].colSpan=3;this.rowHeader.css("display","none");this.selectCell.css("display","none")}if(this.showFooter){this.footer.height(20);var i=a(""+this.todayString+"");i.appendTo(this.todayButton);var h=a(""+this.clearString+"");h.appendTo(this.doneButton);h.addClass(this.toThemeProperty("jqx-calendar-footer"));i.addClass(this.toThemeProperty("jqx-calendar-footer"));var n=this;var f="mousedown";if(a.jqx.mobile.isTouchDevice()){f=a.jqx.mobile.getTouchEventName("touchstart")}this.addHandler(i,f,function(){if(n.today){n.today()}else{n.setDate(new Date(),"mouse")}return false});this.addHandler(h,f,function(){if(n.clear){n.clear()}else{n.setDate(null,"mouse")}return false})}if(this.view!="month"){this.header.hide()}if(this.showDayNames&&this.view=="month"){this.renderColumnHeader(s)}this.oldView=this.view;this.renderCalendarCells(s,l,p);if(k==undefined||k==null){this.renderTitle(s)}this._refreshOtherMonthRows(r,p);s.find("tbody").css({border:"none",background:"transparent"});if(this.selectedDate!=undefined){this._selectDate(this.selectedDate)}var t=this;this.addHandler(this.host,"focus",function(){t.focus()});return s},_getTitleFormat:function(){switch(this.view){case"month":return this.titleFormat[0];case"year":return this.titleFormat[1];case"decade":return this.titleFormat[2];case"centuries":return this.titleFormat[3]}},renderTitle:function(t){var k=a("
              ");var l=a("
              ");var o=this.title;o.addClass(this.toThemeProperty("jqx-reset"));o.addClass(this.toThemeProperty("jqx-widget-header"));o.addClass(this.toThemeProperty("jqx-calendar-title-header"));var e=o.find("td");if(a.jqx.browser.msie&&a.jqx.browser.version<8){if(e.css("background-color")!="transparent"){var g=o.css("background-color");e.css("background-color",g)}if(e.css("background-image")!="transparent"){var d=o.css("background-image");var p=o.css("background-repeat");var c=o.css("background-position");e.css("background-image",d);e.css("background-repeat",p);e.css("background-position","left center scroll")}}else{e.css("background-color","transparent")}if(this.disabled){o.addClass(this.toThemeProperty("jqx-calendar-title-header-disabled"))}k.addClass(this.toThemeProperty("jqx-calendar-title-navigation"));k.addClass(this.toThemeProperty("jqx-icon-arrow-left"));k.appendTo(this.leftButton);var m=this.leftButton;l.addClass(this.toThemeProperty("jqx-calendar-title-navigation"));l.addClass(this.toThemeProperty("jqx-icon-arrow-right"));l.appendTo(this.rightButton);var b=this.rightButton;if(this.enableTooltips){if(a(m).jqxTooltip){a(m).jqxTooltip({name:this.element.id,position:"mouse",theme:this.theme,content:this.backText});a(b).jqxTooltip({name:this.element.id,position:"mouse",theme:this.theme,content:this.forwardText})}}var n=this.titleHeader;var v=this._format(this.value.dateTime,this._getTitleFormat(),this.culture);if(this.view=="decade"){var q=this._format(this._renderStartDate,this._getTitleFormat(),this.culture);var j=this._format(this._renderEndDate,this._getTitleFormat(),this.culture);v=q+" - "+j}else{if(this.view=="centuries"){var q=this._format(this._renderCenturyStartDate,this._getTitleFormat(),this.culture);var j=this._format(this._renderCenturyEndDate,this._getTitleFormat(),this.culture);v=q+" - "+j}}var f=a("
              "+v+"
              ");n.append(f);f.addClass(this.toThemeProperty("jqx-calendar-title-content"));var s=parseInt(k.width());var i=t.width()-2*s;var r=n.find(".jqx-calendar-title-content").width(i);a.data(k,"navigateLeft",this);a.data(l,"navigateRight",this);var h=a.jqx.mobile.isTouchDevice();if(!this.disabled){var u=this;this.addHandler(n,"mousedown",function(A){if(u.enableViews){if(!u._viewAnimating&&!u._animating){var x=u.view;u.oldView=x;switch(u.view){case"month":u.view="year";break;case"year":u.view="decade";break}if(u.views.indexOf("year")==-1&&u.view=="year"){u.view="decade"}if(u.views.indexOf("decade")==-1&&u.view=="decade"){u.view=x}if(x!=u.view){var z="View"+u.element.id;var B=u.host.find("#"+z);var y=u.getVisibleDate();var w=u.getFirstDayOfWeek(y);u.renderCalendarCells(B,w,z,true);u.refreshTitle(B);u._raiseEvent("8")}}return false}});this.addHandler(k,"mousedown",function(x){if(!u._animating){a.data(k,"navigateLeftRepeat",true);var w=a.data(k,"navigateLeft");if(w.enableFastNavigation&&!h){w.startRepeat(w,k,true,u.navigationDelay+200)}w.navigateBackward(1,"arrow");x.stopPropagation();x.preventDefault();return w._raiseEvent(0,x)}else{return false}});this.addHandler(k,"mouseup",function(w){a.data(k,"navigateLeftRepeat",false)});this.addHandler(k,"mouseleave",function(w){a.data(k,"navigateLeftRepeat",false)});this.addHandler(l,"mousedown",function(x){if(!u._animating){a.data(l,"navigateRightRepeat",true);var w=a.data(l,"navigateRight");if(w.enableFastNavigation&&!h){w.startRepeat(w,l,false,u.navigationDelay+200)}w.navigateForward(1,"arrow");x.stopPropagation();x.preventDefault();return w._raiseEvent(1,x)}else{return false}});this.addHandler(l,"mouseup",function(w){a.data(l,"navigateRightRepeat",false)});this.addHandler(l,"mouseleave",function(w){a.data(l,"navigateRightRepeat",false)})}},refreshTitle:function(f){var g=this._format(this.value.dateTime,this._getTitleFormat(),this.culture);if(this.view=="decade"){var d=this._format(this._renderStartDate,this._getTitleFormat(),this.culture);var b=this._format(this._renderEndDate,this._getTitleFormat(),this.culture);g=d+" - "+b}else{if(this.view=="centuries"){var d=this._format(this._renderCenturyStartDate,this._getTitleFormat(),this.culture);var b=this._format(this._renderCenturyEndDate,this._getTitleFormat(),this.culture);g=d+" - "+b}}var e=this.titleHeader;if(this.titleHeader){var c=e.find(".jqx-calendar-title-content");var h=a("
              "+g+"
              ");e.append(h);h.addClass(this.toThemeProperty("jqx-calendar-title-content"));if(c!=null){c.remove()}}},startRepeat:function(d,b,f,e){var c=window.setTimeout(function(){var g=a.data(b,"navigateLeftRepeat");if(!f){g=a.data(b,"navigateRightRepeat")}if(g){if(e<25){e=25}if(f){d.navigateBackward(1,"arrow");d.startRepeat(d,b,true,e)}else{d.navigateForward(1,"arrow");c=d.startRepeat(d,b,false,e)}}else{window.clearTimeout(c);return}},e)},navigateForward:function(h,g){if(h==undefined||h==null){h=this.stepMonths}var f=this.value.year;if(this.view=="decade"){f=this._renderStartDate.getFullYear()+12;if(this._renderEndDate.getFullYear()>=this.getMaxDate().getFullYear()){return}}else{if(this.view=="year"){f=this.value.year+1}else{if(this.view=="centuries"){f=this.value.year+100}}}if(this.view!="month"){var b=this.getMaxDate().getFullYear();if(bb){f=b}if(this.value.year==f){if(this.view==="decade"){if(this.value.year>this._renderEndDate.getFullYear()){this.value.year=f;this.value.month=1;this.value.day=1}else{return}}else{return}}this.value.year=f;this.value.month=1;this.value.day=1}var c=this.value.day;var i=this.value.month;if(i+h<=12){var e=this.value._daysInMonth(this.value.year,this.value.month+h);if(c>e){c=e}}if(this.view=="month"){var d=new Date(this.value.year,this.value.month-1+h,c);if(g=="arrow"&&this.selectableDays.length==7&&this.selectionMode!="range"){this.selectedDate=new Date(this.value.year,this.value.month-1+h,1)}}else{var d=new Date(this.value.year,this.value.month-1,c)}return this.navigateTo(d)},navigateBackward:function(g,f){if(g==undefined||g==null){g=this.stepMonths}var e=this.value.year;if(this.view=="decade"){e=this._renderStartDate.getFullYear()-12}else{if(this.view=="year"){e=this.value.year-1}else{if(this.view=="centuries"){e=this.value.year-100}}}if(this.view!="month"){var i=this.getMinDate().getFullYear();if(e=1){var d=this.value._daysInMonth(this.value.year,this.value.month-g);if(b>d){b=d}}if(this.view=="month"){var c=new Date(this.value.year,this.value.month-1-g,b);if(f=="arrow"&&this.selectableDays.length==7&&this.selectionMode!="range"){this.selectedDate=new Date(this.value.year,this.value.month-1-g,1)}}else{var c=new Date(this.value.year,this.value.month-1,b)}return this.navigateTo(c)},_isRestrictedRange:function(d,c){if(d>c){return true}var b=d;while(b.valueOf()<=c.valueOf()){if(this._isRestrictedDate(b)){return true}b.setDate(b.getDate()+1)}return false},_hasUnrestrictedRanges:function(d,c){if(d>c){return false}var b=d;while(b.valueOf()<=c.valueOf()){if(!this._isRestrictedDate(b)){return true}b.setDate(b.getDate()+1)}return false},_getNextUnrestrictedDay:function(d,c){if(d>c){return null}var b=d;while(b.valueOf()<=c.valueOf()){if(!this._isRestrictedDate(b)){return b}b.setDate(b.getDate()+1)}return null},_isRestrictedDate:function(d){var c=this;if(!a.isArray(c.restrictedDates)){return false}for(var g=0;g=f.valueOf()&&d.valueOf()<=e.valueOf()){return true}}else{if(b.getMonth()==d.getMonth()&&b.getDate()==d.getDate()&&b.getFullYear()==d.getFullYear()){return true}}}return false},_isDisabled:function(d){var e=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var b=d.getDay();var c=e[b];if(this.selectableDays.indexOf(c)==-1){return true}if(this._isRestrictedDate(d)){return true}return false},refreshCalendarCells:function(x,f,m){if(this.view=="year"||this.view=="decade"||this.view=="centuries"){this.refreshViews(x,f,m);return}var s=this.table;var q=s.find("#cellTable"+m.toString());var e=f;var c=new Array();var n=0;var u=new a.jqx._jqxDateTimeInput.getDateTime(new Date());for(var p=0;p<6;p++){for(var o=0;o<7;o++){var d=p+1;var h=o;if(this.rtl){h=6-h}var t=h+1;var l="#cell"+d+t+this.element.id;var w=new Date(e.dateTime.getFullYear(),e.dateTime.getMonth(),e.dateTime.getDate());var b=new a.jqx._jqxCalendar.cell(w);var g=a(q[0].rows[p].cells[t-1]);g[0].id=l.substring(1);b.element=g;b.row=p;b.column=o;b.isVisible=true;b.isOtherMonth=false;b.isToday=false;b.isWeekend=false;b.isHighlighted=false;b.isSelected=false;if(e.month!=this.value.month){b.isOtherMonth=true;b.isVisible=this.showOtherMonthDays}if(this._isRestrictedDate(w)){b.isRestricted=true;b.isDisabled=true}if(!b.isDisabled){if(wthis.getMaxDate()||this._isDisabled(w)){b.isDisabled=true}}if(e.month==u.month&&e.day==u.day&&e.year==u.year){b.isToday=true}if(e.isWeekend()){b.isWeekend=true}a.data(this.element,"cellContent"+l.substring(1),b);a.data(this.element,l.substring(1),b);c[n]=b;n++;a.jqx.utilities.html(g,e.day);this._applyCellStyle(b,g,g);e=new a.jqx._jqxDateTimeInput.getDateTime(new Date(e._addDays(1)))}}var v=a.data(this.element,x[0].id);if(v!=undefined&&v!=null){v.cells=c}this.renderedCells=c;this._refreshOtherMonthRows(v,m)},_getDecadeAndCenturiesData:function(){var k=new Array();var p=new Array();var c=this.getMaxDate().getFullYear()-this.getMinDate().getFullYear();if(c<12){c=12}var f=this.getMinDate();var b=this.getMaxDate();var l=this.value.dateTime.getFullYear();if(this.view=="decade"){if(l+12>b.getFullYear()){l=b.getFullYear()-11}if(l=f.getFullYear()&&n.getFullYear()<=b.getFullYear()){k.push("-"+n.getFullYear()+"-"+(n.getFullYear()+9));p.push(n);if(e==0){this._renderCenturyStartDate=n}this._renderCenturyEndDate=new Date(n.getFullYear()+9,0,1)}}break}}}}return{years:k,dates:p}},refreshViews:function(A,m,s){var B=this;var c=new Array();var w=A.find("#cellTable"+s.toString());var D=this._getDecadeAndCenturiesData();var l=D.years;var C=D.dates;var t=0;var f=this.getMinDate();var n=this.getMaxDate();for(var v=0;v<3;v++){for(var u=0;u<4;u++){var d=v+1;var q=u;if(this.rtl){q=3-q}var x=q+1;var z=new Date(this.value.dateTime);z.setDate(1);z.setMonth(v*4+q);var b=new a.jqx._jqxCalendar.cell(z);var e=w[0].rows["row"+(1+v)+this.element.id];var o=a(e.cells[u]);b.isSelected=false;b.isVisible=true;b.element=o;b.row=v;b.column=u;b.index=c.length;var p="";if(this.view=="year"){var h=this.localization.calendar.months.names;var g=h[v*4+q];switch(this.monthNameFormat){case"default":g=this.localization.calendar.months.namesAbbr[v*4+q];break;case"shortest":g=this.localization.calendar.months.namesShort[v*4+q];break;case"firstTwoLetters":g=g.substring(0,2);break;case"firstLetter":g=g.substring(0,1);break}p=g}else{if(this.view=="decade"||this.view=="centuries"){p=l[v*4+q];if(undefined==p){p="2013"}b.setDate(C[v*4+q])}}var z=b.getDate();if(this.view=="year"){if(z.getMonth()==this.getDate().getMonth()&&z.getFullYear()==this.getDate().getFullYear()){b.isSelected=true}}else{if(z.getFullYear()==this.getDate().getFullYear()){b.isSelected=true}}if(this.view=="year"){if(this._getYearAndMonthPart(z)this._getYearAndMonthPart(n)){b.isDisabled=true}}else{if(z.getFullYear()n.getFullYear()){b.isDisabled=true}}a.jqx.utilities.html(o,p);c[t]=b;t++}}var y=a.data(this.element,A[0].id);if(y!=undefined&&y!=null){y.cells=c}this.renderedCells=c;this._applyCellStyles()},_createViewClone:function(){var b=this.host.find(".jqx-calendar-month");var c=b.clone();c.css("position","absolute");c.css("top",b.position().top);return c},_addCellsTable:function(h,g){var e=this;var c=this.showFooter?20:0;if(this.view!="month"){g.height(this.host.height()-this.titleHeight)}else{g.height(this.host.height()-this.titleHeight-this.columnHeaderHeight-c)}this._viewAnimating=true;var b=this.host.find(".jqx-calendar-month-container");b.css("position","relative");var d=this.host.find(".jqx-calendar-month");var f=this._createViewClone();b.append(f);if(this.view!="month"){this.header.fadeOut(0);if(this.showWeekNumbers){this.rowHeader.fadeOut(0)}if(this.showFooter){this._footer.fadeOut(0)}}else{this.header.fadeIn(this.navigationDelay+200);if(this.showWeekNumbers){this.rowHeader.fadeIn(this.navigationDelay+200)}if(this.showFooter){this._footer.fadeIn(this.navigationDelay+200)}}h.children().remove();h.append(g);this._animateViews(f,g,function(){if(!e.selectedDate&&e.selectionMode!="range"){e.selectedDate=e.renderedCells[0].getDate()}try{e.renderedCells[0].element.focus();setTimeout(function(){e.renderedCells[0].element.focus()},10)}catch(i){}e._viewAnimating=false});g.addClass(this.toThemeProperty("jqx-calendar-view"))},_animateViews:function(c,b,e){var d=this;d._viewAnimating=true;if(d.oldView==d.view){c.remove();b.fadeOut(0);b.fadeIn(0);e();return}c.fadeOut(this.navigationDelay+100,function(){c.remove()});b.fadeOut(0);b.fadeIn(this.navigationDelay+200,function(){e()})},focus:function(){try{if(this.renderedCells&&this.renderedCells.length>0){var d=this;var c=false;if(!d.selectedDate&&d.selectionMode!="range"){this.setDate(new Date(),"mouse")}this.element.focus()}}catch(b){}},renderViews:function(E,n,v){var F=this;var e=new Array();var z=a("
              ");var q=this.host.find(".jqx-calendar-month-container");q.css("position","relative");var A=E.find("#cellsTable"+E[0].id);A[0].style.borderColor="transparent";var I=this._getDecadeAndCenturiesData();var m=I.years;var H=I.dates;var w=0;var g=this.getMinDate();var o=this.getMaxDate();var t=new Date(this.value.dateTime);t.setDate(1);for(var y=0;y<3;y++){for(var x=0;x<4;x++){var d=y+1;var u=x;if(this.rtl){u=3-u}var B=u+1;var f=z[0].rows["row"+(1+y)+this.element.id];var D=new Date(t);D.setMonth(y*4+u);var c=new a.jqx._jqxCalendar.cell(D);var p=a(f.cells[x]);c.isVisible=true;c.element=p;c.row=y;c.column=x;c.index=e.length;c.isSelected=false;var s="";if(this.view=="year"){if(D.getMonth()==this.getDate().getMonth()&&D.getFullYear()==this.getDate().getFullYear()){c.isSelected=true}var l=this.localization.calendar.months.names;var h=l[y*4+u];switch(this.monthNameFormat){case"default":h=this.localization.calendar.months.namesAbbr[y*4+u];break;case"shortest":h=this.localization.calendar.months.namesShort[y*4+u];break;case"firstTwoLetters":h=h.substring(0,2);break;case"firstLetter":h=h.substring(0,1);break}s=h}else{if(this.view=="decade"||this.view=="centuries"){s=m[y*4+u];c.setDate(H[y*4+u]);if(c.getDate().getFullYear()==this.getDate().getFullYear()){c.isSelected=true}if(undefined==s){s="2013"}}}var D=c.getDate();if(this.view=="year"){var b=new Date(D);b.setDate(1);b.setHours(0,0,0,0);b.setMonth(D.getMonth()+1);b=new Date(b.valueOf()-1);if(this._getYearAndMonthPart(D)this._getYearAndMonthPart(o)||!this._hasUnrestrictedRanges(D,b)){c.isDisabled=true}}else{var G=new Date(D);G.setMonth(0);G.setDate(1);G.setHours(0,0,0,0);G.setFullYear(D.getFullYear()+1);G=new Date(G.valueOf()-1);if(D.getFullYear()o.getFullYear()||!this._hasUnrestrictedRanges(D,G)){c.isDisabled=true}}a.jqx.utilities.html(p,s);e[w]=c;w++}}a.each(e,function(){var j=this.element;var i=this;if(!F.disabled){F.addHandler(j,"mousedown",function(k){F._setDateAndSwitchViews(i,k,"mouse")});F.addHandler(j,"mouseover",function(r){var k=F.renderedCells[i.index];if(F.view!="centuries"&&k.element.html().toLowerCase().indexOf("span")!=-1){return}k.isHighlighted=true;F._applyCellStyle(k,k.element,k.element)});F.addHandler(j,"mouseout",function(r){var k=F.renderedCells[i.index];if(F.view!="centuries"&&k.element.html().toLowerCase().indexOf("span")!=-1){return}k.isHighlighted=false;F._applyCellStyle(k,k.element,k.element)})}});var C=a.data(this.element,E[0].id);if(C!=undefined&&C!=null){C.cells=e}this.renderedCells=e;this._addCellsTable(A,z);this._applyCellStyles()},_setDateAndSwitchViews:function(m,d,j){if(!this._viewAnimating&&!this._animating){var g=this.getDate();var e=this.renderedCells[m.index].getDate();var k=this.value.dateTime.getDate();var l=new Date(e);if(this.views.indexOf("month")!=-1){l.setDate(k)}else{l.setDate(1);e.setDate(1)}if(l.getMonth()==e.getMonth()){e=l}var i=this.getMinDate();var c=this.getMaxDate();if(this.view=="year"){if(this._getYearAndMonthPart(e)this._getYearAndMonthPart(c)){return}}else{if(e.getFullYear()c.getFullYear()){return}}if(this.selectionMode!="range"){this._selectDate(e,j)}this.oldView=this.view;switch(this.view){case"year":this.view="month";break;case"decade":this.view="year";break}if(this.views.indexOf("month")==-1){this.view="year"}if(this.views.indexOf("year")==-1){this.view="decade"}if(this.view=="year"){if(this._getYearAndMonthPart(e)this._getYearAndMonthPart(c)){e=c}}else{if(e.getFullYear()c.getFullYear()){e=c}}if(this.changing&&(this.selectedDate&&(this.selectedDate.getFullYear()!=e.getFullYear()||this.selectedDate.getMonth()!=e.getMonth()||this.selectedDate.getDate()!=e.getDate()))){e=this.selectedDate}this.value._setYear(e.getFullYear());this.value._setDay(e.getDate());this.value._setMonth(e.getMonth()+1);this.value._setDay(e.getDate());var h=this.getVisibleDate();var b=this.getFirstDayOfWeek(h);var f="View"+this.element.id;this.renderCalendarCells(this.month,b,f,true);this.refreshTitle(this.month);if(this.showWeekNumbers){this.refreshRowHeader(this.month,f)}if(this.views.length==3){if(this.view=="month"){if(this.selectionMode!="range"){this._selectDate(this.selectedDate,"view")}else{var n=this;a.each(this.renderedCells,function(r){var o=this;var t=o.getDate();var p=a(o.element);var q=p;if(p.length==0){return false}var s=function(v){if(v==null){return new Date()}var u=new Date();u.setHours(0,0,0,0);u.setFullYear(v.getFullYear(),v.getMonth(),v.getDate());return u};if(!o.isOtherMonth&&s(t).toString()==s(e).toString()){n.value._setMonth(e.getMonth()+1);n.value._setDay(e.getDate());n.value._setYear(e.getFullYear())}o.isSelected=false;o.isDisabled=false;if(s(t)t){o.isDisabled=true}if(n._isDisabled(t)){o.isDisabled=true}if(!o.isDisabled){if(s(t)>=s(n.selection.from)&&s(t)<=s(n.selection.to)){o.isSelected=true}}});this._applyCellStyles()}}}if(this.view!="month"){if(this.oldView=="year"||(this.views.indexOf("year")==-1&&this.view=="decade")){if(j!="keyboard"){this._raiseEvent("3")}this._raiseEvent("5",{selectionType:"mouse"})}}this._raiseEvent("8")}},renderCalendarCells:function(D,m,s,q){if(this.view=="year"||this.view=="decade"||this.view=="centuries"){this.renderViews(D,m,s);return}var x=a("
              ");var y=this.table;y[0].style.borderColor="transparent";if(q==undefined){var g=y.find("#cellTable"+s.toString());if(g!=null){g.remove()}y.append(x)}var l=m;var b=this.showDayNames?1:0;var f=this.showWeekNumbers?1:0;var d=new Array();var t=0;var v=(D.width()-this.rowHeaderWidth-2)/7;if(!this.showWeekNumbers){v=(D.width()-2)/7}v=parseInt(v);var A=new a.jqx._jqxDateTimeInput.getDateTime(new Date());for(var w=0;w<6;w++){for(var u=0;u<7;u++){var e=w+1;var o=u;if(this.rtl){o=6-o}var z=o+1;var p="#cell"+e+z+this.element.id;var C=new Date(l.dateTime.getFullYear(),l.dateTime.getMonth(),l.dateTime.getDate());var c=new a.jqx._jqxCalendar.cell(C);var n=a(x[0].rows[w].cells[z-1]);n[0].id=p.substring(1);c.isVisible=true;c.isDisabled=false;if(l.month!=this.value.month){c.isOtherMonth=true;c.isVisible=this.showOtherMonthDays}if(this._isRestrictedDate(C)){c.isRestricted=true;c.isDisabled=true}if(!c.isDisabled){if(Cthis.getMaxDate()||this._isDisabled(C)){c.isDisabled=true}}if(l.month==A.month&&l.day==A.day&&l.year==A.year){c.isToday=true}if(l.isWeekend()){c.isWeekend=true}c.element=n;c.row=b;c.column=f;a.jqx.utilities.html(n,l.day);l=new a.jqx._jqxDateTimeInput.getDateTime(new Date(l._addDays(1)));a.data(this.element,"cellContent"+p.substring(1),c);a.data(this.element,""+p.substring(1),c);var E=this;this.addHandler(n,"mousedown",function(I){if(!E.readOnly&&!E.disabled){var H=a(I.target);var j=a.data(E.element,H[0].id);var i=E._raiseEvent(3,I);if(j!=null&&j!=undefined){var r=j.getDate();if(E.getMinDate()<=r&&r<=E.getMaxDate()){if(!j.isDisabled){if(j.isOtherMonth&&E.enableAutoNavigation){if(j.row<2){E.navigateBackward()}else{E.navigateForward()}E._selectDate(j.getDate(),"mouse",I.shiftKey)}else{var F=new Date(E.getDate());E._selectDate(j.getDate(),"mouse",I.shiftKey);E.value._setYear(r.getFullYear());E.value._setDay(1);E.value._setMonth(r.getMonth()+1);E.value._setDay(r.getDate());var G=E.host.find(".jqx-calendar-month");G.stop();G.css("margin-left","0px");var k=E.getDate();E._raiseEvent("2");if(j.isOtherMonth){E._raiseEvent("5",{selectionType:"mouse"})}}}}}return false}});if(!E.disabled){var h=function(F,j){if(!E.readOnly){var r=a(F.target);var i=a.data(E.element,r[0].id);if(i!=null&&i!=undefined){var k=i.getDate();if(E.getMinDate()<=k&&k<=E.getMaxDate()){i.isHighlighted=j;E._applyCellStyle(i,i.element,r)}}}};this.addHandler(n,"mouseenter",function(i){h(i,true);return false});this.addHandler(n,"mouseleave",function(i){h(i,false);return false})}f++;d[t]=c;t++}f=0;b++}var B=a.data(this.element,D[0].id);if(B!=undefined&&B!=null){B.cells=d}this.renderedCells=d;if(q!=undefined){this._addCellsTable(y,x)}this._applyCellStyles();this._refreshOtherMonthRows(B,s)},setMaxDate:function(b,c){if(b!=null&&typeof(b)=="string"){b=new Date(b);if(b=="Invalid Date"){return}}this.maxDate=a.jqx._jqxDateTimeInput.getDateTime(b);if(c!==false){this.render()}},getMaxDate:function(){if(this.maxDate!=null&&this.maxDate!=undefined){return this.maxDate.dateTime}return null},setMinDate:function(b,c){if(b!=null&&typeof(b)=="string"){b=new Date(b);if(b=="Invalid Date"){return}}this.minDate=a.jqx._jqxDateTimeInput.getDateTime(b);if(c!==false){this.render()}},getMinDate:function(){if(this.minDate!=null&&this.minDate!=undefined){return this.minDate.dateTime}return null},navigateTo:function(f,h){if(this.view=="month"){var g=this.getMinDate();var c=new Date(this.getMaxDate().getFullYear(),this.getMaxDate().getMonth()+1,this.getMaxDate().getDate());if((fthis._getYearAndMonthPart(c))){return false}}else{if(f&&(f.getFullYear()this.getMaxDate().getFullYear())){return false}}if(f==null){return false}if(h==undefined){var i=this;if(this._animating){return}this._animating=true;var d=this.host.find(".jqx-calendar-month-container");if(this._viewClone){this._viewClone.stop();this._viewClone.remove()}if(this._newViewClone){this._newViewClone.stop();this._newViewClone.remove()}var k=this.host.find(".jqx-calendar-month");k.stop();k.css("margin-left","0px");var b=k.clone();this._viewClone=b;var j=new Date(this.value.dateTime);this.value._setYear(f.getFullYear());this.value._setDay(f.getDate());this.value._setMonth(f.getMonth()+1);i.refreshControl();d.css("position","relative");b.css("position","absolute");b.css("top",k.position().top);d.append(b);if(a.jqx.browser.msie&&a.jqx.browser.version<8){this.month.css("position","relative");this.month.css("overflow","hidden");this.table.css("position","relative");this.table.css("overflow","hidden")}var e=-this.host.width();if(fo){w.isDisabled=true}if(k._isRestrictedDate(o)){w.isDisabled=true;w.isRestricted=true}if(!w.isDisabled&&k._isDisabled(o)){w.isDisabled=true}k._applyCellStyle(w,v,l);return true}if(r==0){if(g!="none"){if(k._clicks==undefined){k._clicks=0}k._clicks++;if(c){k._clicks++}if(k._clicks==1){k.selection={from:d,to:d}}else{var u=k.selection.from;var q=u<=d?u:d;var t=u<=d?d:u;if(q){var m=new Date(q.getFullYear(),q.getMonth(),q.getDate())}if(t){var n=new Date(t.getFullYear(),t.getMonth(),t.getDate(),23,59,59)}k.selection={from:m,to:n};k._clicks=0}}else{if(k.selection==null||k.selection.from==null){k.selection={from:d,to:d};if(k._clicks==undefined){k._clicks=0}k._clicks++;if(k._clicks==2){k._clicks=0}}}}var p=function(y){if(y==null){return new Date()}var x=new Date();x.setHours(0,0,0,0);x.setFullYear(y.getFullYear(),y.getMonth(),y.getDate());return x};if(!w.isOtherMonth&&p(o).toString()==p(d).toString()){k.value._setMonth(d.getMonth()+1);k.value._setDay(d.getDate());k.value._setYear(d.getFullYear());k._raiseEvent("2");k._raiseEvent("5",{selectionType:g})}w.isSelected=false;w.isDisabled=h;if(p(o)o){w.isDisabled=true}if(k._isRestrictedDate(o)){w.isRestricted=true;w.isDisabled=true}if(!w.isDisabled&&k._isDisabled(o)){w.isDisabled=true}if(!w.isDisabled){if(p(o)>=p(k.selection.from)&&p(o)<=p(k.selection.to)){w.isSelected=true}}else{if(!k.allowRestrictedDaysInRange&&p(o)>=p(k.selection.from)&&k.selection.to==k.selection.from){h=true}}}}}k._applyCellStyle(w,v,l)});if(k.selectionMode=="range"&&k._clicks==0){k._raiseEvent(7,{selectionType:g});return}else{if(k.selectionMode=="range"){return}}if(e!=d){k._raiseEvent(7,{selectionType:g});if(this.change){this.change(d)}}},_getSelectedDate:function(){var d=a.data(this.element,"View"+this.element.id);if(d==undefined||d==null){return}if(this.view!="month"){return this.selectedDate}for(var c=0;c0&&g.html().toLowerCase().indexOf("span")!=-1){g.css("cursor","default")}}}g.removeAttr("aria-selected");if(c.isSelected&&c.isVisible){b+=" "+this.toThemeProperty("jqx-calendar-cell-selected");b+=" "+this.toThemeProperty("jqx-fill-state-pressed");g.attr("aria-selected",true);this.host.removeAttr("aria-activedescendant").attr("aria-activedescendant",g[0].id);var f=c.getDate();if(this._isDisabled(f)){b+=" "+this.toThemeProperty("jqx-calendar-cell-selected-invalid")}}if(c.isHighlighted&&c.isVisible&&this.enableHover){if(!c.isDisabled){b+=" "+this.toThemeProperty("jqx-calendar-cell-hover");b+=" "+this.toThemeProperty("jqx-fill-state-hover")}}b+=" "+this.toThemeProperty("jqx-calendar-cell-"+this.view);if(c.isToday&&c.isVisible){b+=" "+this.toThemeProperty("jqx-calendar-cell-today")}g[0].className=b;if(this.specialDates.length>0){var h=this;a.each(this.specialDates,function(){if(this.Class!=undefined&&this.Class!=null&&this.Class!=""){g.removeClass(this.Class)}else{g.removeClass(e.toThemeProperty("jqx-calendar-cell-specialDate"))}var i=c.getDate();if(i.getFullYear()==this.Date.getFullYear()&&i.getMonth()==this.Date.getMonth()&&i.getDate()==this.Date.getDate()){if(c.tooltip==null&&this.Tooltip!=null){c.tooltip=this.Tooltip;if(a(g).jqxTooltip){var j=this.Class;a(g).jqxTooltip({value:{cell:c,specialDate:this.Date},name:h.element.id,content:this.Tooltip,position:"mouse",theme:h.theme,opening:function(k){if(g.hasClass(e.toThemeProperty("jqx-calendar-cell-specialDate"))){return true}if(g.hasClass(j)){return true}return false}})}}g.removeClass(e.toThemeProperty("jqx-calendar-cell-othermonth"));g.removeClass(e.toThemeProperty("jqx-calendar-cell-weekend"));if(this.Class==undefined||this.Class==""){g.addClass(e.toThemeProperty("jqx-calendar-cell-specialDate"));return false}else{g.addClass(this.Class);return false}}})}},_applyCellStyles:function(){var f=a.data(this.element,"View"+this.element.id);if(f==undefined||f==null){return}for(var e=0;e=0?c:c+7);var d=Math.floor((b.getTime()-e.getTime()-(b.getTimezoneOffset()-e.getTimezoneOffset())*60000)/86400000)+1;var g;if(c<4){g=Math.floor((d+c-1)/7)+1;if(g>52){nYear=new Date(b.getFullYear()+1,0,1);nday=nYear.getDay()-dowOffset;nday=nday>=0?nday:nday+7;g=nday<4?1:53}}else{g=Math.floor((d+c-1)/7)}return g},renderColumnHeader:function(w){if(!this.showDayNames){return}var t=a("
              ");t.find("table").addClass(this.toThemeProperty("jqx-reset"));t.find("tr").addClass(this.toThemeProperty("jqx-reset"));t.find("td").css({background:"transparent",padding:1,margin:0,border:"none"});t.addClass(this.toThemeProperty("jqx-reset"));t.addClass(this.toThemeProperty("jqx-widget-content"));t.addClass(this.toThemeProperty("jqx-calendar-column-header"));this.columnHeader.append(t);var d=this.getVisibleDate();var h=this.getFirstDayOfWeek(d);var m=h.dayOfWeek;var x=this.getWeekOfYear(h);var q=this.firstDayOfWeek;var v=this.localization.calendar.days.names;var n=new Array();var g=h;var o=(w.width()-this.rowHeaderWidth-2)/7;if(!this.showWeekNumbers){o=(w.width()-2)/7}for(var s=0;s<7;s++){var f=v[q];if(this.rtl){f=v[6-q]}switch(this.dayNameFormat){case"default":f=this.localization.calendar.days.namesAbbr[q];if(this.rtl){f=this.localization.calendar.days.namesAbbr[6-q]}break;case"shortest":f=this.localization.calendar.days.namesShort[q];if(this.rtl){f=this.localization.calendar.days.namesShort[6-q]}break;case"firstTwoLetters":f=f.substring(0,2);break;case"firstLetter":f=f.substring(0,1);break}var b=new a.jqx._jqxCalendar.cell(g.dateTime);var k=s+1;var l=k+this.element.id;var j=a(t[0].rows[0].cells[s]);var p=s;if(this.enableTooltips){if(a(j).jqxTooltip){a(j).jqxTooltip({name:this.element.id,content:v[q],theme:this.theme,position:"mouse"})}}if(q>=6){q=0}else{q++}s=p;b.element=j;b.row=0;b.column=s+1;var e=this._textwidth(f);var c="
              "+f+"
              ";j.append(c);j.find("#columnCell"+l).addClass(this.toThemeProperty("jqx-calendar-column-cell"));j.width(o);if(this.disabled){j.find("#columnCell"+l).addClass(this.toThemeProperty("jqx-calendar-column-cell-disabled"))}if(e>0&&o>0){while(e>j.width()){if(f.length==0){break}f=f.substring(0,f.length-1);a.jqx.utilities.html(j.find("#columnCell"+l),f);e=this._textwidth(f)}}n[s]=b;g=new a.jqx._jqxDateTimeInput.getDateTime(new Date(g._addDays(1)))}if(parseInt(this.columnHeader.width())>parseInt(this.host.width())){this.columnHeader.width(this.host.width())}var u=a.data(this.element,w[0].id);u.columnCells=n},_format:function(d,e,b){var f=false;try{if(Globalize!=undefined){f=true}}catch(c){}if(a.global){a.global.culture.calendar=this.localization.calendar;return a.global.format(d,e,this.culture)}else{if(f){try{if(Globalize.cultures[this.culture]){Globalize.cultures[this.culture].calendar=this.localization.calendar;return Globalize.format(d,e,this.culture)}else{return Globalize.format(d,e,this.culture)}}catch(c){return Globalize.format(d,e)}}else{if(a.jqx.dataFormat){return a.jqx.dataFormat.formatdate(d,e,this.localization.calendar)}}}},_textwidth:function(d){var c=a(""+d+"");c.addClass(this.toThemeProperty("jqx-calendar-column-cell"));a(this.host).append(c);var b=c.width();c.remove();return b},_textheight:function(d){var c=a(""+d+"");a(this.host).append(c);var b=c.height();c.remove();return b},_renderRowHeader:function(k){var g=this.getVisibleDate();var c=this.getFirstDayOfWeek(g);var f=c.dayOfWeek;var s=this.getWeekOfYear(c);var o=new a.jqx._jqxDateTimeInput.getDateTime(new Date(c.dateTime));o._addDays(5);o.dayOfWeek=o.dateTime.getDay();var m=this.getWeekOfYear(o);if(53==s&&o.dateTime.getMonth()==0){s=1}var l=a("
              ");l.find("table").addClass(this.toThemeProperty("jqx-reset"));l.find("td").addClass(this.toThemeProperty("jqx-reset"));l.find("tr").addClass(this.toThemeProperty("jqx-reset"));l.addClass(this.toThemeProperty("jqx-calendar-row-header"));l.width(this.rowHeaderWidth);this.rowHeader.append(l);var d=c;var r=new Array();for(var h=0;h<6;h++){var e=s.toString();var q=new a.jqx._jqxCalendar.cell(d.dateTime);var j=h+1+this.element.id;var p=a(l[0].rows[h].cells[0]);q.element=p;q.row=h;q.column=0;var b="
              "+e+"
              ";p.append(b);p.find("#headerCellContent"+j).addClass(this.toThemeProperty("jqx-calendar-row-cell"));r[h]=q;d=new a.jqx._jqxDateTimeInput.getDateTime(new Date(d._addWeeks(1)));s=this.getWeekOfYear(d)}var n=a.data(this.element,k[0].id);n.rowCells=r},getFirstDayOfWeek:function(e){var d=e;if(this.firstDayOfWeek<0||this.firstDayOfWeek>6){this.firstDayOfWeek=6}var c=d.dayOfWeek-this.firstDayOfWeek;if(c<=0){c+=7}var b=a.jqx._jqxDateTimeInput.getDateTime(d._addDays(-c));return b},getVisibleDate:function(){var c=new a.jqx._jqxDateTimeInput.getDateTime(new Date(this.value.dateTime));if(cthis.maxDate){this.visibleDate=this.maxDate}c.dateTime.setHours(0);var d=c.day;var b=a.jqx._jqxDateTimeInput.getDateTime(c._addDays(-d+1));c=b;return c},destroy:function(b){this.host.removeClass();if(b!=false){this.host.remove()}},_raiseEvent:function(d,i){if(i==undefined){i={owner:null}}var h=this.events[d];var g=i?i:{};g.owner=this;var c=new a.Event(h);c.owner=this;c.args=g;if(d==0||d==1||d==2||d==3||d==4||d==5||d==6||d==7||d==8){c.args.date=c.args.selectedDate=this.getDate();c.args.range=this.getRange();var e=this.getViewStart();var f=this.getViewEnd();c.args.view={from:e,to:f}}if(d==7){var b=g.selectionType;if(!b){b=null}if(b=="key"){b="keyboard"}if(b=="none"){b=null}g.type=b}var j=this.host.trigger(c);if(d==0||d==1){j=false}return j},propertyMap:function(b){if(b=="value"){if(this.selectionMode!="range"){return this.getDate()}else{return this.getRange()}}return null},updateSize:function(){var d=this.host.find("#View"+this.element.id);if(d.length>0){this.setCalendarSize();if(this.height!=undefined&&!isNaN(this.height)){d.height(this.height)}else{if(this.height!=null&&this.height.toString().indexOf("px")!=-1){d.height(this.height)}}if(this.width!=undefined&&!isNaN(this.width)){d.width(this.width)}else{if(this.width!=null&&this.width.toString().indexOf("px")!=-1){d.width(this.width)}}var c=this.host.height()-this.titleHeight-this.columnHeaderHeight;var b="View"+this.element.id;d.find("#cellsTable"+b).height(c);d.find("#calendarRowHeader"+b).height(c);this.refreshControl()}},resize:function(){this.updateSize()},clear:function(){if(this.selectionMode=="range"){this._clicks=1;this.setRange(null,null);this._raiseEvent(7)}else{this.setDate(null,"mouse")}this._clicks=0;this.selection={from:null,to:null}},today:function(){if(this.selectionMode=="range"){this.setRange(new Date(),new Date())}else{this.setDate(new Date(),"mouse")}},propertyChangedHandler:function(d,e,g,f){if(this.isInitialized==undefined||this.isInitialized==false){return}if(e=="enableHover"){return}if(e=="keyboardNavigation"){return}if(e=="localization"){if(this.localization){if(this.localization.backString){this.backText=this.localization.backString}if(this.localization.forwardString){this.forwardText=this.localization.forwardString}if(this.localization.todayString){this.todayString=this.localization.todayString}if(this.localization.clearString){this.clearString=this.localization.clearString}this.firstDayOfWeek=this.localization.calendar.firstDay}}if(e=="culture"){try{if(a.global){a.global.preferCulture(d.culture);d.localization.calendar=a.global.culture.calendar}else{if(Globalize){var b=Globalize.culture(d.culture);d.localization.calendar=b.calendar}}if(d.localization.calendar&&d.localization.calendar.firstDay!=undefined&&d.culture!="default"){d.firstDayOfWeek=d.localization.calendar.firstDay}}catch(c){}}if(e=="views"){if(d.views.indexOf("month")==-1){d.view="year"}if(d.views.indexOf("year")==-1&&d.views.indexOf("month")==-1){d.view="decade"}d.render();return}if(e=="showFooter"){d.render()}if(e=="width"||e=="height"){d.updateSize();return}else{if(e=="theme"){a.jqx.utilities.setTheme(g,f,d.host)}else{if(e=="rowHeaderWidth"||e=="showWeekNumbers"){d.render()}else{d.view="month";d.render()}}}}})})(jqxBaseFramework);(function(a){a.jqx._jqxCalendar.cell=function(c){var b={dateTime:new a.jqx._jqxDateTimeInput.getDateTime(c),_date:c,getDate:function(){return this._date},setDate:function(d){this.dateTime=new a.jqx._jqxDateTimeInput.getDateTime(d);this._date=d},isToday:false,isWeekend:false,isOtherMonth:false,isVisible:true,isSelected:false,isHighlighted:false,element:null,row:-1,column:-1,tooltip:null};return b};a.jqx._jqxCalendar.monthView=function(c,h,d,b,f,e){var g={start:c,end:h,cells:d,rowCells:b,columnCells:f,element:e};return g}})(jqxBaseFramework); \ No newline at end of file diff --git a/htdocs/public/jqwidgets/jqxchart.annotations.js b/htdocs/public/jqwidgets/jqxchart.annotations.js deleted file mode 100644 index d04b6b73..00000000 --- a/htdocs/public/jqwidgets/jqxchart.annotations.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -jQWidgets v4.0.0 (2016-Jan) -Copyright (c) 2011-2016 jQWidgets. -License: http://jqwidgets.com/license/ -*/ - -(function(a){a.extend(a.jqx._jqxChart.prototype,{_moduleAnnotations:true,_renderAnnotation:function(f,g,c){var j=this.seriesGroups[f];var q=this.renderer;if(isNaN(f)){return}var l=this._get([this.getXAxisDataPointOffset(g.xValue,f),g.x]);var k=this._get([this.getValueAxisDataPointOffset(g.yValue,f),g.y]);var v=this._get([this.getXAxisDataPointOffset(g.xValue2,f),g.x2]);var e=this._get([this.getValueAxisDataPointOffset(g.yValue2,f),g.y2]);if(j.polar||j.spider){var r=this.getPolarDataPointOffset(g.xValue,g.yValue,f);if(r&&!isNaN(r.x)&&!isNaN(r.y)){l=r.x;k=r.y}else{l=g.x;k=g.y}}if(isNaN(k)||isNaN(l)){return false}if(j.orientation=="horizontal"){var w=l;l=k;k=w;w=v;v=e;e=w}if(g.offset){if(!isNaN(g.offset.x)){l+=g.offset.x;v+=g.offset.x}if(!isNaN(g.offset.y)){k+=g.offset.y;e+=g.offset.y}}var p=this._get([g.width,v-l]);var o=this._get([g.height,e-k]);var d;switch(g.type){case"rect":d=q.rect(l,k,p,o);break;case"circle":d=q.rect(l,k,g.radius);break;case"line":d=q.rect(l,k,v,e);break;case"path":d=q.path(g.path);break}q.attr(d,{fill:g.fillColor,stroke:g.lineColor,opacity:this._get([g.fillOpacity,g.opacity]),"stroke-opacity":this._get([g.lineOpacity,g.opacity]),"stroke-width":g.lineWidth,"stroke-dasharray":g.dashStyle||"none"});var u;if(g.text){var m=g.text;var z=0,h=0;if(m.offset){if(!isNaN(m.offset.x)){z+=m.offset.x}if(!isNaN(m.offset.y)){h+=m.offset.y}}u=q.text(m.value,l+z,k+h,NaN,NaN,m.angle,{},m.clip===true,m.horizontalAlignment||"center",m.verticalAlignment||"center",m.rotationPoint||"centermiddle");q.attr(u,{fill:m.fillColor,stroke:m.lineColor,"class":m["class"]})}var b=["click","mouseenter","mouseleave"];var n=this;for(var t=0;t=g.x&&f<=g.x+g.width&&i>=g.y&&i<=g.y+g.height){return}c._cancelTooltipTimer();c._hideToolTip(0);c._unselect()});c.addHandler(c.host,"click",function(g){if(c.enabled==false){return}var f=g.pageX||g.clientX||g.screenX;var j=g.pageY||g.clientY||g.screenY;var i=c.host.offset();if(c._isTouchDevice){var h=a.jqx.position(g);f=h.left;j=h.top}f-=i.left;j-=i.top;c._mouseX=f;c._mouseY=j;if(!isNaN(c._lastClickTs)){if((new Date()).valueOf()-c._lastClickTs<100){return}}this._hostClickTimer=setTimeout(function(){if(!c._isTouchDevice){c._cancelTooltipTimer();c._hideToolTip();c._unselect()}if(c._pointMarker&&c._pointMarker.element){var l=c.seriesGroups[c._pointMarker.gidx];var k=l.series[c._pointMarker.sidx];g.stopImmediatePropagation();c._raiseItemEvent("click",l,k,c._pointMarker.iidx)}},100)});var e=c.element.style;if(e){var b=false;if(e.width!=null){b|=e.width.toString().indexOf("%")!=-1}if(e.height!=null){b|=e.height.toString().indexOf("%")!=-1}if(b){a.jqx.utilities.resize(this.host,function(){if(c.timer){clearTimeout(c.timer)}var f=1;c.timer=setTimeout(function(){var g=c.enableAnimations;c.enableAnimations=false;c.refresh();c.enableAnimations=g},f)},false,true)}}},_refreshOnDownloadComlete:function(){var d=this;var e=this.source;if(e instanceof a.jqx.dataAdapter){var f=e._options;if(f==undefined||(f!=undefined&&!f.autoBind)){e.autoSync=false;e.dataBind()}var c=this.element.id;if(e.records.length==0){var b=function(){if(d.ready){d.ready()}d.refresh()};e.unbindDownloadComplete(c);e.bindDownloadComplete(c,b)}else{if(d.ready){d.ready()}}e.unbindBindingUpdate(c);e.bindBindingUpdate(c,function(){if(d._supressBindingRefresh){return}d.refresh()})}},propertyChangedHandler:function(b,c,e,d){if(this.isInitialized==undefined||this.isInitialized==false){return}if(c=="source"){this._refreshOnDownloadComlete()}this.refresh()},_initRenderer:function(b){if(!a.jqx.createRenderer){throw"Please include jqxdraw.js"}return a.jqx.createRenderer(this,b)},_internalRefresh:function(){var b=this;if(a.jqx.isHidden(b.host)){return}b._stopAnimations();if(!b.renderer||(!b._isToggleRefresh&&!b._isUpdate)){b._hideToolTip(0);b._isVML=false;b.host.empty();b._measureDiv=undefined;b._initRenderer(b.host)}var d=b.renderer;if(!d){return}var c=d.getRect();b._render({x:1,y:1,width:c.width,height:c.height});this._raiseEvent("refreshBegin",{instance:this});if(d instanceof a.jqx.HTML5Renderer){d.refresh()}b._isUpdate=false;this._raiseEvent("refreshEnd",{instance:this})},saveAsPNG:function(d,b,c){return this._saveAsImage("png",d,b,c)},saveAsJPEG:function(d,b,c){return this._saveAsImage("jpeg",d,b,c)},saveAsPDF:function(d,b,c){return this._saveAsImage("pdf",d,b,c)},_saveAsImage:function(e,h,b,c){var g=false;for(var d=0;d10){o=1}I.attr(ai,{"stroke-width":o,stroke:F})}else{if(a.jqx.browser.msie&&a.jqx.browser.version<9){I.attr(ai,{"stroke-width":1,stroke:m.backgroundColor||"white"})}}if(a.isFunction(m.drawBefore)){m.drawBefore(I,C)}var V={x:Y.left,y:Y.top,width:C.width-Y.left-Y.right,height:C.height-Y.top-Y.bottom};m._paddedRect=V;var e=m.titlePadding||{left:2,top:2,right:2,bottom:2};var l;if(m.title&&m.title.length>0){var S=m.toThemeProperty("jqx-chart-title-text",null);l=I.measureText(m.title,0,{"class":S});I.text(m.title,V.x+e.left,V.y+e.top,V.width-(e.left+e.right),l.height,0,{"class":S},true,"center","center");V.y+=l.height;V.height-=l.height}if(m.description&&m.description.length>0){var T=m.toThemeProperty("jqx-chart-title-description",null);l=I.measureText(m.description,0,{"class":T});I.text(m.description,V.x+e.left,V.y+e.top,V.width-(e.left+e.right),l.height,0,{"class":T},true,"center","center");V.y+=l.height;V.height-=l.height}if(m.title||m.description){V.y+=(e.bottom+e.top);V.height-=(e.bottom+e.top)}var b={x:V.x,y:V.y,width:V.width,height:V.height};m._plotRect=b;m._buildStats(b);var H=m._isPieOnlySeries();var s=m.seriesGroups;var E;var D={xAxis:{},valueAxis:{}};for(var Z=0;Z0){D.xAxis[ae]|=1}}}else{R=m._renderValueAxis(Z,f,true,b).width;if((D.valueAxis[O]&1)==1){R=0}else{if(R>0){D.valueAxis[O]|=1}}}}if(Q!="left"&&m.rtl==true){Q="right"}if(Q!="right"){Q="left"}if(r[Q+"Count"]>0&&r[Q]>0&&R>0){r[Q]+=U}p.push({width:R,position:Q,xRel:r[Q]});r[Q]+=R;r[Q+"Count"]++}var u=Math.max(1,Math.max(C.width,C.height));var ac={top:0,bottom:0,topCount:0,bottomCount:0};var W=[];for(Z=0;Z0){D.valueAxis[O]|=2}}}else{ab=m._renderXAxis(Z,{x:0,y:0,width:u,height:0},true).height;if((D.xAxis[ae]&2)==2){ab=0}else{if(ab>0){D.xAxis[ae]|=2}}}}if(Q!="top"){Q="bottom"}if(ac[Q+"Count"]>0&&ac[Q]>0&&ab>0){ac[Q]+=U}W.push({height:ab,position:Q,yRel:ac[Q]});ac[Q]+=ab;ac[Q+"Count"]++}m._createAnimationGroup("series");var t=(m.showLegend!=false);var B=!t?{width:0,height:0}:m._renderLegend(m.legendLayout?m._rect:V,true);if(this.legendLayout&&(!isNaN(this.legendLayout.left)||!isNaN(this.legendLayout.top))){B={width:0,height:0}}if(V.heightA.x+A.width){R=A.x+A.width-P}if(N+ab>A.y+A.height){ab=A.y+A.height-N}m._renderLegend({x:P,y:N,width:R,height:ab})}m._hasHorizontalLines=false;if(!H){for(Z=0;Zp){p=j.height}if(j.width>v){v=j.width}if(u){if(M!=0){E+=p}if(E>H.height){E=0;F+=v+2*N+f;v=j.width;D.width=F+v}}else{if(F!=0){F+=N}if(F+2*f+j.width>H.width&&j.widthB.width){J=true;var q=B.width;var Q=z;var U=Q.split(/\s+/).reverse();var m=[];var s="";var o=[];while(undefined!=(word=U.pop())){m.push(word);s=m.join(" ");var A=k.renderer.measureText(s,0,{"class":I});if(A.width>q&&o.length>0){m.pop();m=[word];s=m.join(" ")}o.push({text:s})}j.width=0;var b=0;for(var G=0;Gq&&o.length>0){m.pop();d+=A.height;m=[word];s=m.join(" ")}o.push({text:s,dy:d})}for(var G=0;Gd){n=f._elementRenderInfo[d].xAxis}var p=[];var I;if(O.labels.formatFunction){I=O.labels.formatFunction}var u;if(O.labels.formatSettings){u=a.extend({},O.labels.formatSettings)}if(q.type=="date"){if(q.dateFormat&&!I){if(u){u.dateFormat=u.dateFormat||q.dateFormat}else{u={dateFormat:q.dateFormat}}}else{if(!I&&(!u||(u&&!u.dateFormat))){I=this._getDefaultDTFormatFn(q.baseUnit||"day")}}}for(var N=0;N=S.filterRange.min&&T<=S.filterRange.max){v=S.useIndeces?(S.min+T).toString():(L==undefined?"":L.toString())}}var b={key:L,text:v,targetX:H,x:H};if(n&&n.itemOffsets[L]){b.x=n.itemOffsets[L].x;b.y=n.itemOffsets[L].y}p.push(b)}var C=f._getAnimProps(d);var t=C.enabled&&p.length<500?C.duration:0;if(f.enableAxisTextAnimation==false){t=0}var z={items:p,renderData:j};var e=f._renderAxis(W,D,O,{x:w.x,y:w.y,width:w.width,height:w.height},c,F,false,true,z,Q,t);if(W){e.width+=E}else{e.height+=E}return e},_animateAxisText:function(f,h){var c=f.items;var d=f.textSettings;for(var e=0;em){var l=n;n=m;m=l}var t=a.jqx._rnd(Math.abs(n-m)/(Math.PI*2),0.001,true);var q=Math.PI*2*f*t;var g=this._calcGroupOffsets(e,b).xoffsets;if(!g){return}var j=!(Math.abs(Math.abs(m-n)-Math.PI*2)>0.00001);if(i.spider){axisStats=this._getXAxisStats(e,this._getXAxis(e),q);var r=axisStats.interval;if(isNaN(r)||r==0){r=1}var d=(axisStats.max-axisStats.min)/r+(j?1:0);d=Math.round(d);if(d>2){var c=Math.cos(Math.abs(m-n)/2/d);c=a.jqx._rnd(c,0.01);if(c==0){c=1}var s=f/c;if(s>f&&h){f=s}}}f=a.jqx._ptrnd(f);return{x:p,y:o,r:f,adjR:this._get([s,f]),itemWidth:g.itemWidth,rangeLength:g.rangeLength,valuesOnTicks:h,startAngle:n,endAngle:m,isClosedCircle:j,axisSize:q}},_toPolarCoord:function(j,f,h,e){var c=Math.abs(j.startAngle-j.endAngle)/(Math.PI*2);var b=(h-f.x)*2*Math.PI*c/Math.max(1,f.width)+j.startAngle;var d=((f.height+f.y)-e)*j.r/Math.max(1,f.height);var i=j.x+d*Math.cos(b);var g=j.y+d*Math.sin(b);return{x:a.jqx._ptrnd(i),y:a.jqx._ptrnd(g)}},_renderSpiderAxis:function(A,k){var ap=this;var g=ap._getXAxis(A);var aB=this._getAxisSettings(g);if(!g||!aB.visible){return}var X=ap.seriesGroups[A];var S=ap._getPolarAxisCoords(A,k);if(!S){return}var M=a.jqx._ptrnd(S.x);var L=a.jqx._ptrnd(S.y);var t=S.adjR;var Y=S.startAngle;var W=S.endAngle;if(t<1){return}var aw=a.jqx._rnd(Math.abs(Y-W)/(Math.PI*2),0.001,true);var h=Math.PI*2*t*aw;var c=S.isClosedCircle;var w=this._renderData[A].xoffsets;if(!w.rangeLength){return}var T=w.axisStats.interval;if(isNaN(T)||T<1){T=1}var at=X.orientation=="horizontal";var aa=(at&&g.position=="right")||(!at&&g.position=="top");while(ap._renderData.lengthA){s=ap._elementRenderInfo[A].xAxis}var ar=[];var ag=this._getDataLen(A);for(var R=0;R=ag){continue}I=ap._getDataValue(ay,g.dataField);if(I==undefined){I=""}}var aq=ap._formatValue(I,z.formatSettings,z.formatFunction,A,undefined,ay);if(aq==undefined||aq.toString()==""){aq=af.useIndeces?(af.min+R).toString():(I==undefined?"":I.toString())}var d={key:I,text:aq,targetX:G,x:G};if(s&&s.itemOffsets[I]){d.x=s.itemOffsets[I].x;d.y=s.itemOffsets[I].y}ar.push(d)}var aA={items:ar,renderData:au};var l={stroke:e.color,fill:"none","stroke-width":e.width,"stroke-dasharray":e.dashStyle||""};if(!X.spider){if(aw==1){ae.circle(M,L,t,l)}else{var F=-Y/Math.PI*180;var aF=-W/Math.PI*180;this.renderer.pieslice(M,L,0,t,Math.min(F,aF),Math.max(F,aF),undefined,l)}}var N=ar.length;var m=2*Math.PI/(N);var am=Y;var f,D;if(e.visible&&az){if(!H&&!c){e.offsets.unshift({offset:-u.right})}for(var R=0;R0.01){continue}var q=a.jqx._ptrnd(M+t*Math.cos(C));var p=a.jqx._ptrnd(L+t*Math.sin(C));ae.line(M,L,q,p,l)}}if(U.visible&&az){var Q=5;var o={stroke:U.color,fill:"none","stroke-width":U.width,"stroke-dasharray":U.dashStyle||""};if(!H&&!c){U.offsets.unshift({offset:-u.right})}for(var R=0;R0.01){continue}var ac={x:M+t*Math.cos(C),y:L+t*Math.sin(C)};var ab={x:M+(t+Q)*Math.cos(C),y:L+(t+Q)*Math.sin(C)};ae.line(a.jqx._ptrnd(ac.x),a.jqx._ptrnd(ac.y),a.jqx._ptrnd(ab.x),a.jqx._ptrnd(ab.y),o)}}var ao=[];if(X.spider){var v=[];if(g.type=="date"){v=this._generateDTOffsets(aD,r,h,u,T,T,g.baseUnit,true,0,false,aj)}else{v=this._generateOffsets(aD,r,h,u,T,T,true,0,false,aj)}if(!H&&!c){v.unshift({offset:-u.right})}for(var R=0;R0.01){continue}ao.push(C)}au.offsetAngles=ao}var Z=ap._renderSpiderValueAxis(A,k,(H?S.adjR:S.r),ao);if(!Z){Z=[]}if(X.spider){if(!H){for(var R=0;R0?q.height+3*R:2*R;M+=o-(V?o:o/4)}else{M+=V?o:o/4}M+=P.top}else{N+=P.left+R+(q.width>0?q.width+R:0)+(D?z.width-q.width:0);M+=u}var T=0;var K=0;var r=C.items;l.itemOffsets={};if(this._isToggleRefresh||!this._isUpdate){d=0}var k=false;var j=0;for(var S=0;SK){K=f.width}if(f.height>T){T=f.height}j+=H?T:K;if(!U){if((H&&L>z.height+2)||(!H&&L>z.width+2)){break}var J=H?N+(D?(q.width==0?o:o-R):0):N+L;var I=H?M+L:M;l.itemOffsets[r[S].key]={x:J,y:I};if(!k){if(!isNaN(r[S].x)||!isNaN(r[S].y)&&d){k=true}}r[S].targetX=J;r[S].targetY=I;r[S].width=!H?b:z.width-P.left-P.right-2*R-o-((q.width>0)?q.width+R:0);r[S].height=H?b:z.height-P.top-P.bottom-2*R-o-((q.height>0)?q.height+R:0);r[S].visible=true}}l.avgWidth=r.length==0?0:j/r.length;if(!U){var s={items:r,textSettings:n};if(isNaN(d)||!k){d=0}this._animateAxisText(s,d==0?1:0);if(d!=0){var g=this;this._enqueueAnimation("series",undefined,undefined,d,function(i,h,w){g._animateAxisText(h,w)},s)}}G.width+=2*R+o+q.width+K+(H&&q.width>0?R:0);G.height+=2*R+o+q.height+T+(!H&&q.height>0?R:0);if(!H){G.height+=P.top+P.bottom}else{G.width+=P.left+P.right}var B={};if(!U&&Q.line.visible){var O={stroke:Q.line.color,"stroke-width":Q.line.width,"stroke-dasharray":Q.line.dashStyle||""};if(H){var J=z.x+z.width+(D?P.left:-P.right);J=a.jqx._ptrnd(J);this.renderer.line(J,z.y,J,z.y+z.height,O)}else{var I=a.jqx._ptrnd(z.y+(D?z.height-P.bottom:P.top));this.renderer.line(a.jqx._ptrnd(z.x),I,a.jqx._ptrnd(z.x+z.width+1),I,O)}}G.width=a.jqx._rup(G.width);G.height=a.jqx._rup(G.height);return G},_drawPlotAreaLines:function(j,w,f){var C=this.seriesGroups[j];var c=C.orientation!="horizontal";if(!this._renderData||this._renderData.length<=j){return}var H=w?"valueAxis":"xAxis";var u=this._renderData[j][H];if(!u){return}var m=this._renderData.axisDrawState;if(!m){m=this._renderData.axisDrawState={}}var z="",h;if(w){z="valueAxis_"+((C.valueAxis)?j:"")+(c?"swap":"");h=this._getValueAxis(j)}else{z="xAxis_"+((C.xAxis||C.categoryAxis)?j:"")+(c?"swap":"");h=this._getXAxis(j)}if(m[z]){m=m[z]}else{m=m[z]={}}if(!w){c=!c}var F=u.settings;if(!F){return}if(F.customDraw){return}var E=F.gridLines,p=F.tickMarks,t=F.padding;var e=u.rect;var k=this._plotRect;if(!E||!p){return}var o=0.5;var d=[];var b={stroke:E.color,"stroke-width":E.width,"stroke-dasharray":E.dashStyle||""};var B=w?e.y+e.height:e.x;var n=E.offsets;if(w&&!h.flip){n=a.extend([],n);n=n.reverse()}if(n&&n.length>0){for(var A=0;Ae.x+e.width+o){break}}if(f.gridLines&&E.visible!=false&&m.gridLines!=true){if(c){this.renderer.line(a.jqx._ptrnd(k.x),D,a.jqx._ptrnd(k.x+k.width),D,b)}else{this.renderer.line(D,a.jqx._ptrnd(k.y),D,a.jqx._ptrnd(k.y+k.height),b)}}d[D]=true;if(f.alternatingBackground&&(E.alternatingBackgroundColor||E.alternatingBackgroundColor2)&&m.alternatingBackground!=true){var l=((A%2)==0)?E.alternatingBackgroundColor2:E.alternatingBackgroundColor;if(l){var G;if(c){G=this.renderer.rect(a.jqx._ptrnd(k.x),B,a.jqx._ptrnd(k.width-1),D-B,b)}else{G=this.renderer.rect(B,a.jqx._ptrnd(k.y),D-B,a.jqx._ptrnd(k.height),b)}this.renderer.attr(G,{"stroke-width":0,fill:l,opacity:E.alternatingBackgroundOpacity||1})}B=D}}}var b={stroke:p.color,"stroke-width":p.width,"stroke-dasharray":p.dashStyle||""};if(f.tickMarks&&p.visible&&m.tickMarks!=true){var s=p.size;var n=p.offsets;for(var A=0;Ae.y+e.height+o){break}}else{if(D>e.x+e.width+o){break}}var v=!u.isMirror?-s:s;if(c){var r=e.x+e.width+(h.position=="right"?t.left:-t.right);if(!w){r=e.x+(u.isMirror?t.left:-t.right+e.width)}this.renderer.line(r,D,r+v,D,b)}else{var q=e.y+(u.isMirror?e.height:0);q+=u.isMirror?-t.bottom:t.top;q=a.jqx._ptrnd(q);this.renderer.line(D,q,D,q-v,b)}}}m.tickMarks=m.tickMarks||f.tickMarks;m.gridLines=m.gridLines||f.gridLines;m.alternatingBackground=m.alternatingBackground||f.alternatingBackground},_calcValueAxisItems:function(j,d,l){var n=this._stats.seriesGroups[j];if(!n||!n.isValid){return false}var w=this.seriesGroups[j];var b=w.orientation=="horizontal";var f=this._getValueAxis(j);var m=f.valuesOnTicks!=false;var e=f.dataField;var o=n.intervals;var s=d/o;var u=n.min;var r=n.mu;var c=f.logarithmicScale==true;var k=f.logarithmicScaleBase||10;var h=w.type.indexOf("stacked")!=-1&&w.type.indexOf("100")!=-1;if(c){r=!isNaN(f.unitInterval)?f.unitInterval:1}if(!m){o=Math.max(o-1,1)}while(this._renderData.length"9"){h=d.length-(e+1);if(h>=0){return Math.min(h,c)}}}if(h>0){k*=Math.pow(10,h)}while(Math.round(k)!=k&&hf){m=this._elementRenderInfo[f].valueAxis}for(var L=0;L1){if(isNaN(r)){r=s?0:c/2}for(var p=0;p=t-2){f[p].offset=t}}}if(u>d){var o=[];var j=Math.round(u/d);for(var p=0;ps){return f}if(p==s){if(v){f.push({offset:b?z/2:n.left,value:p})}else{if(b){f.push({offset:z/2,value:p})}}return f}var j=z-n.left-n.right;var w=p;var k=n.left;var e=k;c=Math.max(c,1);var m=c;var d=Math.min(1,c);if(c>1&&o!="millisecond"){c=1}while(a.jqx._ptrnd(e)<=a.jqx._ptrnd(n.left+j+(b?0:n.right))){f.push({offset:e,value:w});var B=new Date(w.valueOf());if(o=="millisecond"){B.setMilliseconds(w.getMilliseconds()+c)}else{if(o=="second"){B.setSeconds(w.getSeconds()+c)}else{if(o=="minute"){B.setMinutes(w.getMinutes()+c)}else{if(o=="hour"){var l=B.valueOf();B.setHours(w.getHours()+c);if(l==B.valueOf()){B.setHours(w.getHours()+c+1)}}else{if(o=="day"){B.setDate(w.getDate()+c)}else{if(o=="month"){B.setMonth(w.getMonth()+c)}else{if(o=="year"){B.setFullYear(w.getFullYear()+c)}}}}}}}w=B;e=k+(w.valueOf()-p.valueOf())*d/(s.valueOf()-p.valueOf())*j}if(g){for(var r=0;r1&&o!="millisecond"){var q=[];for(var r=0;r1){var q=[];q.push({offset:0,value:undefined});for(var r=1;r1){q.push({offset:q[t-1].offset+(q[t-1].offset-q[t-2].offset)})}else{q.push({offset:z,value:undefined})}f=q}if(A>c){var q=[];var h=Math.round(A/m);for(var r=0;rq.max.valueOf())){continue}}var Y=n.minValue;var E=n.maxValue;if(n.baselineValue){if(isNaN(Y)){Y=r}else{Y=Math.min(r,Y)}if(isNaN(E)){E=r}else{E=Math.max(r,E)}}var u=0,w=0;for(var k=0;kE)&&((isNaN(n.maxValue))?true:R<=n.maxValue)){E=R}if((isNaN(Y)||A=n.minValue)){Y=A}if(!isNaN(H)&&G&&!S){if(H>r){u+=H}else{if(HO||isNaN(O)){O=E}if(Yd||isNaN(d)){d=u}if(wd.gmin){f.gmin=d.gmin}if(isNaN(f.gmax)||f.gmaxd.logBase){f.logBase=d.logBase}if(isNaN(f.minPercent)||f.minPercent>d.minPercent){f.minPercent=d.minPercent}}for(var e=0;et){r/=j;b--;i++}c=Math.pow(j,b)}else{if(l&&!e){f=Math.max(f,A)}q=a.jqx._rnd(a.jqx.log(f,j),1,true);f=Math.pow(j,q);b=a.jqx._rnd(a.jqx.log(c,j),1,false);c=Math.pow(j,b)}s=j}if(cA){A=f}var v=d?c:a.jqx._rnd(l&&!e?B:c,s,false);var o=d?f:a.jqx._rnd(l&&!e?A:f,s,true);if(h&&o>100){o=100}if(h&&!d){o=(o>0)?100:0;v=(v<0)?-100:0;s=w.unitInterval;if(isNaN(s)||s<=0||s>=100){s=10}if((100%s)!=0){for(;s>=1;s--){if((100%s)==0){break}}}}if(isNaN(o)||isNaN(v)||isNaN(s)){return{}}if(isNaN(i)){i=parseInt(((o-v)/(s==0?1:s)).toFixed())}if(d&&!h){i=q-b;k=Math.pow(j,i)}if(i<1){return{}}var m={min:v,max:o,logarithmic:d,logBase:j,base:d?v:z,minPow:b,maxPow:q,mu:s,maxRange:k,intervals:i,hasStackValueReversal:n};return m},_getDataLen:function(c){var b=this.source;if(c!=undefined&&c!=-1&&this.seriesGroups[c].source){b=this.seriesGroups[c].source}if(b instanceof a.jqx.dataAdapter){b=b.records}if(b){return b.length}return 0},_getDataValue:function(b,e,d){var c=this.source;if(d!=undefined&&d!=-1){c=this.seriesGroups[d].source||c}if(c instanceof a.jqx.dataAdapter){c=c.records}if(!c||b<0||b>c.length-1){return undefined}if(a.isFunction(e)){return e(b,c)}return(e&&e!="")?c[b][e]:c[b]},_getDataValueAsNumber:function(b,e,c){var d=this._getDataValue(b,e,c);if(this._isDate(d)){return d.valueOf()}if(typeof(d)!="number"){d=parseFloat(d)}if(typeof(d)!="number"){d=undefined}return d},_isPieGroup:function(b){var c=this.seriesGroups[b];if(!c||!c.type){return false}return c.type.indexOf("pie")!=-1||c.type.indexOf("donut")!=-1},_renderPieSeries:function(e,c){var f=this._getDataLen(e);var g=this.seriesGroups[e];var m=this._calcGroupOffsets(e,c).offsets;for(var p=0;p360){t=0}var z=this._get([k.maxAngle,k.endAngle]);if(isNaN(z)||z<0||z>360){z=360}var o={rect:c,minAngle:t,maxAngle:z,groupIndex:e,serieIndex:p,settings:v,items:[]};for(var u=0;uo.groupIndex&&this._elementRenderInfo[o.groupIndex].series&&this._elementRenderInfo[o.groupIndex].series.length>o.serieIndex){j=this._elementRenderInfo[o.groupIndex].series[o.serieIndex]}var f=360*c;var u=this.seriesGroups[o.groupIndex];var n=this._getLabelsSettings(o.groupIndex,o.serieIndex,NaN);var m=n.visible;var b=[];for(var t=0;tz){p=z}z=e;if(t==b.length-1&&e!=b[0].from){e=o.maxAngle+b[0].from}}var r=this.renderer.pieSlicePath(w.x,w.y,w.innerRadius,w.outerRadius,p,e,w.centerOffset);this.renderer.attr(q.element,{d:r});var h=this._getColors(o.groupIndex,o.serieIndex,w.itemIndex,"radialGradient",w.outerRadius);var v=o.settings;q.colors=h;q.settings=v;this.renderer.attr(q.element,{fill:h.fillColor,stroke:h.lineColor,"stroke-width":v.stroke,"fill-opacity":v.opacity,"stroke-opacity":v.opacity,"stroke-dasharray":"none"||v.dashStyle});var k=u.series[o.serieIndex];if(m){this._showPieLabel(o.groupIndex,o.serieIndex,w.itemIndex,n)}if(c==1){this._installHandlers(q.element,"pieslice",o.groupIndex,o.serieIndex,w.itemIndex)}}},_showPieLabel:function(e,f,C,p,h){var k=this._renderData[e].offsets[f][C];if(k.elementInfo.labelElement){this.renderer.removeElement(k.elementInfo.labelElement)}if(!p){p=this._getLabelsSettings(e,f,NaN)}if(!p.visible){return}var D=k.fromAngle,F=k.toAngle;var l=Math.abs(D-F);var q=l>180?1:0;if(l>360){D=0;F=360}var r=D*Math.PI*2/360;var i=F*Math.PI*2/360;var j=l/2+D;j=j%360;var E=j*Math.PI*2/360;var v;if(p.autoRotate==true){v=j<90||j>270?360-j:180-j}var u=p.linesEnabled;var o=this._showLabel(e,f,C,{x:0,y:0,width:0,height:0},"center","center",true,false,false,v);var d=p.radius||k.outerRadius+Math.max(o.width,o.height);if(this._isPercent(d)){d=parseFloat(d)/100*Math.min(this._plotRect.width,this._plotRect.height)/2}d+=k.centerOffset;if(isNaN(h)){h=0}d+=h;var z=this.seriesGroups[e];var n=z.series[f];var B=a.jqx.getNum([n.offsetX,z.offsetX,this._plotRect.width/2]);var A=a.jqx.getNum([n.offsetY,z.offsetY,this._plotRect.height/2]);var c=this._plotRect.x+B;var b=this._plotRect.y+A;var w=this._adjustTextBoxPosition(c,b,o,d,j,k.outerRadius>d,p.linesAngles!=false,p.autoRotate==true);var m={};k.elementInfo.labelElement=this._showLabel(e,f,C,{x:w.x,y:w.y,width:o.width,height:o.height},"left","top",false,false,false,v,m);if(d>k.outerRadius+5&&u!=false){var t={lineColor:k.elementInfo.colors.lineColor,stroke:k.elementInfo.settings.stroke,opacity:k.elementInfo.settings.opacity,dashStyle:k.elementInfo.settings.dashStyle};k.elementInfo.labelArrowPath=this._updateLebelArrowPath(k.elementInfo.labelArrowPath,c,b,d,k.outerRadius+h,E,p.linesAngles!=false,t,m)}},_updateLebelArrowPath:function(d,j,f,h,l,g,o,e,r){var c=a.jqx._ptrnd(j+(h-0)*Math.cos(g));var n=a.jqx._ptrnd(f-(h-0)*Math.sin(g));var b=a.jqx._ptrnd(j+(l+2)*Math.cos(g));var m=a.jqx._ptrnd(f-(l+2)*Math.sin(g));var p=[];p.push({x:r.x+r.width/2,y:r.y});p.push({x:r.x+r.width/2,y:r.y+r.height});p.push({x:r.x,y:r.y+r.height/2});p.push({x:r.x+r.width,y:r.y+r.height/2});if(!o){p.push({x:r.x,y:r.y});p.push({x:r.x+r.width,y:r.y});p.push({x:r.x+r.width,y:r.y+r.height});p.push({x:r.x,y:r.y+r.height})}p=p.sort(function(s,i){return a.jqx._ptdist(s.x,s.y,j,f)-a.jqx._ptdist(i.x,i.y,j,f)});p=p.sort(function(s,i){return(Math.abs(s.x-j)+Math.abs(s.y-f))-(Math.abs(i.x-j)+Math.abs(i.y-f))});for(var k=0;k=t&&u=Math.PI-t&&u=Math.PI+t&&u<2*Math.PI-t){m=p/2*Math.sin(d)}else{if(u>=2*Math.PI-t&&u<2*Math.PI){m=l/2*Math.cos(d)}}}}}g+=Math.abs(m)+3;var k=a.jqx._ptrnd(f+g*Math.cos(d));var j=a.jqx._ptrnd(e-g*Math.sin(d));k-=n.width/2;j-=n.height/2;return{x:k,y:j}}if(!c){if(!i){if(s>=0&&s<45||s>=315&&s<360){j-=n.height/2}else{if(s>=45&&s<135){j-=n.height;k-=n.width/2}else{if(s>=135&&s<225){j-=n.height/2;k-=n.width}else{if(s>=225&&s<315){k-=n.width/2}}}}}else{if(s>=90&&s<270){j-=n.height/2;k-=n.width}else{j-=n.height/2}}}else{k-=n.width/2;j-=n.height/2}return{x:k,y:j}},_isColumnType:function(b){return(b.indexOf("column")!=-1||b.indexOf("waterfall")!=-1)},_getColumnGroupsCount:function(c){var e=0;c=c||"vertical";var f=this.seriesGroups;for(var d=0;dQ){var I=h;h=Q;Q=I}if(t.spider){var G=r.xAxis.offsetAngles;var H="";var M=[p,q];var B=G;if(d.isClosedCircle){B=a.extend([],G);B.push(B[0])}for(var L in M){for(var N=0;N1){O=1}this.renderer.attr(J,{fill:W,"fill-opacity":O,stroke:R,"stroke-opacity":O,"stroke-width":u,"stroke-dasharray":c.dashStyle})}},_getColumnGroupWidth:function(m,h,o){var e=this.seriesGroups[m];var l=e.type.indexOf("stacked")!=-1;var d=l?1:e.series.length;var k=this._getColumnGroupsCount(e.orientation);if(isNaN(k)||0==k){k=1}var n=h.rangeLength>=1?h.itemWidth:o*0.9;var c=e.columnsMinWidth;if(isNaN(c)){c=1}if(!isNaN(e.columnsMaxWidth)){c=Math.min(e.columnsMaxWidth,c)}if(c>n&&h.length>0){n=Math.max(n,o*0.9/h.length)}var i=c;if(!l){var f=e.seriesGapPercent;if(isNaN(f)||f<0){f=10}f/=100;var b=c;b*=(1+f);i+=e.series.length*b}var j=Math.max(n/k,i);return{requiredWidth:i,availableWidth:n,targetWidth:j}},_getColumnSerieWidthAndOffset:function(d,e){var m=this.seriesGroups[d];var u=m.series[e];var c=m.orientation=="horizontal";var b=this._plotRect;if(c){b={x:b.y,y:b.x,width:b.height,height:b.width}}var v=this._calcGroupOffsets(d,b);if(!v||v.xoffsets.length==0){return}var l=true;var w=this._getColumnGroupsCount(m.orientation);if(m.type=="candlestick"||m.type=="ohlc"){w=1}var q=this._getColumnGroupIndex(d);var r=this._getColumnGroupWidth(d,v.xoffsets,c?b.height:b.width);var h=0;var f=r.targetWidth;if(this.columnSeriesOverlap==true||(Math.round(f)>Math.round(r.availableWidth/w))){w=1;q=0}if(l){h-=(f*w)/2}h+=f*q;var D=m.columnsGapPercent;if(D<=0){D=0}if(isNaN(D)||D>=100){D=25}D/=100;var k=f*D;if(k+r.requiredWidth>r.targetWidth){k=Math.max(0,r.targetWidth-r.requiredWidth)}if(Math.round(f)>Math.round(r.availableWidth)){k=0}f-=k;h+=k/2;var z=m.seriesGapPercent;if(isNaN(z)||z<0){z=10}var n=m.type.indexOf("stacked")!=-1;var t=f;if(!n){t/=m.series.length}var A=this._get([m.seriesGap,(f*z/100)/(m.series.length-1)]);if(m.polar==true||m.spider==true||n||m.series.length<=1){A=0}var o=A*(m.series.length-1);if(m.series.length>1&&o>f-m.series.length*1){o=f-m.series.length*1;A=o/Math.max(1,(m.series.length-1))}var g=t-(o/m.series.length);var C=0;var i=m.columnsMaxWidth;if(!isNaN(i)){if(g>i){C=g-i;g=i}}var B=C/2;var j=0;if(!n){var E=(f-(g*m.series.length)-o)/2;var p=Math.max(0,e);j=E+g*e+p*A}else{j=C/2}return{width:g,offset:h+j}},_renderColumnSeries:function(f,c){var j=this.seriesGroups[f];if(!j.series||j.series.length==0){return}var h=this._getDataLen(f);var e=j.orientation=="horizontal";var A=c;if(e){A={x:c.y,y:c.x,width:c.height,height:c.width}}var p=this._calcGroupOffsets(f,A);if(!p||p.xoffsets.length==0){return}var m;if(j.polar==true||j.spider==true){m=this._getPolarAxisCoords(f,A)}var r={groupIndex:f,rect:c,vertical:!e,seriesCtx:[],renderData:p,polarAxisCoords:m};r.columnGroupWidth=this._getColumnGroupWidth(f,p.xoffsets,e?A.height:A.width);var g=this._getGroupGradientType(f);for(var t=0;te){d=e}if(isNaN(d)){return NaN}return d},_getColumnVOffsets:function(n,j,e,D,u,c){var p=this.seriesGroups[j];var H=this._getPercent(p.columnsTopWidthPercent,100,0,100);var v=this._getPercent(p.columnsBottomWidthPercent,100,0,100);if(H==0&&v==0){v=100}var J=this._getPercent(p.columnsNeckHeightPercent,NaN,0,100)/100;var E=this._getPercent(p.columnsNeckWidthPercent,100,0,100)/100;var r=[];var I=NaN;for(var q=0;qj&&b[j].series.length>k){var F=n.xoffsets.xvalues[D];g=b[j].series[k][F];if(g&&!isNaN(g.from)&&!isNaN(g.to)){o=g.from+(o-g.from)*c;P=g.to+(P-g.to)*c;z=g.xoffset+(z-g.xoffset)*c}}if(!g){P=o+(P-o)*(u?1:c)}if(isNaN(o)){o=isNaN(I)?n.baseOffset:I}if(!isNaN(P)&&u){I=P}else{I=o}if(isNaN(P)){P=o}var C={from:o,to:P,xOffset:z};if(H!=100||v!=100){C.funnel=true;C.toWidthPercent=H;C.fromWidthPercent=v}r.push(C)}if(u&&r.length>1&&!(this._elementRenderInfo&&this._elementRenderInfo.length>j)){var l=0,m=0,K=-Infinity,w=Infinity,L=Infinity,B=-Infinity;for(var M=0;M=r[M].from){m+=r[M].to-r[M].from;L=Math.min(L,r[M].from);B=Math.max(B,r[M].to)}else{l+=r[M].from-r[M].to;K=Math.max(K,r[M].from);w=Math.min(w,r[M].to)}}}var O=l;var t=m;l*=c;m*=c;var d=0,f=0;for(var M=0;M=r[M].from){var A=r[M].to-r[M].from;if(A+f>m){A=Math.max(0,m-f);r[M].to=r[M].from+A}if(H!=100||v!=100){r[M].funnel=true;if(!isNaN(J)&&t*J>=f){r[M].fromWidthPercent=E*100}else{r[M].fromWidthPercent=(Math.abs(r[M].from-L)/t)*(H-v)+v}if(!isNaN(J)&&t*J>=(0+(f+A))){r[M].toWidthPercent=E*100}else{r[M].toWidthPercent=(Math.abs(r[M].to-L)/t)*(H-v)+v}}f+=A}else{var A=r[M].from-r[M].to;if(A+d>l){A=Math.max(0,l-d);r[M].to=r[M].from-A}if(H!=100||v!=100){r[M].funnel=true;if(!isNaN(J)&&O*J>=d){r[M].fromWidthPercent=E*100}else{r[M].fromWidthPercent=(Math.abs(r[M].from-K)/O)*(H-v)+v}if(!isNaN(J)&&O*J>=(0+(d+A))){r[M].toWidthPercent=E*100}else{r[M].toWidthPercent=(Math.abs(r[M].to-K)/O)*(H-v)+v}}d+=A}}}return r},_columnAsPieSlice:function(d,k,m,o){var e=this._toPolarCoord(m,k,o.x,o.y);var f=this._toPolarCoord(m,k,o.x,o.y+o.height);var l=a.jqx._ptdist(m.x,m.y,f.x,f.y);var i=a.jqx._ptdist(m.x,m.y,e.x,e.y);var c=k.width;var n=Math.abs(m.startAngle-m.endAngle)*180/Math.PI;var b=-((o.x-k.x)*n)/c;var h=-((o.x+o.width-k.x)*n)/c;var j=m.startAngle;j=360*j/(Math.PI*2);b-=j;h-=j;if(d){if(d.element!=undefined){var g=this.renderer.pieSlicePath(m.x,m.y,l,i,h,b,0);g+=" Z";this.renderer.attr(d.element,{d:g})}else{d.element=this.renderer.pieslice(m.x,m.y,l,i,h,b,0)}}return{fromAngle:h,toAngle:b,innerRadius:l,outerRadius:i}},_setRenderInfo:function(e,b,d,c){this._renderData[e].offsets[b][d].elementInfo=c},_getRenderInfo:function(d,b,c){return this._renderData[d].offsets[b][c].elementInfo||{}},_animColumns:function(ai,d){var p=this;var q=ai.groupIndex;var B=this.seriesGroups[q];var v=ai.renderData;var aa=B.type.indexOf("waterfall")!=-1;var G=this._getXAxis(q);var I=B.type.indexOf("stacked")!=-1;var e=ai.polarAxisCoords;var A=this._getGroupGradientType(q);var s=ai.columnGroupWidth.targetWidth;var z=-1;for(var ab=0;abah.xAdjust){aj=ah.xAdjust}if(isNaN(t)||t=1){D=0.25}var f=D*r;var Z=ai.renderData.xoffsets;var S=-1;var O={};var R=B.skipOverlappingPoints==true;for(var ad=Z.first;ad<=Z.last;ad++){var V=Z.data[ad];if(isNaN(V)){continue}if(S!=-1&&Math.abs(V-S)<(r-1+f)&&R){continue}else{S=V}var F=this._getColumnVOffsets(v,q,ai.seriesCtx,ad,I,d);var L=false;if(aa){for(var C=0;C1||T<0){T=1}}var X=B.columnsBottomWidthPercent/100;if(isNaN(X)){X=1}else{if(X>1||X<0){X=1}}var o=ai.vertical?Q.width:Q.height;ag.x=ag.x-o/2+o/2*T;if(L){var b=o*T/2;af.x=af.x+o/2-(G.flip?-b:b)}else{var b=o*X/2;af.x=af.x+o/2-(G.flip?-b:b)}if(!ai.vertical){this._swapXY([ag]);this._swapXY([af])}this.renderer.line(ag.x,ag.y,af.x,af.y,{stroke:M.color,"stroke-width":ae.stroke,"stroke-opacity":ae.opacity,"fill-opacity":ae.opacity,"stroke-dasharray":ae.dashStyle})}}}if(d==1&&n!=0){O[I?-1:C]={y:ak,x:(ai.vertical?Q.x+Q.width:Q.y+Q.height),color:W.lineColor}}}if(e){var U=this._toPolarCoord(e,ai.rect,Q.x+Q.width/2,Q.y);var o=this._showLabel(q,m,ad,Q,undefined,undefined,true);var J=H.outerRadius+10;labelOffset=this._adjustTextBoxPosition(e.x,e.y,o,J,(H.fromAngle+H.toAngle)/2,true,false,false);P=this._showLabel(q,m,ad,{x:labelOffset.x,y:labelOffset.y},undefined,undefined,false,false,false)}else{P=this._showLabel(q,m,ad,Q,undefined,undefined,false,false,k)}c={element:u,labelElement:P};p._setRenderInfo(q,m,ad,c);if(d==1){this._installHandlers(u,"column",q,m,ad)}}}},_getTrapezoidPath:function(g,h,f){var l="";var b=g.fromWidthPercent/100;var c=g.toWidthPercent/100;if(!h){var e=g.width;g.width=g.height;g.height=e;e=g.x;g.x=g.y;g.y=e}var j=g.x+g.width/2;var k=[{x:j-g.width*(!f?b:c)/2,y:g.y+g.height},{x:j-g.width*(!f?c:b)/2,y:g.y},{x:j+g.width*(!f?c:b)/2,y:g.y},{x:j+g.width*(!f?b:c)/2,y:g.y+g.height}];if(!h){this._swapXY(k)}l+="M "+a.jqx._ptrnd(k[0].x)+","+a.jqx._ptrnd(k[0].y);for(var d=1;dw.offset){c=w.offset}if(isNaN(r)||rn){break}E=l;var D=t.items[A]=t.items[A]||{};for(var z in q){var F=t.self._getDataValueAsNumber(A,g.series[t.seriesIndex]["dataField"+q[z]],t.groupIndex);if(isNaN(F)){break}var k=t.renderData.offsets[t.seriesIndex][A][q[z]];if(isNaN(k)){break}D[q[z]]=k}l+=t.inverse?t.rect.y:t.rect.x;if(t.polarAxisCoords){var s=this._toPolarCoord(t.polarAxisCoords,this._plotRect,l,k);l=s.x;k=s.y}l=a.jqx._ptrnd(l);for(var f in q){D[f]=a.jqx._ptrnd(D[f])}var h=t.colors;if(!h){h=t.self._getColors(t.groupIndex,t.seriesIndex,A,t.gradientType)}if(!t.isOHLC){var u=D.lineElement;if(!u){u=t.inverse?this.renderer.line(D.Low,l,D.High,l):this.renderer.line(l,D.Low,l,D.High);this.renderer.attr(u,{fill:h.fillColor,"fill-opacity":t["fill-opacity"],"stroke-opacity":t["fill-opacity"],stroke:h.lineColor,"stroke-width":t["stroke-width"],"stroke-dasharray":t["stroke-dasharray"]});D.lineElement=u}var p=D.stickElement;l-=e/2;if(!p){var d=h.fillColor;if(D.Close<=D.Open&&h.fillColorAlt){d=h.fillColorAlt}p=t.inverse?this.renderer.rect(Math.min(D.Open,D.Close),l,Math.abs(D.Close-D.Open),e):this.renderer.rect(l,Math.min(D.Open,D.Close),e,Math.abs(D.Close-D.Open));this.renderer.attr(p,{fill:d,"fill-opacity":t["fill-opacity"],"stroke-opacity":t["fill-opacity"],stroke:h.lineColor,"stroke-width":t["stroke-width"],"stroke-dasharray":t["stroke-dasharray"]});D.stickElement=p}if(b==1){this._installHandlers(p,"column",t.groupIndex,t.seriesIndex,A)}}else{var o="M"+l+","+D.Low+" L"+l+","+D.High+" M"+(l-e/2)+","+D.Open+" L"+l+","+D.Open+" M"+(l+e/2)+","+D.Close+" L"+l+","+D.Close;if(t.inverse){o="M"+D.Low+","+l+" L"+D.High+","+l+" M"+D.Open+","+(l-e/2)+" L"+D.Open+","+l+" M"+D.Close+","+l+" L"+D.Close+","+(l+e/2)}var u=D.lineElement;if(!u){u=this.renderer.path(o,{});this.renderer.attr(u,{fill:h.fillColor,"fill-opacity":t["fill-opacity"],"stroke-opacity":t["fill-opacity"],stroke:h.lineColor,"stroke-width":t["stroke-width"],"stroke-dasharray":t["stroke-dasharray"]});D.lineElement=u}if(b==1){this._installHandlers(u,"column",t.groupIndex,t.seriesIndex,A)}}}},_renderScatterSeries:function(e,C,E){var t=this.seriesGroups[e];if(!t.series||t.series.length==0){return}var f=t.type.indexOf("bubble")!=-1;var u=t.orientation=="horizontal";var m=C;if(u){m={x:C.y,y:C.x,width:C.height,height:C.width}}var n=this._calcGroupOffsets(e,m);if(!n||n.xoffsets.length==0){return}var M=m.width;var c;if(t.polar||t.spider){c=this._getPolarAxisCoords(e,m);M=2*c.r}var U=this._alignValuesWithTicks(e);var q=this._getGroupGradientType(e);if(!E){E="to"}for(var g=0;gw){w=B}}}}var j=J.minRadius||J.minSymbolSize;if(isNaN(j)){j=M/50}var D=J.maxRadius||J.maxSymbolSize;if(isNaN(D)){D=M/25}if(j>D){D=j}var L=J.radius;if(isNaN(L)&&!isNaN(J.symbolSize)){L=(J.symbolType=="circle")?J.symbolSize/2:J.symbolSize}else{L=5}var F=this._getAnimProps(e,g);var A=F.enabled&&!this._isToggleRefresh&&n.xoffsets.length<5000?F.duration:0;var v={groupIndex:e,seriesIndex:g,symbolType:J.symbolType,symbolSize:J.symbolSize,"fill-opacity":S.opacity,"stroke-opacity":S.opacity,"stroke-width":S.stroke,"stroke-dasharray":S.dashStyle,items:[],polarAxisCoords:c};for(var R=n.xoffsets.first;R<=n.xoffsets.last;R++){var B=this._getDataValueAsNumber(R,z,e);if(typeof(B)!="number"){continue}var I=n.xoffsets.data[R];var G=n.xoffsets.xvalues[R];var H=n.offsets[g][R][E];if(Hm.y+m.height){continue}if(isNaN(I)||isNaN(H)){continue}if(u){var P=I;I=H;H=P+C.y}else{I+=C.x}var N=L;if(f){var o=this._getDataValueAsNumber(R,(J.radiusDataField||J.sizeDataField),e);if(typeof(o)!="number"){continue}N=j+(D-j)*(o-T)/Math.max(1,w-T);if(isNaN(N)){N=j}}n.offsets[g][R].radius=N;var k=NaN,O=NaN;var p=0;var b=this._elementRenderInfo;if(G!=undefined&&b&&b.length>e&&b[e].series.length>g){var d=b[e].series[g][G];if(d&&!isNaN(d.to)){k=d.to;O=d.xoffset;p=L;if(u){var P=O;O=k;k=P+C.y}else{O+=C.x}if(f){p=j+(D-j)*(d.valueRadius-T)/Math.max(1,w-T);if(isNaN(p)){p=j}}}}if(l){K=this._getColors(e,g,R,q)}v.items.push({from:p,to:N,itemIndex:R,fill:K.fillColor,stroke:K.lineColor,x:I,y:H,xFrom:O,yFrom:k})}this._animR(v,0);var h=this;var Q;this._enqueueAnimation("series",undefined,undefined,A,function(s,i,r){h._animR(i,r)},v)}},_animR:function(o,g){var j=o.items;var p=o.symbolType||"circle";var c=o.symbolSize;for(var e=0;e=1){this._installHandlers(d,"circle",o.groupIndex,o.seriesIndex,n.itemIndex)}this._setRenderInfo(o.groupIndex,o.seriesIndex,j[e].itemIndex,{element:d,labelElement:h})}},_showToolTip:function(n,l,G,z,e){var u=this;var k=u._getXAxis(G);var b=u._getValueAxis(G);if(u._ttEl&&G==u._ttEl.gidx&&z==u._ttEl.sidx&&e==u._ttEl.iidx){return}var j=u.seriesGroups[G];var o=j.series[z];var h=u.enableCrosshairs&&!(j.polar||j.spider);if(u._pointMarker){n=parseInt(u._pointMarker.x+5);l=parseInt(u._pointMarker.y-5)}else{h=false}var i=h&&u.showToolTips==false;n=a.jqx._ptrnd(n);l=a.jqx._ptrnd(l);var H=u._ttEl==undefined;if(j.showToolTips==false||o.showToolTips==false){return}var g=u._get([o.toolTipFormatSettings,j.toolTipFormatSettings,b.toolTipFormatSettings,u.toolTipFormatSettings]);var r=u._get([o.toolTipFormatFunction,j.toolTipFormatFunction,b.toolTipFormatFunction,u.toolTipFormatFunction]);var m=u._getColors(G,z,e);var s=u._getDataValue(e,k.dataField,G);if(k.dataField==undefined||k.dataField==""){s=e}if(k.type=="date"){s=u._castAsDate(s,(g?g.dateFormat:undefined)||k.dateFormat)}var q="";if(a.isFunction(r)){var v={};var B=0;for(var c in o){if(c.indexOf("dataField")==0){v[c.substring(9,c.length).toLowerCase()]=u._getDataValue(e,o[c],G);B++}}if(B==0){v=u._getDataValue(e,undefined,G)}else{if(B==1){v=v[""]}}q=r(v,e,o,j,s,k)}else{q=u._getFormattedValue(G,z,e,g,r);var d=this._getAxisSettings(k);var L=d.toolTipFormatSettings;var f=d.toolTipFormatFunction;if(!f&&!L&&k.type=="date"){f=this._getDefaultDTFormatFn(k.baseUnit||"day")}var K=u._formatValue(s,L,f,G,z,e);if(!u._isPieGroup(G)){var p=(k.displayText||k.dataField||"");if(p.length>0){q=p+": "+K+"
              "+q}else{q=K+"
              "+q}}else{s=u._getDataValue(e,o.displayText||o.dataField,G);K=u._formatValue(s,L,f,G,z,e);q=K+": "+q}}if(!u._ttEl){u._ttEl={}}u._ttEl.sidx=z;u._ttEl.gidx=G;u._ttEl.iidx=e;rect=u.renderer.getRect();if(h){var D=a.jqx._ptrnd(u._pointMarker.x);var C=a.jqx._ptrnd(u._pointMarker.y);if(u._ttEl.vLine&&u._ttEl.hLine){u.renderer.attr(u._ttEl.vLine,{x1:D,x2:D});u.renderer.attr(u._ttEl.hLine,{y1:C,y2:C})}else{var A=u.crosshairsColor||u._defaultLineColor;u._ttEl.vLine=u.renderer.line(D,u._plotRect.y,D,u._plotRect.y+u._plotRect.height,{stroke:A,"stroke-width":u.crosshairsLineWidth||1,"stroke-dasharray":u.crosshairsDashStyle||""});u._ttEl.hLine=u.renderer.line(u._plotRect.x,C,u._plotRect.x+u._plotRect.width,C,{stroke:A,"stroke-width":u.crosshairsLineWidth||1,"stroke-dasharray":u.crosshairsDashStyle||""})}}if(!i&&u.showToolTips!=false){var E=o.toolTipClass||j.toolTipClass||this.toThemeProperty("jqx-chart-tooltip-text",null);var I=o.toolTipBackground||j.toolTipBackground||"#FFFFFF";var J=o.toolTipLineColor||j.toolTipLineColor||m.lineColor;var w=this.getItemCoord(G,z,e);var F=0;if(u._pointMarker&&u._pointMarker.element){F=o.symbolSizeSelected;if(isNaN(F)){F=o.symbolSize}if(isNaN(F)||F>50||F<0){F=j.symbolSize}if(isNaN(F)||F>50||F<0){F=8}}u._createTooltip(w,j,q,{css:E,fill:I,stroke:J,symbolSize:F})}},_fitTooltip:function(c,h,j,k,e){var d={};var b=2+e/2;var f=7;if(h.x-j.width-f-b>c.x&&h.y+h.height/2-j.height/2>c.y&&h.y+h.height/2+j.height/2c.y&&h.y+h.height/2+j.height/2c.y&&h.x+h.width/2-j.width/2>c.x&&h.x+h.width/2+j.width/2c.x&&h.x+h.width/2+j.width/2h.height||((k.type.indexOf("stackedcolumn")!=-1||k.type.indexOf("stackedwaterfall")!=-1)&&k.orientation!="horizontal")){if(d.left){return d.left}if(d.right){return d.right}}else{if(d.top){return d.top}if(d.bottom){return d.bottom}}for(var g in d){if(d[g]){return d[g]}}return{arrowLocation:""}},_createTooltip:function(C,j,u,v){var p=this;var t=j.type;var A=false;var B=p._ttEl.box;if(!B){A=true;B=p._ttEl.box=document.createElement("div");var e=10000000;B.style.position="absolute";B.style.cursor="default";a(b).css({"z-index":e,"box-sizing":"content-box"});a(document.body).append(B);var b=document.createElement("div");b.id="arrowOuterDiv";b.style.width="0px";b.style.height="0px";b.style.position="absolute";a(b).css({"z-index":e+1,"box-sizing":"content-box"});var g=document.createElement("div");g.id="arrowInnerDiv";g.style.width="0px";g.style.height="0px";g.style.position="absolute";var s=document.createElement("div");s.id="contentDiv";s.style.position="absolute";a(s).css({"box-sizing":"content-box"});a(s).addClass("jqx-rc-all jqx-button");a(s).appendTo(a(B));a(b).appendTo(a(B));a(g).appendTo(a(B));a(g).css({"z-index":e+2,"box-sizing":"content-box"})}if(!u||u.length==0){a(B).fadeTo(0,0);return}s=a(B).find("#contentDiv")[0];b=a(B).find("#arrowOuterDiv")[0];g=a(B).find("#arrowInnerDiv")[0];s.style.backgroundColor=v.fill;s.style.borderColor=v.stroke;var l=""+u+"";a(s).html(l);var o=this._measureHtml(l,"jqx-rc-all jqx-button");rect=p._plotRect;if(o.width>rect.width||o.height>rect.height){return}var n={width:o.width,height:o.height};arrowLocation="";var z=5;var q=7;var r=p._isColumnType(t);x=Math.max(C.x,rect.x);y=Math.max(C.y,rect.y);if(p.toolTipAlignment=="dataPoint"){if(t.indexOf("pie")!=-1||t.indexOf("donut")!=-1){var k=(C.fromAngle+C.toAngle)/2;k=k*(Math.PI/180);var f=(!isNaN(C.innerRadius)&&C.innerRadius>0)?(C.innerRadius+C.outerRadius)/2:C.outerRadius*0.75;x=C.x=C.center.x+Math.cos(k)*f;y=C.y=C.center.y-Math.sin(k)*f;C.width=C.height=1}else{if(r&&(j.polar||j.spider)){C.width=C.height=1}}var w=this._fitTooltip(this._plotRect,C,n,j,v.symbolSize);if(w.arrowLocation!=""){arrowLocation=w.arrowLocation;x=w.x;y=w.y;n.width=w.width;n.height=w.height}}else{arrowLocation=""}if(arrowLocation=="top"||arrowLocation=="bottom"){n.height+=q;x-=q/2;if(arrowLocation=="bottom"){y-=q}}else{if(arrowLocation=="left"||arrowLocation=="right"){n.width+=q;y-=q/2;if(arrowLocation=="right"){x-=q}}}if(x+n.width>rect.x+rect.width){arrowLocation="";x=rect.x+rect.width-n.width}if(y+n.height>rect.y+rect.height){arrowLocation="";y=rect.y+rect.height-n.height}var h={x:0,y:0},d={x:0,y:0};a(s).css({width:o.width,height:o.height,left:0,top:0});b.style["margin-top"]=b.style["margin-left"]=0;g.style["margin-top"]=g.style["margin-left"]=0;s.style["margin-top"]=s.style["margin-left"]=0;var i=q+"px solid";var c=q+"px solid transparent";switch(arrowLocation){case"left":h={x:0,y:(o.height-q)/2};contentPostion={x:q,y:0};s.style["margin-left"]=q+"px";b.style["margin-left"]=0+"px";b.style["margin-top"]=h.y+"px";b.style["border-left"]="";b.style["border-right"]=i+" "+v.stroke;b.style["border-top"]=c;b.style["border-bottom"]=c;g.style["margin-left"]=1+"px";g.style["margin-top"]=h.y+"px";g.style["border-left"]="";g.style["border-right"]=i+" "+v.fill;g.style["border-top"]=c;g.style["border-bottom"]=c;break;case"right":h={x:n.width-q,y:(o.height-q)/2};contentPostion={x:0,y:0};b.style["margin-left"]=h.x+"px";b.style["margin-top"]=h.y+"px";b.style["border-left"]=i+" "+v.stroke;b.style["border-right"]="";b.style["border-top"]=c;b.style["border-bottom"]=c;g.style["margin-left"]=h.x-1+"px";g.style["margin-top"]=h.y+"px";g.style["border-left"]=i+" "+v.fill;g.style["border-right"]="";g.style["border-top"]=c;g.style["border-bottom"]=c;break;case"top":h={x:n.width/2-q/2,y:0};contentPostion={x:0,y:q};s.style["margin-top"]=contentPostion.y+"px";b.style["margin-left"]=h.x+"px";b.style["border-top"]="";b.style["border-bottom"]=i+" "+v.stroke;b.style["border-left"]=c;b.style["border-right"]=c;g.style["margin-left"]=h.x+"px";g.style["margin-top"]=1+"px";g.style["border-top"]="";g.style["border-bottom"]=i+" "+v.fill;g.style["border-left"]=c;g.style["border-right"]=c;break;case"bottom":h={x:n.width/2-q/2,y:n.height-q};contentPostion={x:0,y:0};b.style["margin-left"]=h.x+"px";b.style["margin-top"]=h.y+"px";b.style["border-top"]=i+" "+v.stroke;b.style["border-bottom"]="";b.style["border-left"]=c;b.style["border-right"]=c;g.style["margin-left"]=h.x+"px";g.style["margin-top"]=h.y-1+"px";g.style["border-top"]=i+" "+v.fill;g.style["border-bottom"]="";g.style["border-left"]=c;g.style["border-right"]=c;break}if(arrowLocation==""){a(b).hide();a(g).hide()}else{a(b).show();a(g).show()}a(B).css({width:n.width+"px",height:n.height+"px"});var m=p.host.coord();if(A){a(B).fadeOut(0,0);B.style.left=x+m.left+"px";B.style.top=y+m.top+"px"}a(B).clearQueue();a(B).animate({left:x+m.left,top:y+m.top,opacity:1},p.toolTipMoveDuration,"easeInOutCirc");a(B).fadeTo(400,1)},_measureHtml:function(c,b){var e=this._measureDiv;if(!e){this._measureDiv=e=document.createElement("div");e.style.position="absolute";e.style.cursor="default";e.style.overflow="hidden";e.style.display="none";a(e).addClass(b);this.host.append(e)}a(e).html(c);var d={width:a(e).width()+2,height:a(e).height()+2};if(a.jqx.browser&&a.jqx.browser.mozilla){d.height+=3}return d},_hideToolTip:function(b){if(!this._ttEl){return}if(this._ttEl.box){if(b==0){a(this._ttEl.box).hide()}else{a(this._ttEl.box).fadeOut()}}this._hideCrosshairs();this._ttEl.gidx=undefined},_hideCrosshairs:function(){if(!this._ttEl){return}if(this._ttEl.vLine){this.renderer.removeElement(this._ttEl.vLine);this._ttEl.vLine=undefined}if(this._ttEl.hLine){this.renderer.removeElement(this._ttEl.hLine);this._ttEl.hLine=undefined}},_get:function(b){return a.jqx.getByPriority(b)},_getAxisSettings:function(f){if(!f){return{}}var l=this;var k=f.gridLines||{};var n={visible:this._get([k.visible,f.showGridLines,true]),color:l._get([k.color,f.gridLinesColor,l._defaultLineColor]),unitInterval:l._get([k.unitInterval,k.interval,f.gridLinesInterval]),step:l._get([k.step,f.gridLinesStep]),dashStyle:l._get([k.dashStyle,f.gridLinesDashStyle]),width:l._get([k.lineWidth,1]),offsets:[],alternatingBackgroundColor:f.alternatingBackgroundColor,alternatingBackgroundColor2:f.alternatingBackgroundColor2,alternatingBackgroundOpacity:f.alternatingBackgroundOpacity};var d=f.tickMarks||{};var h={visible:this._get([d.visible,f.showTickMarks,true]),color:l._get([d.color,f.tickMarksColor,l._defaultLineColor]),unitInterval:l._get([d.unitInterval,d.interval,f.tickMarksInterval]),step:l._get([d.step,f.tickMarksStep]),dashStyle:l._get([d.dashStyle,f.tickMarksDashStyle]),width:l._get([d.lineWidth,1]),size:l._get([d.size,4]),offsets:[]};var e=f.title||{};var c={visible:l._get([e.visible,true]),text:l._get([f.description,e.text]),style:l._get([f.descriptionClass,e["class"],l.toThemeProperty("jqx-chart-axis-description",null)]),halign:l._get([f.horizontalDescriptionAlignment,e.horizontalAlignment,"center"]),valign:l._get([f.verticalDescriptionAlignment,e.verticalAlignment,"center"]),angle:0,rotationPoint:l._get([e.rotationPoint,"centercenter"]),offset:l._get([e.offset,{x:0,y:0}])};var i=f.line||{};var b={visible:l._get([i.visible,true]),color:l._get([i.color,n.color,l._defaultLineColor]),dashStyle:l._get([i.dashStyle,n.dashStyle,""]),width:l._get([i.lineWidth,1])};var j=f.padding||{};j={left:j.left||0,right:j.right||0,top:j.top||0,bottom:j.bottom||0};var g=this._getAxisLabelsSettings(f);var m={visible:this._get([f.visible,f.showValueAxis,f.showXAxis,f.showCategoryAxis,true]),customDraw:this._get([f.customDraw,false]),gridLines:n,tickMarks:h,line:b,title:c,labels:g,padding:j,toolTipFormatFunction:this._get([f.toolTipFormatFunction,f.formatFunction,g.formatFunction]),toolTipFormatSettings:this._get([f.toolTipFormatSettings,f.formatSettings,g.formatSettings])};return m},_getAxisLabelsSettings:function(d){var b=this;var e=d.labels||{};var c={visible:b._get([d.showLabels,e.visible,true]),unitInterval:b._get([e.unitInterval,e.interval,d.labelsInterval]),step:b._get([e.step,d.labelsStep]),angle:b._get([d.textRotationAngle,e.angle,0]),style:b._get([d["class"],e["class"],b.toThemeProperty("jqx-chart-axis-text",null)]),halign:b._get([d.horizontalTextAlignment,e.horizontalAlignment,"center"]),valign:b._get([d.verticalTextAlignment,e.verticalAlignment,"center"]),textRotationPoint:b._get([d.textRotationPoint,e.rotationPoint,"auto"]),textOffset:b._get([d.textOffset,e.offset,{x:0,y:0}]),autoRotate:b._get([d.labelsAutoRotate,e.autoRotate,false]),formatSettings:b._get([d.formatSettings,e.formatSettings,undefined]),formatFunction:b._get([d.formatFunction,e.formatFunction,undefined])};return c},_getLabelsSettings:function(p,l,h,t){var j=this.seriesGroups[p];var r=j.series[l];var m=isNaN(h)?undefined:this._getDataValue(h,r.dataField,p);var k=t||["Visible","Offset","Angle","HorizontalAlignment","VerticalAlignment","Class","BackgroundColor","BorderColor","BorderOpacity","Padding","Opacity","BackgroundOpacity","LinesAngles","LinesEnabled","AutoRotate","Radius"];var q={};for(var f=0;f0){if(t==""||t=="center"){p+=(s-C.width)/2}else{if(t=="right"){p+=(s-C.width)}}}if(H>0){if(i==""||i=="center"){n+=(H-C.height)/2}else{if(i=="bottom"){n+=(H-C.height)}}}p+=b.x+G.x;n+=b.y+G.y;var o=this._plotRect;if(p<=o.x){p=o.x+2}if(n<=o.y){n=o.y+2}var l={width:Math.max(C.width,1),height:Math.max(C.height,1)};if(n+l.height>=o.y+o.height){n=o.y+o.height-(q?(l.height+q.height)/2:l.height)-2}if(p+l.width>=o.x+o.width){p=o.x+o.width-l.width-2}var d;var A=I.backgroundColor;var D=I.borderColor;var z=I.padding;if(A||D){d=this.renderer.beginGroup();var b=this.renderer.rect(p-z.left,n-z.top,C.width+z.left+z.right,C.height+z.bottom+z.bottom,{fill:A||"transparent","fill-opacity":I.backgroundOpacity||1,stroke:D||"transparent","stroke-opacity":I.borderOpacity,"stroke-width":1})}var u=this.renderer.text(v,p,n,C.width,C.height,g,{"class":I["class"],opacity:I.opacity||1},false,"center","center");if(B){B.x=p-z.left;B.y=n-z.top;B.width=C.width+z.left+z.right;B.height=C.height+z.bottom+z.bottom}if(this._isVML){this.renderer.removeElement(u);this.renderer.getContainer()[0].appendChild(u)}if(d){this.renderer.endGroup()}return d||u},_getAnimProps:function(j,f){var e=this.seriesGroups[j];var c=!isNaN(f)?e.series[f]:undefined;var b=this.enableAnimations==true;if(e.enableAnimations){b=e.enableAnimations==true}if(c&&c.enableAnimations){b=c.enableAnimations==true}var i=this.animationDuration;if(isNaN(i)){i=1000}var d=e.animationDuration;if(!isNaN(d)){i=d}if(c){var h=c.animationDuration;if(!isNaN(h)){i=h}}if(i>5000){i=1000}return{enabled:b,duration:i}},_isColorTransition:function(f,d,e,g){if(g-1=0;n--){var g=this._getSerieSettings(k,n);var ah={groupIndex:k,rect:z,serieIndex:n,swapXY:aj,isArea:s,isSpline:ae,isRange:O,isPolar:af,settings:g,segments:[],pointsLength:0};var j=this._isSerieVisible(k,n);if(!j){this._linesRenderInfo[k][n]=ah;continue}var J=H.series[n];if(J.customDraw){continue}var w=a.isFunction(J.colorFunction);var U=D.xoffsets.first;var G=U;var N=this._getColors(k,n,NaN,this._getGroupGradientType(k));var ab=false;var u;do{var W=[];var T=[];var r=[];var P=-1;var p=0,o=0;var R=NaN;var E=NaN;var ai=NaN;if(D.xoffsets.length<1){continue}var S=this._getAnimProps(k,n);var L=S.enabled&&!this._isToggleRefresh&&D.xoffsets.length<10000&&this._isVML!=true?S.duration:0;var v=U;u=false;var d=this._getColors(k,n,U,this._getGroupGradientType(k));for(var ad=U;ad<=D.xoffsets.last;ad++){U=ad;var X=D.xoffsets.data[ad];var V=D.xoffsets.xvalues[ad];if(isNaN(X)){continue}X=Math.max(X,1);p=X;o=D.offsets[n][ad].to;var aa=D.offsets[n][ad].from;if(isNaN(o)||isNaN(aa)){if(J.emptyPointsDisplay=="connect"){continue}else{if(J.emptyPointsDisplay=="zero"){if(isNaN(o)){o=D.baseOffset}if(isNaN(aa)){aa=D.baseOffset}}else{u=true;break}}}if(w&&this._isColorTransition(k,n,D,U)){if(W.length>1){U--;break}}var c=this._elementRenderInfo;if(c&&c.length>k&&c[k].series.length>n){var f=c[k].series[n][V];var ai=a.jqx._ptrnd(f?f.to:undefined);var I=a.jqx._ptrnd(z.x+(f?f.xoffset:undefined));r.push(aj?{y:I,x:ai,index:ad}:{x:I,y:ai,index:ad})}G=ad;if(g.stroke<2){if(o-z.y<=1){o=z.y+1}if(aa-z.y<=1){aa=z.y+1}if(z.y+z.height-o<=1){o=z.y+z.height-1}if(z.y+z.height-aa<=1){aa=z.y+z.height-1}}if(!s&&e){if(o<=z.y){o=z.y+1}if(o>=z.y+z.height){o=z.y+z.height-1}if(aa<=z.y){aa=z.y+1}if(aa>=z.y+z.height){aa=z.y+z.height-1}}X=Math.max(X,1);p=X+z.x;if(H.skipOverlappingPoints==true&&!isNaN(R)&&Math.abs(R-p)<=1){continue}if(t&&!isNaN(R)&&!isNaN(E)){if(E!=o){W.push(aj?{y:p,x:a.jqx._ptrnd(E)}:{x:p,y:a.jqx._ptrnd(E)})}}W.push(aj?{y:p,x:a.jqx._ptrnd(o),index:ad}:{x:p,y:a.jqx._ptrnd(o),index:ad});T.push(aj?{y:p,x:a.jqx._ptrnd(aa),index:ad}:{x:p,y:a.jqx._ptrnd(aa),index:ad});R=p;E=o;if(isNaN(ai)){ai=o}}if(W.length==0){U++;continue}var F=W[W.length-1].index;if(w){N=this._getColors(k,n,F,this._getGroupGradientType(k))}var l=z.x+D.xoffsets.data[v];var Z=z.x+D.xoffsets.data[G];if(s&&H.alignEndPointsWithIntervals==true){var B=C?-1:1;if(l>z.x){l=z.x}if(ZD.x+D.width||t.yD.y+D.height){continue}if(v!="none"){var n=this._getColors(f,g,u.pointsArray[B].index,this._getGroupGradientType(f));var e=this._drawSymbol(v,t.x,t.y,n.fillColorSymbol,C.opacity,n.lineColorSymbol,C.opacity,1,undefined,E);u.symbolElements.push(e)}if(p){var k=(B>0?r[B-1]:r[B]).split(",");k={x:parseFloat(k[0]),y:parseFloat(k[1])};var m=(B0){s+=" "}var k=o[u].y;var l=o[u].x;var b=!z?k:f;var d=l;if(n&&n.length>u){b=n[u].y;d=n[u].x;if(isNaN(b)||isNaN(d)){b=k;d=l}}j=d;if(t<=o.length&&u>0&&u==t){d=o[u-1].x;b=o[u-1].y}if(c){l=a.jqx._ptrnd((l-b)*(z?e:1)+b);k=a.jqx._ptrnd(k)}else{l=a.jqx._ptrnd((l-d)*e+d);k=a.jqx._ptrnd((k-b)*e+b)}if(m){var q=this._toPolarCoord(m,this._plotRect,l,k);l=q.x;k=q.y}s+=l+","+k}return s},_buildLineCmd:function(k,o,g,s,e,m,d,r,c,j,f,b){var p=k;var l=b?d+","+g:g+","+d;var h=b?d+","+s:s+","+d;if(r&&!c&&!o){p=l+" "+k+" "+h}if(f){p=this._getBezierPoints(p)}var n=p.split(" ");if(n.length==0){return""}if(n.length==1){var q=n[0].split(",");return"M "+n[0]+" L"+(parseFloat(q[0])+1)+","+(parseFloat(q[1])+1)}var i=n[0].replace("M","");if(r&&!c){if(!o){p="M "+l+" L "+i+" "+p}else{p="M "+i+" L "+i+(f?"":(" L "+i+" "))+p}}else{if(!f){p="M "+i+" L "+i+" "+p}}if((c&&j)||o){p+=" Z"}return p},_getSerieSettings:function(h,b){var g=this.seriesGroups[h];var f=g.type.indexOf("area")!=-1;var e=g.type.indexOf("line")!=-1;var c=g.series[b];var j=c.dashStyle||g.dashStyle||"";var d=c.opacity||g.opacity;if(isNaN(d)||d<0||d>1){d=1}var i=c.lineWidth;if(isNaN(i)&&i!="auto"){i=g.lineWidth}if(i=="auto"||isNaN(i)||i<0||i>15){if(f){i=2}else{if(e){i=3}else{i=1}}}return{stroke:i,opacity:d,dashStyle:j}},_getColors:function(u,p,d,e,b){var k=this.seriesGroups[u];var o=k.series[p];var c=this._get([o.useGradientColors,k.useGradientColors,k.useGradient,true]);var l=this._getSeriesColors(u,p,d);if(!l.fillColor){l.fillColor=r;l.fillColorSelected=a.jqx.adjustColor(r,1.1);l.fillColorAlt=a.jqx.adjustColor(r,4);l.fillColorAltSelected=a.jqx.adjustColor(r,3);l.lineColor=l.symbolColor=a.jqx.adjustColor(r,0.9);l.lineColorSelected=l.symbolColorSelected=a.jqx.adjustColor(r,0.9)}var h=[[0,1.4],[100,1]];var f=[[0,1],[25,1.1],[50,1.4],[100,1]];var n=[[0,1.3],[90,1.2],[100,1]];var j=NaN;if(!isNaN(b)){j=b==2?h:f}if(c){var q={};for(var s in l){q[s]=l[s]}l=q;if(e=="verticalLinearGradient"||e=="horizontalLinearGradient"){var g=e=="verticalLinearGradient"?j||h:j||f;var m=["fillColor","fillColorSelected","fillColorAlt","fillColorAltSelected"];for(var v in m){var r=l[m[v]];if(r){l[m[v]]=this.renderer._toLinearGradient(r,e=="verticalLinearGradient",g)}}}else{if(e=="radialGradient"){var t;var j=h;if((k.type=="pie"||k.type=="donut"||k.polar)&&d!=undefined&&this._renderData[u]&&this._renderData[u].offsets[p]){t=this._renderData[u].offsets[p][d];j=n}l.fillColor=this.renderer._toRadialGradient(l.fillColor,j,t);l.fillColorSelected=this.renderer._toRadialGradient(l.fillColorSelected,j,t)}}}return l},_installHandlers:function(c,f,i,h,d){if(!this.enableEvents){return false}var j=this;var e=this.seriesGroups[i];var k=this.seriesGroups[i].series[h];var b=e.type.indexOf("line")!=-1||e.type.indexOf("area")!=-1;if(!b&&!(e.enableSelection==false||k.enableSelection==false)){this.renderer.addHandler(c,"mousemove",function(m){var l=j._selected;if(l&&l.isLineType&&l.linesUnselectMode=="click"&&!(l.group==i&&l.series==h)){return}var g=m.pageX||m.clientX||m.screenX;var o=m.pageY||m.clientY||m.screenY;var n=j.host.offset();g-=n.left;o-=n.top;if(j._mouseX==g&&j._mouseY==o){return}if(j._ttEl){if(j._ttEl.gidx==i&&j._ttEl.sidx==h&&j._ttEl.iidx==d){return}}j._startTooltipTimer(i,h,d)});this.renderer.addHandler(c,"mouseout",function(l){return;if(!isNaN(j._lastClickTs)&&(new Date()).valueOf()-j._lastClickTs<100){return}if(d!=undefined){j._cancelTooltipTimer()}if(b){return}var g=j._selected;if(g&&g.isLineType&&g.linesUnselectMode=="click"&&!(g.group==i&&g.series==h)){return}j._unselect()})}if(!(e.enableSelection==false||k.enableSelection==false)){this.renderer.addHandler(c,"mouseover",function(l){var g=j._selected;if(g&&g.isLineType&&g.linesUnselectMode=="click"&&!(g.group==i&&g.series==h)){return}j._select(c,f,i,h,d,d)})}this.renderer.addHandler(c,"click",function(g){clearTimeout(j._hostClickTimer);j._lastClickTs=(new Date()).valueOf();if(b&&(f!="symbol"&&f!="pointMarker")){return}if(j._isColumnType(e.type)){j._unselect()}if(isNaN(d)){return}g.stopImmediatePropagation();j._raiseItemEvent("click",e,k,d)})},_getHorizontalOffset:function(A,s,k,j){var c=this._plotRect;var h=this._getDataLen(A);if(h==0){return{index:undefined,value:k}}var p=this._calcGroupOffsets(A,this._plotRect);if(p.xoffsets.length==0){return{index:undefined,value:undefined}}var n=k;var m=j;var w=this.seriesGroups[A];var l;if(w.polar||w.spider){l=this._getPolarAxisCoords(A,c)}var e=this._getXAxis(A).flip==true;var b,o,v,f;for(var t=p.xoffsets.first;t<=p.xoffsets.last;t++){var u=p.xoffsets.data[t];var d=p.offsets[s][t].to;var q=0;if(l){var r=this._toPolarCoord(l,c,u+c.x,d);u=r.x;d=r.y;q=a.jqx._ptdist(n,m,u,d)}else{if(w.orientation=="horizontal"){u+=c.y;var z=d;d=u;u=z;q=a.jqx._ptdist(n,m,u,d)}else{u+=c.x;q=Math.abs(n-u)}}if(isNaN(b)||b>q){b=q;o=t;v=u;f=d}}return{index:o,value:p.xoffsets.data[o],polarAxisCoords:l,x:v,y:f}},onmousemove:function(l,k){if(this._mouseX==l&&this._mouseY==k){return}this._mouseX=l;this._mouseY=k;if(!this._selected){return}var B=this._selected.group;var r=this._selected.series;var w=this.seriesGroups[B];var o=w.series[r];var b=this._plotRect;if(this.renderer){b=this.renderer.getRect();b.x+=5;b.y+=5;b.width-=10;b.height-=10}if(lb.x+b.width||kb.y+b.height){this._hideToolTip();this._unselect();return}var e=w.orientation=="horizontal";var b=this._plotRect;if(w.type.indexOf("line")!=-1||w.type.indexOf("area")!=-1){var h=this._getHorizontalOffset(B,this._selected.series,l,k);var v=h.index;if(v==undefined){return}if(this._selected.item!=v){var q=this._linesRenderInfo[B][r].segments;var t=0;while(v>q[t].lastItemIndex){t++;if(t>=q.length){return}}var c=q[t].pathElement;var C=q[t].lastItemIndex;this._unselect(false);this._select(c,"path",B,r,v,C)}var n=this._getSymbol(this._selected.group,this._selected.series);if(n=="none"){n="circle"}var p=this._calcGroupOffsets(B,b);var d=p.offsets[this._selected.series][v].to;var u=d;if(w.type.indexOf("range")!=-1){u=p.offsets[this._selected.series][v].from}var m=e?l:k;if(!isNaN(u)&&Math.abs(m-u)1){f=w.opacity}if(isNaN(f)||f<0||f>1){f=1}var A=o.symbolSizeSelected;if(isNaN(A)){A=o.symbolSize}if(isNaN(A)||A>50||A<0){A=w.symbolSize}if(isNaN(A)||A>50||A<0){A=8}if(this.showToolTips||this.enableCrosshairs){this._pointMarker={type:n,x:l,y:k,gidx:B,sidx:r,iidx:v};this._pointMarker.element=this._drawSymbol(n,l,k,j.fillColorSymbolSelected,f,j.lineColorSymbolSelected,f,1,undefined,A);this._installHandlers(this._pointMarker.element,"pointMarker",B,r,v)}this._startTooltipTimer(B,this._selected.series,v)}},_drawSymbol:function(i,l,j,c,m,k,f,g,b,o){var e;var h=o||6;var d=h/2;switch(i){case"none":return undefined;case"circle":e=this.renderer.circle(l,j,h/2);break;case"square":h=h-1;d=h/2;e=this.renderer.rect(l-d,j-d,h,h);break;case"diamond":var n="M "+(l-d)+","+(j)+" L"+(l)+","+(j-d)+" L"+(l+d)+","+(j)+" L"+(l)+","+(j+d)+" Z";e=this.renderer.path(n);break;case"triangle_up":case"triangle":var n="M "+(l-d)+","+(j+d)+" L "+(l+d)+","+(j+d)+" L "+(l)+","+(j-d)+" Z";e=this.renderer.path(n);break;case"triangle_down":var n="M "+(l-d)+","+(j-d)+" L "+(l)+","+(j+d)+" L "+(l+d)+","+(j-d)+" Z";e=this.renderer.path(n);break;case"triangle_left":var n="M "+(l-d)+","+(j)+" L "+(l+d)+","+(j+d)+" L "+(l+d)+","+(j-d)+" Z";e=this.renderer.path(n);break;case"triangle_right":var n="M "+(l-d)+","+(j-d)+" L "+(l-d)+","+(j+d)+" L "+(l+d)+","+(j)+" Z";e=this.renderer.path(n);break;default:e=this.renderer.circle(l,j,h)}this.renderer.attr(e,{fill:c,"fill-opacity":m,stroke:k,"stroke-width":g,"stroke-opacity":f,"stroke-dasharray":b||""});if(i!="circle"){this.renderer.attr(e,{r:h/2});if(i!="square"){this.renderer.attr(e,{x:l,y:j})}}return e},_getSymbol:function(f,b){var c=["circle","square","diamond","triangle_up","triangle_down","triangle_left","triangle_right"];var e=this.seriesGroups[f];var d=e.series[b];var h;if(d.symbolType!=undefined){h=d.symbolType}if(h==undefined){h=e.symbolType}if(h=="default"){return c[b%c.length]}else{if(h!=undefined){return h}}return"none"},_startTooltipTimer:function(k,j,d,i,h,b,f){this._cancelTooltipTimer();var l=this;var e=l.seriesGroups[k];var c=this.toolTipShowDelay||this.toolTipDelay;if(isNaN(c)||c>10000||c<0){c=500}if(this._ttEl||(true==this.enableCrosshairs&&false==this.showToolTips)){c=0}if(!isNaN(b)){c=b}clearTimeout(this._tttimerHide);if(isNaN(i)){i=l._mouseX}if(isNaN(h)){h=l._mouseY-3}if(c==0){l._showToolTip(i,h,k,j,d)}this._tttimer=setTimeout(function(){if(c!=0){l._showToolTip(i,h,k,j,d)}var g=l.toolTipHideDelay;if(!isNaN(f)){g=f}if(isNaN(g)){g=4000}l._tttimerHide=setTimeout(function(){l._hideToolTip();l._unselect()},g)},c)},_cancelTooltipTimer:function(){clearTimeout(this._tttimer)},_getGroupGradientType:function(c){var b=this.seriesGroups[c];if(b.type.indexOf("area")!=-1){return b.orientation=="horizontal"?"horizontalLinearGradient":"verticalLinearGradient"}else{if(this._isColumnType(b.type)||b.type.indexOf("candle")!=-1){if(b.polar){return"radialGradient"}return b.orientation=="horizontal"?"verticalLinearGradient":"horizontalLinearGradient"}else{if(b.type.indexOf("scatter")!=-1||b.type.indexOf("bubble")!=-1||this._isPieGroup(c)){return"radialGradient"}}}return undefined},_select:function(h,l,o,n,i,m){if(this._selected){if((this._selected.item!=i||this._selected.series!=n||this._selected.group!=o)){this._unselect()}else{return}}var k=this.seriesGroups[o];var p=k.series[n];if(k.enableSelection==false||p.enableSelection==false){return}var f=k.type.indexOf("line")!=-1&&k.type.indexOf("area")==-1;this._selected={element:h,type:l,group:o,series:n,item:i,iidxBase:m,isLineType:f,linesUnselectMode:p.linesUnselectMode||k.linesUnselectMode};var b=this._getColors(o,n,m||i,this._getGroupGradientType(o));var c=b.fillColorSelected;if(f){c="none"}var e=this._getSerieSettings(o,n);var d=(l=="symbol")?b.lineColorSymbolSelected:b.lineColorSelected;c=(l=="symbol")?b.fillColorSymbolSelected:c;var j=(l=="symbol")?1:e.stroke;if(this.renderer.getAttr(h,"fill")==b.fillColorAlt){c=b.fillColorAltSelected}this.renderer.attr(h,{stroke:d,fill:c,"stroke-width":j});if(k.type.indexOf("pie")!=-1||k.type.indexOf("donut")!=-1){this._applyPieSelect()}this._raiseItemEvent("mouseover",k,p,i)},_applyPieSelect:function(){var c=this;c._createAnimationGroup("animPieSlice");var e=this._selected;if(!e){return}var f=this.getItemCoord(e.group,e.series,e.item);if(!f){return}var d=this._getRenderInfo(e.group,e.series,e.item);var b={element:d,coord:f};this._enqueueAnimation("animPieSlice",undefined,undefined,300,function(i,g,j){var l=g.coord;var h=l.selectedRadiusChange*j;var k=c.renderer.pieSlicePath(l.center.x,l.center.y,l.innerRadius==0?0:(l.innerRadius+h),l.outerRadius+h,l.fromAngle,l.toAngle,l.centerOffset);c.renderer.attr(g.element.element,{d:k});c._showPieLabel(e.group,e.series,e.item,undefined,h)},b);c._startAnimation("animPieSlice")},_applyPieUnselect:function(){this._stopAnimations();var b=this._selected;if(!b){return}var d=this.getItemCoord(b.group,b.series,b.item);if(!d||!d.center){return}var c=this.renderer.pieSlicePath(d.center.x,d.center.y,d.innerRadius,d.outerRadius,d.fromAngle,d.toAngle,d.centerOffset);this.renderer.attr(b.element,{d:c});this._showPieLabel(b.group,b.series,b.item,undefined,0)},_unselect:function(){var o=this;if(o._selected){var n=o._selected.group;var m=o._selected.series;var f=o._selected.item;var k=o._selected.iidxBase;var j=o._selected.type;var i=o.seriesGroups[n];var p=i.series[m];var e=i.type.indexOf("line")!=-1&&i.type.indexOf("area")==-1;var b=o._getColors(n,m,k||f,o._getGroupGradientType(n));var c=b.fillColor;if(e){c="none"}var d=o._getSerieSettings(n,m);var l=(j=="symbol")?b.lineColorSymbol:b.lineColor;c=(j=="symbol")?b.fillColorSymbol:c;if(this.renderer.getAttr(o._selected.element,"fill")==b.fillColorAltSelected){c=b.fillColorAlt}var h=(j=="symbol")?1:d.stroke;o.renderer.attr(o._selected.element,{stroke:l,fill:c,"stroke-width":h});if(i.type.indexOf("pie")!=-1||i.type.indexOf("donut")!=-1){this._applyPieUnselect()}o._selected=undefined;if(!isNaN(f)){o._raiseItemEvent("mouseout",i,p,f)}}if(o._pointMarker){if(o._pointMarker.element){o.renderer.removeElement(o._pointMarker.element);o._pointMarker.element=undefined}o._pointMarker=undefined;o._hideCrosshairs()}},_raiseItemEvent:function(f,g,e,c){var d=e[f]||g[f];var h=0;for(;h=1){c*=10}else{c/=10}for(var e=1;eMath.abs(g[e]*c-k)){l=e}else{break}}}while(l==g.length-1);return g[l]*c},_renderDataClone:function(){if(!this._renderData||this._isToggleRefresh){return}var d=this._elementRenderInfo=[];if(this._isSelectorRefresh){return}for(var h=0;h=this._renderData.length){return}var e=this.seriesGroups[d];var c=this._renderData[d].xAxis;if(!c){return}if(e.xAxis==undefined){for(var b=0;b<=d;b++){if(this.seriesGroups[b].xAxis==undefined){break}}c=this._renderData[b].xAxis}return c},getXAxisDataPointOffset:function(j,l){var k=this.seriesGroups[l];if(isNaN(j)){return NaN}renderData=this._getXAxisRenderData(l);if(!renderData){return NaN}var f=renderData.data.axisStats;var i=f.min.valueOf();var b=f.max.valueOf();var g=b-i;if(g==0){g=1}if(j.valueOf()>b||j.valueOf()ag.max){r=ag.max}if(r=r)?ah:ad}else{J=W[ac]}}var af=M*(J-r);if(K){af=M*(J-ap)}if(F&&ao){if(!am[ac]){am[ac]=true;af=M*(J-r)}else{af=M*J}}if(O){while(m.length<=ac){m.push({p:{value:0,height:0},n:{value:0,height:0}})}var B=(K||K)?ap:r;var aa=J>B?m[ac].p:m[ac].n;aa.value+=J;if(d){J=aa.value/(ag.psums[ac]+ag.nsums[ac])*100;af=(a.jqx.log(J,N)-ag.minPow)*M}else{af=a.jqx.log(aa.value,N)-a.jqx.log(B,N);af*=M}af-=aa.height;aa.height+=af}var R=ai;if(K){var t=0;if(O){t=(a.jqx.log(ap,N)-a.jqx.log(r,N))*M}else{t=(ap-r)*M}R+=A?t:-t}if(F){if(d&&!O){var w=(ag.psums[ac]-ag.nsums[ac]);if(J>r){af=(ag.psums[ac]/w)*c;if(ag.psums[ac]!=0){af*=J/ag.psums[ac]}}else{af=(ag.nsums[ac]/w)*c;if(ag.nsums[ac]!=0){af*=J/ag.nsums[ac]}}}if(ao){if(isNaN(I[ac])){I[ac]=R}R=I[ac]}}if(isNaN(S[ac])){S[ac]=0}var ae=S[ac];af=Math.abs(af);var V=af;if(af>=1){h_new=this._isVML?Math.round(af):a.jqx._ptrnd(af)-1;if(Math.abs(af-h_new)>0.5){af=Math.round(af)}else{af=h_new}}ae+=af-V;if(!F){ae=0}if(Math.abs(ae)>0.5){if(ae>0){af-=1;ae-=1}else{af+=1;ae+=1}}S[ac]=ae;if(ab==z.series.length-1&&d){var v=0;for(var X=0;X0.5){af=a.jqx._ptrnd(af+c-v)}else{var X=ab-1;while(X>=0){var G=Math.abs(T[X][ac].to-T[X][ac].from);if(G>1){if(T[X][ac].from>T[X][ac].to){T[X][ac].from+=c-v}break}X--}}}}if(A){af*=-1}var Q=JJ}var n=isNaN(ap)?J:{from:ap,to:J};if(Q){if(ao){I[ac]+=af}T[ab][ac]={from:R,to:R+af,value:n,valueRadius:e}}else{if(ao){I[ac]-=af}T[ab][ac]={from:R,to:R-af,value:n,valueRadius:e}}}}var u=this._renderData[l];u.baseOffset=ai;u.gbase=r;u.logBase=O?N:NaN;u.scale=M;u.offsets=!Z?T:this._applyWaterfall(T,s,l,ai,r,O?N:NaN,M,A,F);u.xoffsets=this._calculateXOffsets(l,L.width);return this._renderData[l]},_isPercent:function(b){return(typeof(b)==="string"&&b.length>0&&b.indexOf("%")==b.length-1)},_calcPieSeriesGroupOffsets:function(e,b){var z=this;var m=this._getDataLen(e);var n=this.seriesGroups[e];var A=this._renderData[e]={};var G=A.offsets=[];for(var C=0;C360){E=0}var M=this._get([t.maxAngle,t.endAngle]);if(isNaN(M)||M<0||M>360){M=360}var f=M-E;var o=t.initialAngle||0;if(oM){o=M}var c=t.centerOffset||0;var K=a.jqx.getNum([t.offsetX,n.offsetX,b.width/2]);var J=a.jqx.getNum([t.offsetY,n.offsetY,b.height/2]);var w=Math.min(b.width,b.height)/2;var v=o;var g=t.radius;if(z._isPercent(g)){g=parseFloat(g)/100*w}if(isNaN(g)){g=w*0.4}var l=t.innerRadius;if(z._isPercent(l)){l=parseFloat(l)/100*w}if(isNaN(l)||l>=g){l=0}var d=t.selectedRadiusChange;if(z._isPercent(d)){d=parseFloat(d)/100*(g-l)}if(isNaN(d)){d=0.1*(g-l)}G.push([]);var h=0;var j=0;for(var F=0;F0){h+=L}else{j+=L}}var r=h-j;if(r==0){r=1}for(var F=0;Fd){break}var c=this._estAxisInterval(k,p,q,d,o[l].key,g);var e=this._getDTIntCnt(k,p,c,o[l].key);if(b==-1||b=p){p=v}}if(c&&((!b&&d==k)||(b&&z==k))){j=false}if(j){e=0;p=Math.max(0,k-1)}if(isNaN(w)){w=e}if(isNaN(C)){C=p}if(b){if(!this._isDate(w)){w=this._isDate(C)?C:new Date()}if(!this._isDate(C)){C=this._isDate(w)?w:new Date()}}else{if(isNaN(w)){w=0}if(isNaN(C)){C=j?Math.max(0,k-1):w}}if(e==undefined){e=w}if(p==undefined){p=C}var r=m.rangeSelector;if(r){var s=r.minValue||w;if(s&&b){s=this._castAsDate(s,r.dateFormat||m.dateFormat)}var u=r.maxValue||C;if(u&&b){u=this._castAsDate(u,r.dateFormat||m.rangeSelector)}if(wu){w=s}if(C>u){C=u}}var E=m.unitInterval;var t,F;if(b){t=m.baseUnit;if(!t){t=this._getBestDTUnit(w,C,f,D)}F=t=="hour"||t=="minute"||t=="second"||t=="millisecond"}var E=m.unitInterval;if(isNaN(E)||E<=0){E=this._estAxisInterval(w,C,f,D,t)}var A={min:w,max:C};var l=this.seriesGroups[f];if(!b&&(l.polar||l.spider)){w=a.jqx._rnd(w,E,false);C=a.jqx._rnd(C,E,true)}return{min:w,max:C,dsRange:{min:e,max:p},filterRange:A,useIndeces:j,isDateTime:b,isTimeUnit:F,dateTimeUnit:t,interval:E}},_getDefaultDTFormatFn:function(d){var b=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];var c;if(d=="year"||d=="month"||d=="day"){c=function(e){return e.getDate()+"-"+b[e.getMonth()]+"-"+e.getFullYear()}}else{c=function(e){return e.getDate()+"-"+b[e.getMonth()]+"-"+e.getFullYear()+"
              "+e.getHours()+":"+e.getMinutes()+":"+e.getSeconds()}}return c},_getDTIntCnt:function(f,c,d,i){var e=0;var g=new Date(f);var h=new Date(c);if(d<=0){return 1}while(g.valueOf()0)?c:50);if(this._renderData&&this._renderData.length>m&&this._renderData[m].xAxis&&!isNaN(this._renderData[m].xAxis.avgWidth)){var o=Math.max(1,this._renderData[m].xAxis.avgWidth);if(o!=0&&isNaN(c)){f=0.9*b/o}}if(f<=1){return Math.abs(h-e)}var n=0;while(true){var l=g>=d.length?Math.pow(10,3+g-d.length):d[g];if(this._isDate(e)&&this._isDate(h)){n=this._getDTIntCnt(e,h,l,j)}else{n=(h-e)/l}if(n<=f){break}g++}var k=this.seriesGroups[m];if(k.spider||k.polar){if(2*l>h-e){l=h-e}}return l},_getPaddingSize:function(l,e,f,c,n,g,o){var h=l.min;var j=l.max;var b=l.interval;var d=l.dateTimeUnit;if(n){var k=(c/Math.max(1,j-h+b))*b;if(g){return{left:0,right:k}}else{if(f){return{left:0,right:0}}return{left:k/2,right:k/2}}}if(f&&!o){return{left:0,right:0}}if(this._isDate(h)&&this._isDate(j)){var m=this._getDTIntCnt(h,j,Math.min(b,j-h),d);var i=c/Math.max(2,m);return{left:i/2,right:i/2}}var m=Math.max(1,j-h);if(m==1){sz=c/4;return{left:sz,right:sz}}var i=c/(m+1);return{left:i/2,right:i/2}},_calculateXOffsets:function(e,E){var D=this.seriesGroups[e];var n=this._getXAxis(e);var v=[];var l=[];var m=this._getDataLen(e);var d=this._getXAxisStats(e,n,E);var u=d.min;var B=d.max;var b=d.isDateTime;var F=d.isTimeUnit;var C=this._hasColumnSeries();var c=D.polar||D.spider;var w=this._get([D.startAngle,D.minAngle,0]);var s=this._get([D.endAngle,D.maxAngle,360]);var p=c&&!(Math.abs(Math.abs(s-w)-360)>0.0001);var k=this._alignValuesWithTicks(e);var r=this._getPaddingSize(d,n,k,E,c,p,C);var H=B-u;var A=d.filterRange;if(H==0){H=1}var G=E-r.left-r.right;if(c&&k){r.left=r.right=0}var h=-1,o=-1;for(var z=0;zA.max){v.push(NaN);l.push(undefined);continue}v.push(a.jqx._ptrnd(r.left+(z-u)/H*G));l.push(t);if(h==-1){h=z}if(o==-1||oA.max){v.push(NaN);l.push(undefined);continue}var q=0;if(!b||(b&&F)){diffFromMin=t-u;q=(t-u)*G/H}else{q=(t.valueOf()-u.valueOf())/(B.valueOf()-u.valueOf())*G}q=a.jqx._ptrnd(r.left+q);v.push(q);l.push(t);if(h==-1){h=z}if(o==-1||othis.samplingThreshold){this._sampleXOffsets(E,v,l,h,o)}return{axisStats:d,data:v,xvalues:l,first:h,last:o,length:o==-1?0:o-h+1,itemWidth:f,intervalWidth:f*d.interval,rangeLength:H,useIndeces:d.useIndeces,padding:r,axisSize:G}},_sampleXOffsets:function(h,d,b,g,e){var e=NaN;for(var c=0;ch.colors.length){m-=h.colors.length;if(++f>=this.colorSchemes.length){f=0}h=this.colorSchemes[f]}d=h.colors[m%h.colors.length]}}}return d},_createColorsCache:function(){this._colorsCache={get:function(b){if(this._store[b]){return this._store[b]}},set:function(c,b){if(this._size<10000){this._store[c]=b;this._size++}},clear:function(){this._store={};this._size=0},_size:0,_store:{}}},_getSeriesColorsInternal:function(m,d,b){var f=this.seriesGroups[m];var o=f.series[d];if(!a.isFunction(o.colorFunction)&&f.type!="pie"&&f.type!="donut"){b=NaN}var h=m+"_"+d+"_"+(isNaN(b)?"NaN":b);if(this._colorsCache.get(h)){return this._colorsCache.get(h)}var c={lineColor:"#222222",lineColorSelected:"#151515",lineColorSymbol:"#222222",lineColorSymbolSelected:"#151515",fillColor:"#222222",fillColorSelected:"#333333",fillColorSymbol:"#222222",fillColorSymbolSelected:"#333333",fillColorAlt:"#222222",fillColorAltSelected:"#333333"};var i;if(a.isFunction(o.colorFunction)){var j=!isNaN(b)?this._getDataValue(b,o.dataField,m):NaN;if(f.type.indexOf("range")!=-1&&!isNaN(b)){var e=this._getDataValue(b,o.dataFieldFrom,m);var l=this._getDataValue(b,o.dataFieldTo,m);j={from:e,to:l}}i=o.colorFunction(j,b,o,f);if(typeof(i)=="object"){for(var k in i){c[k]=i[k]}}else{c.fillColor=i}}else{for(var k in c){if(o[k]){c[k]=o[k]}}if(!o.fillColor&&!o.color){c.fillColor=this._getColorFromScheme(m,d,b)}else{o.fillColor=o.fillColor||o.color}}var n={fillColor:{baseColor:"fillColor",adjust:1},fillColorSelected:{baseColor:"fillColor",adjust:1.1},fillColorSymbol:{baseColor:"fillColor",adjust:1},fillColorSymbolSelected:{baseColor:"fillColorSymbol",adjust:2},fillColorAlt:{baseColor:"fillColor",adjust:4},fillColorAltSelected:{baseColor:"fillColor",adjust:3},lineColor:{baseColor:"fillColor",adjust:0.95},lineColorSelected:{baseColor:"lineColor",adjust:0.95},lineColorSymbol:{baseColor:"lineColor",adjust:1},lineColorSymbolSelected:{baseColor:"lineColorSelected",adjust:1}};for(var k in c){if(typeof(i)!="object"||!i[k]){if(o[k]){c[k]=o[k]}}}for(var k in c){if(typeof(i)!="object"||!i[k]){if(!o[k]){c[k]=a.jqx.adjustColor(c[n[k].baseColor],n[k].adjust)}}}this._colorsCache.set(h,c);return c},_getItemColorFromScheme:function(d,f,k,h){if(d==undefined||d==""){d=this.colorSchemes[0].name}for(var g=0;g0){var u=0;for(var b in o){if(u>0&&m!=""){m+="
              "}var r="dataField"+(b.length>0?b.substring(0,1).toUpperCase()+b.substring(1):"");var q="displayText"+(b.length>0?b.substring(0,1).toUpperCase()+b.substring(1):"");var v=n[q]||n[r];var c=o[b];if(undefined!=c){c=this._formatValue(c,j,k,f,h,A)}else{continue}if(l===true){m+=c}else{m+=v+": "+c}u++}}else{if(undefined!=o){m=this._formatValue(o,j,k,f,h,A)}}return m||""},_isNumberAsString:function(d){if(typeof(d)!="string"){return false}d=a.trim(d);for(var b=0;b="0"&&c<="9")||c==","||c=="."){continue}if(c=="-"&&b==0){continue}if((c=="("&&b==0)||(c==")"&&b==d.length-1)){continue}return false}return true},_castAsDate:function(f,c){if(f instanceof Date&&!isNaN(f)){return f}if(typeof(f)=="string"){var b;if(c){b=a.jqx.dataFormat.parsedate(f,c);if(this._isDate(b)){return b}}if(this._autoDateFormats){for(var e=0;e0){if(b<0){d+=q;b=d.length-1}else{if(q!=="."){d=d.replace(".",q)}}while((d.length-1-b)-1)?b:d.length;var f=d.substring(b);var c=0;for(var j=b;j>0;j--,c++){if((c%3===0)&&(j!==b)&&(!g||(j>1)||(g&&l))){f=o+f}f=d.charAt(j-1)+f}d=f;if(g&&l){d="("+d+")"}return m+d+p},_defaultNumberFormat:{prefix:"",sufix:"",decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,negativeWithBrackets:false},_calculateControlPoints:function(g,f){var e=g[f],m=g[f+1],d=g[f+2],j=g[f+3],c=g[f+4],i=g[f+5];var l=0.4;var o=Math.sqrt(Math.pow(d-e,2)+Math.pow(j-m,2));var b=Math.sqrt(Math.pow(c-d,2)+Math.pow(i-j,2));var h=(o+b);if(h==0){h=1}var n=l*o/h;var k=l-n;return[d+n*(e-c),j+n*(m-i),d-k*(e-c),j-k*(m-i)]},_getBezierPoints:function(d){var c="";var h=[],e=[];var g=d.split(" ");for(var f=0;f=4&&(Math.abs(h[b-2]-h[b-4])<3||Math.abs(h[b-1]-h[b-3])<3||this._isVML)){c+=" L"+a.jqx._ptrnd(h[b-2])+","+a.jqx._ptrnd(h[b-1])+" "}else{if(b>=5){c+=" Q"+a.jqx._ptrnd(e[b*2-10])+","+a.jqx._ptrnd(e[b*2-9])+" "+a.jqx._ptrnd(h[b-2])+","+a.jqx._ptrnd(h[b-1])+" "}}return c},_animTickInt:50,_createAnimationGroup:function(b){if(!this._animGroups){this._animGroups={}}this._animGroups[b]={animations:[],startTick:NaN}},_startAnimation:function(c){var e=new Date();var b=e.getTime();this._animGroups[c].startTick=b;this._runAnimation();this._enableAnimTimer()},_enqueueAnimation:function(e,d,c,g,f,b,h){if(g<0){g=0}if(h==undefined){h="easeInOutSine"}this._animGroups[e].animations.push({key:d,properties:c,duration:g,fn:f,context:b,easing:h})},_stopAnimations:function(){clearTimeout(this._animtimer);this._animtimer=undefined;this._animGroups=undefined},_enableAnimTimer:function(){if(!this._animtimer){var b=this;this._animtimer=setTimeout(function(){b._runAnimation()},this._animTickInt)}},_runAnimation:function(q){if(this._animGroups){var t=new Date();var h=t.getTime();var o={};for(var l in this._animGroups){var s=this._animGroups[l].animations;var m=this._animGroups[l].startTick;var g=0;for(var n=0;ng){g=u.duration}var r=u.duration>0?b/u.duration:1;var k=r;if(u.easing&&u.duration!=0){k=a.easing[u.easing](r,b,0,1,u.duration)}if(r>1){r=1;k=1}if(u.fn){u.fn(u.key,u.context,k);continue}var f={};for(var l=0;lh){o[l]=({startTick:m,animations:s})}}this._animGroups=o;if(this.renderer instanceof a.jqx.HTML5Renderer){this.renderer.refresh()}}this._animtimer=null;for(var l in this._animGroups){this._enableAnimTimer();break}},_fixCoords:function(d,e){var b=this.seriesGroups[e].orientation=="horizontal";if(!b){return d}var c=d.x;d.x=d.y;d.y=c+this._plotRect.y-this._plotRect.x;var c=d.width;d.width=d.height;d.height=c;return d},getItemCoord:function(b,d,u){var k=this;if(k._isPieGroup(b)&&(!k._isSerieVisible(b,d,u)||!k._renderData||k._renderData.length<=b)){return{x:NaN,y:NaN}}if(!k._isSerieVisible(b,d)||!k._renderData||k._renderData.length<=b){return{x:NaN,y:NaN}}var q=k.seriesGroups[b];var j=q.series[d];var o=k._getItemCoord(b,d,u);if(k._isPieGroup(b)){if(isNaN(o.x)||isNaN(o.y)||isNaN(o.fromAngle)||isNaN(o.toAngle)){return{x:NaN,y:NaN}}var i=this._plotRect;var p=o.fromAngle*(Math.PI/180);var e=o.toAngle*(Math.PI/180);x1=i.x+o.center.x+Math.cos(p)*o.outerRadius;x2=i.x+o.center.x+Math.cos(e)*o.outerRadius;y1=i.y+o.center.y-Math.sin(p)*o.outerRadius;y2=i.y+o.center.y-Math.sin(e)*o.outerRadius;var h=Math.min(x1,x2);var m=Math.abs(x2-x1);var f=Math.min(y1,y2);var l=Math.abs(y2-y1);o={x:h,y:f,width:m,height:l,center:o.center,centerOffset:o.centerOffset,innerRadius:o.innerRadius,outerRadius:o.outerRadius,selectedRadiusChange:o.selectedRadiusChange,fromAngle:o.fromAngle,toAngle:o.toAngle};return o}if(q.type.indexOf("column")!=-1||q.type.indexOf("waterfall")!=-1){var v=this._getColumnSerieWidthAndOffset(b,d);o.height=Math.abs(o.y.to-o.y.from);o.y=Math.min(o.y.to,o.y.from);o.x+=v.offset;o.width=v.width}else{if(q.type.indexOf("ohlc")!=-1||q.type.indexOf("candlestick")!=-1){var v=this._getColumnSerieWidthAndOffset(b,d);var f=o.y;var t=Math.min(f.Open,f.Close,f.Low,f.High);var r=Math.max(f.Open,f.Close,f.Low,f.High);o.height=Math.abs(r-t);o.y=t;o.x+=v.offset;o.width=v.width}else{if(q.type.indexOf("line")!=-1||q.type.indexOf("area")!=-1){o.width=o.height=0;o.y=o.y.to}else{if(q.type.indexOf("bubble")!=-1||q.type.indexOf("scatter")!=-1){o.center={x:o.x,y:o.y.to};var c=o.y.radius;if(j.symbolType!="circle"&&j.symbolType!=undefined){c/=2}o.y=o.y.to;o.radius=c;o.width=2*c;o.height=2*c}}}}o=this._fixCoords(o,b);if(q.polar||q.spider){var n=this._toPolarCoord(this._renderData[b].polarCoords,this._plotRect,o.x,o.y);o.x=n.x;o.y=n.y;if(o.center){o.center=this._toPolarCoord(this._renderData[b].polarCoords,this._plotRect,o.center.x,o.center.y)}}if(q.type.indexOf("bubble")!=-1||q.type.indexOf("scatter")!=-1){o.x-=c;o.y-=c}return o},_getItemCoord:function(o,j,b){var e=this.seriesGroups[o],l,k;if(!e||!this._renderData){return{x:NaN,y:NaN}}var f=e.series[j];if(!f){return{x:NaN,y:NaN}}var h=this._plotRect;if(this._isPieGroup(o)){var m=this._renderData[o].offsets[j][b];if(!m){return{x:NaN,y:NaN}}var c=(m.fromAngle+m.toAngle)/2*(Math.PI/180);l=h.x+m.x+Math.cos(c)*m.outerRadius;k=h.y+m.y-Math.sin(c)*m.outerRadius;return{x:l,y:k,center:{x:m.x,y:m.y},centerOffset:m.centerOffset,innerRadius:m.innerRadius,outerRadius:m.outerRadius,selectedRadiusChange:m.selectedRadiusChange,fromAngle:m.fromAngle,toAngle:m.toAngle}}else{l=h.x+this._renderData[o].xoffsets.data[b];k=this._renderData[o].offsets[j][b];if(isNaN(l)||!k){return{x:NaN,y:NaN}}}var n={};for(var d in k){n[d]=k[d]}return{x:l,y:n}},_detectDateFormat:function(g,e){var d={en_US_d:"M/d/yyyy",en_US_D:"dddd, MMMM dd, yyyy",en_US_t:"h:mm tt",en_US_T:"h:mm:ss tt",en_US_f:"dddd, MMMM dd, yyyy h:mm tt",en_US_F:"dddd, MMMM dd, yyyy h:mm:ss tt",en_US_M:"MMMM dd",en_US_Y:"yyyy MMMM",en_US_S:"yyyy\u0027-\u0027MM\u0027-\u0027dd\u0027T\u0027HH\u0027:\u0027mm\u0027:\u0027ss",en_CA_d:"dd/MM/yyyy",en_CA_D:"MMMM-dd-yy",en_CA_f:"MMMM-dd-yy h:mm tt",en_CA_F:"MMMM-dd-yy h:mm:ss tt",ISO:"yyyy-MM-dd hh:mm:ss",ISO2:"yyyy-MM-dd HH:mm:ss",d1:"dd.MM.yyyy",d2:"dd-MM-yyyy",zone1:"yyyy-MM-ddTHH:mm:ss-HH:mm",zone2:"yyyy-MM-ddTHH:mm:ss+HH:mm",custom:"yyyy-MM-ddTHH:mm:ss.fff",custom2:"yyyy-MM-dd HH:mm:ss.fff",de_DE_d:"dd.MM.yyyy",de_DE_D:"dddd, d. MMMM yyyy",de_DE_t:"HH:mm",de_DE_T:"HH:mm:ss",de_DE_f:"dddd, d. MMMM yyyy HH:mm",de_DE_F:"dddd, d. MMMM yyyy HH:mm:ss",de_DE_M:"dd MMMM",de_DE_Y:"MMMM yyyy",fr_FR_d:"dd/MM/yyyy",fr_FR_D:"dddd d MMMM yyyy",fr_FR_t:"HH:mm",fr_FR_T:"HH:mm:ss",fr_FR_f:"dddd d MMMM yyyy HH:mm",fr_FR_F:"dddd d MMMM yyyy HH:mm:ss",fr_FR_M:"d MMMM",fr_FR_Y:"MMMM yyyy",it_IT_d:"dd/MM/yyyy",it_IT_D:"dddd d MMMM yyyy",it_IT_t:"HH:mm",it_IT_T:"HH:mm:ss",it_IT_f:"dddd d MMMM yyyy HH:mm",it_IT_F:"dddd d MMMM yyyy HH:mm:ss",it_IT_M:"dd MMMM",it_IT_Y:"MMMM yyyy",ru_RU_d:"dd.MM.yyyy",ru_RU_D:"d MMMM yyyy '?.'",ru_RU_t:"H:mm",ru_RU_T:"H:mm:ss",ru_RU_f:"d MMMM yyyy '?.' H:mm",ru_RU_F:"d MMMM yyyy '?.' H:mm:ss",ru_RU_Y:"MMMM yyyy",cs_CZ_d:"d.M.yyyy",cs_CZ_D:"d. MMMM yyyy",cs_CZ_t:"H:mm",cs_CZ_T:"H:mm:ss",cs_CZ_f:"d. MMMM yyyy H:mm",cs_CZ_F:"d. MMMM yyyy H:mm:ss",cs_CZ_M:"dd MMMM",cs_CZ_Y:"MMMM yyyy",he_IL_d:"dd MMMM yyyy",he_IL_D:"dddd dd MMMM yyyy",he_IL_t:"HH:mm",he_IL_T:"HH:mm:ss",he_IL_f:"dddd dd MMMM yyyy HH:mm",he_IL_F:"dddd dd MMMM yyyy HH:mm:ss",he_IL_M:"dd MMMM",he_IL_Y:"MMMM yyyy",hr_HR_d:"d.M.yyyy.",hr_HR_D:"d. MMMM yyyy.",hr_HR_t:"H:mm",hr_HR_T:"H:mm:ss",hr_HR_f:"d. MMMM yyyy. H:mm",hr_HR_F:"d. MMMM yyyy. H:mm:ss",hr_HR_M:"d. MMMM",hu_HU_d:"yyyy.MM.dd.",hu_HU_D:"yyyy. MMMM d.",hu_HU_t:"H:mm",hu_HU_T:"H:mm:ss",hu_HU_f:"yyyy. MMMM d. H:mm",hu_HU_F:"yyyy. MMMM d. H:mm:ss",hu_HU_M:"MMMM d.",hu_HU_Y:"yyyy. MMMM",jp_JP_d:"gg y/M/d",jp_JP_D:"gg y'?'M'?'d'?'",jp_JP_t:"H:mm",jp_JP_T:"H:mm:ss",jp_JP_f:"gg y'?'M'?'d'?' H:mm",jp_JP_F:"gg y'?'M'?'d'?' H:mm:ss",jp_JP_M:"M'?'d'?'",jp_JP_Y:"gg y'?'M'?'",lt_LT_d:"yyyy.MM.dd",lt_LT_D:"yyyy 'm.' MMMM d 'd.'",lt_LT_t:"HH:mm",lt_LT_T:"HH:mm:ss",lt_LT_f:"yyyy 'm.' MMMM d 'd.' HH:mm",lt_LT_F:"yyyy 'm.' MMMM d 'd.' HH:mm:ss",lt_LT_M:"MMMM d 'd.'",lt_LT_Y:"yyyy 'm.' MMMM",sa_IN_d:"dd-MM-yyyy",sa_IN_D:"dd MMMM yyyy dddd",sa_IN_t:"HH:mm",sa_IN_T:"HH:mm:ss",sa_IN_f:"dd MMMM yyyy dddd HH:mm",sa_IN_F:"dd MMMM yyyy dddd HH:mm:ss",sa_IN_M:"dd MMMM",basic_y:"yyyy",basic_ym:"yyyy-MM",basic_d:"yyyy-MM-dd",basic_dhm:"yyyy-MM-dd hh:mm",basic_bhms:"yyyy-MM-dd hh:mm:ss",basic2_ym:"MM-yyyy",basic2_d:"MM-dd-yyyy",basic2_dhm:"MM-dd-yyyy hh:mm",basic2_dhms:"MM-dd-yyyy hh:mm:ss",basic3_ym:"yyyy/MM",basic3_d:"yyyy/MM/dd",basic3_dhm:"yyyy/MM/dd hh:mm",basic3_bhms:"yyyy/MM/dd hh:mm:ss",basic4_ym:"MM/yyyy",basic4_d:"MM/dd/yyyy",basic4_dhm:"MM/dd/yyyy hh:mm",basic4_dhms:"MM/dd/yyyy hh:mm:ss"};if(e){d=a.extend({},d,e)}var c=[];if(!a.isArray(g)){c.push(g)}else{c=g}for(var f in d){d[f]={format:d[f],count:0}}for(var h=0;hk.count){k.key=f;k.count=d[f].count}}return k.key?d[k.key].format:""},_testXAxisDateFormat:function(h){var k=this;var d=k._getXAxis(h);var c=k._getDataLen(h);var e={};if(k.localization&&k.localization.patterns){for(var j in k.localization.patterns){e["local_"+j]=k.localization.patterns[j]}}var g=[];for(var f=0;f1){c-=1}if(c<1/6){return e+(d-e)*6*c}else{if(c<1/2){return d}else{if(c<2/3){return e+(d-e)*(2/3-c)*6}}}return e};a.jqx.rgbToHsl=function(j){var c=parseFloat(j[0])/255;var i=parseFloat(j[1])/255;var k=parseFloat(j[2])/255;var m=Math.max(c,i,k),e=Math.min(c,i,k);var f,o,d=(m+e)/2;if(m==e){f=o=0}else{var n=m-e;o=d>0.5?n/(2-m-e):n/(m+e);switch(m){case c:f=(i-k)/n+(id?c-0.5:c+0.5}return c};a.jqx._ptRotate=function(e,k,d,j,h){var c=Math.sqrt(Math.pow(Math.abs(e-d),2)+Math.pow(Math.abs(k-j),2));var f=Math.asin((e-d)/c);var i=f+h;e=d+Math.cos(i)*c;k=j+Math.sin(i)*c;return{x:e,y:k}};a.jqx._rup=function(d){var c=Math.round(d);if(d>c){c++}return c};a.jqx.log=function(d,c){return Math.log(d)/(c?Math.log(c):1)};a.jqx._mod=function(d,c){var e=Math.abs(d>c?c:d);var f=1;if(e!=0){while(e*f<100){f*=10}}d=d*f;c=c*f;return(d%c)/f};a.jqx._rnd=function(e,h,f,d){if(isNaN(e)){return e}if(undefined===d){d=true}var c=e-((d==true)?e%h:a.jqx._mod(e,h));if(e==c){return c}if(f){if(e>c){c+=h}}else{if(c>e){c-=h}}return(h==1)?Math.round(c):c};a.jqx.commonRenderer={pieSlicePath:function(m,l,j,u,D,E,e){if(!u){u=1}var o=Math.abs(D-E);var s=o>180?1:0;if(o>=360){E=D+359.99}var t=D*Math.PI*2/360;var k=E*Math.PI*2/360;var B=m,A=m,h=l,f=l;var p=!isNaN(j)&&j>0;if(p){e=0}if(e+j>0){if(e>0){var n=o/2+D;var C=n*Math.PI*2/360;m+=e*Math.cos(C);l-=e*Math.sin(C)}if(p){var z=j;B=m+z*Math.cos(t);h=l-z*Math.sin(t);A=m+z*Math.cos(k);f=l-z*Math.sin(k)}}var w=m+u*Math.cos(t);var v=m+u*Math.cos(k);var d=l-u*Math.sin(t);var c=l-u*Math.sin(k);var q="";var i=(Math.abs(Math.abs(E-D)-360)>0.02);if(p){q="M "+A+","+f;q+=" a"+j+","+j;q+=" 0 "+s+",1 "+(B-A)+","+(h-f);if(i){q+=" L"+w+","+d}else{q+=" M"+w+","+d}q+=" a"+u+","+u;q+=" 0 "+s+",0 "+(v-w)+","+(c-d);if(i){q+=" Z"}}else{q="M "+v+","+c;q+=" a"+u+","+u;q+=" 0 "+s+",1 "+(w-v)+","+(d-c);if(i){q+=" L"+m+","+l;q+=" Z"}}return q},measureText:function(q,h,i,p,n){var f=n._getTextParts(q,h,i);var k=f.width;var c=f.height;if(false==p){c/=0.6}var d={};if(isNaN(h)){h=0}if(h==0){d={width:a.jqx._rup(k),height:a.jqx._rup(c)}}else{var m=h*Math.PI*2/360;var e=Math.abs(Math.sin(m));var l=Math.abs(Math.cos(m));var j=Math.abs(k*e+c*l);var o=Math.abs(k*l+c*e);d={width:a.jqx._rup(o),height:a.jqx._rup(j)}}if(p){d.textPartsInfo=f}return d},alignTextInRect:function(t,p,c,u,o,q,k,s,f,e){var m=f*Math.PI*2/360;var d=Math.sin(m);var l=Math.cos(m);var n=o*d;var j=o*l;if(k=="center"||k==""||k=="undefined"){t=t+c/2}else{if(k=="right"){t=t+c}}if(s=="center"||s=="middle"||s==""||s=="undefined"){p=p+u/2}else{if(s=="bottom"){p+=u-q/2}else{if(s=="top"){p+=q/2}}}e=e||"";var h="middle";if(e.indexOf("top")!=-1){h="top"}else{if(e.indexOf("bottom")!=-1){h="bottom"}}var i="center";if(e.indexOf("left")!=-1){i="left"}else{if(e.indexOf("right")!=-1){i="right"}}if(i=="center"){t-=j/2;p-=n/2}else{if(i=="right"){t-=j;p-=n}}if(h=="top"){t-=q*d;p+=q*l}else{if(h=="middle"){t-=q*d/2;p+=q*l/2}}t=a.jqx._rup(t);p=a.jqx._rup(p);return{x:t,y:p}}};a.jqx.svgRenderer=function(){};a.jqx.svgRenderer.prototype={_svgns:"http://www.w3.org/2000/svg",init:function(h){var f="
              ";h.append(f);this.host=h;var c=h.find(".chartContainer");c[0].style.width=h.width()+"px";c[0].style.height=h.height()+"px";var j;try{var d=document.createElementNS(this._svgns,"svg");d.setAttribute("id","svgChart");d.setAttribute("version","1.1");d.setAttribute("width","100%");d.setAttribute("height","100%");d.setAttribute("overflow","hidden");c[0].appendChild(d);this.canvas=d}catch(i){return false}this._id=new Date().getTime();this.clear();this._layout();this._runLayoutFix();return true},getType:function(){return"SVG"},refresh:function(){},_runLayoutFix:function(){var c=this;this._fixLayout()},_fixLayout:function(){var i=a(this.canvas).position();var e=(parseFloat(i.left)==parseInt(i.left));var c=(parseFloat(i.top)==parseInt(i.top));if(a.jqx.browser.msie){var e=true,c=true;var f=this.host;var d=0,h=0;while(f&&f.position&&f[0].parentNode){var j=f.position();d+=parseFloat(j.left)-parseInt(j.left);h+=parseFloat(j.top)-parseInt(j.top);f=f.parent()}e=parseFloat(d)==parseInt(d);c=parseFloat(h)==parseInt(h)}if(!e){this.host.find("#tdLeft")[0].style.width="0.5px"}if(!c){this.host.find("#tdTop")[0].style.height="0.5px"}},_layout:function(){var d=a(this.canvas).offset();var c=this.host.find(".chartContainer");this._width=Math.max(a.jqx._rup(this.host.width())-1,0);this._height=Math.max(a.jqx._rup(this.host.height())-1,0);c[0].style.width=this._width;c[0].style.height=this._height;this._fixLayout()},getRect:function(){return{x:0,y:0,width:this._width,height:this._height}},getContainer:function(){var c=this.host.find(".chartContainer");return c},clear:function(){while(this.canvas.childElementCount>0){this.removeElement(this.canvas.firstElementChild)}this._defaultParent=undefined;this._defs=document.createElementNS(this._svgns,"defs");this._gradients={};this.canvas.appendChild(this._defs)},removeElement:function(e){if(undefined==e){return}this.removeHandler(e);try{while(e.firstChild){this.removeElement(e.firstChild)}if(e.parentNode){e.parentNode.removeChild(e)}else{this.canvas.removeChild(e)}}catch(d){var c=d}},_openGroups:[],beginGroup:function(){var c=this._activeParent();var d=document.createElementNS(this._svgns,"g");c.appendChild(d);this._openGroups.push(d);return d},endGroup:function(){if(this._openGroups.length==0){return}this._openGroups.pop()},_activeParent:function(){return this._openGroups.length==0?this.canvas:this._openGroups[this._openGroups.length-1]},createClipRect:function(e){var f=document.createElementNS(this._svgns,"clipPath");var d=document.createElementNS(this._svgns,"rect");this.attr(d,{x:e.x,y:e.y,width:e.width,height:e.height,fill:"none"});this._clipId=this._clipId||0;f.id="cl"+this._id+"_"+(++this._clipId).toString();f.appendChild(d);this._defs.appendChild(f);return f},getWindowHref:function(){var d=a.jqx.browser;if(d&&d.browser=="msie"&&d.version<10){return""}var c=window.location.href;if(!c){return c}c=c.replace(/([\('\)])/g,"\\$1");c=c.replace(/#.*$/,"");return c},setClip:function(e,d){var c="url("+this.getWindowHref()+"#"+d.id+")";return this.attr(e,{"clip-path":c})},_clipId:0,addHandler:function(c,e,d){if(a(c).on){a(c).on(e,d)}else{a(c).bind(e,d)}},removeHandler:function(c,e,d){if(a(c).off){a(c).off(e,d)}else{a(c).unbind(e,d)}},on:function(c,e,d){this.addHandler(c,e,d)},off:function(c,e,d){this.removeHandler(c,e,d)},shape:function(c,f){var d=document.createElementNS(this._svgns,c);if(!d){return undefined}for(var e in f){d.setAttribute(e,f[e])}this._activeParent().appendChild(d);return d},_getTextParts:function(t,j,k){var h={width:0,height:0,parts:[]};if(undefined===t){return h}var o=0.6;var u=t.toString().split("
              ");var q=this._activeParent();var m=document.createElementNS(this._svgns,"text");this.attr(m,k);for(var l=0;l0?4:0);h.parts.push({width:n,height:c,text:d})}q.removeChild(m);return h},_measureText:function(f,e,d,c){return a.jqx.commonRenderer.measureText(f,e,d,c,this)},measureText:function(e,d,c){return this._measureText(e,d,c,false)},text:function(z,t,s,E,C,K,M,L,v,m,d){var B=this._measureText(z,K,M,true);var l=B.textPartsInfo;var j=l.parts;var D;if(!v){v="center"}if(!m){m="center"}if(j.length>1||L){D=this.beginGroup()}if(L){var k=this.createClipRect({x:a.jqx._rup(t)-1,y:a.jqx._rup(s)-1,width:a.jqx._rup(E)+2,height:a.jqx._rup(C)+2});this.setClip(D,k)}var q=this._activeParent();var O=0,n=0;var c=0.6;O=l.width;n=l.height;if(isNaN(E)||E<=0){E=O}if(isNaN(C)||C<=0){C=n}var u=E||0;var J=C||0;if(!K||K==0){s+=n;if(m=="center"||m=="middle"){s+=(J-n)/2}else{if(m=="bottom"){s+=J-n}}if(!E){E=O}if(!C){C=n}var q=this._activeParent();var p=0;for(var I=j.length-1;I>=0;I--){var A=document.createElementNS(this._svgns,"text");this.attr(A,M);this.attr(A,{cursor:"default"});var H=A.ownerDocument.createTextNode(j[I].text);A.appendChild(H);var P=t;var o=j[I].width;var f=j[I].height;if(v=="center"){P+=(u-o)/2}else{if(v=="right"){P+=(u-o)}}this.attr(A,{x:a.jqx._rup(P),y:a.jqx._rup(s+p),width:a.jqx._rup(o),height:a.jqx._rup(f)});q.appendChild(A);p-=j[I].height+4}if(D){this.endGroup();return D}return A}var F=a.jqx.commonRenderer.alignTextInRect(t,s,E,C,O,n,v,m,K,d);t=F.x;s=F.y;var G=this.shape("g",{transform:"translate("+t+","+s+")"});var e=this.shape("g",{transform:"rotate("+K+")"});G.appendChild(e);var p=0;for(var I=j.length-1;I>=0;I--){var N=document.createElementNS(this._svgns,"text");this.attr(N,M);this.attr(N,{cursor:"default"});var H=N.ownerDocument.createTextNode(j[I].text);N.appendChild(H);var P=0;var o=j[I].width;var f=j[I].height;if(v=="center"){P+=(l.width-o)/2}else{if(v=="right"){P+=(l.width-o)}}this.attr(N,{x:a.jqx._rup(P),y:a.jqx._rup(p),width:a.jqx._rup(o),height:a.jqx._rup(f)});e.appendChild(N);p-=f+4}q.appendChild(G);if(D){this.endGroup()}return G},line:function(e,h,d,f,i){var c=this.shape("line",{x1:e,y1:h,x2:d,y2:f});this.attr(c,i);return c},path:function(d,e){var c=this.shape("path");c.setAttribute("d",d);if(e){this.attr(c,e)}return c},rect:function(c,j,d,f,i){c=a.jqx._ptrnd(c);j=a.jqx._ptrnd(j);d=Math.max(1,a.jqx._rnd(d,1,false));f=Math.max(1,a.jqx._rnd(f,1,false));var e=this.shape("rect",{x:c,y:j,width:d,height:f});if(i){this.attr(e,i)}return e},circle:function(c,h,e,f){var d=this.shape("circle",{cx:c,cy:h,r:e});if(f){this.attr(d,f)}return d},pieSlicePath:function(d,j,i,f,h,e,c){return a.jqx.commonRenderer.pieSlicePath(d,j,i,f,h,e,c)},pieslice:function(l,j,i,e,h,c,k,d){var f=this.pieSlicePath(l,j,i,e,h,c,k);var m=this.shape("path");m.setAttribute("d",f);if(d){this.attr(m,d)}return m},attr:function(c,e){if(!c||!e){return}for(var d in e){if(d=="textContent"){c.textContent=e[d]}else{c.setAttribute(d,e[d])}}},removeAttr:function(c,e){if(!c||!e){return}for(var d in e){if(d=="textContent"){c.textContent=""}else{c.removeAttribute(e[d])}}},getAttr:function(d,c){return d.getAttribute(c)},_gradients:{},_toLinearGradient:function(f,k,l){var d="grd"+this._id+f.replace("#","")+(k?"v":"h");var c="url("+this.getWindowHref()+"#"+d+")";if(this._gradients[c]){return c}var e=document.createElementNS(this._svgns,"linearGradient");this.attr(e,{x1:"0%",y1:"0%",x2:k?"0%":"100%",y2:k?"100%":"0%",id:d});for(var h=0;h
              ";j.append(h);this.host=j;var c=j.find(".chartContainer");c[0].style.width=j.width()+"px";c[0].style.height=j.height()+"px";var f=true;try{for(var d=0;d0&&document.childNodes[0].data&&document.childNodes[0].data.indexOf("DOCTYPE")!=-1)){if(f){document.namespaces.add("v","urn:schemas-microsoft-com:vml")}this._ie8mode=true}else{if(f){document.namespaces.add("v","urn:schemas-microsoft-com:vml");document.createStyleSheet().cssText="v\\:* { behavior: url(#default#VML); display: inline-block; }"}}this.canvas=c[0];this._width=Math.max(a.jqx._rup(c.width()),0);this._height=Math.max(a.jqx._rup(c.height()),0);c[0].style.width=this._width+2;c[0].style.height=this._height+2;this._id=new Date().getTime();this.clear();return true},getType:function(){return"VML"},refresh:function(){},getRect:function(){return{x:0,y:0,width:this._width,height:this._height}},getContainer:function(){var c=this.host.find(".chartContainer");return c},clear:function(){while(this.canvas.childElementCount>0){this.removeHandler(this.canvas.firstElementChild);this.canvas.removeChild(this.canvas.firstElementChild)}this._gradients={};this._defaultParent=undefined},removeElement:function(c){if(c!=null){this.removeHandler(c);c.parentNode.removeChild(c)}},_openGroups:[],beginGroup:function(){var c=this._activeParent();var d=document.createElement("v:group");d.style.position="absolute";d.coordorigin="0,0";d.coordsize=this._width+","+this._height;d.style.left=0;d.style.top=0;d.style.width=this._width;d.style.height=this._height;c.appendChild(d);this._openGroups.push(d);return d},endGroup:function(){if(this._openGroups.length==0){return}this._openGroups.pop()},_activeParent:function(){return this._openGroups.length==0?this.canvas:this._openGroups[this._openGroups.length-1]},createClipRect:function(c){var d=document.createElement("div");d.style.height=(c.height+1)+"px";d.style.width=(c.width+1)+"px";d.style.position="absolute";d.style.left=c.x+"px";d.style.top=c.y+"px";d.style.overflow="hidden";this._clipId=this._clipId||0;d.id="cl"+this._id+"_"+(++this._clipId).toString();this._activeParent().appendChild(d);return d},setClip:function(d,c){},_clipId:0,addHandler:function(c,e,d){if(a(c).on){a(c).on(e,d)}else{a(c).bind(e,d)}},removeHandler:function(c,e,d){if(a(c).off){a(c).off(e,d)}else{a(c).unbind(e,d)}},on:function(c,e,d){this.addHandler(c,e,d)},off:function(c,e,d){this.removeHandler(c,e,d)},_getTextParts:function(q,h,j){var f={width:0,height:0,parts:[]};var o=0.6;var s=q.toString().split("
              ");var p=this._activeParent();var l=document.createElement("v:textbox");this.attr(l,j);p.appendChild(l);for(var k=0;k0?2:0);f.parts.push({width:m,height:c,text:d})}p.removeChild(l);return f},_measureText:function(f,e,d,c){if(Math.abs(e)>45){e=90}else{e=0}return a.jqx.commonRenderer.measureText(f,e,d,c,this)},measureText:function(e,d,c){return this._measureText(e,d,c,false)},text:function(u,p,o,D,z,J,L,K,t,k){var E;if(L&&L.stroke){E=L.stroke}if(E==undefined){E="black"}var v=this._measureText(u,J,L,true);var f=v.textPartsInfo;var c=f.parts;var M=v.width;var l=v.height;if(isNaN(D)||D==0){D=M}if(isNaN(z)||z==0){z=l}var B;if(!t){t="center"}if(!k){k="center"}if(c.length>0||K){B=this.beginGroup()}if(K){var d=this.createClipRect({x:a.jqx._rup(p),y:a.jqx._rup(o),width:a.jqx._rup(D),height:a.jqx._rup(z)});this.setClip(B,d)}var n=this._activeParent();var s=D||0;var I=z||0;if(Math.abs(J)>45){J=90}else{J=0}var A=0,H=0;if(t=="center"){A+=(s-M)/2}else{if(t=="right"){A+=(s-M)}}if(k=="center"){H=(I-l)/2}else{if(k=="bottom"){H=I-l}}if(J==0){o+=l+H;p+=A}else{p+=M+A;o+=H}var m=0,N=0;var e;for(var G=c.length-1;G>=0;G--){var C=c[G];var q=(M-C.width)/2;if(J==0&&t=="left"){q=0}else{if(J==0&&t=="right"){q=M-C.width}else{if(J==90){q=(l-C.width)/2}}}var j=m-C.height;H=J==90?q:j;A=J==90?j:q;e=document.createElement("v:textbox");e.style.position="absolute";e.style.left=a.jqx._rup(p+A);e.style.top=a.jqx._rup(o+H);e.style.width=a.jqx._rup(C.width);e.style.height=a.jqx._rup(C.height);if(J==90){e.style.filter="progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";e.style.height=a.jqx._rup(C.height)+5}var F=document.createElement("span");F.appendChild(document.createTextNode(C.text));if(L&&L["class"]){F.className=L["class"]}e.appendChild(F);n.appendChild(e);m-=C.height+(G>0?2:0)}if(B){this.endGroup();return n}return e},shape:function(c,f){var d=document.createElement(this._createElementMarkup(c));if(!d){return undefined}for(var e in f){d.setAttribute(e,f[e])}this._activeParent().appendChild(d);return d},line:function(f,i,e,h,j){var c="M "+f+","+i+" L "+e+","+h+" X E";var d=this.path(c);this.attr(d,j);return d},_createElementMarkup:function(c){var d="";if(this._ie8mode){d=d.replace('style=""','style="behavior: url(#default#VML);"')}return d},path:function(d,e){var c=document.createElement(this._createElementMarkup("shape"));c.style.position="absolute";c.coordsize=this._width+" "+this._height;c.coordorigin="0 0";c.style.width=parseInt(this._width);c.style.height=parseInt(this._height);c.style.left=0+"px";c.style.top=0+"px";c.setAttribute("path",d);this._activeParent().appendChild(c);if(e){this.attr(c,e)}return c},rect:function(c,j,d,e,i){c=a.jqx._ptrnd(c);j=a.jqx._ptrnd(j);d=a.jqx._rup(d);e=a.jqx._rup(e);var f=this.shape("rect",i);f.style.position="absolute";f.style.left=c;f.style.top=j;f.style.width=d;f.style.height=e;f.strokeweight=0;if(i){this.attr(f,i)}return f},circle:function(c,h,e,f){var d=this.shape("oval");c=a.jqx._ptrnd(c-e);h=a.jqx._ptrnd(h-e);e=a.jqx._rup(e);d.style.position="absolute";d.style.left=c;d.style.top=h;d.style.width=e*2;d.style.height=e*2;if(f){this.attr(d,f)}return d},updateCircle:function(e,c,f,d){if(c==undefined){c=parseFloat(e.style.left)+parseFloat(e.style.width)/2}if(f==undefined){f=parseFloat(e.style.top)+parseFloat(e.style.height)/2}if(d==undefined){d=parseFloat(e.width)/2}c=a.jqx._ptrnd(c-d);f=a.jqx._ptrnd(f-d);d=a.jqx._rup(d);e.style.left=c;e.style.top=f;e.style.width=d*2;e.style.height=d*2},pieSlicePath:function(m,l,j,u,E,F,e){if(!u){u=1}var o=Math.abs(E-F);var s=o>180?1:0;if(o>360){E=0;F=360}var t=E*Math.PI*2/360;var k=F*Math.PI*2/360;var B=m,A=m,h=l,f=l;var p=!isNaN(j)&&j>0;if(p){e=0}if(e>0){var n=o/2+E;var D=n*Math.PI*2/360;m+=e*Math.cos(D);l-=e*Math.sin(D)}if(p){var z=j;B=a.jqx._ptrnd(m+z*Math.cos(t));h=a.jqx._ptrnd(l-z*Math.sin(t));A=a.jqx._ptrnd(m+z*Math.cos(k));f=a.jqx._ptrnd(l-z*Math.sin(k))}var w=a.jqx._ptrnd(m+u*Math.cos(t));var v=a.jqx._ptrnd(m+u*Math.cos(k));var d=a.jqx._ptrnd(l-u*Math.sin(t));var c=a.jqx._ptrnd(l-u*Math.sin(k));u=a.jqx._ptrnd(u);j=a.jqx._ptrnd(j);m=a.jqx._ptrnd(m);l=a.jqx._ptrnd(l);var i=Math.round(E*65535);var C=Math.round((F-E)*65536);if(j<0){j=1}var q="";if(p){q="M"+B+" "+h;q+=" AE "+m+" "+l+" "+j+" "+j+" "+i+" "+C;q+=" L "+v+" "+c;i=Math.round((E-F)*65535);C=Math.round(F*65536);q+=" AE "+m+" "+l+" "+u+" "+u+" "+C+" "+i;q+=" L "+B+" "+h}else{q="M"+m+" "+l;q+=" AE "+m+" "+l+" "+u+" "+u+" "+i+" "+C}q+=" X E";return q},pieslice:function(m,k,j,f,i,c,l,e){var h=this.pieSlicePath(m,k,j,f,i,c,l);var d=this.path(h,e);if(e){this.attr(d,e)}return d},_keymap:[{svg:"fill",vml:"fillcolor"},{svg:"stroke",vml:"strokecolor"},{svg:"stroke-width",vml:"strokeweight"},{svg:"stroke-dasharray",vml:"dashstyle"},{svg:"fill-opacity",vml:"fillopacity"},{svg:"stroke-opacity",vml:"strokeopacity"},{svg:"opacity",vml:"opacity"},{svg:"cx",vml:"style.left"},{svg:"cy",vml:"style.top"},{svg:"height",vml:"style.height"},{svg:"width",vml:"style.width"},{svg:"x",vml:"style.left"},{svg:"y",vml:"style.top"},{svg:"d",vml:"v"},{svg:"display",vml:"style.display"}],_translateParam:function(c){for(var d in this._keymap){if(this._keymap[d].svg==c){return this._keymap[d].vml}}return c},attr:function(d,f){if(!d||!f){return}for(var e in f){var c=this._translateParam(e);if(undefined==f[e]){continue}if(c=="fillcolor"&&f[e].indexOf("grd")!=-1){d.type=f[e]}else{if(c=="fillcolor"&&f[e]=="transparent"){d.style.filter="alpha(opacity=0)";d["-ms-filter"]="progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}else{if(c=="opacity"||c=="fillopacity"){if(d.fill){d.fill.opacity=f[e]}}else{if(c=="textContent"){d.children[0].innerText=f[e]}else{if(c=="dashstyle"){d.dashstyle=f[e].replace(","," ")}else{if(c.indexOf("style.")==-1){d[c]=f[e]}else{d.style[c.replace("style.","")]=f[e]}}}}}}}},removeAttr:function(c,e){if(!c||!e){return}for(var d in e){c.removeAttribute(e[d])}},getAttr:function(e,d){var c=this._translateParam(d);if(c=="opacity"||c=="fillopacity"){if(e.fill){return e.fill.opacity}else{return 1}}if(c.indexOf("style.")==-1){return e[c]}return e.style[c.replace("style.","")]},_gradients:{},_toRadialGradient:function(c,e,d){return c},_toLinearGradient:function(j,m,n){if(this._ie8mode){return j}var e="grd"+j.replace("#","")+(m?"v":"h");var f="#"+e+"";if(this._gradients[f]){return f}var h=document.createElement(this._createElementMarkup("fill"));h.type="gradient";h.method="linear";h.angle=m?0:90;var d="";for(var k=0;k0){d+=", "}d+=l[0]+"% "+a.jqx.adjustColor(j,l[1])}h.colors=d;var c=document.createElement(this._createElementMarkup("shapetype"));c.appendChild(h);c.id=e;this.canvas.appendChild(c);return f}};a.jqx.HTML5Renderer=function(){};a.jqx.ptrnd=function(d){if(Math.abs(Math.round(d)-d)==0.5){return d}var c=Math.round(d);if(c
              ");this.canvas=c.find("#__jqxCanvasWrap");this.canvas[0].width=c.width();this.canvas[0].height=c.height();this.ctx=this.canvas[0].getContext("2d");this._elements={};this._maxId=0;this._gradientId=0;this._gradients={};this._currentPoint={x:0,y:0};this._lastCmd="";this._pos=0}catch(d){return false}return true},getType:function(){return"HTML5"},getContainer:function(){var c=this.host.find(".chartContainer");return c},getRect:function(){return{x:0,y:0,width:this.canvas[0].width-1,height:this.canvas[0].height-1}},beginGroup:function(){},endGroup:function(){},setClip:function(){},createClipRect:function(c){},addHandler:function(c,e,d){},removeHandler:function(c,e,d){},on:function(c,e,d){this.addHandler(c,e,d)},off:function(c,e,d){this.removeHandler(c,e,d)},clear:function(){this._elements={};this._maxId=0;this._renderers._gradients={};this._gradientId=0},removeElement:function(c){if(undefined==c){return}if(this._elements[c.id]){delete this._elements[c.id]}},shape:function(c,f){var d={type:c,id:this._maxId++};for(var e in f){d[e]=f[e]}this._elements[d.id]=d;return d},attr:function(c,e){for(var d in e){c[d]=e[d]}},removeAttr:function(c,e){for(var d in e){delete c[e[d]]}},rect:function(c,j,d,f,i){if(isNaN(c)){throw'Invalid value for "x"'}if(isNaN(j)){throw'Invalid value for "y"'}if(isNaN(d)){throw'Invalid value for "width"'}if(isNaN(f)){throw'Invalid value for "height"'}var e=this.shape("rect",{x:c,y:j,width:d,height:f});if(i){this.attr(e,i)}return e},path:function(c,e){var d=this.shape("path",e);this.attr(d,{d:c});return d},line:function(d,f,c,e,h){return this.path("M "+d+","+f+" L "+c+","+e,h)},circle:function(c,h,e,f){var d=this.shape("circle",{x:c,y:h,r:e});if(f){this.attr(d,f)}return d},pieSlicePath:function(d,j,i,f,h,e,c){return a.jqx.commonRenderer.pieSlicePath(d,j,i,f,h,e,c)},pieslice:function(l,j,i,f,h,c,k,d){var e=this.path(this.pieSlicePath(l,j,i,f,h,c,k),d);this.attr(e,{x:l,y:j,innerRadius:i,outerRadius:f,angleFrom:h,angleTo:c});return e},_getCSSStyle:function(d){var k=document.styleSheets;try{for(var f=0;f");for(var k=0;k0?4:0);f.parts.push({width:l,height:d,text:e})}return f},_measureText:function(f,e,d,c){return a.jqx.commonRenderer.measureText(f,e,d,c,this)},measureText:function(e,d,c){return this._measureText(e,d,c,false)},text:function(o,n,l,d,p,h,i,e,j,m,f){var q=this.shape("text",{text:o,x:n,y:l,width:d,height:p,angle:h,clip:e,halign:j,valign:m,rotateAround:f});if(i){this.attr(q,i)}q.fontFamily="Arial";q.fontSize="10pt";q.fontWeight="";q.color="#000000";if(i&&i["class"]){var c=this._getCSSStyle(i["class"]);q.fontFamily=c.fontFamily||q.fontFamily;q.fontSize=c.fontSize||q.fontSize;q.fontWeight=c.fontWeight||q.fontWeight;q.color=c.color||q.color}var k=this._measureText(o,0,i,true);this.attr(q,{textPartsInfo:k.textPartsInfo,textWidth:k.width,textHeight:k.height});if(d<=0||isNaN(d)){this.attr(q,{width:k.width})}if(p<=0||isNaN(p)){this.attr(q,{height:k.height})}return q},_toLinearGradient:function(d,j,h){if(this._renderers._gradients[d]){return d}var c=[];for(var f=0;f="0"&&e[c]<="9")||e[c]=="."||e[c]=="e"||(e[c]=="-"&&!f)||(e[c]=="-"&&c>=1&&e[c-1]=="e")){f=true;continue}if(!f&&(e[c]==" "||e[c]==",")){this._pos++;continue}break}var d=parseFloat(e.substring(this._pos,c));if(isNaN(d)){return undefined}this._pos=c;return d},_cmds:"mlcazq",_isRelativeCmd:function(c){return a.jqx.string.contains(this._cmds,c)},_parseCmd:function(c){for(var d=this._pos;d="0"&&c[d]<="9"){this._pos=d;if(this._lastCmd==""){break}else{return this._lastCmd}}}return undefined},_toAbsolutePoint:function(c){return{x:this._currentPoint.x+c.x,y:this._currentPoint.y+c.y}},path:function(E,N){var B=N.d;this._pos=0;this._lastCmd="";var n=undefined;this._currentPoint={x:0,y:0};E.beginPath();var I=0;while(this._pos1){j*=Math.sqrt(l);h*=Math.sqrt(l)}var t=(P==f?-1:1)*Math.sqrt(((Math.pow(j,2)*Math.pow(h,2))-(Math.pow(j,2)*Math.pow(K.y,2))-(Math.pow(h,2)*Math.pow(K.x,2)))/(Math.pow(j,2)*Math.pow(K.y,2)+Math.pow(h,2)*Math.pow(K.x,2)));if(isNaN(t)){t=0}var J={x:t*j*K.y/h,y:t*-h*K.x/j};var D={x:(k.x+q.x)/2+Math.cos(L)*J.x-Math.sin(L)*J.y,y:(k.y+q.y)/2+Math.sin(L)*J.x+Math.cos(L)*J.y};var C=function(i){return Math.sqrt(Math.pow(i[0],2)+Math.pow(i[1],2))};var z=function(m,i){return(m[0]*i[0]+m[1]*i[1])/(C(m)*C(i))};var O=function(m,i){return(m[0]*i[1]=1){M=0}if(f==0&&M>0){M=M-2*Math.PI}if(f==1&&M<0){M=M+2*Math.PI}var z=(j>h)?j:h;var A=(j>h)?1:j/h;var w=(j>h)?h/j:1;E.translate(D.x,D.y);E.rotate(L);E.scale(A,w);E.arc(0,0,z,G,G+M,1-f);E.scale(1/A,1/w);E.rotate(-L);E.translate(-D.x,-D.y);continue}if((H=="Z"||H=="z")&&n!=undefined){E.lineTo(n.x,n.y);this._currentPoint=n;continue}if(H=="C"||H=="c"){var e=this._parsePoint(B);var d=this._parsePoint(B);var c=this._parsePoint(B);E.bezierCurveTo(e.x,e.y,d.x,d.y,c.x,c.y);this._currentPoint=c;continue}if(H=="Q"||H=="q"){var e=this._parsePoint(B);var d=this._parsePoint(B);E.quadraticCurveTo(e.x,e.y,d.x,d.y);this._currentPoint=d;continue}}E.fill();E.stroke();E.closePath()},text:function(A,G){var p=a.jqx.ptrnd(G.x);var o=a.jqx.ptrnd(G.y);var v=a.jqx.ptrnd(G.width);var t=a.jqx.ptrnd(G.height);var s=G.halign;var k=G.valign;var D=G.angle;var c=G.rotateAround;var f=G.textPartsInfo;var e=f.parts;var E=G.clip;if(E==undefined){E=true}A.save();if(!s){s="center"}if(!k){k="center"}if(E){A.rect(p,o,v,t);A.clip()}var H=G.textWidth;var l=G.textHeight;var q=v||0;var C=t||0;A.fillStyle=G.color;A.font=G.fontWeight+" "+G.fontSize+" "+G.fontFamily;if(!D||D==0){o+=l;if(k=="center"||k=="middle"){o+=(C-l)/2}else{if(k=="bottom"){o+=C-l}}if(!v){v=H}if(!t){t=l}var n=0;for(var B=e.length-1;B>=0;B--){var u=e[B];var I=p;var m=e[B].width;var d=e[B].height;if(s=="center"){I+=(q-m)/2}else{if(s=="right"){I+=(q-m)}}A.fillText(u.text,I,o+n);n-=u.height+(B>0?4:0)}A.restore();return}var z=a.jqx.commonRenderer.alignTextInRect(p,o,v,t,H,l,s,k,D,c);p=z.x;o=z.y;var j=D*Math.PI*2/360;A.translate(p,o);A.rotate(j);var n=0;var F=f.width;for(var B=e.length-1;B>=0;B--){var I=0;if(s=="center"){I+=(F-e[B].width)/2}else{if(s=="right"){I+=(F-e[B].width)}}A.fillText(e[B].text,I,n);n-=e[B].height+4}A.restore()}},refresh:function(){this.ctx.clearRect(0,0,this.canvas[0].width,this.canvas[0].height);for(var c in this._elements){var d=this._elements[c];this._renderers.setFillStyle(this,d);this._renderers.setStroke(this,d);this._renderers[this._elements[c].type](this.ctx,d)}}};a.jqx.createRenderer=function(c,e){var d=c;var f=d.renderer=null;if(document.createElementNS&&(d.renderEngine!="HTML5"&&d.renderEngine!="VML")){f=new a.jqx.svgRenderer();if(!f.init(e)){if(d.renderEngine=="SVG"){throw"Your browser does not support SVG"}return null}}if(f==null&&d.renderEngine!="HTML5"){f=new a.jqx.vmlRenderer();if(!f.init(e)){if(d.renderEngine=="VML"){throw"Your browser does not support VML"}return null}d._isVML=true}if(f==null&&(d.renderEngine=="HTML5"||d.renderEngine==undefined)){f=new a.jqx.HTML5Renderer();if(!f.init(e)){throw"Your browser does not support HTML5 Canvas"}}d.renderer=f;return f},a.jqx._widgetToImage=function(q,k,f,o,i,h){var m=q;if(!m){return false}if(f==undefined||f==""){f="image."+k}var n=m.renderEngine;var d=m.enableAnimations;m.enableAnimations=false;m.renderEngine="HTML5";if(m.renderEngine!=n){try{m.refresh()}catch(j){m.renderEngine=n;m.refresh();m.enableAnimations=d;return false}}var c=m.renderer.getContainer().find("canvas")[0];var l=true;if(a.isFunction(h)){l=h(q,c)}var p=true;if(l){p=a.jqx.exportImage(c,k,f,o,i)}if(m.renderEngine!=n){m.renderEngine=n;m.refresh();m.enableAnimations=d}return p};a.jqx.getByPriority=function(c){var e=undefined;for(var d=0;d=j-20){p=j-20}var q=new pdfDataExport(a.jqx.pdfExport.orientation,"pt",a.jqx.pdfExport.paperSize);q.addImage(i,"JPEG",10,10,p,0);q.save(h);return}i=i.replace("data:image/"+o+";base64,","");if(k){a.ajax({dataType:"string",url:s,type:"POST",data:{content:i,fname:h},async:false,success:function(v,e,w){u=true},error:function(v,e,w){u=false}})}else{var d=document.createElement("form");d.method="POST";d.action=s;d.style.display="none";document.body.appendChild(d);var t=document.createElement("input");t.name="fname";t.value=h;t.style.display="none";var c=document.createElement("input");c.name="content";c.value=i;c.style.display="none";d.appendChild(t);d.appendChild(c);d.submit();document.body.removeChild(d);u=true}}}catch(n){u=false}return u}})(jqxBaseFramework);(function(a){jqxPlot=function(){};jqxPlot.prototype={get:function(e,c,d){return d!==undefined?e[c][d]:e[c]},min:function(h,e){var d=NaN;for(var c=0;cc){c=f}}return c},sum:function(h,d){var e=0;for(var c=0;cMath.max(k.min,k.max)){return NaN}var p=NaN;var n=1;if(k.type===undefined||k.type!="logarithmic"){var m=Math.abs(k.max-k.min);if(!m){m=1}n=Math.abs(e-Math.min(k.min,k.max))/m}else{if(k.type==="logarithmic"){var f=k.base;if(isNaN(f)){f=10}var j=Math.min(k.min,k.max);if(j<=0){j=1}var o=Math.max(k.min,k.max);if(o<=0){o=1}var h=a.jqx.log(o,f);o=Math.pow(f,h);var d=a.jqx.log(j,f);j=Math.pow(f,d);var c=a.jqx.log(e,f);n=Math.abs(c-d)/(h-d)}}if(l.type==="logarithmic"){var f=l.base;if(isNaN(f)){f=10}var h=a.jqx.log(l.max,f);var d=a.jqx.log(l.min,f);if(l.flip){n=1-n}var c=Math.min(d,h)+n*Math.abs(h-d);p=Math.pow(f,c)}else{p=Math.min(l.min,l.max)+n*Math.abs(l.max-l.min);if(l.flip){p=Math.max(l.min,l.max)-p+l.min}}return p},axis:function(q,s,m){if(m<=1){return[s,q]}var h=q;var k=s;if(isNaN(m)||m<2){m=2}var c=0;while(Math.round(q)!=q&&Math.round(s)!=s&&c<10){q*=10;s*=10;c++}var n=(s-q)/m;while(c<10&&Math.round(n)!=n){q*=10;s*=10;n*=10;c++}var w=[1,2,5];var j=0;var t=0;while(true){var o=t%w.length;var f=Math.floor(t/w.length);var p=Math.pow(10,f)*w[o];o=(t+1)%w.length;f=Math.floor((t+1)/w.length);var l=Math.pow(10,f)*w[o];if(n>=p&&n=i.x&&h<=i.x+i.width&&k>=i.y&&k<=i.y+i.height){return}d._cancelTooltipTimer();d._hideToolTip(0);d._unselect()});d.addHandler(d.host,"click",function(i){if(d.enabled==false){return}var h=i.pageX||i.clientX||i.screenX;var l=i.pageY||i.clientY||i.screenY;var k=d.host.offset();if(d._isTouchDevice){var j=a.jqx.position(i);h=j.left;l=j.top}h-=k.left;l-=k.top;d._mouseX=h;d._mouseY=l;if(!isNaN(d._lastClickTs)){if((new Date()).valueOf()-d._lastClickTs<100){return}}this._hostClickTimer=setTimeout(function(){if(!d._isTouchDevice){d._cancelTooltipTimer();d._hideToolTip();d._unselect()}if(d._pointMarker&&d._pointMarker.element){var n=d.seriesGroups[d._pointMarker.gidx];var m=n.series[d._pointMarker.sidx];i.stopImmediatePropagation();d._raiseItemEvent("click",n,m,d._pointMarker.iidx)}},100)});var f=d.element.style;if(f){var c=false;if(f.width!=null){c|=f.width.toString().indexOf("%")!=-1}if(f.height!=null){c|=f.height.toString().indexOf("%")!=-1}if(c){a.jqx.utilities.resize(this.host,function(){if(d.timer){clearTimeout(d.timer)}var h=1;d.timer=setTimeout(function(){var i=d.enableAnimations;d.enableAnimations=false;d.refresh();d.enableAnimations=i},h)},false,true)}}},_refreshOnDownloadComlete:function(){var e=this;var f=this.source;if(f instanceof a.jqx.dataAdapter){var h=f._options;if(h==undefined||(h!=undefined&&!h.autoBind)){f.autoSync=false;f.dataBind()}var d=this.element.id;if(f.records.length==0){var c=function(){if(e.ready){e.ready()}e.refresh()};f.unbindDownloadComplete(d);f.bindDownloadComplete(d,c)}else{if(e.ready){e.ready()}}f.unbindBindingUpdate(d);f.bindBindingUpdate(d,function(){if(e._supressBindingRefresh){return}e.refresh()})}},propertyChangedHandler:function(c,d,f,e){if(this.isInitialized==undefined||this.isInitialized==false){return}if(d=="source"){this._refreshOnDownloadComlete()}this.refresh()},_initRenderer:function(c){if(!a.jqx.createRenderer){throw"Please include jqxdraw.js"}return a.jqx.createRenderer(this,c)},_internalRefresh:function(){var c=this;if(a.jqx.isHidden(c.host)){return}c._stopAnimations();if(!c.renderer||(!c._isToggleRefresh&&!c._isUpdate)){c._hideToolTip(0);c._isVML=false;c.host.empty();c._measureDiv=undefined;c._initRenderer(c.host)}var e=c.renderer;if(!e){return}var d=e.getRect();c._render({x:1,y:1,width:d.width,height:d.height});this._raiseEvent("refreshBegin",{instance:this});if(e instanceof a.jqx.HTML5Renderer){e.refresh()}c._isUpdate=false;this._raiseEvent("refreshEnd",{instance:this})},saveAsPNG:function(e,c,d){return this._saveAsImage("png",e,c,d)},saveAsJPEG:function(e,c,d){return this._saveAsImage("jpeg",e,c,d)},saveAsPDF:function(e,c,d){return this._saveAsImage("pdf",e,c,d)},_saveAsImage:function(f,k,c,d){var j=false;for(var e=0;e10){p=1}K.attr(ak,{"stroke-width":p,stroke:H})}else{if(a.jqx.browser.msie&&a.jqx.browser.version<9){K.attr(ak,{"stroke-width":1,stroke:n.backgroundColor||"white"})}}if(a.isFunction(n.drawBefore)){n.drawBefore(K,E)}var X={x:aa.left,y:aa.top,width:E.width-aa.left-aa.right,height:E.height-aa.top-aa.bottom};n._paddedRect=X;var f=n.titlePadding||{left:2,top:2,right:2,bottom:2};var m;if(n.title&&n.title.length>0){var U=n.toThemeProperty("jqx-chart-title-text",null);m=K.measureText(n.title,0,{"class":U});K.text(n.title,X.x+f.left,X.y+f.top,X.width-(f.left+f.right),m.height,0,{"class":U},true,"center","center");X.y+=m.height;X.height-=m.height}if(n.description&&n.description.length>0){var V=n.toThemeProperty("jqx-chart-title-description",null);m=K.measureText(n.description,0,{"class":V});K.text(n.description,X.x+f.left,X.y+f.top,X.width-(f.left+f.right),m.height,0,{"class":V},true,"center","center");X.y+=m.height;X.height-=m.height}if(n.title||n.description){X.y+=(f.bottom+f.top);X.height-=(f.bottom+f.top)}var c={x:X.x,y:X.y,width:X.width,height:X.height};n._plotRect=c;n._buildStats(c);var J=n._isPieOnlySeries();var u=n.seriesGroups;var G;var F={xAxis:{},valueAxis:{}};for(var ab=0;ab0){F.xAxis[ag]|=1}}}else{T=n._renderValueAxis(ab,k,true,c).width;if((F.valueAxis[Q]&1)==1){T=0}else{if(T>0){F.valueAxis[Q]|=1}}}}if(S!="left"&&n.rtl==true){S="right"}if(S!="right"){S="left"}if(t[S+"Count"]>0&&t[S]>0&&T>0){t[S]+=W}q.push({width:T,position:S,xRel:t[S]});t[S]+=T;t[S+"Count"]++}var z=Math.max(1,Math.max(E.width,E.height));var ae={top:0,bottom:0,topCount:0,bottomCount:0};var Y=[];for(ab=0;ab0){F.valueAxis[Q]|=2}}}else{ad=n._renderXAxis(ab,{x:0,y:0,width:z,height:0},true).height;if((F.xAxis[ag]&2)==2){ad=0}else{if(ad>0){F.xAxis[ag]|=2}}}}if(S!="top"){S="bottom"}if(ae[S+"Count"]>0&&ae[S]>0&&ad>0){ae[S]+=W}Y.push({height:ad,position:S,yRel:ae[S]});ae[S]+=ad;ae[S+"Count"]++}n._createAnimationGroup("series");var v=(n.showLegend!=false);var D=!v?{width:0,height:0}:n._renderLegend(n.legendLayout?n._rect:X,true);if(this.legendLayout&&(!isNaN(this.legendLayout.left)||!isNaN(this.legendLayout.top))){D={width:0,height:0}}if(X.heightC.x+C.width){T=C.x+C.width-R}if(P+ad>C.y+C.height){ad=C.y+C.height-P}n._renderLegend({x:R,y:P,width:T,height:ad})}n._hasHorizontalLines=false;if(!J){for(ab=0;abq){q=k.height}if(k.width>w){w=k.width}if(v){if(N!=0){F+=q}if(F>I.height){F=0;G+=w+2*O+h;w=k.width;E.width=G+w}}else{if(G!=0){G+=O}if(G+2*h+k.width>I.width&&k.widthC.width){K=true;var s=C.width;var R=A;var V=R.split(/\s+/).reverse();var n=[];var u="";var p=[];while(undefined!=(word=V.pop())){n.push(word);u=n.join(" ");var B=l.renderer.measureText(u,0,{"class":J});if(B.width>s&&p.length>0){n.pop();n=[word];u=n.join(" ")}p.push({text:u})}k.width=0;var c=0;for(var H=0;Hs&&p.length>0){n.pop();e+=B.height;n=[word];u=n.join(" ")}p.push({text:u,dy:e})}for(var H=0;He){o=h._elementRenderInfo[e].xAxis}var q=[];var K;if(Q.labels.formatFunction){K=Q.labels.formatFunction}var w;if(Q.labels.formatSettings){w=a.extend({},Q.labels.formatSettings)}if(s.type=="date"){if(s.dateFormat&&!K){if(w){w.dateFormat=w.dateFormat||s.dateFormat}else{w={dateFormat:s.dateFormat}}}else{if(!K&&(!w||(w&&!w.dateFormat))){K=this._getDefaultDTFormatFn(s.baseUnit||"day")}}}for(var P=0;P=U.filterRange.min&&V<=U.filterRange.max){z=U.useIndeces?(U.min+V).toString():(N==undefined?"":N.toString())}}var c={key:N,text:z,targetX:J,x:J};if(o&&o.itemOffsets[N]){c.x=o.itemOffsets[N].x;c.y=o.itemOffsets[N].y}q.push(c)}var E=h._getAnimProps(e);var v=E.enabled&&q.length<500?E.duration:0;if(h.enableAxisTextAnimation==false){v=0}var B={items:q,renderData:k};var f=h._renderAxis(Y,F,Q,{x:A.x,y:A.y,width:A.width,height:A.height},d,H,false,true,B,S,v);if(Y){f.width+=G}else{f.height+=G}return f},_animateAxisText:function(h,k){var d=h.items;var e=h.textSettings;for(var f=0;fo){var n=p;p=o;o=n}var w=a.jqx._rnd(Math.abs(p-o)/(Math.PI*2),0.001,true);var t=Math.PI*2*h*w;var i=this._calcGroupOffsets(f,c).xoffsets;if(!i){return}var l=!(Math.abs(Math.abs(o-p)-Math.PI*2)>0.00001);if(k.spider){axisStats=this._getXAxisStats(f,this._getXAxis(f),t);var u=axisStats.interval;if(isNaN(u)||u==0){u=1}var e=(axisStats.max-axisStats.min)/u+(l?1:0);e=Math.round(e);if(e>2){var d=Math.cos(Math.abs(o-p)/2/e);d=a.jqx._rnd(d,0.01);if(d==0){d=1}var v=h/d;if(v>h&&j){h=v}}}h=a.jqx._ptrnd(h);return{x:s,y:q,r:h,adjR:this._get([v,h]),itemWidth:i.itemWidth,rangeLength:i.rangeLength,valuesOnTicks:j,startAngle:p,endAngle:o,isClosedCircle:l,axisSize:t}},_toPolarCoord:function(l,h,j,f){var d=Math.abs(l.startAngle-l.endAngle)/(Math.PI*2);var c=(j-h.x)*2*Math.PI*d/Math.max(1,h.width)+l.startAngle;var e=((h.height+h.y)-f)*l.r/Math.max(1,h.height);var k=l.x+e*Math.cos(c);var i=l.y+e*Math.sin(c);return{x:a.jqx._ptrnd(k),y:a.jqx._ptrnd(i)}},_renderSpiderAxis:function(D,m){var at=this;var k=at._getXAxis(D);var aE=this._getAxisSettings(k);if(!k||!aE.visible){return}var aa=at.seriesGroups[D];var V=at._getPolarAxisCoords(D,m);if(!V){return}var P=a.jqx._ptrnd(V.x);var O=a.jqx._ptrnd(V.y);var w=V.adjR;var ab=V.startAngle;var Z=V.endAngle;if(w<1){return}var az=a.jqx._rnd(Math.abs(ab-Z)/(Math.PI*2),0.001,true);var l=Math.PI*2*w*az;var d=V.isClosedCircle;var B=this._renderData[D].xoffsets;if(!B.rangeLength){return}var W=B.axisStats.interval;if(isNaN(W)||W<1){W=1}var aw=aa.orientation=="horizontal";var ad=(aw&&k.position=="right")||(!aw&&k.position=="top");while(at._renderData.lengthD){v=at._elementRenderInfo[D].xAxis}var av=[];var aj=this._getDataLen(D);for(var U=0;U=aj){continue}L=at._getDataValue(aB,k.dataField);if(L==undefined){L=""}}var au=at._formatValue(L,C.formatSettings,C.formatFunction,D,undefined,aB);if(au==undefined||au.toString()==""){au=ai.useIndeces?(ai.min+U).toString():(L==undefined?"":L.toString())}var e={key:L,text:au,targetX:J,x:J};if(v&&v.itemOffsets[L]){e.x=v.itemOffsets[L].x;e.y=v.itemOffsets[L].y}av.push(e)}var aD={items:av,renderData:ax};var n={stroke:f.color,fill:"none","stroke-width":f.width,"stroke-dasharray":f.dashStyle||""};if(!aa.spider){if(az==1){ah.circle(P,O,w,n)}else{var I=-ab/Math.PI*180;var aI=-Z/Math.PI*180;this.renderer.pieslice(P,O,0,w,Math.min(I,aI),Math.max(I,aI),undefined,n)}}var Q=av.length;var o=2*Math.PI/(Q);var ap=ab;var h,G;if(f.visible&&aC){if(!K&&!d){f.offsets.unshift({offset:-z.right})}for(var U=0;U0.01){continue}var t=a.jqx._ptrnd(P+w*Math.cos(F));var s=a.jqx._ptrnd(O+w*Math.sin(F));ah.line(P,O,t,s,n)}}if(X.visible&&aC){var T=5;var q={stroke:X.color,fill:"none","stroke-width":X.width,"stroke-dasharray":X.dashStyle||""};if(!K&&!d){X.offsets.unshift({offset:-z.right})}for(var U=0;U0.01){continue}var af={x:P+w*Math.cos(F),y:O+w*Math.sin(F)};var ae={x:P+(w+T)*Math.cos(F),y:O+(w+T)*Math.sin(F)};ah.line(a.jqx._ptrnd(af.x),a.jqx._ptrnd(af.y),a.jqx._ptrnd(ae.x),a.jqx._ptrnd(ae.y),q)}}var ar=[];if(aa.spider){var A=[];if(k.type=="date"){A=this._generateDTOffsets(aG,u,l,z,W,W,k.baseUnit,true,0,false,am)}else{A=this._generateOffsets(aG,u,l,z,W,W,true,0,false,am)}if(!K&&!d){A.unshift({offset:-z.right})}for(var U=0;U0.01){continue}ar.push(F)}ax.offsetAngles=ar}var ac=at._renderSpiderValueAxis(D,m,(K?V.adjR:V.r),ar);if(!ac){ac=[]}if(aa.spider){if(!K){for(var U=0;U0?t.height+3*U:2*U;P+=q-(Y?q:q/4)}else{P+=Y?q:q/4}P+=S.top}else{Q+=S.left+U+(t.width>0?t.width+U:0)+(G?C.width-t.width:0);P+=A}var W=0;var N=0;var u=F.items;n.itemOffsets={};if(this._isToggleRefresh||!this._isUpdate){e=0}var m=false;var l=0;for(var V=0;VN){N=j.width}if(j.height>W){W=j.height}l+=K?W:N;if(!X){if((K&&O>C.height+2)||(!K&&O>C.width+2)){break}var M=K?Q+(G?(t.width==0?q:q-U):0):Q+O;var L=K?P+O:P;n.itemOffsets[u[V].key]={x:M,y:L};if(!m){if(!isNaN(u[V].x)||!isNaN(u[V].y)&&e){m=true}}u[V].targetX=M;u[V].targetY=L;u[V].width=!K?c:C.width-S.left-S.right-2*U-q-((t.width>0)?t.width+U:0);u[V].height=K?c:C.height-S.top-S.bottom-2*U-q-((t.height>0)?t.height+U:0);u[V].visible=true}}n.avgWidth=u.length==0?0:l/u.length;if(!X){var v={items:u,textSettings:p};if(isNaN(e)||!m){e=0}this._animateAxisText(v,e==0?1:0);if(e!=0){var k=this;this._enqueueAnimation("series",undefined,undefined,e,function(i,h,w){k._animateAxisText(h,w)},v)}}J.width+=2*U+q+t.width+N+(K&&t.width>0?U:0);J.height+=2*U+q+t.height+W+(!K&&t.height>0?U:0);if(!K){J.height+=S.top+S.bottom}else{J.width+=S.left+S.right}var E={};if(!X&&T.line.visible){var R={stroke:T.line.color,"stroke-width":T.line.width,"stroke-dasharray":T.line.dashStyle||""};if(K){var M=C.x+C.width+(G?S.left:-S.right);M=a.jqx._ptrnd(M);this.renderer.line(M,C.y,M,C.y+C.height,R)}else{var L=a.jqx._ptrnd(C.y+(G?C.height-S.bottom:S.top));this.renderer.line(a.jqx._ptrnd(C.x),L,a.jqx._ptrnd(C.x+C.width+1),L,R)}}J.width=a.jqx._rup(J.width);J.height=a.jqx._rup(J.height);return J},_drawPlotAreaLines:function(k,A,h){var E=this.seriesGroups[k];var d=E.orientation!="horizontal";if(!this._renderData||this._renderData.length<=k){return}var J=A?"valueAxis":"xAxis";var w=this._renderData[k][J];if(!w){return}var n=this._renderData.axisDrawState;if(!n){n=this._renderData.axisDrawState={}}var B="",j;if(A){B="valueAxis_"+((E.valueAxis)?k:"")+(d?"swap":"");j=this._getValueAxis(k)}else{B="xAxis_"+((E.xAxis||E.categoryAxis)?k:"")+(d?"swap":"");j=this._getXAxis(k)}if(n[B]){n=n[B]}else{n=n[B]={}}if(!A){d=!d}var H=w.settings;if(!H){return}if(H.customDraw){return}var G=H.gridLines,q=H.tickMarks,v=H.padding;var f=w.rect;var l=this._plotRect;if(!G||!q){return}var p=0.5;var e=[];var c={stroke:G.color,"stroke-width":G.width,"stroke-dasharray":G.dashStyle||""};var D=A?f.y+f.height:f.x;var o=G.offsets;if(A&&!j.flip){o=a.extend([],o);o=o.reverse()}if(o&&o.length>0){for(var C=0;Cf.x+f.width+p){break}}if(h.gridLines&&G.visible!=false&&n.gridLines!=true){if(d){this.renderer.line(a.jqx._ptrnd(l.x),F,a.jqx._ptrnd(l.x+l.width),F,c)}else{this.renderer.line(F,a.jqx._ptrnd(l.y),F,a.jqx._ptrnd(l.y+l.height),c)}}e[F]=true;if(h.alternatingBackground&&(G.alternatingBackgroundColor||G.alternatingBackgroundColor2)&&n.alternatingBackground!=true){var m=((C%2)==0)?G.alternatingBackgroundColor2:G.alternatingBackgroundColor;if(m){var I;if(d){I=this.renderer.rect(a.jqx._ptrnd(l.x),D,a.jqx._ptrnd(l.width-1),F-D,c)}else{I=this.renderer.rect(D,a.jqx._ptrnd(l.y),F-D,a.jqx._ptrnd(l.height),c)}this.renderer.attr(I,{"stroke-width":0,fill:m,opacity:G.alternatingBackgroundOpacity||1})}D=F}}}var c={stroke:q.color,"stroke-width":q.width,"stroke-dasharray":q.dashStyle||""};if(h.tickMarks&&q.visible&&n.tickMarks!=true){var u=q.size;var o=q.offsets;for(var C=0;Cf.y+f.height+p){break}}else{if(F>f.x+f.width+p){break}}var z=!w.isMirror?-u:u;if(d){var t=f.x+f.width+(j.position=="right"?v.left:-v.right);if(!A){t=f.x+(w.isMirror?v.left:-v.right+f.width)}this.renderer.line(t,F,t+z,F,c)}else{var s=f.y+(w.isMirror?f.height:0);s+=w.isMirror?-v.bottom:v.top;s=a.jqx._ptrnd(s);this.renderer.line(F,s,F,s-z,c)}}}n.tickMarks=n.tickMarks||h.tickMarks;n.gridLines=n.gridLines||h.gridLines;n.alternatingBackground=n.alternatingBackground||h.alternatingBackground},_calcValueAxisItems:function(k,e,m){var o=this._stats.seriesGroups[k];if(!o||!o.isValid){return false}var A=this.seriesGroups[k];var c=A.orientation=="horizontal";var h=this._getValueAxis(k);var n=h.valuesOnTicks!=false;var f=h.dataField;var p=o.intervals;var u=e/p;var w=o.min;var t=o.mu;var d=h.logarithmicScale==true;var l=h.logarithmicScaleBase||10;var j=A.type.indexOf("stacked")!=-1&&A.type.indexOf("100")!=-1;if(d){t=!isNaN(h.unitInterval)?h.unitInterval:1}if(!n){p=Math.max(p-1,1)}while(this._renderData.length"9"){l=e.length-(f+1);if(l>=0){return Math.min(l,d)}}}if(l>0){m*=Math.pow(10,l)}while(Math.round(m)!=m&&lh){n=this._elementRenderInfo[h].valueAxis}for(var N=0;N1){if(isNaN(u)){u=v?0:d/2}for(var s=0;s=w-2){h[s].offset=w}}}if(z>e){var q=[];var l=Math.round(z/e);for(var s=0;sv){return h}if(s==v){if(A){h.push({offset:c?C/2:p.left,value:s})}else{if(c){h.push({offset:C/2,value:s})}}return h}var l=C-p.left-p.right;var B=s;var m=p.left;var f=m;d=Math.max(d,1);var o=d;var e=Math.min(1,d);if(d>1&&q!="millisecond"){d=1}while(a.jqx._ptrnd(f)<=a.jqx._ptrnd(p.left+l+(c?0:p.right))){h.push({offset:f,value:B});var E=new Date(B.valueOf());if(q=="millisecond"){E.setMilliseconds(B.getMilliseconds()+d)}else{if(q=="second"){E.setSeconds(B.getSeconds()+d)}else{if(q=="minute"){E.setMinutes(B.getMinutes()+d)}else{if(q=="hour"){var n=E.valueOf();E.setHours(B.getHours()+d);if(n==E.valueOf()){E.setHours(B.getHours()+d+1)}}else{if(q=="day"){E.setDate(B.getDate()+d)}else{if(q=="month"){E.setMonth(B.getMonth()+d)}else{if(q=="year"){E.setFullYear(B.getFullYear()+d)}}}}}}}B=E;f=m+(B.valueOf()-s.valueOf())*e/(v.valueOf()-s.valueOf())*l}if(j){for(var u=0;u1&&q!="millisecond"){var t=[];for(var u=0;u1){var t=[];t.push({offset:0,value:undefined});for(var u=1;u1){t.push({offset:t[w-1].offset+(t[w-1].offset-t[w-2].offset)})}else{t.push({offset:C,value:undefined})}h=t}if(D>d){var t=[];var k=Math.round(D/o);for(var u=0;ut.max.valueOf())){continue}}var ab=q.minValue;var H=q.maxValue;if(q.baselineValue){if(isNaN(ab)){ab=u}else{ab=Math.min(u,ab)}if(isNaN(H)){H=u}else{H=Math.max(u,H)}}var z=0,B=0;for(var m=0;mH)&&((isNaN(q.maxValue))?true:U<=q.maxValue)){H=U}if((isNaN(ab)||D=q.minValue)){ab=D}if(!isNaN(K)&&J&&!V){if(K>u){z+=K}else{if(KR||isNaN(R)){R=H}if(abe||isNaN(e)){e=z}if(Be.gmin){h.gmin=e.gmin}if(isNaN(h.gmax)||h.gmaxe.logBase){h.logBase=e.logBase}if(isNaN(h.minPercent)||h.minPercent>e.minPercent){h.minPercent=e.minPercent}}for(var f=0;fw){u/=l;c--;k++}d=Math.pow(l,c)}else{if(n&&!f){h=Math.max(h,D)}t=a.jqx._rnd(a.jqx.log(h,l),1,true);h=Math.pow(l,t);c=a.jqx._rnd(a.jqx.log(d,l),1,false);d=Math.pow(l,c)}v=l}if(dD){D=h}var A=e?d:a.jqx._rnd(n&&!f?E:d,v,false);var s=e?h:a.jqx._rnd(n&&!f?D:h,v,true);if(j&&s>100){s=100}if(j&&!e){s=(s>0)?100:0;A=(A<0)?-100:0;v=B.unitInterval;if(isNaN(v)||v<=0||v>=100){v=10}if((100%v)!=0){for(;v>=1;v--){if((100%v)==0){break}}}}if(isNaN(s)||isNaN(A)||isNaN(v)){return{}}if(isNaN(k)){k=parseInt(((s-A)/(v==0?1:v)).toFixed())}if(e&&!j){k=t-c;m=Math.pow(l,k)}if(k<1){return{}}var o={min:A,max:s,logarithmic:e,logBase:l,base:e?A:C,minPow:c,maxPow:t,mu:v,maxRange:m,intervals:k,hasStackValueReversal:q};return o},_getDataLen:function(d){var c=this.source;if(d!=undefined&&d!=-1&&this.seriesGroups[d].source){c=this.seriesGroups[d].source}if(c instanceof a.jqx.dataAdapter){c=c.records}if(c){return c.length}return 0},_getDataValue:function(c,f,e){var d=this.source;if(e!=undefined&&e!=-1){d=this.seriesGroups[e].source||d}if(d instanceof a.jqx.dataAdapter){d=d.records}if(!d||c<0||c>d.length-1){return undefined}if(a.isFunction(f)){return f(c,d)}return(f&&f!="")?d[c][f]:d[c]},_getDataValueAsNumber:function(c,f,d){var e=this._getDataValue(c,f,d);if(this._isDate(e)){return e.valueOf()}if(typeof(e)!="number"){e=parseFloat(e)}if(typeof(e)!="number"){e=undefined}return e},_isPieGroup:function(c){var d=this.seriesGroups[c];if(!d||!d.type){return false}return d.type.indexOf("pie")!=-1||d.type.indexOf("donut")!=-1},_renderPieSeries:function(f,d){var h=this._getDataLen(f);var j=this.seriesGroups[f];var o=this._calcGroupOffsets(f,d).offsets;for(var t=0;t360){w=0}var C=this._get([m.maxAngle,m.endAngle]);if(isNaN(C)||C<0||C>360){C=360}var q={rect:d,minAngle:w,maxAngle:C,groupIndex:f,serieIndex:t,settings:A,items:[]};for(var z=0;zp.groupIndex&&this._elementRenderInfo[p.groupIndex].series&&this._elementRenderInfo[p.groupIndex].series.length>p.serieIndex){k=this._elementRenderInfo[p.groupIndex].series[p.serieIndex]}var h=360*d;var w=this.seriesGroups[p.groupIndex];var o=this._getLabelsSettings(p.groupIndex,p.serieIndex,NaN);var n=o.visible;var c=[];for(var v=0;vB){q=B}B=f;if(v==c.length-1&&f!=c[0].from){f=p.maxAngle+c[0].from}}var u=this.renderer.pieSlicePath(A.x,A.y,A.innerRadius,A.outerRadius,q,f,A.centerOffset);this.renderer.attr(t.element,{d:u});var j=this._getColors(p.groupIndex,p.serieIndex,A.itemIndex,"radialGradient",A.outerRadius);var z=p.settings;t.colors=j;t.settings=z;this.renderer.attr(t.element,{fill:j.fillColor,stroke:j.lineColor,"stroke-width":z.stroke,"fill-opacity":z.opacity,"stroke-opacity":z.opacity,"stroke-dasharray":"none"||z.dashStyle});var l=w.series[p.serieIndex];if(n){this._showPieLabel(p.groupIndex,p.serieIndex,A.itemIndex,o)}if(d==1){this._installHandlers(t.element,"pieslice",p.groupIndex,p.serieIndex,A.itemIndex)}}},_showPieLabel:function(f,h,E,q,i){var l=this._renderData[f].offsets[h][E];if(l.elementInfo.labelElement){this.renderer.removeElement(l.elementInfo.labelElement)}if(!q){q=this._getLabelsSettings(f,h,NaN)}if(!q.visible){return}var F=l.fromAngle,H=l.toAngle;var m=Math.abs(F-H);var t=m>180?1:0;if(m>360){F=0;H=360}var u=F*Math.PI*2/360;var j=H*Math.PI*2/360;var k=m/2+F;k=k%360;var G=k*Math.PI*2/360;var z;if(q.autoRotate==true){z=k<90||k>270?360-k:180-k}var w=q.linesEnabled;var p=this._showLabel(f,h,E,{x:0,y:0,width:0,height:0},"center","center",true,false,false,z);var e=q.radius||l.outerRadius+Math.max(p.width,p.height);if(this._isPercent(e)){e=parseFloat(e)/100*Math.min(this._plotRect.width,this._plotRect.height)/2}e+=l.centerOffset;if(isNaN(i)){i=0}e+=i;var B=this.seriesGroups[f];var o=B.series[h];var D=a.jqx.getNum([o.offsetX,B.offsetX,this._plotRect.width/2]);var C=a.jqx.getNum([o.offsetY,B.offsetY,this._plotRect.height/2]);var d=this._plotRect.x+D;var c=this._plotRect.y+C;var A=this._adjustTextBoxPosition(d,c,p,e,k,l.outerRadius>e,q.linesAngles!=false,q.autoRotate==true);var n={};l.elementInfo.labelElement=this._showLabel(f,h,E,{x:A.x,y:A.y,width:p.width,height:p.height},"left","top",false,false,false,z,n);if(e>l.outerRadius+5&&w!=false){var v={lineColor:l.elementInfo.colors.lineColor,stroke:l.elementInfo.settings.stroke,opacity:l.elementInfo.settings.opacity,dashStyle:l.elementInfo.settings.dashStyle};l.elementInfo.labelArrowPath=this._updateLebelArrowPath(l.elementInfo.labelArrowPath,d,c,e,l.outerRadius+i,G,q.linesAngles!=false,v,n)}},_updateLebelArrowPath:function(e,l,h,k,n,j,q,f,u){var d=a.jqx._ptrnd(l+(k-0)*Math.cos(j));var p=a.jqx._ptrnd(h-(k-0)*Math.sin(j));var c=a.jqx._ptrnd(l+(n+2)*Math.cos(j));var o=a.jqx._ptrnd(h-(n+2)*Math.sin(j));var s=[];s.push({x:u.x+u.width/2,y:u.y});s.push({x:u.x+u.width/2,y:u.y+u.height});s.push({x:u.x,y:u.y+u.height/2});s.push({x:u.x+u.width,y:u.y+u.height/2});if(!q){s.push({x:u.x,y:u.y});s.push({x:u.x+u.width,y:u.y});s.push({x:u.x+u.width,y:u.y+u.height});s.push({x:u.x,y:u.y+u.height})}s=s.sort(function(v,i){return a.jqx._ptdist(v.x,v.y,l,h)-a.jqx._ptdist(i.x,i.y,l,h)});s=s.sort(function(v,i){return(Math.abs(v.x-l)+Math.abs(v.y-h))-(Math.abs(i.x-l)+Math.abs(i.y-h))});for(var m=0;m=v&&z=Math.PI-v&&z=Math.PI+v&&z<2*Math.PI-v){n=q/2*Math.sin(d)}else{if(z>=2*Math.PI-v&&z<2*Math.PI){n=m/2*Math.cos(d)}}}}}i+=Math.abs(n)+3;var l=a.jqx._ptrnd(f+i*Math.cos(d));var k=a.jqx._ptrnd(e-i*Math.sin(d));l-=o.width/2;k-=o.height/2;return{x:l,y:k}}if(!c){if(!j){if(u>=0&&u<45||u>=315&&u<360){k-=o.height/2}else{if(u>=45&&u<135){k-=o.height;l-=o.width/2}else{if(u>=135&&u<225){k-=o.height/2;l-=o.width}else{if(u>=225&&u<315){l-=o.width/2}}}}}else{if(u>=90&&u<270){k-=o.height/2;l-=o.width}else{k-=o.height/2}}}else{l-=o.width/2;k-=o.height/2}return{x:l,y:k}},_isColumnType:function(c){return(c.indexOf("column")!=-1||c.indexOf("waterfall")!=-1)},_getColumnGroupsCount:function(d){var f=0;d=d||"vertical";var h=this.seriesGroups;for(var e=0;eT){var L=m;m=T;T=L}if(w.spider){var J=u.xAxis.offsetAngles;var K="";var P=[s,t];var E=J;if(e.isClosedCircle){E=a.extend([],J);E.push(E[0])}for(var O in P){for(var Q=0;Q1){R=1}this.renderer.attr(M,{fill:Z,"fill-opacity":R,stroke:U,"stroke-opacity":R,"stroke-width":z,"stroke-dasharray":d.dashStyle})}},_getColumnGroupWidth:function(n,i,p){var f=this.seriesGroups[n];var m=f.type.indexOf("stacked")!=-1;var e=m?1:f.series.length;var l=this._getColumnGroupsCount(f.orientation);if(isNaN(l)||0==l){l=1}var o=i.rangeLength>=1?i.itemWidth:p*0.9;var d=f.columnsMinWidth;if(isNaN(d)){d=1}if(!isNaN(f.columnsMaxWidth)){d=Math.min(f.columnsMaxWidth,d)}if(d>o&&i.length>0){o=Math.max(o,p*0.9/i.length)}var j=d;if(!m){var h=f.seriesGapPercent;if(isNaN(h)||h<0){h=10}h/=100;var c=d;c*=(1+h);j+=f.series.length*c}var k=Math.max(o/l,j);return{requiredWidth:j,availableWidth:o,targetWidth:k}},_getColumnSerieWidthAndOffset:function(e,f){var o=this.seriesGroups[e];var z=o.series[f];var d=o.orientation=="horizontal";var c=this._plotRect;if(d){c={x:c.y,y:c.x,width:c.height,height:c.width}}var A=this._calcGroupOffsets(e,c);if(!A||A.xoffsets.length==0){return}var n=true;var B=this._getColumnGroupsCount(o.orientation);if(o.type=="candlestick"||o.type=="ohlc"){B=1}var u=this._getColumnGroupIndex(e);var v=this._getColumnGroupWidth(e,A.xoffsets,d?c.height:c.width);var j=0;var h=v.targetWidth;if(this.columnSeriesOverlap==true||(Math.round(h)>Math.round(v.availableWidth/B))){B=1;u=0}if(n){j-=(h*B)/2}j+=h*u;var G=o.columnsGapPercent;if(G<=0){G=0}if(isNaN(G)||G>=100){G=25}G/=100;var m=h*G;if(m+v.requiredWidth>v.targetWidth){m=Math.max(0,v.targetWidth-v.requiredWidth)}if(Math.round(h)>Math.round(v.availableWidth)){m=0}h-=m;j+=m/2;var C=o.seriesGapPercent;if(isNaN(C)||C<0){C=10}var p=o.type.indexOf("stacked")!=-1;var w=h;if(!p){w/=o.series.length}var D=this._get([o.seriesGap,(h*C/100)/(o.series.length-1)]);if(o.polar==true||o.spider==true||p||o.series.length<=1){D=0}var q=D*(o.series.length-1);if(o.series.length>1&&q>h-o.series.length*1){q=h-o.series.length*1;D=q/Math.max(1,(o.series.length-1))}var i=w-(q/o.series.length);var F=0;var k=o.columnsMaxWidth;if(!isNaN(k)){if(i>k){F=i-k;i=k}}var E=F/2;var l=0;if(!p){var H=(h-(i*o.series.length)-q)/2;var t=Math.max(0,f);l=H+i*f+t*D}else{l=F/2}return{width:i,offset:j+l}},_renderColumnSeries:function(h,d){var l=this.seriesGroups[h];if(!l.series||l.series.length==0){return}var k=this._getDataLen(h);var f=l.orientation=="horizontal";var D=d;if(f){D={x:d.y,y:d.x,width:d.height,height:d.width}}var t=this._calcGroupOffsets(h,D);if(!t||t.xoffsets.length==0){return}var o;if(l.polar==true||l.spider==true){o=this._getPolarAxisCoords(h,D)}var v={groupIndex:h,rect:d,vertical:!f,seriesCtx:[],renderData:t,polarAxisCoords:o};v.columnGroupWidth=this._getColumnGroupWidth(h,t.xoffsets,f?D.height:D.width);var j=this._getGroupGradientType(h);for(var w=0;wf){e=f}if(isNaN(e)){return NaN}return e},_getColumnVOffsets:function(p,l,f,G,z,d){var t=this.seriesGroups[l];var K=this._getPercent(t.columnsTopWidthPercent,100,0,100);var A=this._getPercent(t.columnsBottomWidthPercent,100,0,100);if(K==0&&A==0){A=100}var M=this._getPercent(t.columnsNeckHeightPercent,NaN,0,100)/100;var H=this._getPercent(t.columnsNeckWidthPercent,100,0,100)/100;var v=[];var L=NaN;for(var u=0;ul&&c[l].series.length>m){var I=p.xoffsets.xvalues[G];j=c[l].series[m][I];if(j&&!isNaN(j.from)&&!isNaN(j.to)){q=j.from+(q-j.from)*d;S=j.to+(S-j.to)*d;C=j.xoffset+(C-j.xoffset)*d}}if(!j){S=q+(S-q)*(z?1:d)}if(isNaN(q)){q=isNaN(L)?p.baseOffset:L}if(!isNaN(S)&&z){L=S}else{L=q}if(isNaN(S)){S=q}var F={from:q,to:S,xOffset:C};if(K!=100||A!=100){F.funnel=true;F.toWidthPercent=K;F.fromWidthPercent=A}v.push(F)}if(z&&v.length>1&&!(this._elementRenderInfo&&this._elementRenderInfo.length>l)){var n=0,o=0,N=-Infinity,B=Infinity,O=Infinity,E=-Infinity;for(var P=0;P=v[P].from){o+=v[P].to-v[P].from;O=Math.min(O,v[P].from);E=Math.max(E,v[P].to)}else{n+=v[P].from-v[P].to;N=Math.max(N,v[P].from);B=Math.min(B,v[P].to)}}}var R=n;var w=o;n*=d;o*=d;var e=0,h=0;for(var P=0;P=v[P].from){var D=v[P].to-v[P].from;if(D+h>o){D=Math.max(0,o-h);v[P].to=v[P].from+D}if(K!=100||A!=100){v[P].funnel=true;if(!isNaN(M)&&w*M>=h){v[P].fromWidthPercent=H*100}else{v[P].fromWidthPercent=(Math.abs(v[P].from-O)/w)*(K-A)+A}if(!isNaN(M)&&w*M>=(0+(h+D))){v[P].toWidthPercent=H*100}else{v[P].toWidthPercent=(Math.abs(v[P].to-O)/w)*(K-A)+A}}h+=D}else{var D=v[P].from-v[P].to;if(D+e>n){D=Math.max(0,n-e);v[P].to=v[P].from-D}if(K!=100||A!=100){v[P].funnel=true;if(!isNaN(M)&&R*M>=e){v[P].fromWidthPercent=H*100}else{v[P].fromWidthPercent=(Math.abs(v[P].from-N)/R)*(K-A)+A}if(!isNaN(M)&&R*M>=(0+(e+D))){v[P].toWidthPercent=H*100}else{v[P].toWidthPercent=(Math.abs(v[P].to-N)/R)*(K-A)+A}}e+=D}}}return v},_columnAsPieSlice:function(e,m,o,q){var f=this._toPolarCoord(o,m,q.x,q.y);var h=this._toPolarCoord(o,m,q.x,q.y+q.height);var n=a.jqx._ptdist(o.x,o.y,h.x,h.y);var k=a.jqx._ptdist(o.x,o.y,f.x,f.y);var d=m.width;var p=Math.abs(o.startAngle-o.endAngle)*180/Math.PI;var c=-((q.x-m.x)*p)/d;var j=-((q.x+q.width-m.x)*p)/d;var l=o.startAngle;l=360*l/(Math.PI*2);c-=l;j-=l;if(e){if(e.element!=undefined){var i=this.renderer.pieSlicePath(o.x,o.y,n,k,j,c,0);i+=" Z";this.renderer.attr(e.element,{d:i})}else{e.element=this.renderer.pieslice(o.x,o.y,n,k,j,c,0)}}return{fromAngle:j,toAngle:c,innerRadius:n,outerRadius:k}},_setRenderInfo:function(f,c,e,d){this._renderData[f].offsets[c][e].elementInfo=d},_getRenderInfo:function(e,c,d){return this._renderData[e].offsets[c][d].elementInfo||{}},_animColumns:function(al,e){var s=this;var t=al.groupIndex;var E=this.seriesGroups[t];var A=al.renderData;var ad=E.type.indexOf("waterfall")!=-1;var J=this._getXAxis(t);var L=E.type.indexOf("stacked")!=-1;var f=al.polarAxisCoords;var D=this._getGroupGradientType(t);var v=al.columnGroupWidth.targetWidth;var C=-1;for(var ae=0;aeak.xAdjust){am=ak.xAdjust}if(isNaN(w)||w=1){G=0.25}var h=G*u;var ac=al.renderData.xoffsets;var V=-1;var R={};var U=E.skipOverlappingPoints==true;for(var ag=ac.first;ag<=ac.last;ag++){var Y=ac.data[ag];if(isNaN(Y)){continue}if(V!=-1&&Math.abs(Y-V)<(u-1+h)&&U){continue}else{V=Y}var I=this._getColumnVOffsets(A,t,al.seriesCtx,ag,L,e);var O=false;if(ad){for(var F=0;F1||W<0){W=1}}var aa=E.columnsBottomWidthPercent/100;if(isNaN(aa)){aa=1}else{if(aa>1||aa<0){aa=1}}var q=al.vertical?T.width:T.height;aj.x=aj.x-q/2+q/2*W;if(O){var c=q*W/2;ai.x=ai.x+q/2-(J.flip?-c:c)}else{var c=q*aa/2;ai.x=ai.x+q/2-(J.flip?-c:c)}if(!al.vertical){this._swapXY([aj]);this._swapXY([ai])}this.renderer.line(aj.x,aj.y,ai.x,ai.y,{stroke:P.color,"stroke-width":ah.stroke,"stroke-opacity":ah.opacity,"fill-opacity":ah.opacity,"stroke-dasharray":ah.dashStyle})}}}if(e==1&&p!=0){R[L?-1:F]={y:an,x:(al.vertical?T.x+T.width:T.y+T.height),color:Z.lineColor}}}if(f){var X=this._toPolarCoord(f,al.rect,T.x+T.width/2,T.y);var q=this._showLabel(t,o,ag,T,undefined,undefined,true);var M=K.outerRadius+10;labelOffset=this._adjustTextBoxPosition(f.x,f.y,q,M,(K.fromAngle+K.toAngle)/2,true,false,false);S=this._showLabel(t,o,ag,{x:labelOffset.x,y:labelOffset.y},undefined,undefined,false,false,false)}else{S=this._showLabel(t,o,ag,T,undefined,undefined,false,false,m)}d={element:z,labelElement:S};s._setRenderInfo(t,o,ag,d);if(e==1){this._installHandlers(z,"column",t,o,ag)}}}},_getTrapezoidPath:function(j,k,h){var n="";var c=j.fromWidthPercent/100;var d=j.toWidthPercent/100;if(!k){var f=j.width;j.width=j.height;j.height=f;f=j.x;j.x=j.y;j.y=f}var l=j.x+j.width/2;var m=[{x:l-j.width*(!h?c:d)/2,y:j.y+j.height},{x:l-j.width*(!h?d:c)/2,y:j.y},{x:l+j.width*(!h?d:c)/2,y:j.y},{x:l+j.width*(!h?c:d)/2,y:j.y+j.height}];if(!k){this._swapXY(m)}n+="M "+a.jqx._ptrnd(m[0].x)+","+a.jqx._ptrnd(m[0].y);for(var e=1;eB.offset){d=B.offset}if(isNaN(u)||up){break}H=n;var G=w.items[D]=w.items[D]||{};for(var C in t){var I=w.self._getDataValueAsNumber(D,k.series[w.seriesIndex]["dataField"+t[C]],w.groupIndex);if(isNaN(I)){break}var m=w.renderData.offsets[w.seriesIndex][D][t[C]];if(isNaN(m)){break}G[t[C]]=m}n+=w.inverse?w.rect.y:w.rect.x;if(w.polarAxisCoords){var v=this._toPolarCoord(w.polarAxisCoords,this._plotRect,n,m);n=v.x;m=v.y}n=a.jqx._ptrnd(n);for(var h in t){G[h]=a.jqx._ptrnd(G[h])}var l=w.colors;if(!l){l=w.self._getColors(w.groupIndex,w.seriesIndex,D,w.gradientType)}if(!w.isOHLC){var z=G.lineElement;if(!z){z=w.inverse?this.renderer.line(G.Low,n,G.High,n):this.renderer.line(n,G.Low,n,G.High);this.renderer.attr(z,{fill:l.fillColor,"fill-opacity":w["fill-opacity"],"stroke-opacity":w["fill-opacity"],stroke:l.lineColor,"stroke-width":w["stroke-width"],"stroke-dasharray":w["stroke-dasharray"]});G.lineElement=z}var s=G.stickElement;n-=f/2;if(!s){var e=l.fillColor;if(G.Close<=G.Open&&l.fillColorAlt){e=l.fillColorAlt}s=w.inverse?this.renderer.rect(Math.min(G.Open,G.Close),n,Math.abs(G.Close-G.Open),f):this.renderer.rect(n,Math.min(G.Open,G.Close),f,Math.abs(G.Close-G.Open));this.renderer.attr(s,{fill:e,"fill-opacity":w["fill-opacity"],"stroke-opacity":w["fill-opacity"],stroke:l.lineColor,"stroke-width":w["stroke-width"],"stroke-dasharray":w["stroke-dasharray"]});G.stickElement=s}if(c==1){this._installHandlers(s,"column",w.groupIndex,w.seriesIndex,D)}}else{var q="M"+n+","+G.Low+" L"+n+","+G.High+" M"+(n-f/2)+","+G.Open+" L"+n+","+G.Open+" M"+(n+f/2)+","+G.Close+" L"+n+","+G.Close;if(w.inverse){q="M"+G.Low+","+n+" L"+G.High+","+n+" M"+G.Open+","+(n-f/2)+" L"+G.Open+","+n+" M"+G.Close+","+n+" L"+G.Close+","+(n+f/2)}var z=G.lineElement;if(!z){z=this.renderer.path(q,{});this.renderer.attr(z,{fill:l.fillColor,"fill-opacity":w["fill-opacity"],"stroke-opacity":w["fill-opacity"],stroke:l.lineColor,"stroke-width":w["stroke-width"],"stroke-dasharray":w["stroke-dasharray"]});G.lineElement=z}if(c==1){this._installHandlers(z,"column",w.groupIndex,w.seriesIndex,D)}}}},_renderScatterSeries:function(f,E,G){var v=this.seriesGroups[f];if(!v.series||v.series.length==0){return}var h=v.type.indexOf("bubble")!=-1;var w=v.orientation=="horizontal";var o=E;if(w){o={x:E.y,y:E.x,width:E.height,height:E.width}}var p=this._calcGroupOffsets(f,o);if(!p||p.xoffsets.length==0){return}var O=o.width;var d;if(v.polar||v.spider){d=this._getPolarAxisCoords(f,o);O=2*d.r}var W=this._alignValuesWithTicks(f);var u=this._getGroupGradientType(f);if(!G){G="to"}for(var j=0;jA){A=D}}}}var l=L.minRadius||L.minSymbolSize;if(isNaN(l)){l=O/50}var F=L.maxRadius||L.maxSymbolSize;if(isNaN(F)){F=O/25}if(l>F){F=l}var N=L.radius;if(isNaN(N)&&!isNaN(L.symbolSize)){N=(L.symbolType=="circle")?L.symbolSize/2:L.symbolSize}else{N=5}var H=this._getAnimProps(f,j);var C=H.enabled&&!this._isToggleRefresh&&p.xoffsets.length<5000?H.duration:0;var z={groupIndex:f,seriesIndex:j,symbolType:L.symbolType,symbolSize:L.symbolSize,"fill-opacity":U.opacity,"stroke-opacity":U.opacity,"stroke-width":U.stroke,"stroke-dasharray":U.dashStyle,items:[],polarAxisCoords:d};for(var T=p.xoffsets.first;T<=p.xoffsets.last;T++){var D=this._getDataValueAsNumber(T,B,f);if(typeof(D)!="number"){continue}var K=p.xoffsets.data[T];var I=p.xoffsets.xvalues[T];var J=p.offsets[j][T][G];if(Jo.y+o.height){continue}if(isNaN(K)||isNaN(J)){continue}if(w){var R=K;K=J;J=R+E.y}else{K+=E.x}var P=N;if(h){var q=this._getDataValueAsNumber(T,(L.radiusDataField||L.sizeDataField),f);if(typeof(q)!="number"){continue}P=l+(F-l)*(q-V)/Math.max(1,A-V);if(isNaN(P)){P=l}}p.offsets[j][T].radius=P;var m=NaN,Q=NaN;var t=0;var c=this._elementRenderInfo;if(I!=undefined&&c&&c.length>f&&c[f].series.length>j){var e=c[f].series[j][I];if(e&&!isNaN(e.to)){m=e.to;Q=e.xoffset;t=N;if(w){var R=Q;Q=m;m=R+E.y}else{Q+=E.x}if(h){t=l+(F-l)*(e.valueRadius-V)/Math.max(1,A-V);if(isNaN(t)){t=l}}}}if(n){M=this._getColors(f,j,T,u)}z.items.push({from:t,to:P,itemIndex:T,fill:M.fillColor,stroke:M.lineColor,x:K,y:J,xFrom:Q,yFrom:m})}this._animR(z,0);var k=this;var S;this._enqueueAnimation("series",undefined,undefined,C,function(X,i,s){k._animR(i,s)},z)}},_animR:function(q,j){var l=q.items;var s=q.symbolType||"circle";var d=q.symbolSize;for(var f=0;f=1){this._installHandlers(e,"circle",q.groupIndex,q.seriesIndex,p.itemIndex)}this._setRenderInfo(q.groupIndex,q.seriesIndex,l[f].itemIndex,{element:e,labelElement:k})}},_showToolTip:function(p,n,J,C,f){var z=this;var m=z._getXAxis(J);var c=z._getValueAxis(J);if(z._ttEl&&J==z._ttEl.gidx&&C==z._ttEl.sidx&&f==z._ttEl.iidx){return}var l=z.seriesGroups[J];var q=l.series[C];var j=z.enableCrosshairs&&!(l.polar||l.spider);if(z._pointMarker){p=parseInt(z._pointMarker.x+5);n=parseInt(z._pointMarker.y-5)}else{j=false}var k=j&&z.showToolTips==false;p=a.jqx._ptrnd(p);n=a.jqx._ptrnd(n);var K=z._ttEl==undefined;if(l.showToolTips==false||q.showToolTips==false){return}var i=z._get([q.toolTipFormatSettings,l.toolTipFormatSettings,c.toolTipFormatSettings,z.toolTipFormatSettings]);var v=z._get([q.toolTipFormatFunction,l.toolTipFormatFunction,c.toolTipFormatFunction,z.toolTipFormatFunction]);var o=z._getColors(J,C,f);var w=z._getDataValue(f,m.dataField,J);if(m.dataField==undefined||m.dataField==""){w=f}if(m.type=="date"){w=z._castAsDate(w,(i?i.dateFormat:undefined)||m.dateFormat)}var u="";if(a.isFunction(v)){var A={};var E=0;for(var d in q){if(d.indexOf("dataField")==0){A[d.substring(9,d.length).toLowerCase()]=z._getDataValue(f,q[d],J);E++}}if(E==0){A=z._getDataValue(f,undefined,J)}else{if(E==1){A=A[""]}}u=v(A,f,q,l,w,m)}else{u=z._getFormattedValue(J,C,f,i,v);var e=this._getAxisSettings(m);var O=e.toolTipFormatSettings;var h=e.toolTipFormatFunction;if(!h&&!O&&m.type=="date"){h=this._getDefaultDTFormatFn(m.baseUnit||"day")}var N=z._formatValue(w,O,h,J,C,f);if(!z._isPieGroup(J)){var s=(m.displayText||m.dataField||"");if(s.length>0){u=s+": "+N+"
              "+u}else{u=N+"
              "+u}}else{w=z._getDataValue(f,q.displayText||q.dataField,J);N=z._formatValue(w,O,h,J,C,f);u=N+": "+u}}if(!z._ttEl){z._ttEl={}}z._ttEl.sidx=C;z._ttEl.gidx=J;z._ttEl.iidx=f;rect=z.renderer.getRect();if(j){var G=a.jqx._ptrnd(z._pointMarker.x);var F=a.jqx._ptrnd(z._pointMarker.y);if(z._ttEl.vLine&&z._ttEl.hLine){z.renderer.attr(z._ttEl.vLine,{x1:G,x2:G});z.renderer.attr(z._ttEl.hLine,{y1:F,y2:F})}else{var D=z.crosshairsColor||z._defaultLineColor;z._ttEl.vLine=z.renderer.line(G,z._plotRect.y,G,z._plotRect.y+z._plotRect.height,{stroke:D,"stroke-width":z.crosshairsLineWidth||1,"stroke-dasharray":z.crosshairsDashStyle||""});z._ttEl.hLine=z.renderer.line(z._plotRect.x,F,z._plotRect.x+z._plotRect.width,F,{stroke:D,"stroke-width":z.crosshairsLineWidth||1,"stroke-dasharray":z.crosshairsDashStyle||""})}}if(!k&&z.showToolTips!=false){var H=q.toolTipClass||l.toolTipClass||this.toThemeProperty("jqx-chart-tooltip-text",null);var L=q.toolTipBackground||l.toolTipBackground||"#FFFFFF";var M=q.toolTipLineColor||l.toolTipLineColor||o.lineColor;var B=this.getItemCoord(J,C,f);var I=0;if(z._pointMarker&&z._pointMarker.element){I=q.symbolSizeSelected;if(isNaN(I)){I=q.symbolSize}if(isNaN(I)||I>50||I<0){I=l.symbolSize}if(isNaN(I)||I>50||I<0){I=8}}z._createTooltip(B,l,u,{css:H,fill:L,stroke:M,symbolSize:I})}},_fitTooltip:function(d,k,l,m,f){var e={};var c=2+f/2;var h=7;if(k.x-l.width-h-c>d.x&&k.y+k.height/2-l.height/2>d.y&&k.y+k.height/2+l.height/2d.y&&k.y+k.height/2+l.height/2d.y&&k.x+k.width/2-l.width/2>d.x&&k.x+k.width/2+l.width/2d.x&&k.x+k.width/2+l.width/2k.height||((m.type.indexOf("stackedcolumn")!=-1||m.type.indexOf("stackedwaterfall")!=-1)&&m.orientation!="horizontal")){if(e.left){return e.left}if(e.right){return e.right}}else{if(e.top){return e.top}if(e.bottom){return e.bottom}}for(var j in e){if(e[j]){return e[j]}}return{arrowLocation:""}},_createTooltip:function(F,l,z,A){var s=this;var w=l.type;var D=false;var E=s._ttEl.box;if(!E){D=true;E=s._ttEl.box=document.createElement("div");var f=10000000;E.style.position="absolute";E.style.cursor="default";a(c).css({"z-index":f,"box-sizing":"content-box"});a(document.body).append(E);var c=document.createElement("div");c.id="arrowOuterDiv";c.style.width="0px";c.style.height="0px";c.style.position="absolute";a(c).css({"z-index":f+1,"box-sizing":"content-box"});var i=document.createElement("div");i.id="arrowInnerDiv";i.style.width="0px";i.style.height="0px";i.style.position="absolute";var v=document.createElement("div");v.id="contentDiv";v.style.position="absolute";a(v).css({"box-sizing":"content-box"});a(v).addClass("jqx-rc-all jqx-button");a(v).appendTo(a(E));a(c).appendTo(a(E));a(i).appendTo(a(E));a(i).css({"z-index":f+2,"box-sizing":"content-box"})}if(!z||z.length==0){a(E).fadeTo(0,0);return}v=a(E).find("#contentDiv")[0];c=a(E).find("#arrowOuterDiv")[0];i=a(E).find("#arrowInnerDiv")[0];v.style.backgroundColor=A.fill;v.style.borderColor=A.stroke;var n=""+z+"";a(v).html(n);var q=this._measureHtml(n,"jqx-rc-all jqx-button");rect=s._plotRect;if(q.width>rect.width||q.height>rect.height){return}var p={width:q.width,height:q.height};arrowLocation="";var C=5;var t=7;var u=s._isColumnType(w);x=Math.max(F.x,rect.x);y=Math.max(F.y,rect.y);if(s.toolTipAlignment=="dataPoint"){if(w.indexOf("pie")!=-1||w.indexOf("donut")!=-1){var m=(F.fromAngle+F.toAngle)/2;m=m*(Math.PI/180);var h=(!isNaN(F.innerRadius)&&F.innerRadius>0)?(F.innerRadius+F.outerRadius)/2:F.outerRadius*0.75;x=F.x=F.center.x+Math.cos(m)*h;y=F.y=F.center.y-Math.sin(m)*h;F.width=F.height=1}else{if(u&&(l.polar||l.spider)){F.width=F.height=1}}var B=this._fitTooltip(this._plotRect,F,p,l,A.symbolSize);if(B.arrowLocation!=""){arrowLocation=B.arrowLocation;x=B.x;y=B.y;p.width=B.width;p.height=B.height}}else{arrowLocation=""}if(arrowLocation=="top"||arrowLocation=="bottom"){p.height+=t;x-=t/2;if(arrowLocation=="bottom"){y-=t}}else{if(arrowLocation=="left"||arrowLocation=="right"){p.width+=t;y-=t/2;if(arrowLocation=="right"){x-=t}}}if(x+p.width>rect.x+rect.width){arrowLocation="";x=rect.x+rect.width-p.width}if(y+p.height>rect.y+rect.height){arrowLocation="";y=rect.y+rect.height-p.height}var j={x:0,y:0},e={x:0,y:0};a(v).css({width:q.width,height:q.height,left:0,top:0});c.style["margin-top"]=c.style["margin-left"]=0;i.style["margin-top"]=i.style["margin-left"]=0;v.style["margin-top"]=v.style["margin-left"]=0;var k=t+"px solid";var d=t+"px solid transparent";switch(arrowLocation){case"left":j={x:0,y:(q.height-t)/2};contentPostion={x:t,y:0};v.style["margin-left"]=t+"px";c.style["margin-left"]=0+"px";c.style["margin-top"]=j.y+"px";c.style["border-left"]="";c.style["border-right"]=k+" "+A.stroke;c.style["border-top"]=d;c.style["border-bottom"]=d;i.style["margin-left"]=1+"px";i.style["margin-top"]=j.y+"px";i.style["border-left"]="";i.style["border-right"]=k+" "+A.fill;i.style["border-top"]=d;i.style["border-bottom"]=d;break;case"right":j={x:p.width-t,y:(q.height-t)/2};contentPostion={x:0,y:0};c.style["margin-left"]=j.x+"px";c.style["margin-top"]=j.y+"px";c.style["border-left"]=k+" "+A.stroke;c.style["border-right"]="";c.style["border-top"]=d;c.style["border-bottom"]=d;i.style["margin-left"]=j.x-1+"px";i.style["margin-top"]=j.y+"px";i.style["border-left"]=k+" "+A.fill;i.style["border-right"]="";i.style["border-top"]=d;i.style["border-bottom"]=d;break;case"top":j={x:p.width/2-t/2,y:0};contentPostion={x:0,y:t};v.style["margin-top"]=contentPostion.y+"px";c.style["margin-left"]=j.x+"px";c.style["border-top"]="";c.style["border-bottom"]=k+" "+A.stroke;c.style["border-left"]=d;c.style["border-right"]=d;i.style["margin-left"]=j.x+"px";i.style["margin-top"]=1+"px";i.style["border-top"]="";i.style["border-bottom"]=k+" "+A.fill;i.style["border-left"]=d;i.style["border-right"]=d;break;case"bottom":j={x:p.width/2-t/2,y:p.height-t};contentPostion={x:0,y:0};c.style["margin-left"]=j.x+"px";c.style["margin-top"]=j.y+"px";c.style["border-top"]=k+" "+A.stroke;c.style["border-bottom"]="";c.style["border-left"]=d;c.style["border-right"]=d;i.style["margin-left"]=j.x+"px";i.style["margin-top"]=j.y-1+"px";i.style["border-top"]=k+" "+A.fill;i.style["border-bottom"]="";i.style["border-left"]=d;i.style["border-right"]=d;break}if(arrowLocation==""){a(c).hide();a(i).hide()}else{a(c).show();a(i).show()}a(E).css({width:p.width+"px",height:p.height+"px"});var o=s.host.coord();if(D){a(E).fadeOut(0,0);E.style.left=x+o.left+"px";E.style.top=y+o.top+"px"}a(E).clearQueue();a(E).animate({left:x+o.left,top:y+o.top,opacity:1},s.toolTipMoveDuration,"easeInOutCirc");a(E).fadeTo(400,1)},_measureHtml:function(d,c){var f=this._measureDiv;if(!f){this._measureDiv=f=document.createElement("div");f.style.position="absolute";f.style.cursor="default";f.style.overflow="hidden";f.style.display="none";a(f).addClass(c);this.host.append(f)}a(f).html(d);var e={width:a(f).width()+2,height:a(f).height()+2};if(a.jqx.browser&&a.jqx.browser.mozilla){e.height+=3}return e},_hideToolTip:function(c){if(!this._ttEl){return}if(this._ttEl.box){if(c==0){a(this._ttEl.box).hide()}else{a(this._ttEl.box).fadeOut()}}this._hideCrosshairs();this._ttEl.gidx=undefined},_hideCrosshairs:function(){if(!this._ttEl){return}if(this._ttEl.vLine){this.renderer.removeElement(this._ttEl.vLine);this._ttEl.vLine=undefined}if(this._ttEl.hLine){this.renderer.removeElement(this._ttEl.hLine);this._ttEl.hLine=undefined}},_get:function(c){return a.jqx.getByPriority(c)},_getAxisSettings:function(h){if(!h){return{}}var n=this;var m=h.gridLines||{};var p={visible:this._get([m.visible,h.showGridLines,true]),color:n._get([m.color,h.gridLinesColor,n._defaultLineColor]),unitInterval:n._get([m.unitInterval,m.interval,h.gridLinesInterval]),step:n._get([m.step,h.gridLinesStep]),dashStyle:n._get([m.dashStyle,h.gridLinesDashStyle]),width:n._get([m.lineWidth,1]),offsets:[],alternatingBackgroundColor:h.alternatingBackgroundColor,alternatingBackgroundColor2:h.alternatingBackgroundColor2,alternatingBackgroundOpacity:h.alternatingBackgroundOpacity};var e=h.tickMarks||{};var j={visible:this._get([e.visible,h.showTickMarks,true]),color:n._get([e.color,h.tickMarksColor,n._defaultLineColor]),unitInterval:n._get([e.unitInterval,e.interval,h.tickMarksInterval]),step:n._get([e.step,h.tickMarksStep]),dashStyle:n._get([e.dashStyle,h.tickMarksDashStyle]),width:n._get([e.lineWidth,1]),size:n._get([e.size,4]),offsets:[]};var f=h.title||{};var d={visible:n._get([f.visible,true]),text:n._get([h.description,f.text]),style:n._get([h.descriptionClass,f["class"],n.toThemeProperty("jqx-chart-axis-description",null)]),halign:n._get([h.horizontalDescriptionAlignment,f.horizontalAlignment,"center"]),valign:n._get([h.verticalDescriptionAlignment,f.verticalAlignment,"center"]),angle:0,rotationPoint:n._get([f.rotationPoint,"centercenter"]),offset:n._get([f.offset,{x:0,y:0}])};var k=h.line||{};var c={visible:n._get([k.visible,true]),color:n._get([k.color,p.color,n._defaultLineColor]),dashStyle:n._get([k.dashStyle,p.dashStyle,""]),width:n._get([k.lineWidth,1])};var l=h.padding||{};l={left:l.left||0,right:l.right||0,top:l.top||0,bottom:l.bottom||0};var i=this._getAxisLabelsSettings(h);var o={visible:this._get([h.visible,h.showValueAxis,h.showXAxis,h.showCategoryAxis,true]),customDraw:this._get([h.customDraw,false]),gridLines:p,tickMarks:j,line:c,title:d,labels:i,padding:l,toolTipFormatFunction:this._get([h.toolTipFormatFunction,h.formatFunction,i.formatFunction]),toolTipFormatSettings:this._get([h.toolTipFormatSettings,h.formatSettings,i.formatSettings])};return o},_getAxisLabelsSettings:function(e){var c=this;var f=e.labels||{};var d={visible:c._get([e.showLabels,f.visible,true]),unitInterval:c._get([f.unitInterval,f.interval,e.labelsInterval]),step:c._get([f.step,e.labelsStep]),angle:c._get([e.textRotationAngle,f.angle,0]),style:c._get([e["class"],f["class"],c.toThemeProperty("jqx-chart-axis-text",null)]),halign:c._get([e.horizontalTextAlignment,f.horizontalAlignment,"center"]),valign:c._get([e.verticalTextAlignment,f.verticalAlignment,"center"]),textRotationPoint:c._get([e.textRotationPoint,f.rotationPoint,"auto"]),textOffset:c._get([e.textOffset,f.offset,{x:0,y:0}]),autoRotate:c._get([e.labelsAutoRotate,f.autoRotate,false]),formatSettings:c._get([e.formatSettings,f.formatSettings,undefined]),formatFunction:c._get([e.formatFunction,f.formatFunction,undefined])};return d},_getLabelsSettings:function(q,m,j,v){var k=this.seriesGroups[q];var u=k.series[m];var n=isNaN(j)?undefined:this._getDataValue(j,u.dataField,q);var l=v||["Visible","Offset","Angle","HorizontalAlignment","VerticalAlignment","Class","BackgroundColor","BorderColor","BorderOpacity","Padding","Opacity","BackgroundOpacity","LinesAngles","LinesEnabled","AutoRotate","Radius"];var t={};for(var h=0;h0){if(z==""||z=="center"){s+=(v-F.width)/2}else{if(z=="right"){s+=(v-F.width)}}}if(K>0){if(k==""||k=="center"){p+=(K-F.height)/2}else{if(k=="bottom"){p+=(K-F.height)}}}s+=c.x+J.x;p+=c.y+J.y;var q=this._plotRect;if(s<=q.x){s=q.x+2}if(p<=q.y){p=q.y+2}var n={width:Math.max(F.width,1),height:Math.max(F.height,1)};if(p+n.height>=q.y+q.height){p=q.y+q.height-(t?(n.height+t.height)/2:n.height)-2}if(s+n.width>=q.x+q.width){s=q.x+q.width-n.width-2}var e;var D=L.backgroundColor;var G=L.borderColor;var C=L.padding;if(D||G){e=this.renderer.beginGroup();var c=this.renderer.rect(s-C.left,p-C.top,F.width+C.left+C.right,F.height+C.bottom+C.bottom,{fill:D||"transparent","fill-opacity":L.backgroundOpacity||1,stroke:G||"transparent","stroke-opacity":L.borderOpacity,"stroke-width":1})}var A=this.renderer.text(B,s,p,F.width,F.height,j,{"class":L["class"],opacity:L.opacity||1},false,"center","center");if(E){E.x=s-C.left;E.y=p-C.top;E.width=F.width+C.left+C.right;E.height=F.height+C.bottom+C.bottom}if(this._isVML){this.renderer.removeElement(A);this.renderer.getContainer()[0].appendChild(A)}if(e){this.renderer.endGroup()}return e||A},_getAnimProps:function(k,h){var f=this.seriesGroups[k];var d=!isNaN(h)?f.series[h]:undefined;var c=this.enableAnimations==true;if(f.enableAnimations){c=f.enableAnimations==true}if(d&&d.enableAnimations){c=d.enableAnimations==true}var j=this.animationDuration;if(isNaN(j)){j=1000}var e=f.animationDuration;if(!isNaN(e)){j=e}if(d){var i=d.animationDuration;if(!isNaN(i)){j=i}}if(j>5000){j=1000}return{enabled:c,duration:j}},_isColorTransition:function(h,e,f,i){if(i-1=0;p--){var j=this._getSerieSettings(m,p);var ak={groupIndex:m,rect:C,serieIndex:p,swapXY:am,isArea:v,isSpline:ah,isRange:R,isPolar:ai,settings:j,segments:[],pointsLength:0};var l=this._isSerieVisible(m,p);if(!l){this._linesRenderInfo[m][p]=ak;continue}var M=K.series[p];if(M.customDraw){continue}var B=a.isFunction(M.colorFunction);var X=G.xoffsets.first;var J=X;var Q=this._getColors(m,p,NaN,this._getGroupGradientType(m));var ae=false;var z;do{var Z=[];var W=[];var u=[];var S=-1;var s=0,q=0;var U=NaN;var H=NaN;var al=NaN;if(G.xoffsets.length<1){continue}var V=this._getAnimProps(m,p);var O=V.enabled&&!this._isToggleRefresh&&G.xoffsets.length<10000&&this._isVML!=true?V.duration:0;var A=X;z=false;var e=this._getColors(m,p,X,this._getGroupGradientType(m));for(var ag=X;ag<=G.xoffsets.last;ag++){X=ag;var aa=G.xoffsets.data[ag];var Y=G.xoffsets.xvalues[ag];if(isNaN(aa)){continue}aa=Math.max(aa,1);s=aa;q=G.offsets[p][ag].to;var ad=G.offsets[p][ag].from;if(isNaN(q)||isNaN(ad)){if(M.emptyPointsDisplay=="connect"){continue}else{if(M.emptyPointsDisplay=="zero"){if(isNaN(q)){q=G.baseOffset}if(isNaN(ad)){ad=G.baseOffset}}else{z=true;break}}}if(B&&this._isColorTransition(m,p,G,X)){if(Z.length>1){X--;break}}var d=this._elementRenderInfo;if(d&&d.length>m&&d[m].series.length>p){var h=d[m].series[p][Y];var al=a.jqx._ptrnd(h?h.to:undefined);var L=a.jqx._ptrnd(C.x+(h?h.xoffset:undefined));u.push(am?{y:L,x:al,index:ag}:{x:L,y:al,index:ag})}J=ag;if(j.stroke<2){if(q-C.y<=1){q=C.y+1}if(ad-C.y<=1){ad=C.y+1}if(C.y+C.height-q<=1){q=C.y+C.height-1}if(C.y+C.height-ad<=1){ad=C.y+C.height-1}}if(!v&&f){if(q<=C.y){q=C.y+1}if(q>=C.y+C.height){q=C.y+C.height-1}if(ad<=C.y){ad=C.y+1}if(ad>=C.y+C.height){ad=C.y+C.height-1}}aa=Math.max(aa,1);s=aa+C.x;if(K.skipOverlappingPoints==true&&!isNaN(U)&&Math.abs(U-s)<=1){continue}if(w&&!isNaN(U)&&!isNaN(H)){if(H!=q){Z.push(am?{y:s,x:a.jqx._ptrnd(H)}:{x:s,y:a.jqx._ptrnd(H)})}}Z.push(am?{y:s,x:a.jqx._ptrnd(q),index:ag}:{x:s,y:a.jqx._ptrnd(q),index:ag});W.push(am?{y:s,x:a.jqx._ptrnd(ad),index:ag}:{x:s,y:a.jqx._ptrnd(ad),index:ag});U=s;H=q;if(isNaN(al)){al=q}}if(Z.length==0){X++;continue}var I=Z[Z.length-1].index;if(B){Q=this._getColors(m,p,I,this._getGroupGradientType(m))}var n=C.x+G.xoffsets.data[A];var ac=C.x+G.xoffsets.data[J];if(v&&K.alignEndPointsWithIntervals==true){var E=F?-1:1;if(n>C.x){n=C.x}if(acG.x+G.width||w.yG.y+G.height){continue}if(A!="none"){var p=this._getColors(h,j,z.pointsArray[E].index,this._getGroupGradientType(h));var f=this._drawSymbol(A,w.x,w.y,p.fillColorSymbol,F.opacity,p.lineColorSymbol,F.opacity,1,undefined,H);z.symbolElements.push(f)}if(s){var m=(E>0?u[E-1]:u[E]).split(",");m={x:parseFloat(m[0]),y:parseFloat(m[1])};var o=(E0){u+=" "}var l=p[w].y;var m=p[w].x;var c=!B?l:h;var e=m;if(o&&o.length>w){c=o[w].y;e=o[w].x;if(isNaN(c)||isNaN(e)){c=l;e=m}}k=e;if(v<=p.length&&w>0&&w==v){e=p[w-1].x;c=p[w-1].y}if(d){m=a.jqx._ptrnd((m-c)*(B?f:1)+c);l=a.jqx._ptrnd(l)}else{m=a.jqx._ptrnd((m-e)*f+e);l=a.jqx._ptrnd((l-c)*f+c)}if(n){var s=this._toPolarCoord(n,this._plotRect,m,l);m=s.x;l=s.y}u+=m+","+l}return u},_buildLineCmd:function(m,q,i,v,f,o,e,u,d,l,h,c){var s=m;var n=c?e+","+i:i+","+e;var j=c?e+","+v:v+","+e;if(u&&!d&&!q){s=n+" "+m+" "+j}if(h){s=this._getBezierPoints(s)}var p=s.split(" ");if(p.length==0){return""}if(p.length==1){var t=p[0].split(",");return"M "+p[0]+" L"+(parseFloat(t[0])+1)+","+(parseFloat(t[1])+1)}var k=p[0].replace("M","");if(u&&!d){if(!q){s="M "+n+" L "+k+" "+s}else{s="M "+k+" L "+k+(h?"":(" L "+k+" "))+s}}else{if(!h){s="M "+k+" L "+k+" "+s}}if((d&&l)||q){s+=" Z"}return s},_getSerieSettings:function(j,c){var i=this.seriesGroups[j];var h=i.type.indexOf("area")!=-1;var f=i.type.indexOf("line")!=-1;var d=i.series[c];var l=d.dashStyle||i.dashStyle||"";var e=d.opacity||i.opacity;if(isNaN(e)||e<0||e>1){e=1}var k=d.lineWidth;if(isNaN(k)&&k!="auto"){k=i.lineWidth}if(k=="auto"||isNaN(k)||k<0||k>15){if(h){k=2}else{if(f){k=3}else{k=1}}}return{stroke:k,opacity:e,dashStyle:l}},_getColors:function(z,s,e,f,c){var m=this.seriesGroups[z];var q=m.series[s];var d=this._get([q.useGradientColors,m.useGradientColors,m.useGradient,true]);var n=this._getSeriesColors(z,s,e);if(!n.fillColor){n.fillColor=u;n.fillColorSelected=a.jqx.adjustColor(u,1.1);n.fillColorAlt=a.jqx.adjustColor(u,4);n.fillColorAltSelected=a.jqx.adjustColor(u,3);n.lineColor=n.symbolColor=a.jqx.adjustColor(u,0.9);n.lineColorSelected=n.symbolColorSelected=a.jqx.adjustColor(u,0.9)}var k=[[0,1.4],[100,1]];var h=[[0,1],[25,1.1],[50,1.4],[100,1]];var p=[[0,1.3],[90,1.2],[100,1]];var l=NaN;if(!isNaN(c)){l=c==2?k:h}if(d){var t={};for(var v in n){t[v]=n[v]}n=t;if(f=="verticalLinearGradient"||f=="horizontalLinearGradient"){var j=f=="verticalLinearGradient"?l||k:l||h;var o=["fillColor","fillColorSelected","fillColorAlt","fillColorAltSelected"];for(var A in o){var u=n[o[A]];if(u){n[o[A]]=this.renderer._toLinearGradient(u,f=="verticalLinearGradient",j)}}}else{if(f=="radialGradient"){var w;var l=k;if((m.type=="pie"||m.type=="donut"||m.polar)&&e!=undefined&&this._renderData[z]&&this._renderData[z].offsets[s]){w=this._renderData[z].offsets[s][e];l=p}n.fillColor=this.renderer._toRadialGradient(n.fillColor,l,w);n.fillColorSelected=this.renderer._toRadialGradient(n.fillColorSelected,l,w)}}}return n},_installHandlers:function(d,h,j,i,e){if(!this.enableEvents){return false}var k=this;var f=this.seriesGroups[j];var l=this.seriesGroups[j].series[i];var c=f.type.indexOf("line")!=-1||f.type.indexOf("area")!=-1;if(!c&&!(f.enableSelection==false||l.enableSelection==false)){this.renderer.addHandler(d,"mousemove",function(o){var n=k._selected;if(n&&n.isLineType&&n.linesUnselectMode=="click"&&!(n.group==j&&n.series==i)){return}var m=o.pageX||o.clientX||o.screenX;var q=o.pageY||o.clientY||o.screenY;var p=k.host.offset();m-=p.left;q-=p.top;if(k._mouseX==m&&k._mouseY==q){return}if(k._ttEl){if(k._ttEl.gidx==j&&k._ttEl.sidx==i&&k._ttEl.iidx==e){return}}k._startTooltipTimer(j,i,e)});this.renderer.addHandler(d,"mouseout",function(n){return;if(!isNaN(k._lastClickTs)&&(new Date()).valueOf()-k._lastClickTs<100){return}if(e!=undefined){k._cancelTooltipTimer()}if(c){return}var m=k._selected;if(m&&m.isLineType&&m.linesUnselectMode=="click"&&!(m.group==j&&m.series==i)){return}k._unselect()})}if(!(f.enableSelection==false||l.enableSelection==false)){this.renderer.addHandler(d,"mouseover",function(n){var m=k._selected;if(m&&m.isLineType&&m.linesUnselectMode=="click"&&!(m.group==j&&m.series==i)){return}k._select(d,h,j,i,e,e)})}this.renderer.addHandler(d,"click",function(m){clearTimeout(k._hostClickTimer);k._lastClickTs=(new Date()).valueOf();if(c&&(h!="symbol"&&h!="pointMarker")){return}if(k._isColumnType(f.type)){k._unselect()}if(isNaN(e)){return}m.stopImmediatePropagation();k._raiseItemEvent("click",f,l,e)})},_getHorizontalOffset:function(C,u,l,k){var d=this._plotRect;var j=this._getDataLen(C);if(j==0){return{index:undefined,value:l}}var q=this._calcGroupOffsets(C,this._plotRect);if(q.xoffsets.length==0){return{index:undefined,value:undefined}}var o=l;var n=k;var A=this.seriesGroups[C];var m;if(A.polar||A.spider){m=this._getPolarAxisCoords(C,d)}var f=this._getXAxis(C).flip==true;var c,p,z,h;for(var v=q.xoffsets.first;v<=q.xoffsets.last;v++){var w=q.xoffsets.data[v];var e=q.offsets[u][v].to;var s=0;if(m){var t=this._toPolarCoord(m,d,w+d.x,e);w=t.x;e=t.y;s=a.jqx._ptdist(o,n,w,e)}else{if(A.orientation=="horizontal"){w+=d.y;var B=e;e=w;w=B;s=a.jqx._ptdist(o,n,w,e)}else{w+=d.x;s=Math.abs(o-w)}}if(isNaN(c)||c>s){c=s;p=v;z=w;h=e}}return{index:p,value:q.xoffsets.data[p],polarAxisCoords:m,x:z,y:h}},onmousemove:function(m,l){if(this._mouseX==m&&this._mouseY==l){return}this._mouseX=m;this._mouseY=l;if(!this._selected){return}var D=this._selected.group;var u=this._selected.series;var A=this.seriesGroups[D];var p=A.series[u];var c=this._plotRect;if(this.renderer){c=this.renderer.getRect();c.x+=5;c.y+=5;c.width-=10;c.height-=10}if(mc.x+c.width||lc.y+c.height){this._hideToolTip();this._unselect();return}var f=A.orientation=="horizontal";var c=this._plotRect;if(A.type.indexOf("line")!=-1||A.type.indexOf("area")!=-1){var j=this._getHorizontalOffset(D,this._selected.series,m,l);var z=j.index;if(z==undefined){return}if(this._selected.item!=z){var t=this._linesRenderInfo[D][u].segments;var v=0;while(z>t[v].lastItemIndex){v++;if(v>=t.length){return}}var d=t[v].pathElement;var E=t[v].lastItemIndex;this._unselect(false);this._select(d,"path",D,u,z,E)}var o=this._getSymbol(this._selected.group,this._selected.series);if(o=="none"){o="circle"}var q=this._calcGroupOffsets(D,c);var e=q.offsets[this._selected.series][z].to;var w=e;if(A.type.indexOf("range")!=-1){w=q.offsets[this._selected.series][z].from}var n=f?m:l;if(!isNaN(w)&&Math.abs(n-w)1){h=A.opacity}if(isNaN(h)||h<0||h>1){h=1}var C=p.symbolSizeSelected;if(isNaN(C)){C=p.symbolSize}if(isNaN(C)||C>50||C<0){C=A.symbolSize}if(isNaN(C)||C>50||C<0){C=8}if(this.showToolTips||this.enableCrosshairs){this._pointMarker={type:o,x:m,y:l,gidx:D,sidx:u,iidx:z};this._pointMarker.element=this._drawSymbol(o,m,l,k.fillColorSymbolSelected,h,k.lineColorSymbolSelected,h,1,undefined,C);this._installHandlers(this._pointMarker.element,"pointMarker",D,u,z)}this._startTooltipTimer(D,this._selected.series,z)}},_drawSymbol:function(k,n,l,d,o,m,h,i,c,q){var f;var j=q||6;var e=j/2;switch(k){case"none":return undefined;case"circle":f=this.renderer.circle(n,l,j/2);break;case"square":j=j-1;e=j/2;f=this.renderer.rect(n-e,l-e,j,j);break;case"diamond":var p="M "+(n-e)+","+(l)+" L"+(n)+","+(l-e)+" L"+(n+e)+","+(l)+" L"+(n)+","+(l+e)+" Z";f=this.renderer.path(p);break;case"triangle_up":case"triangle":var p="M "+(n-e)+","+(l+e)+" L "+(n+e)+","+(l+e)+" L "+(n)+","+(l-e)+" Z";f=this.renderer.path(p);break;case"triangle_down":var p="M "+(n-e)+","+(l-e)+" L "+(n)+","+(l+e)+" L "+(n+e)+","+(l-e)+" Z";f=this.renderer.path(p);break;case"triangle_left":var p="M "+(n-e)+","+(l)+" L "+(n+e)+","+(l+e)+" L "+(n+e)+","+(l-e)+" Z";f=this.renderer.path(p);break;case"triangle_right":var p="M "+(n-e)+","+(l-e)+" L "+(n-e)+","+(l+e)+" L "+(n+e)+","+(l)+" Z";f=this.renderer.path(p);break;default:f=this.renderer.circle(n,l,j)}this.renderer.attr(f,{fill:d,"fill-opacity":o,stroke:m,"stroke-width":i,"stroke-opacity":h,"stroke-dasharray":c||""});if(k!="circle"){this.renderer.attr(f,{r:j/2});if(k!="square"){this.renderer.attr(f,{x:n,y:l})}}return f},_getSymbol:function(h,c){var d=["circle","square","diamond","triangle_up","triangle_down","triangle_left","triangle_right"];var f=this.seriesGroups[h];var e=f.series[c];var i;if(e.symbolType!=undefined){i=e.symbolType}if(i==undefined){i=f.symbolType}if(i=="default"){return d[c%d.length]}else{if(i!=undefined){return i}}return"none"},_startTooltipTimer:function(l,k,e,j,i,c,h){this._cancelTooltipTimer();var m=this;var f=m.seriesGroups[l];var d=this.toolTipShowDelay||this.toolTipDelay;if(isNaN(d)||d>10000||d<0){d=500}if(this._ttEl||(true==this.enableCrosshairs&&false==this.showToolTips)){d=0}if(!isNaN(c)){d=c}clearTimeout(this._tttimerHide);if(isNaN(j)){j=m._mouseX}if(isNaN(i)){i=m._mouseY-3}if(d==0){m._showToolTip(j,i,l,k,e)}this._tttimer=setTimeout(function(){if(d!=0){m._showToolTip(j,i,l,k,e)}var n=m.toolTipHideDelay;if(!isNaN(h)){n=h}if(isNaN(n)){n=4000}m._tttimerHide=setTimeout(function(){m._hideToolTip();m._unselect()},n)},d)},_cancelTooltipTimer:function(){clearTimeout(this._tttimer)},_getGroupGradientType:function(d){var c=this.seriesGroups[d];if(c.type.indexOf("area")!=-1){return c.orientation=="horizontal"?"horizontalLinearGradient":"verticalLinearGradient"}else{if(this._isColumnType(c.type)||c.type.indexOf("candle")!=-1){if(c.polar){return"radialGradient"}return c.orientation=="horizontal"?"verticalLinearGradient":"horizontalLinearGradient"}else{if(c.type.indexOf("scatter")!=-1||c.type.indexOf("bubble")!=-1||this._isPieGroup(d)){return"radialGradient"}}}return undefined},_select:function(i,m,p,o,j,n){if(this._selected){if((this._selected.item!=j||this._selected.series!=o||this._selected.group!=p)){this._unselect()}else{return}}var l=this.seriesGroups[p];var q=l.series[o];if(l.enableSelection==false||q.enableSelection==false){return}var h=l.type.indexOf("line")!=-1&&l.type.indexOf("area")==-1;this._selected={element:i,type:m,group:p,series:o,item:j,iidxBase:n,isLineType:h,linesUnselectMode:q.linesUnselectMode||l.linesUnselectMode};var c=this._getColors(p,o,n||j,this._getGroupGradientType(p));var d=c.fillColorSelected;if(h){d="none"}var f=this._getSerieSettings(p,o);var e=(m=="symbol")?c.lineColorSymbolSelected:c.lineColorSelected;d=(m=="symbol")?c.fillColorSymbolSelected:d;var k=(m=="symbol")?1:f.stroke;if(this.renderer.getAttr(i,"fill")==c.fillColorAlt){d=c.fillColorAltSelected}this.renderer.attr(i,{stroke:e,fill:d,"stroke-width":k});if(l.type.indexOf("pie")!=-1||l.type.indexOf("donut")!=-1){this._applyPieSelect()}this._raiseItemEvent("mouseover",l,q,j)},_applyPieSelect:function(){var d=this;d._createAnimationGroup("animPieSlice");var f=this._selected;if(!f){return}var h=this.getItemCoord(f.group,f.series,f.item);if(!h){return}var e=this._getRenderInfo(f.group,f.series,f.item);var c={element:e,coord:h};this._enqueueAnimation("animPieSlice",undefined,undefined,300,function(k,i,l){var n=i.coord;var j=n.selectedRadiusChange*l;var m=d.renderer.pieSlicePath(n.center.x,n.center.y,n.innerRadius==0?0:(n.innerRadius+j),n.outerRadius+j,n.fromAngle,n.toAngle,n.centerOffset);d.renderer.attr(i.element.element,{d:m});d._showPieLabel(f.group,f.series,f.item,undefined,j)},c);d._startAnimation("animPieSlice")},_applyPieUnselect:function(){this._stopAnimations();var c=this._selected;if(!c){return}var e=this.getItemCoord(c.group,c.series,c.item);if(!e||!e.center){return}var d=this.renderer.pieSlicePath(e.center.x,e.center.y,e.innerRadius,e.outerRadius,e.fromAngle,e.toAngle,e.centerOffset);this.renderer.attr(c.element,{d:d});this._showPieLabel(c.group,c.series,c.item,undefined,0)},_unselect:function(){var p=this;if(p._selected){var o=p._selected.group;var n=p._selected.series;var h=p._selected.item;var l=p._selected.iidxBase;var k=p._selected.type;var j=p.seriesGroups[o];var q=j.series[n];var f=j.type.indexOf("line")!=-1&&j.type.indexOf("area")==-1;var c=p._getColors(o,n,l||h,p._getGroupGradientType(o));var d=c.fillColor;if(f){d="none"}var e=p._getSerieSettings(o,n);var m=(k=="symbol")?c.lineColorSymbol:c.lineColor;d=(k=="symbol")?c.fillColorSymbol:d;if(this.renderer.getAttr(p._selected.element,"fill")==c.fillColorAltSelected){d=c.fillColorAlt}var i=(k=="symbol")?1:e.stroke;p.renderer.attr(p._selected.element,{stroke:m,fill:d,"stroke-width":i});if(j.type.indexOf("pie")!=-1||j.type.indexOf("donut")!=-1){this._applyPieUnselect()}p._selected=undefined;if(!isNaN(h)){p._raiseItemEvent("mouseout",j,q,h)}}if(p._pointMarker){if(p._pointMarker.element){p.renderer.removeElement(p._pointMarker.element);p._pointMarker.element=undefined}p._pointMarker=undefined;p._hideCrosshairs()}},_raiseItemEvent:function(h,i,f,d){var e=f[h]||i[h];var j=0;for(;j=1){d*=10}else{d/=10}for(var f=1;fMath.abs(j[f]*d-m)){n=f}else{break}}}while(n==j.length-1);return j[n]*d},_renderDataClone:function(){if(!this._renderData||this._isToggleRefresh){return}var e=this._elementRenderInfo=[];if(this._isSelectorRefresh){return}for(var k=0;k=this._renderData.length){return}var f=this.seriesGroups[e];var d=this._renderData[e].xAxis;if(!d){return}if(f.xAxis==undefined){for(var c=0;c<=e;c++){if(this.seriesGroups[c].xAxis==undefined){break}}d=this._renderData[c].xAxis}return d},getXAxisDataPointOffset:function(l,n){var m=this.seriesGroups[n];if(isNaN(l)){return NaN}renderData=this._getXAxisRenderData(n);if(!renderData){return NaN}var h=renderData.data.axisStats;var k=h.min.valueOf();var c=h.max.valueOf();var i=c-k;if(i==0){i=1}if(l.valueOf()>c||l.valueOf()aj.max){u=aj.max}if(u=u)?ak:ag}else{M=Z[af]}}var ai=P*(M-u);if(N){ai=P*(M-at)}if(I&&ar){if(!ap[af]){ap[af]=true;ai=P*(M-u)}else{ai=P*M}}if(R){while(o.length<=af){o.push({p:{value:0,height:0},n:{value:0,height:0}})}var E=(N||N)?at:u;var ad=M>E?o[af].p:o[af].n;ad.value+=M;if(e){M=ad.value/(aj.psums[af]+aj.nsums[af])*100;ai=(a.jqx.log(M,Q)-aj.minPow)*P}else{ai=a.jqx.log(ad.value,Q)-a.jqx.log(E,Q);ai*=P}ai-=ad.height;ad.height+=ai}var U=al;if(N){var w=0;if(R){w=(a.jqx.log(at,Q)-a.jqx.log(u,Q))*P}else{w=(at-u)*P}U+=D?w:-w}if(I){if(e&&!R){var B=(aj.psums[af]-aj.nsums[af]);if(M>u){ai=(aj.psums[af]/B)*d;if(aj.psums[af]!=0){ai*=M/aj.psums[af]}}else{ai=(aj.nsums[af]/B)*d;if(aj.nsums[af]!=0){ai*=M/aj.nsums[af]}}}if(ar){if(isNaN(L[af])){L[af]=U}U=L[af]}}if(isNaN(V[af])){V[af]=0}var ah=V[af];ai=Math.abs(ai);var Y=ai;if(ai>=1){h_new=this._isVML?Math.round(ai):a.jqx._ptrnd(ai)-1;if(Math.abs(ai-h_new)>0.5){ai=Math.round(ai)}else{ai=h_new}}ah+=ai-Y;if(!I){ah=0}if(Math.abs(ah)>0.5){if(ah>0){ai-=1;ah-=1}else{ai+=1;ah+=1}}V[af]=ah;if(ae==C.series.length-1&&e){var A=0;for(var aa=0;aa0.5){ai=a.jqx._ptrnd(ai+d-A)}else{var aa=ae-1;while(aa>=0){var J=Math.abs(W[aa][af].to-W[aa][af].from);if(J>1){if(W[aa][af].from>W[aa][af].to){W[aa][af].from+=d-A}break}aa--}}}}if(D){ai*=-1}var T=MM}var p=isNaN(at)?M:{from:at,to:M};if(T){if(ar){L[af]+=ai}W[ae][af]={from:U,to:U+ai,value:p,valueRadius:l}}else{if(ar){L[af]-=ai}W[ae][af]={from:U,to:U-ai,value:p,valueRadius:l}}}}var z=this._renderData[n];z.baseOffset=al;z.gbase=u;z.logBase=R?Q:NaN;z.scale=P;z.offsets=!ac?W:this._applyWaterfall(W,v,n,al,u,R?Q:NaN,P,D,I);z.xoffsets=this._calculateXOffsets(n,O.width);return this._renderData[n]},_isPercent:function(c){return(typeof(c)==="string"&&c.length>0&&c.indexOf("%")==c.length-1)},_calcPieSeriesGroupOffsets:function(f,c){var C=this;var o=this._getDataLen(f);var p=this.seriesGroups[f];var D=this._renderData[f]={};var J=D.offsets=[];for(var F=0;F360){H=0}var P=this._get([w.maxAngle,w.endAngle]);if(isNaN(P)||P<0||P>360){P=360}var h=P-H;var q=w.initialAngle||0;if(qP){q=P}var d=w.centerOffset||0;var N=a.jqx.getNum([w.offsetX,p.offsetX,c.width/2]);var M=a.jqx.getNum([w.offsetY,p.offsetY,c.height/2]);var B=Math.min(c.width,c.height)/2;var A=q;var j=w.radius;if(C._isPercent(j)){j=parseFloat(j)/100*B}if(isNaN(j)){j=B*0.4}var n=w.innerRadius;if(C._isPercent(n)){n=parseFloat(n)/100*B}if(isNaN(n)||n>=j){n=0}var e=w.selectedRadiusChange;if(C._isPercent(e)){e=parseFloat(e)/100*(j-n)}if(isNaN(e)){e=0.1*(j-n)}J.push([]);var k=0;var l=0;for(var I=0;I0){k+=O}else{l+=O}}var v=k-l;if(v==0){v=1}for(var I=0;Ie){break}var d=this._estAxisInterval(m,s,t,e,q[n].key,k);var f=this._getDTIntCnt(m,s,d,q[n].key);if(c==-1||c=s){s=A}}if(d&&((!c&&e==m)||(c&&C==m))){l=false}if(l){f=0;s=Math.max(0,m-1)}if(isNaN(B)){B=f}if(isNaN(F)){F=s}if(c){if(!this._isDate(B)){B=this._isDate(F)?F:new Date()}if(!this._isDate(F)){F=this._isDate(B)?B:new Date()}}else{if(isNaN(B)){B=0}if(isNaN(F)){F=l?Math.max(0,m-1):B}}if(f==undefined){f=B}if(s==undefined){s=F}var u=o.rangeSelector;if(u){var v=u.minValue||B;if(v&&c){v=this._castAsDate(v,u.dateFormat||o.dateFormat)}var z=u.maxValue||F;if(z&&c){z=this._castAsDate(z,u.dateFormat||o.rangeSelector)}if(Bz){B=v}if(F>z){F=z}}var H=o.unitInterval;var w,I;if(c){w=o.baseUnit;if(!w){w=this._getBestDTUnit(B,F,h,G)}I=w=="hour"||w=="minute"||w=="second"||w=="millisecond"}var H=o.unitInterval;if(isNaN(H)||H<=0){H=this._estAxisInterval(B,F,h,G,w)}var D={min:B,max:F};var n=this.seriesGroups[h];if(!c&&(n.polar||n.spider)){B=a.jqx._rnd(B,H,false);F=a.jqx._rnd(F,H,true)}return{min:B,max:F,dsRange:{min:f,max:s},filterRange:D,useIndeces:l,isDateTime:c,isTimeUnit:I,dateTimeUnit:w,interval:H}},_getDefaultDTFormatFn:function(e){var c=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];var d;if(e=="year"||e=="month"||e=="day"){d=function(f){return f.getDate()+"-"+c[f.getMonth()]+"-"+f.getFullYear()}}else{d=function(f){return f.getDate()+"-"+c[f.getMonth()]+"-"+f.getFullYear()+"
              "+f.getHours()+":"+f.getMinutes()+":"+f.getSeconds()}}return d},_getDTIntCnt:function(h,d,e,k){var f=0;var i=new Date(h);var j=new Date(d);if(e<=0){return 1}while(i.valueOf()0)?d:50);if(this._renderData&&this._renderData.length>o&&this._renderData[o].xAxis&&!isNaN(this._renderData[o].xAxis.avgWidth)){var q=Math.max(1,this._renderData[o].xAxis.avgWidth);if(q!=0&&isNaN(d)){h=0.9*c/q}}if(h<=1){return Math.abs(k-f)}var p=0;while(true){var n=j>=e.length?Math.pow(10,3+j-e.length):e[j];if(this._isDate(f)&&this._isDate(k)){p=this._getDTIntCnt(f,k,n,l)}else{p=(k-f)/n}if(p<=h){break}j++}var m=this.seriesGroups[o];if(m.spider||m.polar){if(2*n>k-f){n=k-f}}return n},_getPaddingSize:function(n,f,h,d,p,i,q){var j=n.min;var l=n.max;var c=n.interval;var e=n.dateTimeUnit;if(p){var m=(d/Math.max(1,l-j+c))*c;if(i){return{left:0,right:m}}else{if(h){return{left:0,right:0}}return{left:m/2,right:m/2}}}if(h&&!q){return{left:0,right:0}}if(this._isDate(j)&&this._isDate(l)){var o=this._getDTIntCnt(j,l,Math.min(c,l-j),e);var k=d/Math.max(2,o);return{left:k/2,right:k/2}}var o=Math.max(1,l-j);if(o==1){sz=d/4;return{left:sz,right:sz}}var k=d/(o+1);return{left:k/2,right:k/2}},_calculateXOffsets:function(f,G){var F=this.seriesGroups[f];var o=this._getXAxis(f);var z=[];var m=[];var n=this._getDataLen(f);var e=this._getXAxisStats(f,o,G);var w=e.min;var D=e.max;var c=e.isDateTime;var H=e.isTimeUnit;var E=this._hasColumnSeries();var d=F.polar||F.spider;var A=this._get([F.startAngle,F.minAngle,0]);var u=this._get([F.endAngle,F.maxAngle,360]);var q=d&&!(Math.abs(Math.abs(u-A)-360)>0.0001);var l=this._alignValuesWithTicks(f);var t=this._getPaddingSize(e,o,l,G,d,q,E);var J=D-w;var C=e.filterRange;if(J==0){J=1}var I=G-t.left-t.right;if(d&&l){t.left=t.right=0}var j=-1,p=-1;for(var B=0;BC.max){z.push(NaN);m.push(undefined);continue}z.push(a.jqx._ptrnd(t.left+(B-w)/J*I));m.push(v);if(j==-1){j=B}if(p==-1||pC.max){z.push(NaN);m.push(undefined);continue}var s=0;if(!c||(c&&H)){diffFromMin=v-w;s=(v-w)*I/J}else{s=(v.valueOf()-w.valueOf())/(D.valueOf()-w.valueOf())*I}s=a.jqx._ptrnd(t.left+s);z.push(s);m.push(v);if(j==-1){j=B}if(p==-1||pthis.samplingThreshold){this._sampleXOffsets(G,z,m,j,p)}return{axisStats:e,data:z,xvalues:m,first:j,last:p,length:p==-1?0:p-j+1,itemWidth:h,intervalWidth:h*e.interval,rangeLength:J,useIndeces:e.useIndeces,padding:t,axisSize:I}},_sampleXOffsets:function(k,e,c,j,f){var f=NaN;for(var d=0;dl.colors.length){o-=l.colors.length;if(++h>=this.colorSchemes.length){h=0}l=this.colorSchemes[h]}e=l.colors[o%l.colors.length]}}}return e},_createColorsCache:function(){this._colorsCache={get:function(c){if(this._store[c]){return this._store[c]}},set:function(d,c){if(this._size<10000){this._store[d]=c;this._size++}},clear:function(){this._store={};this._size=0},_size:0,_store:{}}},_getSeriesColorsInternal:function(n,e,c){var h=this.seriesGroups[n];var p=h.series[e];if(!a.isFunction(p.colorFunction)&&h.type!="pie"&&h.type!="donut"){c=NaN}var i=n+"_"+e+"_"+(isNaN(c)?"NaN":c);if(this._colorsCache.get(i)){return this._colorsCache.get(i)}var d={lineColor:"#222222",lineColorSelected:"#151515",lineColorSymbol:"#222222",lineColorSymbolSelected:"#151515",fillColor:"#222222",fillColorSelected:"#333333",fillColorSymbol:"#222222",fillColorSymbolSelected:"#333333",fillColorAlt:"#222222",fillColorAltSelected:"#333333"};var j;if(a.isFunction(p.colorFunction)){var k=!isNaN(c)?this._getDataValue(c,p.dataField,n):NaN;if(h.type.indexOf("range")!=-1&&!isNaN(c)){var f=this._getDataValue(c,p.dataFieldFrom,n);var m=this._getDataValue(c,p.dataFieldTo,n);k={from:f,to:m}}j=p.colorFunction(k,c,p,h);if(typeof(j)=="object"){for(var l in j){d[l]=j[l]}}else{d.fillColor=j}}else{for(var l in d){if(p[l]){d[l]=p[l]}}if(!p.fillColor&&!p.color){d.fillColor=this._getColorFromScheme(n,e,c)}else{p.fillColor=p.fillColor||p.color}}var o={fillColor:{baseColor:"fillColor",adjust:1},fillColorSelected:{baseColor:"fillColor",adjust:1.1},fillColorSymbol:{baseColor:"fillColor",adjust:1},fillColorSymbolSelected:{baseColor:"fillColorSymbol",adjust:2},fillColorAlt:{baseColor:"fillColor",adjust:4},fillColorAltSelected:{baseColor:"fillColor",adjust:3},lineColor:{baseColor:"fillColor",adjust:0.95},lineColorSelected:{baseColor:"lineColor",adjust:0.95},lineColorSymbol:{baseColor:"lineColor",adjust:1},lineColorSymbolSelected:{baseColor:"lineColorSelected",adjust:1}};for(var l in d){if(typeof(j)!="object"||!j[l]){if(p[l]){d[l]=p[l]}}}for(var l in d){if(typeof(j)!="object"||!j[l]){if(!p[l]){d[l]=a.jqx.adjustColor(d[o[l].baseColor],o[l].adjust)}}}this._colorsCache.set(i,d);return d},_getItemColorFromScheme:function(e,h,m,l){if(e==undefined||e==""){e=this.colorSchemes[0].name}for(var k=0;k0){var w=0;for(var c in p){if(w>0&&n!=""){n+="
              "}var u="dataField"+(c.length>0?c.substring(0,1).toUpperCase()+c.substring(1):"");var t="displayText"+(c.length>0?c.substring(0,1).toUpperCase()+c.substring(1):"");var z=o[t]||o[u];var d=p[c];if(undefined!=d){d=this._formatValue(d,k,l,h,j,C)}else{continue}if(m===true){n+=d}else{n+=z+": "+d}w++}}else{if(undefined!=p){n=this._formatValue(p,k,l,h,j,C)}}return n||""},_isNumberAsString:function(e){if(typeof(e)!="string"){return false}e=a.trim(e);for(var c=0;c="0"&&d<="9")||d==","||d=="."){continue}if(d=="-"&&c==0){continue}if((d=="("&&c==0)||(d==")"&&c==e.length-1)){continue}return false}return true},_castAsDate:function(h,d){if(h instanceof Date&&!isNaN(h)){return h}if(typeof(h)=="string"){var c;if(d){c=a.jqx.dataFormat.parsedate(h,d);if(this._isDate(c)){return c}}if(this._autoDateFormats){for(var f=0;f0){if(c<0){e+=t;c=e.length-1}else{if(t!=="."){e=e.replace(".",t)}}while((e.length-1-c)-1)?c:e.length;var h=e.substring(c);var d=0;for(var l=c;l>0;l--,d++){if((d%3===0)&&(l!==c)&&(!j||(l>1)||(j&&n))){h=q+h}h=e.charAt(l-1)+h}e=h;if(j&&n){e="("+e+")"}return o+e+s},_defaultNumberFormat:{prefix:"",sufix:"",decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,negativeWithBrackets:false},_calculateControlPoints:function(i,h){var f=i[h],o=i[h+1],e=i[h+2],l=i[h+3],d=i[h+4],k=i[h+5];var n=0.4;var q=Math.sqrt(Math.pow(e-f,2)+Math.pow(l-o,2));var c=Math.sqrt(Math.pow(d-e,2)+Math.pow(k-l,2));var j=(q+c);if(j==0){j=1}var p=n*q/j;var m=n-p;return[e+p*(f-d),l+p*(o-k),e-m*(f-d),l-m*(o-k)]},_getBezierPoints:function(e){var d="";var k=[],f=[];var j=e.split(" ");for(var h=0;h=4&&(Math.abs(k[c-2]-k[c-4])<3||Math.abs(k[c-1]-k[c-3])<3||this._isVML)){d+=" L"+a.jqx._ptrnd(k[c-2])+","+a.jqx._ptrnd(k[c-1])+" "}else{if(c>=5){d+=" Q"+a.jqx._ptrnd(f[c*2-10])+","+a.jqx._ptrnd(f[c*2-9])+" "+a.jqx._ptrnd(k[c-2])+","+a.jqx._ptrnd(k[c-1])+" "}}return d},_animTickInt:50,_createAnimationGroup:function(c){if(!this._animGroups){this._animGroups={}}this._animGroups[c]={animations:[],startTick:NaN}},_startAnimation:function(e){var f=new Date();var c=f.getTime();this._animGroups[e].startTick=c;this._runAnimation();this._enableAnimTimer()},_enqueueAnimation:function(f,e,d,i,h,c,j){if(i<0){i=0}if(j==undefined){j="easeInOutSine"}this._animGroups[f].animations.push({key:e,properties:d,duration:i,fn:h,context:c,easing:j})},_stopAnimations:function(){clearTimeout(this._animtimer);this._animtimer=undefined;this._animGroups=undefined},_enableAnimTimer:function(){if(!this._animtimer){var c=this;this._animtimer=setTimeout(function(){c._runAnimation()},this._animTickInt)}},_runAnimation:function(t){if(this._animGroups){var w=new Date();var l=w.getTime();var s={};for(var n in this._animGroups){var v=this._animGroups[n].animations;var o=this._animGroups[n].startTick;var k=0;for(var q=0;qk){k=z.duration}var u=z.duration>0?c/z.duration:1;var m=u;if(z.easing&&z.duration!=0){m=a.easing[z.easing](u,c,0,1,z.duration)}if(u>1){u=1;m=1}if(z.fn){z.fn(z.key,z.context,m);continue}var h={};for(var n=0;nl){s[n]=({startTick:o,animations:v})}}this._animGroups=s;if(this.renderer instanceof a.jqx.HTML5Renderer){this.renderer.refresh()}}this._animtimer=null;for(var n in this._animGroups){this._enableAnimTimer();break}},_fixCoords:function(e,f){var c=this.seriesGroups[f].orientation=="horizontal";if(!c){return e}var d=e.x;e.x=e.y;e.y=d+this._plotRect.y-this._plotRect.x;var d=e.width;e.width=e.height;e.height=d;return e},getItemCoord:function(c,e,w){var l=this;if(l._isPieGroup(c)&&(!l._isSerieVisible(c,e,w)||!l._renderData||l._renderData.length<=c)){return{x:NaN,y:NaN}}if(!l._isSerieVisible(c,e)||!l._renderData||l._renderData.length<=c){return{x:NaN,y:NaN}}var t=l.seriesGroups[c];var k=t.series[e];var p=l._getItemCoord(c,e,w);if(l._isPieGroup(c)){if(isNaN(p.x)||isNaN(p.y)||isNaN(p.fromAngle)||isNaN(p.toAngle)){return{x:NaN,y:NaN}}var j=this._plotRect;var q=p.fromAngle*(Math.PI/180);var f=p.toAngle*(Math.PI/180);x1=j.x+p.center.x+Math.cos(q)*p.outerRadius;x2=j.x+p.center.x+Math.cos(f)*p.outerRadius;y1=j.y+p.center.y-Math.sin(q)*p.outerRadius;y2=j.y+p.center.y-Math.sin(f)*p.outerRadius;var i=Math.min(x1,x2);var n=Math.abs(x2-x1);var h=Math.min(y1,y2);var m=Math.abs(y2-y1);p={x:i,y:h,width:n,height:m,center:p.center,centerOffset:p.centerOffset,innerRadius:p.innerRadius,outerRadius:p.outerRadius,selectedRadiusChange:p.selectedRadiusChange,fromAngle:p.fromAngle,toAngle:p.toAngle};return p}if(t.type.indexOf("column")!=-1||t.type.indexOf("waterfall")!=-1){var z=this._getColumnSerieWidthAndOffset(c,e);p.height=Math.abs(p.y.to-p.y.from);p.y=Math.min(p.y.to,p.y.from);p.x+=z.offset;p.width=z.width}else{if(t.type.indexOf("ohlc")!=-1||t.type.indexOf("candlestick")!=-1){var z=this._getColumnSerieWidthAndOffset(c,e);var h=p.y;var v=Math.min(h.Open,h.Close,h.Low,h.High);var u=Math.max(h.Open,h.Close,h.Low,h.High);p.height=Math.abs(u-v);p.y=v;p.x+=z.offset;p.width=z.width}else{if(t.type.indexOf("line")!=-1||t.type.indexOf("area")!=-1){p.width=p.height=0;p.y=p.y.to}else{if(t.type.indexOf("bubble")!=-1||t.type.indexOf("scatter")!=-1){p.center={x:p.x,y:p.y.to};var d=p.y.radius;if(k.symbolType!="circle"&&k.symbolType!=undefined){d/=2}p.y=p.y.to;p.radius=d;p.width=2*d;p.height=2*d}}}}p=this._fixCoords(p,c);if(t.polar||t.spider){var o=this._toPolarCoord(this._renderData[c].polarCoords,this._plotRect,p.x,p.y);p.x=o.x;p.y=o.y;if(p.center){p.center=this._toPolarCoord(this._renderData[c].polarCoords,this._plotRect,p.center.x,p.center.y)}}if(t.type.indexOf("bubble")!=-1||t.type.indexOf("scatter")!=-1){p.x-=d;p.y-=d}return p},_getItemCoord:function(p,k,c){var f=this.seriesGroups[p],m,l;if(!f||!this._renderData){return{x:NaN,y:NaN}}var h=f.series[k];if(!h){return{x:NaN,y:NaN}}var j=this._plotRect;if(this._isPieGroup(p)){var n=this._renderData[p].offsets[k][c];if(!n){return{x:NaN,y:NaN}}var d=(n.fromAngle+n.toAngle)/2*(Math.PI/180);m=j.x+n.x+Math.cos(d)*n.outerRadius;l=j.y+n.y-Math.sin(d)*n.outerRadius;return{x:m,y:l,center:{x:n.x,y:n.y},centerOffset:n.centerOffset,innerRadius:n.innerRadius,outerRadius:n.outerRadius,selectedRadiusChange:n.selectedRadiusChange,fromAngle:n.fromAngle,toAngle:n.toAngle}}else{m=j.x+this._renderData[p].xoffsets.data[c];l=this._renderData[p].offsets[k][c];if(isNaN(m)||!l){return{x:NaN,y:NaN}}}var o={};for(var e in l){o[e]=l[e]}return{x:m,y:o}},_detectDateFormat:function(k,f){var e={en_US_d:"M/d/yyyy",en_US_D:"dddd, MMMM dd, yyyy",en_US_t:"h:mm tt",en_US_T:"h:mm:ss tt",en_US_f:"dddd, MMMM dd, yyyy h:mm tt",en_US_F:"dddd, MMMM dd, yyyy h:mm:ss tt",en_US_M:"MMMM dd",en_US_Y:"yyyy MMMM",en_US_S:"yyyy\u0027-\u0027MM\u0027-\u0027dd\u0027T\u0027HH\u0027:\u0027mm\u0027:\u0027ss",en_CA_d:"dd/MM/yyyy",en_CA_D:"MMMM-dd-yy",en_CA_f:"MMMM-dd-yy h:mm tt",en_CA_F:"MMMM-dd-yy h:mm:ss tt",ISO:"yyyy-MM-dd hh:mm:ss",ISO2:"yyyy-MM-dd HH:mm:ss",d1:"dd.MM.yyyy",d2:"dd-MM-yyyy",zone1:"yyyy-MM-ddTHH:mm:ss-HH:mm",zone2:"yyyy-MM-ddTHH:mm:ss+HH:mm",custom:"yyyy-MM-ddTHH:mm:ss.fff",custom2:"yyyy-MM-dd HH:mm:ss.fff",de_DE_d:"dd.MM.yyyy",de_DE_D:"dddd, d. MMMM yyyy",de_DE_t:"HH:mm",de_DE_T:"HH:mm:ss",de_DE_f:"dddd, d. MMMM yyyy HH:mm",de_DE_F:"dddd, d. MMMM yyyy HH:mm:ss",de_DE_M:"dd MMMM",de_DE_Y:"MMMM yyyy",fr_FR_d:"dd/MM/yyyy",fr_FR_D:"dddd d MMMM yyyy",fr_FR_t:"HH:mm",fr_FR_T:"HH:mm:ss",fr_FR_f:"dddd d MMMM yyyy HH:mm",fr_FR_F:"dddd d MMMM yyyy HH:mm:ss",fr_FR_M:"d MMMM",fr_FR_Y:"MMMM yyyy",it_IT_d:"dd/MM/yyyy",it_IT_D:"dddd d MMMM yyyy",it_IT_t:"HH:mm",it_IT_T:"HH:mm:ss",it_IT_f:"dddd d MMMM yyyy HH:mm",it_IT_F:"dddd d MMMM yyyy HH:mm:ss",it_IT_M:"dd MMMM",it_IT_Y:"MMMM yyyy",ru_RU_d:"dd.MM.yyyy",ru_RU_D:"d MMMM yyyy '?.'",ru_RU_t:"H:mm",ru_RU_T:"H:mm:ss",ru_RU_f:"d MMMM yyyy '?.' H:mm",ru_RU_F:"d MMMM yyyy '?.' H:mm:ss",ru_RU_Y:"MMMM yyyy",cs_CZ_d:"d.M.yyyy",cs_CZ_D:"d. MMMM yyyy",cs_CZ_t:"H:mm",cs_CZ_T:"H:mm:ss",cs_CZ_f:"d. MMMM yyyy H:mm",cs_CZ_F:"d. MMMM yyyy H:mm:ss",cs_CZ_M:"dd MMMM",cs_CZ_Y:"MMMM yyyy",he_IL_d:"dd MMMM yyyy",he_IL_D:"dddd dd MMMM yyyy",he_IL_t:"HH:mm",he_IL_T:"HH:mm:ss",he_IL_f:"dddd dd MMMM yyyy HH:mm",he_IL_F:"dddd dd MMMM yyyy HH:mm:ss",he_IL_M:"dd MMMM",he_IL_Y:"MMMM yyyy",hr_HR_d:"d.M.yyyy.",hr_HR_D:"d. MMMM yyyy.",hr_HR_t:"H:mm",hr_HR_T:"H:mm:ss",hr_HR_f:"d. MMMM yyyy. H:mm",hr_HR_F:"d. MMMM yyyy. H:mm:ss",hr_HR_M:"d. MMMM",hu_HU_d:"yyyy.MM.dd.",hu_HU_D:"yyyy. MMMM d.",hu_HU_t:"H:mm",hu_HU_T:"H:mm:ss",hu_HU_f:"yyyy. MMMM d. H:mm",hu_HU_F:"yyyy. MMMM d. H:mm:ss",hu_HU_M:"MMMM d.",hu_HU_Y:"yyyy. MMMM",jp_JP_d:"gg y/M/d",jp_JP_D:"gg y'?'M'?'d'?'",jp_JP_t:"H:mm",jp_JP_T:"H:mm:ss",jp_JP_f:"gg y'?'M'?'d'?' H:mm",jp_JP_F:"gg y'?'M'?'d'?' H:mm:ss",jp_JP_M:"M'?'d'?'",jp_JP_Y:"gg y'?'M'?'",lt_LT_d:"yyyy.MM.dd",lt_LT_D:"yyyy 'm.' MMMM d 'd.'",lt_LT_t:"HH:mm",lt_LT_T:"HH:mm:ss",lt_LT_f:"yyyy 'm.' MMMM d 'd.' HH:mm",lt_LT_F:"yyyy 'm.' MMMM d 'd.' HH:mm:ss",lt_LT_M:"MMMM d 'd.'",lt_LT_Y:"yyyy 'm.' MMMM",sa_IN_d:"dd-MM-yyyy",sa_IN_D:"dd MMMM yyyy dddd",sa_IN_t:"HH:mm",sa_IN_T:"HH:mm:ss",sa_IN_f:"dd MMMM yyyy dddd HH:mm",sa_IN_F:"dd MMMM yyyy dddd HH:mm:ss",sa_IN_M:"dd MMMM",basic_y:"yyyy",basic_ym:"yyyy-MM",basic_d:"yyyy-MM-dd",basic_dhm:"yyyy-MM-dd hh:mm",basic_bhms:"yyyy-MM-dd hh:mm:ss",basic2_ym:"MM-yyyy",basic2_d:"MM-dd-yyyy",basic2_dhm:"MM-dd-yyyy hh:mm",basic2_dhms:"MM-dd-yyyy hh:mm:ss",basic3_ym:"yyyy/MM",basic3_d:"yyyy/MM/dd",basic3_dhm:"yyyy/MM/dd hh:mm",basic3_bhms:"yyyy/MM/dd hh:mm:ss",basic4_ym:"MM/yyyy",basic4_d:"MM/dd/yyyy",basic4_dhm:"MM/dd/yyyy hh:mm",basic4_dhms:"MM/dd/yyyy hh:mm:ss"};if(f){e=a.extend({},e,f)}var d=[];if(!a.isArray(k)){d.push(k)}else{d=k}for(var h in e){e[h]={format:e[h],count:0}}for(var l=0;lm.count){m.key=h;m.count=e[h].count}}return m.key?e[m.key].format:""},_testXAxisDateFormat:function(k){var m=this;var e=m._getXAxis(k);var d=m._getDataLen(k);var f={};if(m.localization&&m.localization.patterns){for(var l in m.localization.patterns){f["local_"+l]=m.localization.patterns[l]}}var j=[];for(var h=0;h
              ");c.css({background:t,opacity:0.1,left:o.x,top:o.y,width:o.width,height:o.height});c.appendTo(n);while(this._sliders.length
              ";var d="
              ";var j="
              ";this._sliders[u]={element:c,host:n,_sliderInitialAbsoluteRect:{x:c.coord().left,y:c.coord().top,width:o.width,height:o.height},_hostInitialAbsolutePos:{x:n.coord().left,y:n.coord().top},getRect:function(){return{x:this.host.coord().left-this._hostInitialAbsolutePos.x+this._sliderInitialAbsoluteRect.x,y:this.host.coord().top-this._hostInitialAbsolutePos.y+this._sliderInitialAbsoluteRect.y,width:this._sliderInitialAbsoluteRect.width,height:this._sliderInitialAbsoluteRect.height}},rect:o,left:a(l),right:a(l),leftTop:a(d),rightTop:a(d),leftBorder:a(d),leftBar:a(j),rightBorder:a(d),rightBar:a(j)};this._sliders[u].left.appendTo(n);this._sliders[u].right.appendTo(n);this._sliders[u].leftTop.appendTo(n);this._sliders[u].rightTop.appendTo(n);this._sliders[u].leftBorder.appendTo(n);this._sliders[u].rightBorder.appendTo(n);this._sliders[u].leftBar.appendTo(n);this._sliders[u].rightBar.appendTo(n);var s=this._renderData[u].xAxis;var f=s.data.axisStats;var q=f.min.valueOf();var h=f.max.valueOf();var k=this._valueToOffset(u,q);var m=this._valueToOffset(u,h);if(k>m){var e=m;m=k;k=e}if(this.seriesGroups[u].orientation!="horizontal"){c.css({left:Math.round(o.x+k),top:o.y,width:Math.round(m-k),height:o.height})}else{c.css({top:Math.round(o.y+k),left:o.x,height:Math.round(m-k),width:o.width})}this._setSliderPositions(u,k,m)},_setSliderPositions:function(f,t,i){var v=this.seriesGroups[f];var e=this._getXAxis(f);var p=e.rangeSelector;var c=v.orientation=="horizontal";if(e.rangeSelector.renderTo){c=false}var k=e.position;if(p.renderTo&&p.position){k=p.position}var m=(c&&k=="right")||(!c&&k=="top");var o=this._sliders[f];var s=c?"top":"left";var h=c?"left":"top";var j=c?"height":"width";var q=c?"width":"height";var l=c?"y":"x";var n=c?"x":"y";var d=o.rect;o.left.css(s,d[l]);o.left.css(h,d[n]);o.left.css(j,t);o.left.css(q,d[q]);o.right.css(s,d[l]+i);o.right.css(h,d[n]);o.right.css(j,d[j]-i+1);o.right.css(q,d[q]);o.leftTop.css(s,d[l]);o.leftTop.css(h,d[n]+(((c&&k=="right")||(!c&&k!="top"))?0:d[q]));o.leftTop.css(j,t);o.leftTop.css(q,1);o.rightTop.css(s,d[l]+i);o.rightTop.css(h,d[n]+(((c&&k=="right")||(!c&&k!="top"))?0:d[q]));o.rightTop.css(j,d[j]-i+1);o.rightTop.css(q,1);o.leftBorder.css(s,d[l]+t);o.leftBorder.css(h,d[n]);o.leftBorder.css(j,1);o.leftBorder.css(q,d[q]);var u=d[q]/4;if(u>20){u=20}if(u<3){u=3}o.leftBar.css(s,d[l]+t-3);o.leftBar.css(h,d[n]+d[q]/2-u/2);o.leftBar.css(j,5);o.leftBar.css(q,u);o.rightBorder.css(s,d[l]+i);o.rightBorder.css(h,d[n]);o.rightBorder.css(j,1);o.rightBorder.css(q,d[q]);o.rightBar.css(s,d[l]+i-3);o.rightBar.css(h,d[n]+d[q]/2-u/2);o.rightBar.css(j,5);o.rightBar.css(q,u)},_resizeState:{},_onSliderMouseDown:function(e){e.stopImmediatePropagation();e.stopPropagation();var c=e.data.self;var d=c._sliders[e.data.groupIndex];if(!d){return}if(c._resizeState.state==undefined){c._testAndSetReadyResize(e)}if(c._resizeState.state!="ready"){return}a.jqx._rangeSelectorTarget=c;c._resizeState.state="resizing"},_valueToOffset:function(o,m){var n=this.seriesGroups[o];var e=this._sliders[o];var d=e.host.jqxChart("getInstance");var p=d._renderData[0].xAxis;var i=p.data.axisStats;var l=i.min.valueOf();var c=i.max.valueOf();var j=c-l;if(j==0){j=1}var f=this._getXAxis(o);var h=n.orientation=="horizontal"?"height":"width";var k=(m.valueOf()-l)/j;return e.getRect()[h]*(f.flip?(1-k):k)},_offsetToValue:function(q,h){var e=this._sliders[q];var p=this.seriesGroups[q];var f=this._getXAxis(q);var i=p.orientation=="horizontal"?"height":"width";var k=e.getRect()[i];if(k==0){k=1}var l=h/k;var d=e.host.jqxChart("getInstance");var o=d._renderData[0].xAxis;var j=o.data.axisStats;var m=j.min.valueOf();var c=j.max.valueOf();var n=h/k*(c-m)+m;if(f.flip==true){n=c-h/k*(c-m)}if(this._isDate(j.min)||this._isDate(j.max)){n=new Date(n)}else{if(f.dataField==undefined||j.useIndeces){n=Math.round(n)}if(nj.max){n=j.max}}return n},_onSliderMouseUp:function(s){var m=a.jqx._rangeSelectorTarget;if(!m){return}var i=s.data.groupIndex;var c=s.data.swapXY;var o=m._sliders[i];if(!o){return}if(m._resizeState.state!="resizing"){return}s.stopImmediatePropagation();s.stopPropagation();m._resizeState={};m.host.css("cursor","default");var j=!c?"left":"top";var d=!c?"width":"height";var q=!c?"x":"y";var p=o.element.coord()[j];var f=p+(!c?o.element.width():o.element.height());var e=o.getRect();var k=m._offsetToValue(i,p-e[q]);var t=m._offsetToValue(i,f-e[q]);var l=o.host.jqxChart("getInstance");var n=l._renderData[0].xAxis;var v=n.data.axisStats;if(!v.isTimeUnit&&(t.valueOf()-k.valueOf())>86400000){k.setHours(0,0,0,0);t.setDate(t.getDate()+1);t.setHours(0,0,0,0)}var h=m._getXAxis(i);if(h.flip){var u=k;k=t;t=u}m._selectorRange[i]={min:k,max:t};m._isSelectorRefresh=true;var w=m.enableAnimations;m._raiseEvent("rangeSelectionChanging",{instance:m,minValue:k,maxValue:t});m.enableAnimations=false;m.update();m.enableAnimations=w;m._raiseEvent("rangeSelectionChanged",{instance:m,minValue:k,maxValue:t})},_onSliderMouseMove:function(w){var q=w.data.self;var A=w.data.renderTo;var k=w.data.groupIndex;var t=q._sliders[k];var e=w.data.swapXY;if(!t){return}var h=t.getRect();var j=t.element;var B=a.jqx.position(w);var u=j.coord();var s=e?"left":"top";var o=!e?"left":"top";var i=e?"width":"height";var f=!e?"width":"height";var v=!e?"x":"y";if(q._resizeState.state=="resizing"){w.stopImmediatePropagation();w.stopPropagation();if(q._resizeState.side=="left"){var p=Math.round(B[o]-u[o]);var n=h[v];if(u[o]+p>=n&&u[o]+p<=n+h[f]){var l=parseInt(j.css(o));var d=Math.max(2,(e?j.height():j.width())-p);j.css(f,d);j.css(o,l+p)}}else{if(q._resizeState.side=="right"){var c=e?j.height():j.width();var p=Math.round(B[o]-u[o]-c);var n=h[v];if(u[o]+c+p>=n&&u[o]+p+c<=n+h[f]){var d=Math.max(2,c+p);j.css(f,d)}}else{if(q._resizeState.side=="move"){var c=e?j.height():j.width();var l=parseInt(j.css(o));var p=Math.round(B[o]-q._resizeState.startPos);if(u[o]+p>=h[v]&&u[o]+p+c<=h[v]+h[f]){q._resizeState.startPos=B[o];j.css(o,l+p)}}}}var z=parseInt(j.css(o))-t.rect[v];var m=z+(e?j.height():j.width());q._setSliderPositions(k,z,m)}else{q._testAndSetReadyResize(w)}},_testAndSetReadyResize:function(c){var t=c.data.self;var m=c.data.renderTo;var q=c.data.groupIndex;var d=t._sliders[q];var i=c.data.swapXY;var o=d.getRect();var f=d.element;var h=a.jqx.position(c);var j=f.coord();var l=i?"left":"top";var s=!i?"left":"top";var k=i?"width":"height";var n=!i?"width":"height";var e=!i?"x":"y";var p=t._isTouchDevice?30:5;if(h[l]>=j[l]&&h[l]<=j[l]+o[k]){if(Math.abs(h[s]-j[s])<=p){m.css("cursor",i?"row-resize":"col-resize");t._resizeState={state:"ready",side:"left"}}else{if(Math.abs(h[s]-j[s]-(!i?f.width():f.height()))<=p){m.css("cursor",i?"row-resize":"col-resize");t._resizeState={state:"ready",side:"right"}}else{if(h[s]+p>j[s]&&h[s]-p
              ");b.css({background:q,opacity:0.1,left:m.x,top:m.y,width:m.width,height:m.height});b.appendTo(l);while(this._sliders.length
              ";var c="
              ";var h="
              ";this._sliders[r]={element:b,host:l,_sliderInitialAbsoluteRect:{x:b.coord().left,y:b.coord().top,width:m.width,height:m.height},_hostInitialAbsolutePos:{x:l.coord().left,y:l.coord().top},getRect:function(){return{x:this.host.coord().left-this._hostInitialAbsolutePos.x+this._sliderInitialAbsoluteRect.x,y:this.host.coord().top-this._hostInitialAbsolutePos.y+this._sliderInitialAbsoluteRect.y,width:this._sliderInitialAbsoluteRect.width,height:this._sliderInitialAbsoluteRect.height}},rect:m,left:a(j),right:a(j),leftTop:a(c),rightTop:a(c),leftBorder:a(c),leftBar:a(h),rightBorder:a(c),rightBar:a(h)};this._sliders[r].left.appendTo(l);this._sliders[r].right.appendTo(l);this._sliders[r].leftTop.appendTo(l);this._sliders[r].rightTop.appendTo(l);this._sliders[r].leftBorder.appendTo(l);this._sliders[r].rightBorder.appendTo(l);this._sliders[r].leftBar.appendTo(l);this._sliders[r].rightBar.appendTo(l);var p=this._renderData[r].xAxis;var e=p.data.axisStats;var o=e.min.valueOf();var f=e.max.valueOf();var i=this._valueToOffset(r,o);var k=this._valueToOffset(r,f);if(i>k){var d=k;k=i;i=d}if(this.seriesGroups[r].orientation!="horizontal"){b.css({left:Math.round(m.x+i),top:m.y,width:Math.round(k-i),height:m.height})}else{b.css({top:Math.round(m.y+i),left:m.x,height:Math.round(k-i),width:m.width})}this._setSliderPositions(r,i,k)},_setSliderPositions:function(e,r,h){var t=this.seriesGroups[e];var d=this._getXAxis(e);var o=d.rangeSelector;var b=t.orientation=="horizontal";if(d.rangeSelector.renderTo){b=false}var j=d.position;if(o.renderTo&&o.position){j=o.position}var l=(b&&j=="right")||(!b&&j=="top");var n=this._sliders[e];var q=b?"top":"left";var f=b?"left":"top";var i=b?"height":"width";var p=b?"width":"height";var k=b?"y":"x";var m=b?"x":"y";var c=n.rect;n.left.css(q,c[k]);n.left.css(f,c[m]);n.left.css(i,r);n.left.css(p,c[p]);n.right.css(q,c[k]+h);n.right.css(f,c[m]);n.right.css(i,c[i]-h+1);n.right.css(p,c[p]);n.leftTop.css(q,c[k]);n.leftTop.css(f,c[m]+(((b&&j=="right")||(!b&&j!="top"))?0:c[p]));n.leftTop.css(i,r);n.leftTop.css(p,1);n.rightTop.css(q,c[k]+h);n.rightTop.css(f,c[m]+(((b&&j=="right")||(!b&&j!="top"))?0:c[p]));n.rightTop.css(i,c[i]-h+1);n.rightTop.css(p,1);n.leftBorder.css(q,c[k]+r);n.leftBorder.css(f,c[m]);n.leftBorder.css(i,1);n.leftBorder.css(p,c[p]);var s=c[p]/4;if(s>20){s=20}if(s<3){s=3}n.leftBar.css(q,c[k]+r-3);n.leftBar.css(f,c[m]+c[p]/2-s/2);n.leftBar.css(i,5);n.leftBar.css(p,s);n.rightBorder.css(q,c[k]+h);n.rightBorder.css(f,c[m]);n.rightBorder.css(i,1);n.rightBorder.css(p,c[p]);n.rightBar.css(q,c[k]+h-3);n.rightBar.css(f,c[m]+c[p]/2-s/2);n.rightBar.css(i,5);n.rightBar.css(p,s)},_resizeState:{},_onSliderMouseDown:function(d){d.stopImmediatePropagation();d.stopPropagation();var b=d.data.self;var c=b._sliders[d.data.groupIndex];if(!c){return}if(b._resizeState.state==undefined){b._testAndSetReadyResize(d)}if(b._resizeState.state!="ready"){return}a.jqx._rangeSelectorTarget=b;b._resizeState.state="resizing"},_valueToOffset:function(m,k){var l=this.seriesGroups[m];var d=this._sliders[m];var c=d.host.jqxChart("getInstance");var n=c._renderData[0].xAxis;var g=n.data.axisStats;var j=g.min.valueOf();var b=g.max.valueOf();var h=b-j;if(h==0){h=1}var e=this._getXAxis(m);var f=l.orientation=="horizontal"?"height":"width";var i=(k.valueOf()-j)/h;return d.getRect()[f]*(e.flip?(1-i):i)},_offsetToValue:function(o,f){var d=this._sliders[o];var n=this.seriesGroups[o];var e=this._getXAxis(o);var g=n.orientation=="horizontal"?"height":"width";var i=d.getRect()[g];if(i==0){i=1}var j=f/i;var c=d.host.jqxChart("getInstance");var m=c._renderData[0].xAxis;var h=m.data.axisStats;var k=h.min.valueOf();var b=h.max.valueOf();var l=f/i*(b-k)+k;if(e.flip==true){l=b-f/i*(b-k)}if(this._isDate(h.min)||this._isDate(h.max)){l=new Date(l)}else{if(e.dataField==undefined||h.useIndeces){l=Math.round(l)}if(lh.max){l=h.max}}return l},_onSliderMouseUp:function(p){var k=a.jqx._rangeSelectorTarget;if(!k){return}var g=p.data.groupIndex;var b=p.data.swapXY;var m=k._sliders[g];if(!m){return}if(k._resizeState.state!="resizing"){return}p.stopImmediatePropagation();p.stopPropagation();k._resizeState={};k.host.css("cursor","default");var h=!b?"left":"top";var c=!b?"width":"height";var o=!b?"x":"y";var n=m.element.coord()[h];var e=n+(!b?m.element.width():m.element.height());var d=m.getRect();var i=k._offsetToValue(g,n-d[o]);var q=k._offsetToValue(g,e-d[o]);var j=m.host.jqxChart("getInstance");var l=j._renderData[0].xAxis;var s=l.data.axisStats;if(!s.isTimeUnit&&(q.valueOf()-i.valueOf())>86400000){i.setHours(0,0,0,0);q.setDate(q.getDate()+1);q.setHours(0,0,0,0)}var f=k._getXAxis(g);if(f.flip){var r=i;i=q;q=r}k._selectorRange[g]={min:i,max:q};k._isSelectorRefresh=true;var t=k.enableAnimations;k._raiseEvent("rangeSelectionChanging",{instance:k,minValue:i,maxValue:q});k.enableAnimations=false;k.update();k.enableAnimations=t;k._raiseEvent("rangeSelectionChanged",{instance:k,minValue:i,maxValue:q})},_onSliderMouseMove:function(t){var o=t.data.self;var v=t.data.renderTo;var i=t.data.groupIndex;var q=o._sliders[i];var d=t.data.swapXY;if(!q){return}var f=q.getRect();var h=q.element;var w=a.jqx.position(t);var r=h.coord();var p=d?"left":"top";var m=!d?"left":"top";var g=d?"width":"height";var e=!d?"width":"height";var s=!d?"x":"y";if(o._resizeState.state=="resizing"){t.stopImmediatePropagation();t.stopPropagation();if(o._resizeState.side=="left"){var n=Math.round(w[m]-r[m]);var l=f[s];if(r[m]+n>=l&&r[m]+n<=l+f[e]){var j=parseInt(h.css(m));var c=Math.max(2,(d?h.height():h.width())-n);h.css(e,c);h.css(m,j+n)}}else{if(o._resizeState.side=="right"){var b=d?h.height():h.width();var n=Math.round(w[m]-r[m]-b);var l=f[s];if(r[m]+b+n>=l&&r[m]+n+b<=l+f[e]){var c=Math.max(2,b+n);h.css(e,c)}}else{if(o._resizeState.side=="move"){var b=d?h.height():h.width();var j=parseInt(h.css(m));var n=Math.round(w[m]-o._resizeState.startPos);if(r[m]+n>=f[s]&&r[m]+n+b<=f[s]+f[e]){o._resizeState.startPos=w[m];h.css(m,j+n)}}}}var u=parseInt(h.css(m))-q.rect[s];var k=u+(d?h.height():h.width());o._setSliderPositions(i,u,k)}else{o._testAndSetReadyResize(t)}},_testAndSetReadyResize:function(b){var q=b.data.self;var k=b.data.renderTo;var o=b.data.groupIndex;var c=q._sliders[o];var g=b.data.swapXY;var m=c.getRect();var e=c.element;var f=a.jqx.position(b);var h=e.coord();var j=g?"left":"top";var p=!g?"left":"top";var i=g?"width":"height";var l=!g?"width":"height";var d=!g?"x":"y";var n=q._isTouchDevice?30:5;if(f[j]>=h[j]&&f[j]<=h[j]+m[i]){if(Math.abs(f[p]-h[p])<=n){k.css("cursor",g?"row-resize":"col-resize");q._resizeState={state:"ready",side:"left"}}else{if(Math.abs(f[p]-h[p]-(!g?e.width():e.height()))<=n){k.css("cursor",g?"row-resize":"col-resize");q._resizeState={state:"ready",side:"right"}}else{if(f[p]+n>h[p]&&f[p]-n");this.host.append(this.input);if(b){this.input.attr("name",b)}this.input.val(this.checked);this.host.attr("role","checkbox");a.jqx.aria(this)}},render:function(){this.init=true;var d=this;this.setSize();this.propertyChangeMap.width=function(h,j,i,k){d.setSize()};this.propertyChangeMap.height=function(h,j,i,k){d.setSize()};this._removeHandlers();if(this.checkbox){this.checkbox.remove();this.checkbox=null}if(this.checkMark){this.checkMark.remove();this.checkMark=null}if(this.box){this.box.remove();this.box=null}if(this.clear){this.clear.remove();this.clear=null}if(this.boxSize==null){this.boxSize=13}var g=parseInt(this.boxSize)+"px";var f="13px";var e=Math.floor((parseInt(this.boxSize)-13)/2);var b=e;e+="px";b+="px";if(this.boxSize!="13px"){this.checkbox=a('
              ')}else{this.checkbox=a('
              ')}this.host.prepend(this.checkbox);if(!this.disabledContainer){if(!this.host.attr("tabIndex")){this.host.attr("tabIndex",0)}this.clear=a('
              ');this.host.append(this.clear)}this.checkMark=a(this.checkbox[0].firstChild.firstChild);this.box=this.checkbox;this.box.addClass(this.toThemeProperty("jqx-checkbox-default")+" "+this.toThemeProperty("jqx-fill-state-normal")+" "+this.toThemeProperty("jqx-rc-all"));if(this.disabled){this.disable()}if(!this.disabledContainer){this.host.addClass(this.toThemeProperty("jqx-widget"));this.host.addClass(this.toThemeProperty("jqx-checkbox"))}if(this.locked&&!this.disabledContainer){this.host.css("cursor","auto")}var c=this.element.getAttribute("checked");if(c=="checked"||c=="true"||c==true){this.checked=true}this._addInput();this._render();this._addHandlers();this.init=false},refresh:function(b){if(!b){this.setSize();this._render()}},resize:function(c,b){this.width=c;this.height=b;this.refresh()},setSize:function(){if(this.width!=null&&this.width.toString().indexOf("px")!=-1){this.host.width(this.width)}else{if(this.width!=undefined&&!isNaN(this.width)){this.host.width(this.width)}}if(this.height!=null&&this.height.toString().indexOf("px")!=-1){this.host.height(this.height)}else{if(this.height!=undefined&&!isNaN(this.height)){this.host.height(this.height)}}},_addHandlers:function(){var d=this;var c=a.jqx.mobile.isTouchDevice();var b="mousedown";if(c){b=a.jqx.mobile.getTouchEventName("touchend")}this.addHandler(this.box,b,function(e){if(!d.disabled&&!d.enableContainerClick&&!d.locked){d.changeType="mouse";d.toggle();if(d.updated){e.owner=d;d.updated(e,d.checked,d.oldChecked)}if(e.preventDefault){e.preventDefault()}return false}});if(!this.disabledContainer){this.addHandler(this.host,"keydown",function(e){if(!d.disabled&&!d.locked&&d.keyboardCheck){if(e.keyCode==32){if(!d._canFocus){return true}d.changeType="keyboard";d.toggle();if(d.updated){e.owner=d;d.updated(e,d.checked,d.oldChecked)}if(e.preventDefault){e.preventDefault()}return false}}});this.addHandler(this.host,b,function(e){if(!d.disabled&&d.enableContainerClick&&!d.locked){d.changeType="mouse";d.toggle();if(e.preventDefault){e.preventDefault()}if(d._canFocus){d.focus()}return false}});this.addHandler(this.host,"selectstart",function(e){if(!d.disabled&&d.enableContainerClick){if(e.preventDefault){e.preventDefault()}return false}});this.addHandler(this.host,"mouseup",function(e){if(!d.disabled&&d.enableContainerClick){if(e.preventDefault){e.preventDefault()}}});this.addHandler(this.host,"focus",function(e){if(!d.disabled&&!d.locked){if(!d._canFocus){return true}if(d.enableHover){d.box.addClass(d.toThemeProperty("jqx-checkbox-hover"))}d.box.addClass(d.toThemeProperty("jqx-fill-state-focus"));if(e.preventDefault){e.preventDefault()}d.hovered=true;return false}});this.addHandler(this.host,"blur",function(e){if(!d.disabled&&!d.locked){if(!d._canFocus){return true}if(d.enableHover){d.box.removeClass(d.toThemeProperty("jqx-checkbox-hover"))}d.box.removeClass(d.toThemeProperty("jqx-fill-state-focus"));if(e.preventDefault){e.preventDefault()}d.hovered=false;return false}});this.addHandler(this.host,"mouseenter",function(e){if(d.locked){d.host.css("cursor","arrow")}if(d.enableHover){if(!d.disabled&&d.enableContainerClick&&!d.locked){d.box.addClass(d.toThemeProperty("jqx-checkbox-hover"));d.box.addClass(d.toThemeProperty("jqx-fill-state-hover"));if(e.preventDefault){e.preventDefault()}d.hovered=true;return false}}});this.addHandler(this.host,"mouseleave",function(e){if(d.enableHover){if(!d.disabled&&d.enableContainerClick&&!d.locked){d.box.removeClass(d.toThemeProperty("jqx-checkbox-hover"));d.box.removeClass(d.toThemeProperty("jqx-fill-state-hover"));if(e.preventDefault){e.preventDefault()}d.hovered=false;return false}}});this.addHandler(this.box,"mouseenter",function(){if(d.locked){return}if(!d.disabled&&!d.enableContainerClick){d.box.addClass(d.toThemeProperty("jqx-checkbox-hover"));d.box.addClass(d.toThemeProperty("jqx-fill-state-hover"))}});this.addHandler(this.box,"mouseleave",function(){if(!d.disabled&&!d.enableContainerClick){d.box.removeClass(d.toThemeProperty("jqx-checkbox-hover"));d.box.removeClass(d.toThemeProperty("jqx-fill-state-hover"))}})}},focus:function(){try{this.host.focus()}catch(b){}},_removeHandlers:function(){var c=a.jqx.mobile.isTouchDevice();var b="mousedown";if(c){b="touchend"}if(this.box){this.removeHandler(this.box,b);this.removeHandler(this.box,"mouseenter");this.removeHandler(this.box,"mouseleave")}this.removeHandler(this.host,b);this.removeHandler(this.host,"mouseup");this.removeHandler(this.host,"selectstart");this.removeHandler(this.host,"mouseenter");this.removeHandler(this.host,"mouseleave");this.removeHandler(this.host,"keydown");this.removeHandler(this.host,"blur");this.removeHandler(this.host,"focus")},_render:function(){if(!this.disabled){if(this.enableContainerClick){this.host.css("cursor","pointer")}else{if(!this.init){this.host.css("cursor","auto")}}}else{this.disable()}if(this.rtl){this.box.addClass(this.toThemeProperty("jqx-checkbox-rtl"));this.host.addClass(this.toThemeProperty("jqx-rtl"))}this.updateStates()},_setState:function(c,b){if(this.checked!=c){this.checked=c;if(this.checked){this.checkMark[0].className=this.toThemeProperty("jqx-checkbox-check-checked")}else{if(this.checked==null){this.checkMark[0].className=this.toThemeProperty("jqx-checkbox-check-indeterminate")}else{this.checkMark[0].className=""}}}if(b===false||b===true){this.locked=b}},val:function(b){if(arguments.length==0||(b!=null&&typeof(b)=="object")){return this.checked}if(typeof b=="string"){if(b=="true"){this.check()}if(b=="false"){this.uncheck()}if(b==""){this.indeterminate()}}else{if(b==true){this.check()}if(b==false){this.uncheck()}if(b==null){this.indeterminate()}}return this.checked},check:function(){this.checked=true;var b=this;this.checkMark.removeClass();if(a.jqx.browser.msie||this.animationShowDelay==0){this.checkMark.addClass(this.toThemeProperty("jqx-checkbox-check-checked"))}else{this.checkMark.addClass(this.toThemeProperty("jqx-checkbox-check-checked"));this.checkMark.css("opacity",0);this.checkMark.stop().animate({opacity:1},this.animationShowDelay,function(){})}if(this.groupName!=null&&this.groupName.length>0){var c=a.find(this.toThemeProperty(".jqx-checkbox",true));a.each(c,function(){var d=a(this).jqxCheckBox("groupName");if(d==b.groupName&&this!=b.element){a(this).jqxCheckBox("uncheck")}})}this._raiseEvent("0",true);this._raiseEvent("3",{checked:true});if(this.input!=undefined){this.input.val(this.checked);a.jqx.aria(this,"aria-checked",this.checked)}},uncheck:function(){this.checked=false;var b=this;if(a.jqx.browser.msie||this.animationHideDelay==0){if(b.checkMark[0].className!=""){b.checkMark[0].className=""}}else{this.checkMark.css("opacity",1);this.checkMark.stop().animate({opacity:0},this.animationHideDelay,function(){if(b.checkMark[0].className!=""){b.checkMark[0].className=""}})}this._raiseEvent("1");this._raiseEvent("3",{checked:false});if(this.input!=undefined){this.input.val(this.checked);a.jqx.aria(this,"aria-checked",this.checked)}},indeterminate:function(){this.checked=null;this.checkMark.removeClass();if(a.jqx.browser.msie||this.animationShowDelay==0){this.checkMark.addClass(this.toThemeProperty("jqx-checkbox-check-indeterminate"))}else{this.checkMark.addClass(this.toThemeProperty("jqx-checkbox-check-indeterminate"));this.checkMark.css("opacity",0);this.checkMark.stop().animate({opacity:1},this.animationShowDelay,function(){})}this._raiseEvent("2");this._raiseEvent("3",{checked:null});if(this.input!=undefined){this.input.val(this.checked);a.jqx.aria(this,"aria-checked","undefined")}},toggle:function(){if(this.disabled){return}if(this.locked){return}if(this.groupName!=null&&this.groupName.length>0){if(this.checked!=true){this.checked=true;this.updateStates()}return}this.oldChecked=this.checked;if(this.checked==true){this.checked=this.hasThreeStates?null:false}else{this.checked=this.checked!=null}this.updateStates();if(this.input!=undefined){this.input.val(this.checked)}},updateStates:function(){if(this.checked){this.check()}else{if(this.checked==false){this.uncheck()}else{if(this.checked==null){this.indeterminate()}}}},disable:function(){this.disabled=true;if(this.checked==true){this.checkMark.addClass(this.toThemeProperty("jqx-checkbox-check-disabled"))}else{if(this.checked==null){this.checkMark.addClass(this.toThemeProperty("jqx-checkbox-check-indeterminate-disabled"))}}this.box.addClass(this.toThemeProperty("jqx-checkbox-disabled-box"));this.host.addClass(this.toThemeProperty("jqx-checkbox-disabled"));this.host.addClass(this.toThemeProperty("jqx-fill-state-disabled"));this.box.addClass(this.toThemeProperty("jqx-checkbox-disabled"));a.jqx.aria(this,"aria-disabled",this.disabled)},enable:function(){if(this.checked==true){this.checkMark.removeClass(this.toThemeProperty("jqx-checkbox-check-disabled"))}else{if(this.checked==null){this.checkMark.removeClass(this.toThemeProperty("jqx-checkbox-check-indeterminate-disabled"))}}this.box.removeClass(this.toThemeProperty("jqx-checkbox-disabled-box"));this.host.removeClass(this.toThemeProperty("jqx-checkbox-disabled"));this.host.removeClass(this.toThemeProperty("jqx-fill-state-disabled"));this.box.removeClass(this.toThemeProperty("jqx-checkbox-disabled"));this.disabled=false;a.jqx.aria(this,"aria-disabled",this.disabled)},destroy:function(){this.host.remove()},_raiseEvent:function(g,e){if(this.init){return}var c=this.events[g];var f=new a.Event(c);f.owner=this;if(!e){e={}}e.type=this.changeType;this.changeType=null;f.args=e;try{var b=this.host.trigger(f)}catch(d){}return b},propertyChangedHandler:function(b,c,e,d){if(this.isInitialized==undefined||this.isInitialized==false){return}if(c=="enableContainerClick"&&!b.disabled&&!b.locked){if(d){b.host.css("cursor","pointer")}else{b.host.css("cursor","auto")}}if(c=="rtl"){if(d){b.box.addClass(b.toThemeProperty("jqx-checkbox-rtl"));b.host.addClass(b.toThemeProperty("jqx-rtl"))}else{b.box.removeClass(b.toThemeProperty("jqx-checkbox-rtl"));b.host.removeClass(b.toThemeProperty("jqx-rtl"))}}if(c=="boxSize"){b.render()}if(c=="theme"){a.jqx.utilities.setTheme(e,d,b.host)}if(c=="checked"){if(d!=e){switch(d){case true:b.check();break;case false:b.uncheck();break;case null:b.indeterminate();break}}}if(c=="disabled"){if(d!=e){if(d){b.disable()}else{b.enable()}}}}})})(jqxBaseFramework); \ No newline at end of file diff --git a/htdocs/public/jqwidgets/jqxcolorpicker.js b/htdocs/public/jqwidgets/jqxcolorpicker.js deleted file mode 100644 index a0563f29..00000000 --- a/htdocs/public/jqwidgets/jqxcolorpicker.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -jQWidgets v4.0.0 (2016-Jan) -Copyright (c) 2011-2016 jQWidgets. -License: http://jqwidgets.com/license/ -*/ - -(function(a){a.jqx.jqxWidget("jqxColorPicker","",{});a.extend(a.jqx._jqxColorPicker.prototype,{defineInstance:function(){var b={disabled:false,height:null,width:null,color:new a.jqx.color({hex:"ff0000"}),redString:"R:",greenString:"G:",blueString:"B:",showTransparent:false,colorMode:"saturation",_delayLoading:false,events:["colorchange"]};a.extend(true,this,b);return b},createInstance:function(c){this.render();var b=this;a.jqx.utilities.resize(this.host,function(){b._setSize();b.refresh()},false,!this._delayLoading)},render:function(){this.element.innerHTML="";var b=this;this._isTouchDevice=a.jqx.mobile.isTouchDevice();if(typeof this.color=="string"){this.color=new a.jqx.color({hex:this.color})}this._setSize();this.host.addClass(this.toThemeProperty("jqx-widget"));this.host.addClass(this.toThemeProperty("jqx-reset"));this.host.addClass(this.toThemeProperty("jqx-color-picker"));this.container=a("
              ");this.container.appendTo(this.host);this.colorMap=a("
              ");this.colorMap.appendTo(this.container);this.colorBar=a("
              ");this.colorBar.appendTo(this.container);this.colorPanel=a("
              ");this.colorPanel.appendTo(this.container);this.hexPanel=a("
              ");this.hexPanel.appendTo(this.colorPanel);this.hexPanel.append('#');this.hex=a("");this.hex.addClass(this.toThemeProperty("jqx-input"));this.hex.addClass(this.toThemeProperty("jqx-widget-content"));this.hex.appendTo(this.hexPanel);this.colorPanel.append('
              ');this.rgb=a("
              ");this.rgb.appendTo(this.colorPanel);this.red=a("");this.red.addClass(this.toThemeProperty("jqx-input"));this.red.addClass(this.toThemeProperty("jqx-widget-content"));this.rgb.append(''+this.redString+"");this.red.appendTo(this.rgb);this.green=a("");this.green.addClass(this.toThemeProperty("jqx-input"));this.green.addClass(this.toThemeProperty("jqx-widget-content"));this.rgb.append(''+this.greenString+"");this.green.appendTo(this.rgb);this.colorPanel.addClass(this.toThemeProperty("jqx-color-picker-map-overlay"));this._mapImageOverlayURL=this._getImageUrl(this.colorPanel);this.colorPanel.removeClass(this.toThemeProperty("jqx-color-picker-map-overlay"));this.blue=a("");this.blue.addClass(this.toThemeProperty("jqx-input"));this.blue.addClass(this.toThemeProperty("jqx-widget-content"));this.rgb.append(''+this.blueString+"");this.blue.appendTo(this.rgb);this.preview=a("
              ");this.preview.addClass(this.toThemeProperty("jqx-widget-content"));this.preview.appendTo(this.colorPanel);this.colorBarPointer=a("
              ");this.colorBarPointer.addClass(this.toThemeProperty("jqx-color-picker-bar-pointer"));this.colorMapPointer=a("
              ");this.colorMapPointer.addClass(this.toThemeProperty("jqx-color-picker-pointer"));this.transparent=a("");if(this.disabled){this.host.addClass(this.toThemeProperty("jqx-fill-state-disabled"));this.element.disabled=true}this._addHandlers()},val:function(b){if(arguments.length==0){return"#"+this.color.hex}this.setColor(b);return this.color.hex},_setPositionFromValue:function(){var d=this;var c=d.color.h;var i=100-d.color.v;var b=d.colorMap.height();var e=d.colorMap.width();var h=c*e/360;var g=i*b/100;if(this.colorMode=="saturation"){var f=100-d.color.s;f=f*b/100;d._saturation=100-d.color.s;d.colorMapPointer.css("margin-left",h-8);d.colorMapPointer.css("margin-top",g-8);d.colorBarPointer.css("margin-top",f-8);d.colorMapImageOverlay.css("opacity",(100-d.color.s)/100)}else{var c=d.color.s;var h=c*e/100;var g=i*b/100;var f=360-d.color.h;f=f*b/360;d._hue=d.color.h;d.colorMapPointer.css("margin-left",h-8);d.colorMapPointer.css("margin-top",g-8);d.colorBarPointer.css("margin-top",f-8)}},updateRGB:function(){var b=this;b.color.setRgb(b.red.val(),b.green.val(),b.blue.val());b._updateUI();b._raiseEvent("0",{color:b.color});b.color.transparent=false},_setPosition:function(f,c,h){var e=parseInt(f.pageX);var g=parseInt(c.offset().left);var b=parseInt(f.pageY);var d=parseInt(c.offset().top);if(this._isTouchDevice){var i=a.jqx.position(f);e=i.left;b=i.top}if(h[0].className.indexOf("jqx-color-picker-bar")==-1){h.css("margin-left",e-8-g)}if(b>=d&&b<=d+c.height()){h.css("margin-top",b-8-d)}},_handleKeyInput:function(c,d,b){if(c.disabled){return}if(!c._validateKey(d)){return d}b.val(c._setValueInRange(b.val(),0,255));this.updateRGB();this._setPositionFromValue()},_addHandlers:function(){var d=this;this.addHandler(this.colorMapPointer,"dragStart",function(j){j.preventDefault();return false});this.addHandler(this.colorBarPointer,"dragStart",function(j){j.preventDefault();return false});this.addHandler(this.transparent,"click",function(j){d._raiseEvent("0",{color:"transparent"});j.preventDefault();d.color.transparent=true});this.addHandler(this.host,"selectionstart",function(j){j.preventDefault();return false});this.addHandler(this.blue,"keyup blur",function(j){d._handleKeyInput(d,j,d.blue)});this.addHandler(this.green,"keyup blur",function(j){d._handleKeyInput(d,j,d.green)});this.addHandler(this.red,"keyup blur",function(j){d._handleKeyInput(d,j,d.red)});this.addHandler(this.hex,"keyup blur",function(j){if(d.disabled){return}if(!d._validateKey(j)){return j}if(d.hex.val().toString().length==6){d.hex.val(d.color.validateHex(d.hex.val()));d.color.setHex(d.hex.val());d._updateUI();d._setPositionFromValue();d._raiseEvent("0",{color:d.color})}});this.addHandler(this.colorMap,"dragstart",function(j){j.preventDefault();return false});var f=function(k){d._setPosition(k,d.colorMap,d.colorMapPointer);if(d.colorMode=="saturation"){var j=d._valuesFromMouse(k,d.colorMap,360,100);if(j.x>360){j.x=360}d.color.setHsv(j.x,d._saturation!=null?100-d._saturation:100,100-j.y)}else{var j=d._valuesFromMouse(k,d.colorMap,100,100);if(j.x>100){j.x=100}d.color.setHsv(d._hue!=null?d._hue:360,j.x,100-j.y)}d._updateUI();d._raiseEvent("0",{color:d.color});d.color.transparent=false};var c="mousedown.picker"+this.element.id;if(this._isTouchDevice){c=a.jqx.mobile.getTouchEventName("touchstart")+".picker"+this.element.id}this.addHandler(this.colorMap,c,function(j){if(d.disabled){return}d.beginDrag=true;f(j)});var b="mousemove.picker"+this.element.id;if(this._isTouchDevice){b=a.jqx.mobile.getTouchEventName("touchmove")+".picker"+this.element.id}this.addHandler(a(document),b,function(j){if(d.disabled){return}if(d.beginDrag==true){f(j);if(d._isTouchDevice){j.preventDefault()}}});if(!this._isTouchDevice){this.addHandler(this.colorBar,"dragstart",function(j){j.preventDefault();return false})}var e=function(k){d._setPosition(k,d.colorBar,d.colorBarPointer);if(d.colorMode=="saturation"){var j=d._valuesFromMouse(k,d.colorBar,100,100);d.color.s=j.y;d._saturation=j.y;d.colorMapImageOverlay.css("opacity",(d.color.s)/100);d.color.setHsv(d.color.h,100-d.color.s,d.color.v)}else{var j=d._valuesFromMouse(k,d.colorBar,100,360);d.color.h=360-j.y;d._hue=d.color.h;d.color.setHsv(d.color.h,d.color.s,d.color.v)}d._updateUI();d._raiseEvent("0",{color:d.color});d.color.transparent=false};var h="mousemove.colorBar"+this.element.id;var g="mousedown.colorBar"+this.element.id;var i="mouseup.colorBar"+this.element.id;if(this._isTouchDevice){h=a.jqx.mobile.getTouchEventName("touchmove")+".colorBar"+this.element.id;g=a.jqx.mobile.getTouchEventName("touchstart")+".colorBar"+this.element.id;i=a.jqx.mobile.getTouchEventName("touchend")+".colorBar"+this.element.id}this.addHandler(this.colorBar,g,function(j){if(d.disabled){return}d.beginDragBar=true;e(j)});this.addHandler(a(document),h,function(j){if(d.disabled){return}if(d.beginDragBar==true){e(j);if(d._isTouchDevice){j.preventDefault()}}});this.addHandler(a(document),i,function(j){if(d.disabled){return}d.beginDrag=false;d.beginDragBar=false})},_removeHandlers:function(){this.removeHandler(this.transparent,"click");this.removeHandler(this.host,"selectionstart");this.removeHandler(this.blue,"keyup blur");this.removeHandler(this.green,"keyup blur");this.removeHandler(this.red,"keyup blur");this.removeHandler(this.hex,"keyup blur");this.removeHandler(this.colorMap,"dragstart");this.removeHandler(this.colorBar,"dragstart");this.removeHandler(this.colorMapPointer,"dragStart");this.removeHandler(this.colorBarPointer,"dragStart");var g=this.element.id;var e="mousemove.colorBar"+g;var d="mousedown.colorBar"+g;var f="mouseup.colorBar"+g;var c="mousedown.picker"+g;var b="mousemove.picker"+g;if(this._isTouchDevice){e=a.jqx.mobile.getTouchEventName("touchmove")+".colorBar"+g;d=a.jqx.mobile.getTouchEventName("touchstart")+".colorBar"+g;f=a.jqx.mobile.getTouchEventName("touchend")+".colorBar"+g;c=a.jqx.mobile.getTouchEventName("touchstart")+".picker"+g;b=a.jqx.mobile.getTouchEventName("touchmove")+".picker"+g}this.removeHandler(this.colorMap,c);this.removeHandler(this.colorMap,b);this.removeHandler(this.colorBar,d);this.removeHandler(this.colorBar,e);this.removeHandler(a(document),b);this.removeHandler(a(document),e);this.removeHandler(a(document),f)},_raiseEvent:function(g,c){if(c==undefined){c={owner:null}}var d=this.events[g];var e=c?c:{};e.owner=this;var f=new a.Event(d);f.owner=this;f.args=e;var b=this.host.trigger(f);return b},setColor:function(b){if(!b){return}if(b=="transparent"){this.color.transparent=true;this.color.hex="000";this.color.r=0;this.color.g=0;this.color.b=0}else{if(b.r){this.color=new a.jqx.color({rgb:b})}else{if(b.substring(0,1)=="#"){this.color=new a.jqx.color({hex:b.substring(1)})}else{this.color=new a.jqx.color({hex:b})}}}this._updateUI();this._setPositionFromValue();this._raiseEvent("0",{color:this.color})},getColor:function(){return this.color},resize:function(c,b){this.width=c;this.height=b;this._setSize();this.refresh()},propertyChangedHandler:function(b,c,e,d){if(b.isInitialized==undefined||b.isInitialized==false){return}if(c=="colorMode"){b.refresh()}if(c=="color"){b._updateUI();b._setPositionFromValue();b._raiseEvent("0",{color:d})}if(c=="width"||c=="height"){b._setSize();b.refresh()}if(c=="showTransparent"){b.refresh()}if(c=="disabled"){this.element.disabled=d;if(d){b.host.addClass(b.toThemeProperty("jqx-fill-state-disabled"))}else{b.host.removeClass(b.toThemeProperty("jqx-fill-state-disabled"))}}},_valuesFromMouse:function(j,g,c,b){var k=0;var i=0;var f=g.offset();var p=g.height();var d=g.width();var n=j.pageX;var m=j.pageY;if(this._isTouchDevice){var l=a.jqx.position(j);n=l.left;m=l.top}if(nf.left+d){k=d}else{k=n-f.left+1}}if(mf.top+p){i=p}else{i=m-f.top+1}}var h=parseInt(k/d*c);var o=parseInt(i/p*b);return{x:h,y:o}},_validateKey:function(b){if(b.keyCode==9||b.keyCode==16||b.keyCode==38||b.keyCode==29||b.keyCode==40||b.keyCode==17||b.keyCode==37||(b.ctrlKey&&(b.keyCode=="c".charCodeAt()||b.keyCode=="v".charCodeAt()))||(b.ctrlKey&&(b.keyCode=="C".charCodeAt()||b.keyCode=="V".charCodeAt()))){return false}if(b.ctrlKey||b.shiftKey){return false}return true},_setValueInRange:function(d,c,b){if(d==""||isNaN(d)){return c}d=parseInt(d);if(d>b){return b}if(d0){this.blue.width(f/3);this.green.width(f/3);this.red.width(f/3);return}},_getColorPointer:function(){var b=a("
              ");b.addClass(this.toThemeProperty("jqx-color-picker-pointer"));return b},_getImageUrl:function(c){var b=c.css("backgroundImage");b=b.replace('url("',"");b=b.replace('")',"");b=b.replace("url(","");b=b.replace(")","");return b},refresh:function(){if(this._delayLoading){return}this._saturation=null;this._hue=null;this.colorMap.removeClass();this.colorBar.removeClass();this.colorMap.addClass(this.toThemeProperty("jqx-disableselect"));this.colorBar.addClass(this.toThemeProperty("jqx-disableselect"));this.colorPanel.addClass(this.toThemeProperty("jqx-color-picker-panel"));this.colorBar.css("background-image","");this.colorMap.css("background-image","");if(this.colorMode=="saturation"){this.colorMap.addClass(this.toThemeProperty("jqx-color-picker-map"));this.colorBar.addClass(this.toThemeProperty("jqx-color-picker-bar"))}else{this.colorMap.addClass(this.toThemeProperty("jqx-color-picker-map-hue"));this.colorBar.addClass(this.toThemeProperty("jqx-color-picker-bar-hue"))}this._barImageURL=this._getImageUrl(this.colorBar);this._mapImageURL=this._getImageUrl(this.colorMap);this._arrange();this.colorBar.children().remove();this.colorBarImageContainer=a("
              ");this.colorBarImageContainer.width(this.colorBar.width());this.colorBarImageContainer.height(this.colorBar.height());this.colorBarImageContainer.appendTo(this.colorBar);this.colorBarImage=a("");this.colorBarImage.appendTo(this.colorBarImageContainer);this.colorBarImage.attr("src",this._barImageURL);this.colorBar.css("background-image","none");this.colorBarImage.attr("width",this.colorBar.width());this.colorBarImage.attr("height",this.colorBar.height());this.colorBarPointer.appendTo(this.colorBar);this.colorMap.children().remove();this.colorMapImage=a("");this.colorMapImage.appendTo(this.colorMap);this.colorMapImage.attr("src",this._mapImageURL);this.colorMap.css("background-image","none");this.colorMapImage.attr("width",this.colorMap.width());this.colorMapImage.attr("height",this.colorMap.height());this.colorMapImageOverlay=a("");this.colorMapImageOverlay.prependTo(this.colorMap);this.colorMapImageOverlay.attr("src",this._mapImageOverlayURL);this.colorMapImageOverlay.attr("width",this.colorMap.width());this.colorMapImageOverlay.attr("height",this.colorMap.height());this.colorMapImageOverlay.css("opacity",0);this.colorMapPointer.appendTo(this.colorMap);if(this.showTransparent){this.transparent.appendTo(this.colorPanel)}this._updateUI();this._setPositionFromValue()}});a.jqx.color=function(d){var b={r:0,g:0,b:0,h:0,s:0,v:0,hex:"",hexToRgb:function(i){i=this.validateHex(i);var h="00",f="00",e="00";if(i.length==6){h=i.substring(0,2);f=i.substring(2,4);e=i.substring(4,6)}else{if(i.length>4){h=i.substring(4,i.length);i=i.substring(0,4)}if(i.length>2){f=i.substring(2,i.length);i=i.substring(0,2)}if(i.length>0){e=i.substring(0,i.length)}}return{r:this.hexToInt(h),g:this.hexToInt(f),b:this.hexToInt(e)}},validateHex:function(e){e=new String(e).toUpperCase();e=e.replace(/[^A-F0-9]/g,"0");if(e.length>6){e=e.substring(0,6)}return e},webSafeDec:function(e){e=Math.round(e/51);e*=51;return e},hexToWebSafe:function(i){var h,f,e;if(i.length==3){h=i.substring(0,1);f=i.substring(1,1);e=i.substring(2,1)}else{h=i.substring(0,2);f=i.substring(2,4);e=i.substring(4,6)}return intToHex(this.webSafeDec(this.hexToInt(h)))+this.intToHex(this.webSafeDec(this.hexToInt(f)))+this.intToHex(this.webSafeDec(this.hexToInt(e)))},rgbToWebSafe:function(e){return{r:this.webSafeDec(e.r),g:this.webSafeDec(e.g),b:this.webSafeDec(e.b)}},rgbToHex:function(e){return this.intToHex(e.r)+this.intToHex(e.g)+this.intToHex(e.b)},intToHex:function(f){var e=(parseInt(f).toString(16));if(e.length==1){e=("0"+e)}return e.toUpperCase()},hexToInt:function(e){return(parseInt(e,16))},hslToRgb:function(v){var n=parseInt(v.h)/360;var w=parseInt(v.s)/100;var k=parseInt(v.l)/100;if(k<=0.5){var f=k*(1+w)}else{var f=k+w-(k*w)}var i=2*k-f;var t=n+(1/3);var j=n;var m=n-(1/3);var e=Math.round(this.hueToRgb(i,f,t)*255);var o=Math.round(this.hueToRgb(i,f,j)*255);var u=Math.round(this.hueToRgb(i,f,m)*255);return{r:e,g:o,b:u}},hueToRgb:function(g,f,e){if(e<0){e+=1}else{if(e>1){e-=1}}if((e*6)<1){return g+(f-g)*e*6}else{if((e*2)<1){return f}else{if((e*3)<2){return g+(f-g)*((2/3)-e)*6}else{return g}}}},rgbToHsv:function(h){var k=h.r/255;var j=h.g/255;var f=h.b/255;hsv={h:0,s:0,v:0};var i=0;var e=0;if(k>=j&&k>=f){e=k;i=(j>f)?f:j}else{if(j>=f&&j>=k){e=j;i=(k>f)?f:k}else{e=f;i=(j>k)?k:j}}hsv.v=e;hsv.s=(e)?((e-i)/e):0;if(!hsv.s){hsv.h=0}else{delta=e-i;if(k==e){hsv.h=(j-f)/delta}else{if(j==e){hsv.h=2+(f-k)/delta}else{hsv.h=4+(k-j)/delta}}hsv.h=parseInt(hsv.h*60);if(hsv.h<0){hsv.h+=360}}hsv.s=parseInt(hsv.s*100);hsv.v=parseInt(hsv.v*100);return hsv},hsvToRgb:function(l){rgb={r:0,g:0,b:0};var k=l.h;var r=l.s;var n=l.v;if(r==0){if(n==0){rgb.r=rgb.g=rgb.b=0}else{rgb.r=rgb.g=rgb.b=parseInt(n*255/100)}}else{if(k==360){k=0}k/=60;r=r/100;n=n/100;var j=parseInt(k);var m=k-j;var g=n*(1-r);var e=n*(1-(r*m));var o=n*(1-(r*(1-m)));switch(j){case 0:rgb.r=n;rgb.g=o;rgb.b=g;break;case 1:rgb.r=e;rgb.g=n;rgb.b=g;break;case 2:rgb.r=g;rgb.g=n;rgb.b=o;break;case 3:rgb.r=g;rgb.g=e;rgb.b=n;break;case 4:rgb.r=o;rgb.g=g;rgb.b=n;break;case 5:rgb.r=n;rgb.g=g;rgb.b=e;break}rgb.r=parseInt(rgb.r*255);rgb.g=parseInt(rgb.g*255);rgb.b=parseInt(rgb.b*255)}return rgb},setRgb:function(h,f,e){var j=function(g){if(g<0||g>255){return 0}if(isNaN(parseInt(g))){return 0}return g};this.r=j(h);this.g=j(f);this.b=j(e);var i=this.rgbToHsv(this);this.h=i.h;this.s=i.s;this.v=i.v;this.hex=this.rgbToHex(this)},setHsl:function(g,f,e){this.h=g;this.s=f;this.l=e;var i=this.hslToRgb(this);this.r=i.r;this.g=i.g;this.b=i.b;this.hex=this.rgbToHex(i)},setHsv:function(g,f,e){this.h=g;this.s=f;this.v=e;var i=this.hsvToRgb(this);this.r=i.r;this.g=i.g;this.b=i.b;this.hex=this.rgbToHex(i)},setHex:function(e){this.hex=e;var g=this.hexToRgb(this.hex);this.r=g.r;this.g=g.g;this.b=g.b;var f=this.rgbToHsv(g);this.h=f.h;this.s=f.s;this.v=f.v}};if(d){if(d.hex){var c=b.validateHex(d.hex);b.setHex(c)}else{if(d.r){b.setRgb(d.r,d.g,d.b)}else{if(d.h){b.setHsv(d.h,d.s,d.v)}else{if(d.rgb){b.setRgb(d.rgb.r,d.rgb.g,d.rgb.b)}}}}}return b}})(jqxBaseFramework); \ No newline at end of file diff --git a/htdocs/public/jqwidgets/jqxcombobox.js b/htdocs/public/jqwidgets/jqxcombobox.js deleted file mode 100644 index 7e5f5d5a..00000000 --- a/htdocs/public/jqwidgets/jqxcombobox.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -jQWidgets v4.0.0 (2016-Jan) -Copyright (c) 2011-2016 jQWidgets. -License: http://jqwidgets.com/license/ -*/ - -(function(a){a.jqx.jqxWidget("jqxComboBox","",{});a.extend(a.jqx._jqxComboBox.prototype,{defineInstance:function(){var b={disabled:false,width:200,height:25,items:new Array(),selectedIndex:-1,selectedItems:new Array(),_selectedItems:new Array(),source:null,scrollBarSize:a.jqx.utilities.scrollBarSize,arrowSize:18,enableHover:true,enableSelection:true,visualItems:new Array(),groups:new Array(),equalItemsWidth:true,itemHeight:-1,visibleItems:new Array(),emptyGroupText:"Group",emptyString:"",openDelay:250,closeDelay:300,animationType:"default",dropDownWidth:"auto",dropDownHeight:"200px",autoDropDownHeight:false,enableBrowserBoundsDetection:false,dropDownHorizontalAlignment:"left",searchMode:"startswithignorecase",autoComplete:false,remoteAutoComplete:false,remoteAutoCompleteDelay:500,selectionMode:"default",minLength:2,displayMember:"",valueMember:"",groupMember:"",searchMember:"",keyboardSelection:true,renderer:null,autoOpen:false,checkboxes:false,promptText:"",placeHolder:"",rtl:false,listBox:null,validateSelection:null,showCloseButtons:true,renderSelectedItem:null,search:null,popupZIndex:100000,searchString:null,multiSelect:false,showArrow:true,_disabledItems:new Array(),touchMode:"auto",autoBind:true,aria:{"aria-disabled":{name:"disabled",type:"boolean"}},events:["open","close","select","unselect","change","checkChange","bindingComplete"]};a.extend(true,this,b);return b},createInstance:function(b){var c=this;this.host.attr("role","combobox");a.jqx.aria(this,"aria-autocomplete","both");if(a.jqx._jqxListBox==null||a.jqx._jqxListBox==undefined){throw new Error("jqxComboBox: Missing reference to jqxlistbox.js.")}a.jqx.aria(this);if(this.promptText!=""){this.placeHolder=this.promptText}this.render()},render:function(){var n=this;var p=n.element.nodeName.toLowerCase();if(p=="select"||p=="ul"||p=="ol"){n.field=n.element;if(n.field.className){n._className=n.field.className}var m={title:n.field.title};if(n.field.id.length){m.id=n.field.id.replace(/[^\w]/g,"_")+"_jqxComboBox"}else{m.id=a.jqx.utilities.createId()+"_jqxComboBox"}var c=a("
              ",m);if(!n.width){n.width=a(n.field).width()}if(!n.height){n.height=a(n.field).outerHeight()}a(n.field).hide().after(c);var k=n.host.data();n.host=c;n.host.data(k);n.element=c[0];n.element.id=n.field.id;n.field.id=m.id;if(n._className){n.host.addClass(n._className);a(n.field).removeClass(n._className)}if(n.field.tabIndex){var f=n.field.tabIndex;n.field.tabIndex=-1;n.element.tabIndex=f}var s=a.jqx.parseSourceTag(n.field);n.source=s.items;if(n.selectedIndex==-1){n.selectedIndex=s.index}}n.removeHandlers();n.isanimating=false;n.id=a.jqx.utilities.createId();n.element.innerHTML="";var g=a("
              ");var m=l.host.parent();var q=l.host.data();q.jqxDataTable.host=m;q.jqxDataTable.element=m[0];l.host.parent()[0].id=l.element.id;try{l.host.parent()[0].style=l.element.style}catch(r){}l.element=m[0];l.host=m;l.host.data(q);var o={dataFields:w,localdata:z,datatype:"array"};var y=new b.jqx.dataAdapter(o);l.source=y}if(l.source&&!l.source.dataBind){l.source=new b.jqx.dataAdapter(l.source)}var x=l.source._source.datafields;if(x&&x.length>0){l._camelCase=l.source._source.dataFields!==undefined;l.selectionMode=l.selectionMode.toLowerCase()}if(l.host.attr("tabindex")==null){l.host.attr("tabindex","0")}l.host.attr("role","grid");l.host.attr("align","left");l.host.addClass(l.toTP("jqx-grid"));l.host.addClass(l.toTP("jqx-reset"));l.host.addClass(l.toTP("jqx-rc-all"));l.host.addClass(l.toTP("jqx-widget"));l.host.addClass(l.toTP("jqx-widget-content"));if(l._testmodules()){return}l.render(true);b.jqx.utilities.resize(l.host,function(){var A=b(window).width();var i=b(window).height();var j=l.host.width();var B=l.host.height();if(l._lastHostWidth!=j||l._lastHostHeight!=B){l._updatesize(l._lastHostWidth!=j,l._lastHostHeight!=B)}l._lastWidth=A;l._lastHeight=i;l._lastHostWidth=j;l._lastHostHeight=B})},getvaluebytype:function(h,d){var f=h;if(h==null){return h}if(this.gridlocalization.decimalseparator==","){if(h.indexOf(this.gridlocalization.decimalseparator)>=0){h=h.replace(this.gridlocalization.decimalseparator,".")}}if(h.indexOf(this.gridlocalization.currencysymbol)>=0){h=h.replace(this.gridlocalization.currencysymbol,"")}if(h.indexOf(this.gridlocalization.percentagesymbol)>=0){h=h.replace(this.gridlocalization.percentagesymbol,"")}if(b.isArray(h)&&d.type!="array"){for(var e=0;e
              ');var d=b('
              '+this.gridlocalization.loadtext+"
              ");d.addClass(this.toTP("jqx-rc-all"));this.dataloadelement.addClass(this.toTP("jqx-rc-all"));d.addClass(this.toTP("jqx-fill-state-normal"));this.dataloadelement.append(d);this.dataloadelement.width(this.width);this.dataloadelement.height(this.height);this.host.prepend(this.dataloadelement);if(this.source._source.url!=""){var c=false;if(this.height==="auto"||this.height===null||this.autoheight){if(this.maxHeight==999999){c=true}}if(c){this.host.height(100);this.dataloadelement.height(100)}else{this.host.height(this.height);this.dataloadelement.height(this.height)}var e=false;if(this.width==="auto"||this.width===null||this.autoWidth){e=true}if(e){this.host.width(300);this.dataloadelement.width(300)}else{this.host.width(this.width);this.dataloadelement.width(this.width)}}},_measureElement:function(d){var c=b("measure Text");c.addClass(this.toTP("jqx-widget"));b(document.body).append(c);if(d=="cell"){this._cellheight=c.height()}else{this._columnheight=c.height()}c.remove()},_testmodules:function(){var g="";var e=this;var c=function(){if(g.length!=""){g+=","}};if(!this.host.jqxScrollBar){c();g+=" jqxscrollbar.js"}if(!this.host.jqxButton){c();g+=" jqxbuttons.js"}if(!b.jqx.dataAdapter){c();g+=" jqxdata.js"}if(g!=""||this.editable||this.filterable||this.pageable){var d=[];var f=function(h){switch(h){case"checkbox":if(!e.host.jqxCheckBox&&!d.checkbox){d.checkbox=true;c();g+=" jqxcheckbox.js"}break;case"dropdownlist":if(!e.host.jqxDropDownList&&!d.dropdownlist){c();d.dropdownlist=true;g+=" jqxdropdownlist.js(requires: jqxlistbox.js)"}else{if(!e.host.jqxListBox&&!d.listbox){c();d.listbox=true;g+=" jqxlistbox.js"}}break}};if((this.filterable&&this.filterMode!="simple")||(this.pagerMode=="advanced"&&this.pageable)){f("dropdownlist")}if(g!=""){throw new Error("jqxDataTable: Missing references to the following module(s): "+g);this.host.remove();return true}}return false},focus:function(){try{this.wrapper.focus();this.host.focus();var d=this;setTimeout(function(){d.wrapper.focus();d.host.focus()},25);this.focused=true}catch(c){}},hiddenParent:function(){return b.jqx.isHidden(this.host)},isBindingCompleted:function(){return !this._loading},_updatesize:function(i,h){if(this._loading){return}var f=this;var g=f.host.width();var e=f.host.height();if(!f._oldWidth){f._oldWidth=g}if(!f._oldHeight){f._oldHeight=e}if(f._resizeTimer!=undefined){clearTimeout(f._resizeTimer);f._resizeTimer=null}var d=300;var c=function(){if(f._resizeTimer){clearTimeout(f._resizeTimer)}f.resizingGrid=true;if(b.jqx.isHidden(f.host)){return}f._updatecolumnwidths();f.refresh();f._oldWidth=g;f._oldHeight=e;f.resizingGrid=false};c();f._resizeTimer=setTimeout(function(){var k=f.host.width();var j=f.host.height();if(f._oldWidth!=k||f._oldHeight!=j){c()}},d)},resize:function(d,c){if(d!=undefined){this.width=d}if(c!=undefined){this.height=c}this._updatecolumnwidths();this.refresh()},isTouchDevice:function(){if(this.touchDevice!=undefined){return this.touchDevice}var c=b.jqx.mobile.isTouchDevice();this.touchDevice=c;if(this.touchmode==true){c=true;b.jqx.mobile.setMobileSimulator(this.element);this.touchDevice=c}else{if(this.touchmode==false){c=false}}if(c){this.touchDevice=true;this.host.addClass(this.toThemeProperty("jqx-touch"));this.host.find("jqx-widget-content").addClass(this.toThemeProperty("jqx-touch"));this.host.find("jqx-widget-header").addClass(this.toThemeProperty("jqx-touch"));this.scrollBarSize=this.touchScrollBarSize}return c},toTP:function(c){return this.toThemeProperty(c)},localizestrings:function(c,f){this._cellscache=new Array();if(b.jqx.dataFormat){b.jqx.dataFormat.cleardatescache()}if(this._loading){throw new Error("jqxDataTable: "+this.loadingErrorMessage);return false}if(c!=null){for(var h in c){if(h.toLowerCase()!==h){c[h.toLowerCase()]=c[h]}}var j=["pagergotopagestring","pagershowrowsstring","pagerrangestring","pagernextbuttonstring","pagerpreviousbuttonstring","pagerfirstbuttonstring","pagerlastbuttonstring","toppagerstring","firstDay","days","months","AM","PM","patterns","percentsymbol","currencysymbol","currencysymbolposition","decimalseparator","thousandsseparator","filterapplystring","filteraddnew","filtercancelstring","filterclearstring","filterstring","filterstringcomparisonoperators","filternumericcomparisonoperators","filterdatecomparisonoperators","filterbooleancomparisonoperators","emptydatastring","filterselectstring","todaystring","clearstring","validationstring","loadtext","filtersearchstring","loadingErrorMessage"];var g=this;for(var e=0;eg&&(this.source.records.length>0||(this.source.hierarchy&&this.source.hierarchy.length>0))){this.vScrollBar[0].style.visibility=e;n=4+parseInt(d);this.vScrollBar.jqxScrollBar({max:j-g})}else{this.vScrollBar[0].style.visibility="hidden"}if((h!=this.vScrollBar[0].style.visibility)){this._updatecolumnwidths();var i=this.table.height();if(j!=i){j=i;if(!q&&j>g&&(this.source.records.length>0||(this.source.hierarchy&&this.source.hierarchy.length>0))){this.vScrollBar[0].style.visibility=e;n=4+parseInt(d);this.vScrollBar.jqxScrollBar({max:j-g})}}}var o=this.table?this.table.width():0;if(o>3){o-=3}var c=parseInt(this.host.css("border-left-width"))+parseInt(this.host.css("border-right-width"));var r=c+this.host.width()-n;if(o>r&&!p){this.hScrollBar[0].style.visibility=e;this.hScrollBar.jqxScrollBar({max:o-r});n=4+parseInt(d);if(!q){if(j>g-n+4&&(this.source.records.length>0||(this.source.hierarchy&&this.source.hierarchy.length>0))){this.hScrollBar.jqxScrollBar({max:c+o-r});var f=this.vScrollBar[0].style.visibility==="hidden";this.vScrollBar[0].style.visibility=e;this._updatecolumnwidths();if(f){this.hScrollBar.jqxScrollBar({max:o-r+n+c})}var k=this.table?this.table.width():0;if(k>3){k-=3}if(k!=o){if(k"+e+"");d.addClass(this.toTP("jqx-widget"));d.addClass(this.toTP("jqx-grid"));d.addClass(this.toTP("jqx-grid-column-header"));d.addClass(this.toTP("jqx-widget-header"));b(document.body).append(d);var c=d.outerWidth()+20;d.remove();return c},_arrangeAutoHeight:function(e){if(!e){e=0}if(this.height==="auto"||this.height===null||this.autoheight){var h=this.table.height();var g=0;if(!this.columnGroups){g+=this.showHeader?this.columnsHeight:-1}else{g+=this.showHeader?this.columnsheader.height():-1}g+=this.showstatusbar?this.statusBarHeight:0;g+=this.showAggregates?this.aggregatesHeight:0;g+=this.showtoolbar?this.toolbarHeight:0;g+=this.pageable?this.pagerHeight:0;if(this.pagerPosition==="both"){g+=this.pageable?this.pagerHeight:0}g+=h;if(this.filterable){var f=this.filter.find(".filterrow");var c=this.filter.find(".filterrow-hidden");var d=1;if(c.length>0){d=0}g+=this.filterHeight-1+this.filterHeight*f.length*d}if(g+e>this.maxHeight){this.host.height(this.maxHeight)}else{this.host.height(g+e)}return true}return false},_arrangeAutoWidth:function(e){if(!e){e=0}if(this.width==="auto"||this.width===null||this.autowidth){var d=0;for(var f=0;fthis.maxWidth){this.host.width(this.maxWidth)}else{this.host.width(width+e)}return true}return false},_measureTopAndHeight:function(){var d=this.host.height();var h=0;if(this.showtoolbar){h+=this.toolbarHeight;d-=parseInt(this.toolbarHeight)}if(this.filterable){var g=this.filter.find(".filterrow");var e=this.filter.find(".filterrow-hidden");var f=1;if(e.length>0){f=0}h+=this.filterHeight;d-=parseInt(this.filterHeight);var c=f==1?g.length:0;h+=this.filterHeight*c;d-=this.filterHeight*c}if(this.pageable&&this.pagerPosition!="bottom"){h+=parseInt(this.pagerHeight)+1;if(d>this.pagerHeight&&this.pagerPosition==="both"){d-=parseInt(this.pagerHeight)}}return{top:h,height:d}},_arrange:function(){if(!this.table){return}this._arrangeAutoHeight();this._arrangeAutoWidth();var v=this.host.width();var r=this.host.height();var j=r;var i=this;if(this.pageable){if(this.pagerPosition==="bottom"){this.toppager[0].style.visibility="hidden";this.pager[0].style.visibility="inherit"}else{if(this.pagerPosition==="both"){this.toppager[0].style.visibility="inherit";this.pager[0].style.visibility="inherit"}else{if(this.pagerPosition==="top"){this.toppager[0].style.visibility="inherit";this.pager[0].style.visibility="hidden"}}}}else{this.toppager[0].style.visibility="hidden";this.pager[0].style.visibility="hidden"}var q=0;if(this.showtoolbar){this.toolbar.width(v);this.toolbar.height(this.toolbarHeight-1);this.toolbar.css("top",0);q+=this.toolbarHeight;r-=parseInt(this.toolbarHeight)}else{this.toolbar[0].style.height="0px"}if(this.filterable){this.filter.width(v);this.filter.css("top",q);var t=this.filter.find(".filterrow");var h=this.filter.find(".filterrow-hidden");var A=1;if(h.length>0){A=0}this.filter.height(this.filterHeight-1+this.filterHeight*t.length*A);q+=this.filterHeight;r-=parseInt(this.filterHeight);var x=A==1?t.length:0;q+=this.filterHeight*x;r-=this.filterHeight*x}if(this.showstatusbar){this.statusbar.width(!this.table?v:Math.max(v,this.table.width()));this.statusbar.height(this.statusBarHeight-1)}else{this.statusbar[0].style.height="0px"}if(this.showAggregates){this.aggregates.height(this.aggregatesHeight-1)}else{this.aggregates[0].style.height="0px"}if(this.pageable&&this.pagerPosition!="bottom"){this.toppager[0].style.width=v+"px";this.toppager[0].style.height=parseInt(this.pagerHeight)+"px";this.toppager[0].style.top=parseInt(q)+"px";q+=parseInt(this.pagerHeight)+1;if(r>this.pagerHeight){r-=parseInt(this.pagerHeight)}}else{if(this.toppager[0].style.width!=v+"px"){this.toppager[0].style.width=parseInt(v)+"px"}if(this.toppager[0].style.height!=this.pagerHeight+"px"){this.toppager[0].style.height=parseInt(this.pagerHeight)+"px"}if(this.toppager[0].style.top!=q+"px"){this.toppager[0].style.top=q+"px"}var y=this.pagerPosition!="bottom"?this.pagerHeight:0;var d=q+y+"px";if(this.content[0].style.top!=d){this.content[0].style.top=q+this.pagerHeight+"px"}}this._updateScrollbars(j);var c=parseInt(this.scrollBarSize);var n=4;var e=2;var f=0;if(this.vScrollBar[0].style.visibility!="hidden"){f=c+n}if(this.hScrollBar[0].style.visibility!="hidden"){e=c+n+2}if(this.showAggregates){if(this.hScrollBar[0].style.visibility==="hidden"){this.aggregates.width(!this.table?v:Math.max(v,this.table.width())+4)}else{this.aggregates.width("auto")}}if("hidden"!=this.vScrollBar[0].style.visibility||"hidden"!=this.hScrollBar[0].style.visibility){var w=this._arrangeAutoHeight(e-2);var s=this._arrangeAutoWidth(f+1);if(w||s){var v=this.host.width();this.toppager[0].style.width=parseInt(v)+"px";this.toolbar[0].style.width=parseInt(v)+"px";this.statusbar[0].style.width=parseInt(v)+"px";this.filter[0].style.width=parseInt(v)+"px"}if(w){var B=this._measureTopAndHeight();q=B.top;r=B.height}}var m=0;if(this.pageable){m=this.pagerHeight;if(this.pagerPosition!="top"){e+=this.pagerHeight}}if(this.showAggregates){e+=this.aggregatesHeight;m+=this.aggregatesHeight}if(this.showstatusbar){e+=this.statusBarHeight;m+=this.statusBarHeight}if(this.hScrollBar[0].style.height!=c+"px"){this.hScrollBar[0].style.height=parseInt(c)+"px"}if(this.hScrollBar[0].style.top!=q+r-n-c-m+"px"||this.hScrollBar[0].style.left!="0px"){this.hScrollBar[0].style.top=q+r-n-c-m-1+"px";this.hScrollBar[0].style.left="0px"}var l=this.hScrollBar[0].style.width;var g=false;var z=false;if(f==0){if(l!=(v-2)+"px"){this.hScrollBar[0].style.width=(v-2)+"px";g=true}}else{if(l!=(v-c-n)+"px"){this.hScrollBar[0].style.width=(v-c-n+"px");g=true}}if(this.vScrollBar[0].style.width!=c+"px"){this.vScrollBar[0].style.width=c+"px";z=true}if(this.vScrollBar[0].style.height!=parseInt(r)-e+"px"){this.vScrollBar[0].style.height=(parseInt(r)-e+"px");z=true}if(this.vScrollBar[0].style.left!=parseInt(v)-parseInt(c)-n+"px"||this.vScrollBar[0].style.top!=q+"px"){this.vScrollBar[0].style.top=q+"px";this.vScrollBar[0].style.left=parseInt(v)-parseInt(c)-n+"px"}if(this.rtl){this.vScrollBar.css({left:"0px",top:q});if(this.vScrollBar.css("visibility")!="hidden"){this.hScrollBar.css({left:c+2})}}var k=this.vScrollInstance;k.disabled=this.disabled;var u=this.hScrollInstance;u.disabled=this.disabled;if(g){u.refresh()}if(z){k.refresh()}var o=function(C){if((C.vScrollBar[0].style.visibility!="hidden")&&(C.hScrollBar[0].style.visibility!="hidden")){C.bottomRight[0].style.visibility="inherit";C.bottomRight[0].style.left=1+parseInt(C.vScrollBar.css("left"))+"px";C.bottomRight[0].style.top=parseInt(C.hScrollBar.css("top"))+"px";if(C.rtl){C.bottomRight.css("left","0px")}C.bottomRight[0].style.width=parseInt(c)+3+"px";C.bottomRight[0].style.height=parseInt(c)+4+"px";if(C.showAggregates){C.bottomRight.css("z-index",99);C.bottomRight.height(parseInt(c)+4+C.aggregatesHeight);C.bottomRight.css({top:parseInt(C.hScrollBar.css("top"))-C.aggregatesHeight})}}else{C.bottomRight[0].style.visibility="hidden"}};o(this);if(this.content[0].style.width!=v-f+"px"){this.content[0].style.width=v-f+"px"}if(this.content[0].style.height!=r-e+3+"px"){this.content[0].style.height=r-e+3+"px"}if(this.content[0].style.top!=q+"px"){this.content[0].style.top=parseInt(q)+"px"}if(this.rtl){this.content.css("left",f);if(this.filter&&(this.filter.children().length>0)){b(this.filter.children()).css("left",f)}if(this.table){var p=this.table.width();if(p0)){b(this.filter.children()).css("left",v-p+2)}}}}if(this.showAggregates){this.aggregates.css("top",q+r-this.aggregatesHeight-(this.pageable?this.pagerHeight:0)-(this.showstatusbar?(this.statusBarHeight+1):0));if(this.rtl){this.aggregates.css("left","0px")}if(this.hScrollBar.css("visibility")!="hidden"){this.hScrollBar.css({top:q+r-n-c-m+this.aggregatesHeight+"px"});this.aggregates.css("top",1+q+r-c-5-this.aggregatesHeight-(this.pageable?this.pagerHeight:0)-(this.showstatusbar?(this.statusBarHeight+1):0))}o(this)}if(this.showstatusbar){this.statusbar.css("top",q+r-this.statusBarHeight-(this.pageable?this.pagerHeight:0));if(this.rtl){if(this.hScrollBar.css("visibility")=="hidden"){this.statusbar.css("left",this.content.css("left"))}else{this.statusbar.css("left","0px")}}}if(this.pageable){this.pager[0].style.width=v+"px";this.pager[0].style.height=this.pagerHeight+"px";this.pager[0].style.top=parseInt(q)+parseInt(r)-parseInt(this.pagerHeight)-1+"px"}else{this.pager[0].style.height="0px"}this.vScrollBar[0].style.zIndex=this.tableZIndex+this.headerZIndex+10+this.columns.records.length;this.hScrollBar[0].style.zIndex=this.tableZIndex+this.headerZIndex+10+this.columns.records.length;if(v!=parseInt(this.dataloadelement[0].style.width)){this.dataloadelement[0].style.width=this.element.style.width}if(r!=parseInt(this.dataloadelement[0].style.height)){this.dataloadelement[0].style.height=this.element.style.height}this._hostwidth=v},scrollOffset:function(e,d){if(arguments.length==0||(e!=null&&typeof(e)=="object"&&!e.top)){return{left:this.hScrollBar.jqxScrollBar("value"),top:this.vScrollBar.jqxScrollBar("value")}}if(e!=null&&typeof(e)=="object"){var d=e.left;var c=e.top;var e=c}if(e==null||d==null||e==undefined||d==undefined){return}this.vScrollBar.jqxScrollBar("setPosition",e);this.hScrollBar.jqxScrollBar("setPosition",d)},scrollleft:function(c){if(c==null||c==undefined){return}if(this.hScrollBar.css("visibility")!="hidden"){this.hScrollBar.jqxScrollBar("setPosition",c)}},scrolltop:function(c){if(c==null||c==undefined){return}if(this.vScrollBar.css("visibility")!="hidden"){this.vScrollBar.jqxScrollBar("setPosition",c)}},beginUpdate:function(){this._updating=true;this._datachanged=false},endUpdate:function(c){this._updating=false;if(c===false){return}this._rendercolumnheaders();this.refresh()},updating:function(){return this._updating},databind:function(g,i,c){if(this.loadingstate===true){return}if(this.host.css("display")=="block"){if(this.autoShowLoadElement){b(this.dataloadelement).css("visibility","visible");b(this.dataloadelement).css("display","block");this.dataloadelement.width(this.host.width());this.dataloadelement.height(this.host.height())}else{b(this.dataloadelement).css("visibility","hidden");b(this.dataloadelement).css("display","none")}}var f=this;if(g==null){g={}}if(g.sortcomparer==undefined||g.sortcomparer==null){g.sortcomparer=null}if(g.filter==undefined||g.filter==null){g.filter=null}if(g.sort==undefined||g.sort==null){g.sort=null}if(g.data==undefined||g.data==null){g.data=null}var d=null;if(g!=null){d=g._source!=undefined?g._source.url:g.url}this.dataview=this.dataview||new b.jqx.dataView();this.dataview.pageable=this.pageable;this.dataview.grid=this;if(!f.initializedcall){if(g._source){if(this.sortable){if(g._source.sortcolumn!=undefined){this.sortcolumn=g._source.sortcolumn;this.source.sortcolumn=this.sortcolumn;this.dataview.sortfield=g._source.sortcolumn;g._source.sortcolumn=null}if(g._source.sortdirection!=undefined){this.dataview.sortfielddirection=g._source.sortdirection;var h=g._source.sortdirection;if(h=="a"||h=="asc"||h=="ascending"||h==true){var e=true}else{var e=false}if(h!=null){this.sortdirection={ascending:e,descending:!e}}else{this.sortdirection={ascending:false,descending:false}}}}}if(this.pageable){if(g._source){if(g._source.pagenum!=undefined){this.dataview.pagenum=g._source.pagenum}if(g._source.pagesize!=undefined){this.pageSize=g._source.pagesize;this.dataview.pagesize=g._source.pagesize}else{this.dataview.pagesize=g._source.pagesize;if(this.dataview.pagesize==undefined){this.dataview.pagesize=this.pageSize}}}}if(this.sortable){if(g.sortcolumn){this.dataview.sortfield=g.sortcolumn}if(g.sortdirection){this.dataview.sortfielddirection=g.sortdirection}}}this._loading=true;this.dataview.update=function(z){f._loading=false;f.rowsByKey=new Array();var m=f.source._source.datafields;if(f.groups&&f.groups.length>0){var u=Object.prototype.toString;var w=f.groups[0];Object.prototype.toString=(typeof w=="function")?w:function(){return this[w]};if(!f.source.records.sort){var v=new Array();var t=0;b.each(data,function(){v[startindex+t++]=this});data=v}f.source.records.sort(function(B,j){if(B===undefined){B=null}if(j===undefined){j=null}if(B===null&&j===null){return 0}if(B===null&&j!==null){return -1}if(B!==null&&j===null){return 1}var E=0;var D=0;if(B&&B.uid){E=B.uid}if(j&&j.uid){D=j.uid}B=B.toString();j=j.toString();if(b.jqx.dataFormat.isNumber(B)&&b.jqx.dataFormat.isNumber(j)){if(Bj){return 1}return 0}else{if(b.jqx.dataFormat.isDate(B)&&b.jqx.dataFormat.isDate(j)){if(Bj){return 1}return 0}else{if(!b.jqx.dataFormat.isNumber(B)&&!b.jqx.dataFormat.isNumber(j)){B=String(B).toLowerCase();j=String(j).toLowerCase()}}}try{if(Bj){return 1}}catch(C){var F=C}if(typeof(E)=="number"){if(ED){return 1}}return 0});Object.prototype.toString=u}for(var q=0;q0){var l=function(B){for(var C=0;C0){l(B[C].records)}}};l(A.records)}if(q===0){var k=false;if(m){for(var o=0;o-1||y.toString().indexOf(f.gridlocalization.percentsymbol)>-1){var r=y.toString().split(" ").length;var s=new Number(f._toNumber(y.toString()));if(!isNaN(s)&&r==1){m[o].type="number"}}if(b.jqx.dataFormat.isNumber(y)||(!isNaN(parseFloat(y))&&isFinite(y))){m[o].type="number"}if(b.jqx.dataFormat.isDate(y)){m[o].type="date"}}}}if(k){for(var o=0;og-c){this.hScrollBar.jqxScrollBar("setPosition",g-c)}else{if(g>e){this.hScrollBar.jqxScrollBar("setPosition",h+g-e)}}}},ensurerowvisiblebykey:function(o){if(this.vScrollBar[0].style.visibility==="hidden"){return false}var p=this._getuirow(o);if(!p){return}var m=this.vScrollBar.jqxScrollBar("value");var e=this.host.height();var g=0;if(!this.columnGroups){g+=this.showHeader?this.columnsHeight:0}else{g+=this.showHeader?this.columnsheader.height():0}if(this.filterable){g+=this.filter.height()}if(this.pageable){if(this.pagerPosition==="top"){g+=this.pagerHeight}}if(this.showtoolbar){g+=this.toolbarHeight}e-=g;if(this.pageable&&this.pagerPosition!=="top"){e-=this.pagerHeight}if(this.showstatusbar){e-=this.statusBarHeightt}if(this.showAggregates){e-=this.aggregatesHeight}if(this.hScrollBar.css("visibility")!="hidden"){e-=20}var n=this.host.coord().top+g;var f=m;var c=e+f;var i=p.coord().top+m-n;i=Math.round(i);var l=i+p.outerHeight();l=Math.round(l);if(Math.round(p.position().top)===0){return this.vScrollBar.jqxScrollBar("setPosition",0)}else{var j=b(this._table.children()[1]).children().length-1;var d=this._getuikey(j);var k=this._getuirow(d);if(k){if(k[0]===p[0]){return this.vScrollBar.jqxScrollBar("setPosition",this.vScrollBar.jqxScrollBar("max"))}}}if(ic){return this.vScrollBar.jqxScrollBar("setPosition",4+l-e-m)}},ensureRowVisible:function(c){var d=this._getkey(c);this.ensurerowvisiblebykey(d)},getColumn:function(c){var d=null;if(this.columns.records){b.each(this.columns.records,function(){if(this.datafield==c||this.displayfield==c){d=this;return false}})}return d},_setcolumnproperty:function(e,g,h){if(e==null||g==null||h==null){return null}var d=g;g=g.toLowerCase();var f=this.getColumn(e);if(f==null){return}var i=f[g];f[g]=h;f[d]=h;var c=this.getColumn(e);if(c!=null){c[g]=h}switch(g){case"filteritems":case"text":case"editable":case"resizable":case"draggable":case"hidden":case"hideable":case"renderer":case"cellsrenderer":case"align":case"aggregates":case"cellsalign":case"cellsformat":case"pinned":case"contenttype":case"filterable":case"groupable":case"cellclass":case"cellclassname":case"class":case"width":case"minwidth":case"maxwidth":if(g=="align"){this._rendercolumnheaders();this.refresh()}else{if(g=="text"||g=="class"||g=="hidden"||g=="pinned"||g=="resizable"||g=="renderer"){this._rendercolumnheaders();this.refresh()}else{if(g=="width"||g=="maxwidth"||g=="minwidth"){f._width=null;f._percentagewidth=null;this._updatecolumnwidths();this.refresh()}else{this.refresh()}}}break}},getColumnProperty:function(c,e){if(c==null||e==null){return null}e=e.toLowerCase();var d=this.getColumn(c);return d[e]},setColumnProperty:function(c,d,e){this._setcolumnproperty(c,d,e)},hideColumn:function(c){this._setcolumnproperty(c,"hidden",true)},showColumn:function(c){this._setcolumnproperty(c,"hidden",false)},updateBoundData:function(d,c){this.databind(this.source,d,c)},refresh:function(c){if(c!=true){if(b.jqx.isHidden(this.host)){return}this.vScrollInstance.setPosition(0);this._renderrows();this.updatepagerdetails();this._arrange();if(this._arrangeFilterRow){this._arrangeFilterRow()}this._renderhorizontalscroll();this._showicons();if(this.showAggregates){this._updateaggregates()}this._updateTouchScrolling()}},_updateTouchScrolling:function(){var d=this.that;if(d.isTouchDevice()){var f=b.jqx.mobile.getTouchEventName("touchstart");var e=b.jqx.mobile.getTouchEventName("touchend");var c=b.jqx.mobile.getTouchEventName("touchmove");if(d.gridcontent){d.removeHandler(d.gridcontent,f+".touchScroll");d.removeHandler(d.gridcontent,c+".touchScroll");d.removeHandler(d.gridcontent,e+".touchScroll");d.removeHandler(d.gridcontent,"touchcancel.touchScroll");b.jqx.mobile.touchScroll(d.gridcontent[0],Math.max(d.vScrollInstance.max,d.hScrollInstance.max),function(i,h){if(d.vScrollBar.css("visibility")!="hidden"){var g=d.vScrollInstance.value;d.vScrollInstance.setPosition(g+h)}if(d.hScrollBar.css("visibility")!="hidden"){var g=d.hScrollInstance.value;d.hScrollInstance.setPosition(g+i)}d.scrolled=new Date();d.vScrollInstance.thumbCapture=true},this.element.id,this.hScrollBar,this.vScrollBar)}}},_showicons:function(){if(!this.table){return}for(var e=0;e0){c.css("margin-right",4+h+"px")}else{c.css("margin-right","4px")}}else{if(h>0){c.css("margin-left",4+h+"px")}else{c.css("margin-left","4px")}}}}},render:function(j){var f="
              ";this.element.innerText="";this.element.innerHTML=f;this.wrapper=this.host.find("#wrapper"+this.element.id);this.content=this.host.find("#content"+this.element.id);this.content.addClass(this.toTP("jqx-reset"));var h=this.host.find("#verticalScrollBar"+this.element.id);var l=this.host.find("#horizontalScrollBar"+this.element.id);this.bottomRight=this.host.find("#bottomRight").addClass(this.toTP("jqx-grid-bottomright")).addClass(this.toTP("jqx-scrollbar-state-normal"));if(this.vScrollBar){this.vScrollBar.jqxScrollBar("destroy")}if(this.hScrollBar){this.hScrollBar.jqxScrollBar("destroy")}this.vScrollBar=h.jqxScrollBar({vertical:true,rtl:this.rtl,touchMode:this.touchmode,theme:this.theme,_triggervaluechanged:false});this.hScrollBar=l.jqxScrollBar({vertical:false,rtl:this.rtl,touchMode:this.touchmode,theme:this.theme,_triggervaluechanged:false});this.vScrollBar.css("visibility","hidden");this.hScrollBar.css("visibility","hidden");this.vScrollInstance=b.data(this.vScrollBar[0],"jqxScrollBar").instance;this.hScrollInstance=b.data(this.hScrollBar[0],"jqxScrollBar").instance;this.filter=this.host.find("#filter");this.filter[0].id="filter"+this.element.id;this.filter.addClass(this.toTP("jqx-widget-header"));this.filter.addClass(this.toTP("jqx-grid-toolbar"));this.pager=this.host.find("#pager");this.pager[0].id="pager"+this.element.id;this.toolbar=this.host.find("#toolbar");this.toolbar[0].id="toolbar"+this.element.id;this.toolbar.addClass(this.toTP("jqx-grid-toolbar"));this.toolbar.addClass(this.toTP("jqx-widget-header"));this.aggregates=this.host.find("#aggregates");this.aggregates[0].id="aggregates"+this.element.id;this.aggregates.addClass(this.toTP("jqx-grid-statusbar"));this.aggregates.addClass(this.toTP("jqx-widget-header"));this.statusbar=this.host.find("#statusbar");this.statusbar[0].id="statusbar"+this.element.id;this.statusbar.addClass(this.toTP("jqx-grid-statusbar"));this.statusbar.addClass(this.toTP("jqx-widget-header"));this.pager.addClass(this.toTP("jqx-grid-pager"));this.pager.addClass(this.toTP("jqx-widget-header"));this.toppager=this.host.find("#toppager");this.toppager.addClass(this.toTP("jqx-grid-pager-top"));this.toppager.addClass(this.toTP("jqx-widget-header"));this.gridtable=null;if(this.localizestrings){this.localizestrings();if(this.localization!=null){this.localizestrings(this.localization,false)}}this._builddataloadelement();this._cachedcolumns=this.columns;var c=this.source.datafields;if(c==null&&this.source._source){c=this.source._source.datafields}if(c){for(var d=0;d2){for(var k=0;k
              ');this.columnsheader.remove();this.columnsheader.addClass(this.toTP("jqx-widget-header"));this.columnsheader.addClass(this.toTP("jqx-grid-header"));if(!this.showHeader){this.columnsheader.css("display","none")}else{if(this.columnsheader){this.columnsheader.css("display","block")}}this.gridcontent=this.gridcontent||b('
              ');this.gridcontent.remove();var c=this.columnsHeight;c=this._preparecolumnGroups();this.columnsheader.height(c);this.content.append(this.columnsheader);this.content.append(this.gridcontent);this._rendercolumnheaders();this.tableheight=null;this.gridcontent.find("#contenttable"+this.element.id).remove();if(this.table!=null){this.table.remove();this.table=null}this.table=b('
              ');this.gridcontent.addClass(this.toTP("jqx-grid-content"));this.gridcontent.addClass(this.toTP("jqx-widget-content"));this.gridcontent.append(this.table);this._renderrows();if(this.filterable){this._renderfilter()}if(this.pageable){this._initpager()}this._arrange();if(this.renderStatusBar){this.renderStatusBar(this.statusbar)}if(this.rendertoolbar){this.rendertoolbar(this.toolbar)}if(this.showAggregates){this._updateaggregates()}if(this.disabled){this.host.addClass(this.toThemeProperty("jqx-fill-state-disabled"))}this._renderhorizontalscroll();this._showicons();this._addHandlers()},clear:function(){if(this.source){this.source.records=new Array();this.source.hierarchy=new Array()}this.dataview._filteredData=new Array();this.databind(null);this._render()},_initpager:function(){var g=this;var c=this.gridlocalization.pagergotopagestring;var i=this.gridlocalization.pagerrangestring;var d=this.gridlocalization.pagershowrowsstring;var h=(this.pagerHeight-17)/2;this.pagerdiv=this.pagerdiv||b('
              ');this.toppagerdiv=this.toppagerdiv||b('
              ');if(!this.pageable){this.pagerdiv.remove();this.toppagerdiv.remove();return}if(!this.pagerRenderer){this.pagerdiv.css("top",h);this.toppagerdiv.css("top",h);var f=function(s,E){var n=this;var r=b('
              ');var D=b('
              ');var t=b('
              ');var j=b('
              ');var m=b('
              ');var q=b('
              ');var z=b('
              ');var x=b('
              ');var p=b('
              ');r.attr("disabled",n.disabled);var A=b('
              ');A[0].id="gridpagerlist"+E+n.element.id;n.removeHandler(t,"mousedown");n.removeHandler(t,"mouseup");n.removeHandler(t,"click");n.removeHandler(j,"mousedown");n.removeHandler(j,"mouseup");n.removeHandler(j,"click");n.removeHandler(m,"mousedown");n.removeHandler(m,"mouseup");n.removeHandler(m,"click");n.removeHandler(q,"mousedown");n.removeHandler(q,"mouseup");n.removeHandler(q,"click");if(!n.rtl){j.attr("title",n.gridlocalization.pagerpreviousbuttonstring);t.attr("title",n.gridlocalization.pagernextbuttonstring)}else{t.attr("title",n.gridlocalization.pagerpreviousbuttonstring);j.attr("title",n.gridlocalization.pagernextbuttonstring)}if(b.jqx.browser.msie&&b.jqx.browser.version<8){p.css("padding-top","3px")}this["pagerfirst"+E]=m;this["pagerlast"+E]=q;this["pagernext"+E]=t;this["pagerprevious"+E]=j;this["pagergotoinput"+E]=r;this["pagerdetails"+E]=z;this["pagershowrows"+E]=x;this["pagergotolabel"+E]=D;this["pagershowrowscombo"+E]=A;this["pagerbuttons"+E]=p;if(n.pagerMode=="default"){if(!n.rtl){m.attr("title",n.gridlocalization.pagerfirstbuttonstring);q.attr("title",n.gridlocalization.pagerlastbuttonstring)}else{q.attr("title",n.gridlocalization.pagerfirstbuttonstring);m.attr("title",n.gridlocalization.pagerlastbuttonstring)}var v=b("
              ");v.addClass(n.toThemeProperty("jqx-icon-arrow-first"));m.wrapInner(v);var o=b("
              ");o.addClass(n.toThemeProperty("jqx-icon-arrow-last"));q.wrapInner(o);if(!n.rtl){s.append(m);s.append(j);s.append(p);s.append(t);s.append(q)}else{s.append(q);s.append(t);s.append(p);s.append(j);s.append(m)}q.jqxButton({cursor:"pointer",disabled:n.disabled,theme:n.theme});m.jqxButton({cursor:"pointer",disabled:n.disabled,theme:n.theme});var C=!n.rtl?"left":"right";p.css("float",C);q.css("float",C);m.css("float",C);t.css("float",C);j.css("float",C);z.css("float",n.rtl?"left":"right");if(n.rtl){z.css("margin-left","7px");z.css("margin-right","0px")}else{z.css("margin-left","0px");z.css("margin-right","7px")}}else{if(!n.rtl){s.append(t);s.append(j)}}t.jqxButton({cursor:"pointer",disabled:n.disabled,theme:n.theme});j.jqxButton({cursor:"pointer",disabled:n.disabled,theme:n.theme});var k=b("
              ");k.addClass(n.toThemeProperty("jqx-icon-arrow-left"));j.wrapInner(k);var l=b("
              ");l.addClass(n.toThemeProperty("jqx-icon-arrow-right"));t.wrapInner(l);if(!n.rtl){s.append(z)}if(n.pagerMode!="default"){if(!n.rtl){s.append(A);s.append(x);s.append(r);s.append(D)}else{s.append(D);s.append(r);s.append(x);s.append(A);s.append(z);s.append(t);s.append(j)}var u=n.pageSizeOptions;A.jqxDropDownList({_checkForHiddenParent:false,rtl:n.rtl,disabled:n.disabled,source:u,enableBrowserBoundsDetection:true,keyboardSelection:false,autoDropDownHeight:true,width:44,height:16,theme:n.theme});var B=0;for(var y=0;y=u[y]){B=y}}D[0].innerHTML=c;A.jqxDropDownList({selectedIndex:B});var w=r.find("input");w.addClass(n.toThemeProperty("jqx-input"));w.addClass(n.toThemeProperty("jqx-widget-content"));if(this.rtl){w.css("direction","rtl")}var n=this;this.removeHandler(A,"select");this.addHandler(A,"select",function(K){if(K.args){if(n.vScrollInstance){n.vScrollInstance.setPosition(0)}var I=K.args.index;n.pagershowrowscombotop.data().jqxDropDownList.instance.selectIndex(I);n.pagershowrowscombobottom.data().jqxDropDownList.instance.selectIndex(I);n.pagershowrowscombobottom.data().jqxDropDownList.instance.renderSelection("mouse");n.pagershowrowscombotop.data().jqxDropDownList.instance.renderSelection("mouse");var L=n.dataview.pagenum*n.dataview.pagesize;var H=u[I];var J=n.pageSize;n.pageSize=parseInt(H);if(isNaN(n.pageSize)){n.pageSize=10}if(H>=100){n.pagershowrowscombotop.jqxDropDownList({width:55});n.pagershowrowscombobottom.jqxDropDownList({width:55})}else{n.pagershowrowscombotop.jqxDropDownList({width:44});n.pagershowrowscombobottom.jqxDropDownList({width:44})}n.dataview.pagesize=n.pageSize;var G=Math.floor(L/n.dataview.pagesize);if(G!==n.dataview.pagenum||parseInt(H)!==parseInt(J)){n._raiseEvent("pageSizeChanged",{pagenum:G,oldpageSize:J,pageSize:n.dataview.pagesize});var F=n.goToPage(G);if(!F){if(!n.serverProcessing){n.refresh()}else{n.updateBoundData("pager")}}}}});var r=r.find("input");r.addClass(n.toThemeProperty("jqx-grid-pager-input"));r.addClass(n.toThemeProperty("jqx-rc-all"));this.removeHandler(r,"keydown");this.removeHandler(r,"change");n.addHandler(r,"keydown",function(F){if(F.keyCode>=65&&F.keyCode<=90){return false}if(F.keyCode=="13"){var G=r.val();G=parseInt(G);if(!isNaN(G)){n.goToPage(G-1)}return false}});n.addHandler(r,"change",function(){var F=r.val();F=parseInt(F);if(!isNaN(F)){n.goToPage(F-1)}})}x[0].innerHTML=d;n.addHandler(t,"mouseenter",function(){l.addClass(n.toThemeProperty("jqx-icon-arrow-right-hover"))});n.addHandler(j,"mouseenter",function(){k.addClass(n.toThemeProperty("jqx-icon-arrow-left-hover"))});n.addHandler(t,"mouseleave",function(){l.removeClass(n.toThemeProperty("jqx-icon-arrow-right-hover"))});n.addHandler(j,"mouseleave",function(){k.removeClass(n.toThemeProperty("jqx-icon-arrow-left-hover"))});n.addHandler(t,"mousedown",function(){l.addClass(n.toThemeProperty("jqx-icon-arrow-right-selected"))});n.addHandler(t,"mouseup",function(){l.removeClass(n.toThemeProperty("jqx-icon-arrow-right-selected"))});n.addHandler(j,"mousedown",function(){k.addClass(n.toThemeProperty("jqx-icon-arrow-left-selected"))});n.addHandler(j,"mouseup",function(){k.removeClass(n.toThemeProperty("jqx-icon-arrow-left-selected"))});if(n.pagerMode==="default"){n.addHandler(q,"mouseenter",function(){o.addClass(n.toThemeProperty("jqx-icon-arrow-last-hover"))});n.addHandler(m,"mouseenter",function(){v.addClass(n.toThemeProperty("jqx-icon-arrow-first-hover"))});n.addHandler(q,"mouseleave",function(){o.removeClass(n.toThemeProperty("jqx-icon-arrow-last-hover"))});n.addHandler(m,"mouseleave",function(){v.removeClass(n.toThemeProperty("jqx-icon-arrow-first-hover"))});n.addHandler(q,"mousedown",function(){o.addClass(n.toThemeProperty("jqx-icon-arrow-last-selected"))});n.addHandler(m,"mousedown",function(){v.addClass(n.toThemeProperty("jqx-icon-arrow-first-selected"))});n.addHandler(q,"mouseup",function(){o.removeClass(n.toThemeProperty("jqx-icon-arrow-last-selected"))});n.addHandler(m,"mouseup",function(){v.removeClass(n.toThemeProperty("jqx-icon-arrow-first-selected"))})}n.addHandler(b(document),"mouseup.pagerbuttons"+E+this.element.id,function(){l.removeClass(n.toThemeProperty("jqx-icon-arrow-right-selected"));k.removeClass(n.toThemeProperty("jqx-icon-arrow-left-selected"));if(o){o.removeClass(n.toThemeProperty("jqx-icon-arrow-last-selected"));v.removeClass(n.toThemeProperty("jqx-icon-arrow-first-selected"))}});n.addHandler(t,"click",function(){if(!t.jqxButton("disabled")){if(!n.rtl){n.goToNextPage()}else{n.goToPrevPage()}}});n.addHandler(j,"click",function(){if(!j.jqxButton("disabled")){if(!n.rtl){n.goToPrevPage()}else{n.goToNextPage()}}});if(this.pagerMode==="default"){n.addHandler(m,"click",function(){if(!m.jqxButton("disabled")){if(!n.rtl){n.goToPage(0)}else{var G=n.dataview.totalrecords;var F=Math.ceil(G/n.pageSize);n.goToPage(F-1)}}});n.addHandler(q,"click",function(){if(!q.jqxButton("disabled")){if(!n.rtl){var G=n.dataview.totalrecords;var F=Math.ceil(G/n.pageSize);n.goToPage(F-1)}else{n.goToPage(0)}}})}};this.pagerdiv.children().remove();this.toppagerdiv.children().remove();f.call(this,this.pagerdiv,"bottom");f.call(this,this.toppagerdiv,"top");this.pager.append(this.pagerdiv);this.toppager.append(this.toppagerdiv);this.updatepagerdetails()}else{this.pagerdiv.children().remove();this.toppager.children().remove();var e=this.pagerRenderer();if(e!=null){this.pagerdiv.append(b(e))}this.pager.append(this.pagerdiv);var e=this.pagerRenderer();if(e!=null){this.toppagerdiv.append(b(e))}this.toppager.append(this.toppagerdiv)}},_updatepagertheme:function(){},goToPage:function(f,h){if(this._loading){return false}if(this.editKey!=undefined){if(this.editSettings.saveOnPageChange){var e=this.endroweditbykey(this.editKey);if(!e){return false}}else{return false}}if(f==null||f==undefined){f=0}if(f==-1){f=0}if(f<0){return false}var d=this.dataview.totalrecords;var g=this.dataview.pagenum;var c=Math.ceil(d/this.pageSize);if(f>=c){if(this.dataview.totalrecords==0){this.dataview.pagenum=0;this.updatepagerdetails()}if(f>0){f=c-1}}if(this.dataview.pagenum!=f){if(this.pageable){this.dataview.pagenum=f;this._raiseEvent("pageChanged",{pagenum:f,oldpagenum:g,pageSize:this.dataview.pagesize})}if(!this.serverProcessing){this.refresh();if(h){if(b.isFunction(h)){h()}}}else{this.updateBoundData("pager",h)}return true}return false},goToPrevPage:function(e){if(this.dataview.pagenum>0){return this.goToPage(this.dataview.pagenum-1,e)}else{if(this.pagerMode!="default"&&this.pagerMode!="advanced"){var d=this.dataview.totalrecords;var c=Math.ceil(d/this.pageSize);return this.goToPage(c-1,e)}}return false},goToNextPage:function(e){var d=this.dataview.totalrecords;if(this.summaryrows){d+=this.summaryrows.length}var c=Math.ceil(d/this.pageSize);if(this.dataview.pagenum=this.dataview.totalrecords){u=this.dataview.totalrecords}var v=this.dataview.totalrecords;d++;var t=Math.ceil(v/this.dataview.pagesize);if(t>=1){t--}t++;if(this.pageSizeMode=="root"){t=Math.ceil(this.rootRecordsLength/this.dataview.pagesize);if(t>=1){t--}t++;v=this.rootRecordsLength;this.dataview.totalrecords=this.rootRecordsLength}if(this.pagerMode!="default"){if(this["pagergotoinputbottom"]){var k=this["pagergotoinputbottom"].find("input");k.val(this.dataview.pagenum+1);k.attr("title","1 - "+t);k=this["pagergotoinputtop"].find("input");k.val(this.dataview.pagenum+1);k.attr("title","1 - "+t)}}else{var o="";var n=this.pagerButtonsCount;if(n==0||!n){n=5}var s=0;if(this.rtl){s=n-1}while((this.rtl&&s>=0)||(!this.rtl&&st&&!this.rtl){break}else{if(this.rtl&&e>t){s--;continue}}if(!this.rtl){if(s==0&&e>n){o+="..."}}if(this.dataview.pagenum===e-1){c+=" "+this.toTP("jqx-fill-state-pressed")}if(!this.rtl){o+=""+e+"";if(s===n-1){var c=this.toTP("jqx-grid-pager-number");c+=" "+this.toTP("jqx-rc-all");if(t>=1+e){o+="..."}}}else{if(s===n-1){var c=this.toTP("jqx-grid-pager-number");c+=" "+this.toTP("jqx-rc-all");if(t>=1+e){o+="..."}}if(this.dataview.pagenum===e-1){c+=" "+this.toTP("jqx-fill-state-pressed")}o+=""+e+""}if(this.rtl){var c=this.toTP("jqx-grid-pager-number");c+=" "+this.toTP("jqx-rc-all");if(s==0&&e>n){o+="..."}}if(!this.rtl){s++}else{s--}}if(!this["pagerbuttonsbottom"]){return}var h=this["pagerbuttonsbottom"].find("a");this.removeHandler(h,"click");this.removeHandler(h,"mouseenter");this.removeHandler(h,"mouseleave");var h=this["pagerbuttonstop"].find("a");this.removeHandler(h,"click");this.removeHandler(h,"mouseenter");this.removeHandler(h,"mouseleave");this["pagerbuttonsbottom"][0].innerHTML=o;this["pagerbuttonstop"][0].innerHTML=o;if(this.disabled){this.host.find(".jqx-grid-pager-number").css("cursor","default")}var q=function(){h.click(function(i){if(j.disabled){return}var w=b(i.target).attr("data-page");j.goToPage(parseInt(w)-1)});h.mouseenter(function(i){if(j.disabled){return}b(i.target).addClass(j.toTP("jqx-fill-state-hover"))});h.mouseleave(function(i){if(j.disabled){return}b(i.target).removeClass(j.toTP("jqx-fill-state-hover"))})};if(this.pagerPosition==="both"||this.pagerPosition==="bottom"){var h=this["pagerbuttonsbottom"].find("a");q(h)}if(this.pagerPosition==="both"||this.pagerPosition==="top"){var h=this["pagerbuttonstop"].find("a");q(h)}}if(u==0&&uu){this.goToPrevPage()}},_preparecolumnGroups:function(){var o=this.columnsHeight;if(this.columnGroups){this.columnshierarchy=new Array();if(this.columnGroups.length){var m=this;for(var g=0;gi){return 1}return 0});for(var k=1;k0){if(this.hScrollInstance.value>2*10){this.hScrollInstance.setPosition(this.hScrollInstance.value-2*10)}else{this.hScrollInstance.setPosition(0)}}else{if(this.hScrollInstance.value0){return true}}if(undefined==e.editKey){return false}});this.addHandler(b(window),"jqxReady."+this.element.id,function(){e._updatecolumnwidths();e.refresh()});if(this.editable){this.addHandler(b(document),"mousedown.gridedit"+this.element.id,function(j){if(e.editable&&e.editSettings.saveOnBlur){if(e.editKey!=null){if(!e.vScrollInstance.isScrolling()&&!e.vScrollInstance.isScrolling()){var r=e.host.coord();var o=e.host.width();var k=e.host.height();var t=false;var h=false;var s=false;if(j.pageYr.top+k){t=true;h=true}if(j.pageXr.left+o){t=true;s=true}if(t){var l=function(x){var w=b(x.children()[0]).data();if(w&&!w.jqxWidget){w=x.data()}if(!w){w=x.data()}if(w.jqxWidget&&w.jqxWidget.container&&w.jqxWidget.container[0].style.display=="block"){var i=w.jqxWidget;var y=i.container.coord().top;var v=i.container.coord().top+i.container.height();if(h&&(j.pageYv)){t=true;i.close();return true}else{return false}}};var q=e._editors;if(q){for(var m=0;m0){var j=e._pinnedTable[0].rows[e.hoveredRow[0].rowIndex].cells;h(j)}}e.hoveredRow=null};this.addHandler(this.table,"mouseleave",function(h){c();if(e.wrapper){e.wrapper.parent().removeAttr("tabindex",0);e.wrapper.removeAttr("tabindex",1);e.content.removeAttr("tabindex",2)}});var f=function(n){if(!e.enableHover){return true}e.hoveredRow=n;if(!n){return true}var k=n[0].cells;var m=e.rowDetails&&!e.treeGrid;var p=m&&!e.treeGrid?1:0;var j=0;if(p>0&&e.rtl){p=0;j=1}for(var l=p;l=0){if(!k.expanded){e.showdetailsbykey(E)}else{e.hidedetailsbykey(E)}}else{if(A.target&&A.target.className.indexOf&&A.target.className.indexOf("jqx-grid-group")>=0&&e.treeGrid){if(!k.expanded){e.treeGrid.expandRow(E)}else{e.treeGrid.collapseRow(E)}f(e._getuirow(E));if(A.stopPropagation){A.stopPropagation()}if(A.preventDefault){A.preventDefault()}}else{if(A.target&&A.target.className.indexOf&&A.target.className.indexOf("checkbox")>=0&&e.treeGrid){if(!k.checked){e.treeGrid.checkRow(E)}else{e.treeGrid.uncheckRow(E)}f(e._getuirow(E));if(A.stopPropagation){A.stopPropagation()}}else{var l=b(p).index();var j=e.columns.records[l];if(A.stopPropagation){A.stopPropagation()}if(e.editable&&e.editKey==null){if(e._lastSelectedKey==E&&e.editSettings.editOnDoubleClick&&z){var t=e.beginroweditbykey(E,j);return true}}if(e.isTouchDevice()){if(e.scrolled&&new Date()-e.scrolled<500){if(!e.enableBrowserSelection){if(A.preventDefault){A.preventDefault()}}return false}}if(e.selectionMode==="singlerow"&&e.selectionMode!=="custom"){e.selectrowbykey(E,"mouse",false);e._lastSelectedKey=E;e._updateSelection();if(A.preventDefault){A.preventDefault()}u();return true}else{if(e.selectionMode!=="custom"){if(!A.ctrlKey&&!A.metaKey){e.clearSelection(false)}if(A.shiftKey){if(e._lastSelectedKey){var k=e.rowinfo[e._lastSelectedKey];e._doSelection(e._lastSelectedKey,true,false);var i=b(e._table.children()[1]).children(("[data-key="+e._lastSelectedKey+"]"));var m=i.index();var w=o.index();e._selectRange(w,m);e.selectrowbykey(E,"mouse",false);e._updateSelection();if(A.preventDefault){A.preventDefault()}u();return true}}}e._lastSelectedKey=E;e.clickTime=new Date();if(e.selectionMode!=="custom"){if(k){if(k.selected){e.unselectrowbykey(E,"mouse",false)}else{e.selectrowbykey(E,"mouse",false)}u()}}else{return true}e._updateSelection();if(!e.enableBrowserSelection){if(A.preventDefault){A.preventDefault()}}return true}}}}}})},_updateSelection:function(){var l=this;var r=b(l._table.children()[1]).children();var n=l._pinnedTable?b(l._pinnedTable.children()[1]).children():null;var e=l.rowDetails&&!l.treeGrid;var d=e?1:0;var f=0;if(d>0&&l.rtl){d=0;f=1}for(var h=0;he){var h=e;var d=c;while(hf){var d=d.prev();var g=d.attr("data-key");this._doSelection(g,true,false);h--}}}},_getuikey:function(d,g){var f=null;var e=b(this._table.children()[1]).children();f=b(e[d]).attr("data-key");if(b(e[d]).attr("data-role")){var c=b(e[d]);if(g=="next"){while(c){c=c.next();if(c){var h=c.attr("data-role");if(!h){f=c.attr("data-key");return f}}}}else{if(g=="prev"){while(c){c=c.prev();if(c){var h=c.attr("data-role");if(!h){f=c.attr("data-key");return f}}}}}return null}return f},getRows:function(){return this.source.records},getView:function(){var d=this;var e=this._names();var f=new Array();var c=function(k,h){if(!h){return}for(var j=0;j0){g.records=new Array();c(g.records,h[j].records)}}}}};c(f,this.dataViewRecords);return f},getKeys:function(){var d=new Array();var e=this.source.records;for(var c=0;c0){var h=0;for(var j=0;j0){continue}if(h===n+e){k=o.attr("data-key");return k}h++}return k}if(this.rowDetails){var h=0;for(var j=0;j0){return c}}catch(e){var d=b(this._table.children()[1]).children();for(var f=0;f0){return c}}catch(e){var d=b(this._pinnedTable.children()[1]).children();for(var f=0;f=33&&s<=40))){var z=-1;if(!this._searchString){this._searchString=""}if((s==8||s==46)&&this._searchString.length>=1){this._searchString=this._searchString.substr(0,this._searchString.length-1)}var e=String.fromCharCode(s);var H=(!isNaN(parseInt(e)));var J=false;if((s>=65&&s<=97)||H||s==8||s==32||s==46){if(!X.shiftKey){e=e.toLocaleLowerCase()}if(s!=8&&s!=32&&s!=46){if(!(this._searchString.length>0&&this._searchString.substr(0,1)==e)){this._searchString+=e}}if(s==32){this._searchString+=" "}this._searchTime=new Date();var n=this.getSelection();if(n.length>=1){var t=n[0].uid;var C=-1;for(var S=0;S0&&B[0]==t)){var B=this._getMatches(this._searchString)}}else{var B=this._getMatches(this._searchString)}if(B.length>0){var n=this.getSelection();if(n.length>=1){var c=B.indexOf(n[0].uid);if(c==-1){this.clearSelection(false);this.selectrowbykey(B[0])}else{var h=c+1;if(h>=B.length){h=0}this.clearSelection(false);this.selectrowbykey(B[h])}}else{this.clearSelection(false);this.selectrowbykey(B[0])}this._lastSearchString=this._searchString}}if(this._searchTimer!=undefined){clearTimeout(this._searchTimer)}if(s==27||s==13){this._searchString="";this._lastSearchString=""}this._searchTimer=setTimeout(function(){I._searchString="";I._lastSearchString=""},500);if(z>=0){return}if(J){return false}}}if(this.editKey!=undefined){if(s===27&&this.editSettings.cancelOnEsc){this.endroweditbykey(this.editKey,true)}else{if(s===13&&this.editSettings.saveOnEnter){if(X.target&&X.target.nodeName.toLowerCase()!="div"&&X.target.nodeName.toLowerCase()!="input"){return true}this.endroweditbykey(this.editKey,false)}else{if(this.editSettings.editSingleCell){if(this.editColumn){var P=this.columns.records.indexOf(this.editColumn);if(s==9&&P0){var M=this.editKey;var E=null;for(var S=P-1;S>=0;S--){if(this.columns.records[S].editable&&!this.columns.records[S].hidden){E=this.columns.records[S];break}}if(E){this.endroweditbykey(this.editKey,false);this.beginroweditbykey(M,E)}}}if(s==9){var o=this.rowinfo[this.editKey];var C=this.getrowindex(o);var v=this._getuirow(this.editKey);if(!X.shiftKey&&!y){var N=null;for(var S=0;S=0;S--){if(this.columns.records[S].editable&&!this.columns.records[S].hidden){N=this.columns.records[S];break}}if(N){while(v){v=v.prev();if(v){var D=v.attr("data-role");if(!D){var F=v.attr("data-key");break}}}if(F){this.clearSelection(false);this._lastSelectedKey=F;var o=this.rowsByKey[F];var C=this.getrowindex(o);var L=this.getrowdisplayindex(o);this._raiseEvent("rowSelect",{key:F,index:L,boundIndex:C,row:this.rowsByKey[F]});this.endroweditbykey(this.editKey,false);this._doSelection(F,true,true);this.beginroweditbykey(F,N)}}}}return false}}}}}return true}if(X.ctrlKey||X.metaKey){var f=String.fromCharCode(s).toLowerCase();if(f=="c"||f=="x"){var n=this.getSelection();if(n.length>=1){var w="";for(var K=0;K');O.val(w);b("body").append(O);O.select();setTimeout(function(){document.designMode="off";O.select();O.remove()},100)}}}}if(s===32&&this.treeGrid){if(this.treeGrid.checkboxes){var n=this.getSelection();if(n.length>1){for(var S=0;S0){if(this.dataview.filters.length>0){var m=this.rowinfo[t].row.records;for(var S=0;S0){while(this._getuirow(t)==null&&this.dataview.pagenum>0){this.goToPrevPage()}}}else{if(s==39){var v=this._getuirow(t);var U=null;if(v){var D=v.attr("data-role");if(!D){U=v.attr("data-key")}}if(this.pageable&&U==null){this.goToNextPage()}}}}return false}},_selection:function(c){if("selectionStart" in c[0]){var h=c[0];var i=h.selectionEnd-h.selectionStart;return{start:h.selectionStart,end:h.selectionEnd,length:i,text:h.value}}else{var f=document.selection.createRange();if(f==null){return{start:0,end:h.value.length,length:0}}var d=c[0].createTextRange();var g=d.duplicate();d.moveToBookmark(f.getBookmark());g.setEndPoint("EndToStart",d);var i=f.text.length;return{start:g.text.length,end:g.text.length+f.text.length,length:i,text:f.text}}},_doSelection:function(c,e,d){if(c==null){this.clearSelection();return}if(this.selectionMode==="singlerow"){this.clearSelection(false)}var f=this.rowinfo[c];if(f){f.selected=e;this.ensurerowvisiblebykey(c)}else{this.ensurerowvisiblebykey(c);var f=this.rowinfo[c];if(f){f.selected=e}else{this.rowinfo[c]={selected:e}}}if(this.selectionMode!="none"){if(d!==false){this._renderrows()}}},clearSelection:function(e){if(this.rowinfo){var f=this.getRows();for(var h in this.rowinfo){var g=this.rowinfo[h];if(g.selected){g.selected=false;var d=f.indexOf(g.row);var c=this.getrowdisplayindex(g.row);this._raiseEvent("rowUnselect",{key:h,index:c,boundIndex:d,row:g.row})}}}if(e!==false){this._renderrows()}},exportData:function(t){if(!b.jqx.dataAdapter.ArrayExporter){if(!this.treeGrid){throw"jqxDataTable: Missing reference to jqxdata.export.js!"}throw"jqxTreeGrid: Missing reference to jqxdata.export.js!"}var h=this.exportSettings.columnsHeader;if(h==undefined){h=true}var w=this.exportSettings.hiddenColumns;if(w==undefined){w=false}var P=this.exportSettings.serverURL;var I=this.exportSettings.characterSet;var ac=this.exportSettings.collapsedRecords;if(ac==undefined){ac=false}var F=this.exportSettings.fileName;if(F===undefined){F=this.treeGrid?"jqxTreeGrid_Data":"jqxDataTable_Data"}var s=this;var Y=this.getRows();if(this.exportSettings.recordsInView==true){Y=this.getView()}if(this.treeGrid&&this.treeGrid.virtualModeCreateRecords){var Y=this.treeGrid.getRows()}if(this.groups&&this.groups.length>0){var k=this.source.getGroupedRecords(this.groups,"records","label",null,"data",null,"parent",Y);var m=function(o,ae){for(var ag=0;ag0){var ah=m(j.records,new Array());for(var af=0;af0){if(p.length>0){var aa=this._names();for(var X=0;X0&&o){d(ae[af].records)}}};d(L);if(t!="xml"&&t!="json"){var u=p.length;for(var X=0;X0){o["Level"+o[aa.level]]=ae?"-":"+"}else{o["Level"+o[aa.level]]=""}}else{o["Level"+o[aa.level]]=""}if(o[aa.leaf]){o["Level"+o[aa.level]]=""}for(var ag=o[aa.level]+1;ag=g){aj=p.length-g-1}else{if(g>0&&ag1){var j=b(s._table[0].rows[1].cells[aj]);if(j.length==0){var j=b(s._table[0].rows[1].cells[0])}}if(ak.length==0){var ak=b(s._table[0].rows[0].cells[0])}var af=this;var ah=function(am){var ao=s.toThemeProperty;am.removeClass(ao("jqx-cell"));am.removeClass(ao("jqx-grid-cell-selected"));am.removeClass(ao("jqx-fill-state-pressed"));am.removeClass(ao("jqx-grid-cell-hover"));am.removeClass(ao("jqx-fill-state-hover"));if(af.customCellStyles){for(var an in af.customCellStyles){am.removeClass(af.customCellStyles[an])}}};ah(ak);if(j){ah(j)}if(this.displayfield==null){return true}if(s.showAggregates){if(s.getcolumnaggregateddata){A.push(s.getcolumnaggregateddata(this.displayfield,this.aggregates,true,Y))}}var ai=s._getexportcolumntype(this);if(this.exportable&&(!this.hidden||f)){Z[this.displayfield]={};Z[this.displayfield].text=this.text;Z[this.displayfield].width=parseInt(this.width);if(isNaN(Z[this.displayfield].width)){Z[this.displayfield].width=60}if(Z[this.displayfield].width>500){Z[this.displayfield].width=500}Z[this.displayfield].formatString=this.cellsFormat;Z[this.displayfield].localization=s.gridlocalization;Z[this.displayfield].type=ai;Z[this.displayfield].cellsAlign=this.cellsalign;Z[this.displayfield].hidden=!h;Z[this.displayfield].index=aj;Z[this.displayfield].maxIndex=p.length}E="cell"+B;var al=this.element;if(t!="json"&&t!="xml"){K="column"+z;var i=function(o,au,at,am,ar,ao,an,ap,aq){C[o]={index:1+an,maxIndex:p.length};if(ao.rtl){C[o].index=p.length-an}if(t=="html"||t=="xls"||t=="pdf"){if(au){C[o]["font-size"]=au.css("font-size");C[o]["font-weight"]=au.css("font-weight");C[o]["font-style"]=au.css("font-style");C[o]["background-color"]=ao._getexportcolor(au.css("background-color"));C[o]["color"]=ao._getexportcolor(au.css("color"));C[o]["border-color"]=ao._getexportcolor(au.css("border-top-color"))}if(at){C[o]["text-align"]=ar.align}else{C[o]["text-align"]=ar.cellsalign;C[o]["formatString"]=ar.cellsFormat;C[o]["dataType"]=ai}if(t=="html"||t=="pdf"){C[o]["border-top-width"]="0px";if(!ao.rtl){C[o]["border-left-width"]="0px";C[o]["border-right-width"]="1px"}else{C[o]["border-left-width"]="1px";C[o]["border-right-width"]="0px";if(an==p.length-g-1&&at){C[o]["border-right-width"]="1px"}}C[o]["border-bottom-width"]="1px";if(au){C[o]["border-top-style"]=au.css("border-top-style");C[o]["border-left-style"]=au.css("border-left-style");C[o]["border-right-style"]=au.css("border-right-style");C[o]["border-bottom-style"]=au.css("border-bottom-style")}if(at){if(an==0&&!ao.rtl){C[o]["border-left-width"]="1px"}else{if(an==p.length-1&&ao.rtl){C[o]["border-right-width"]="1px"}}if(au){C[o]["border-top-width"]="1px";C[o]["border-bottom-width"]=au.css("border-bottom-width")}}else{if(an==0&&!ao.rtl){C[o]["border-left-width"]="1px"}else{if(an==p.length-1&&ao.rtl){C[o]["border-right-width"]="1px"}}}if(au){C[o]["height"]=au.css("height")}if(ao.treeGrid&&!at){if(C[o].index-10&&this.treeGrid){var ab=g+1;if(this.rtl){ab=p.length-g}if(C["column"+ab]){var e=C["column"+ab];e.merge=g;e["border-left-width"]="1px";var H=C["cell"+ab];for(var X=0;X0){b.each(p,function(j){if(this.aggregates){for(var ae=0;ae0){var c=l;for(var u=0;u0){var c=this.getRows();for(var e=0;e0){var m=this.rowsByKey[G];if(this.treeGrid){var m=this.treeGrid.getRow(G)}if(m.level0){for(var y=0;y
              ";var r=this.getCellTextByKey(G,g.displayfield);d.innerHTML=cellContent;var e=b(d.firstChild);switch(g.columntype){case"textbox":case"default":var j=b("").appendTo(e);if(this.rtl){j.css("direction","rtl")}j.addClass(this.toThemeProperty("jqx-input"));j.addClass(this.toThemeProperty("jqx-widget-content"));j.addClass(this.toThemeProperty("jqx-cell-editor"));j[0].onfocus=function(i){setTimeout(function(){if(i){var H=b(i.target).parent().parent().index();if(H>=0){o.ensureColumnVisible(o.columns.records[H].datafield)}}else{var H=b(document.activeElement).parent().parent().index();if(H>=0){o.ensureColumnVisible(o.columns.records[H].datafield)}}if(o.content){o.content[0].scrollTop=0;o.content[0].scrollLeft=0}if(o.gridcontent){o.gridcontent[0].scrollLeft=0;o.gridcontent[0].scrollTop=0}},10)};if(!g.editable){j.attr("disabled",true);j.attr("readOnly",true);j.addClass(this.toThemeProperty("jqx-fill-state-disabled"))}else{if(!p){p=true;var f=b.jqx.browser.msie&&b.jqx.browser.version>10;if(!f){j.focus()}var c=j;setTimeout(function(){var I=c.val().length;if(!f){c.focus()}try{if("selectionStart" in c[0]){c[0].setSelectionRange(0,I)}else{var i=c[0].createTextRange();i.collapse(true);i.moveEnd("character",I);i.moveStart("character",0);i.select()}}catch(H){var J=H}},10)}}j.width(w);j.height(t);if(b.jqx.browser.msie&&b.jqx.browser.version<9){j.css("line-height",parseInt(t)+"px")}j.css("text-align",g.cellsalign);if(r===null){r=""}if(r==undefined){r=""}j.val(r);if(g.createeditor){var B=r;var r=this.getCellValueByKey(G,g.displayfield);g.createeditor(!this.treeGrid?n:G,r,j,B,w,t)}this._editors.push({column:g,editor:j});if(g.cellsFormat!=""){if(g.cellsFormat.indexOf("p")!=-1||g.cellsFormat.indexOf("c")!=-1||g.cellsFormat.indexOf("n")!=-1||g.cellsFormat.indexOf("f")!=-1){j.keydown(function(H){var N=H.charCode?H.charCode:H.keyCode?H.keyCode:0;var K=String.fromCharCode(N);var L=parseInt(K);if(isNaN(L)){return true}if(o._selection(j).length>0){return true}var J="";var I=j.val();if(g.cellsFormat.length>1){var M=parseInt(g.cellsFormat.substring(1));if(isNaN(M)){M=0}}else{var M=0}if(M>0){if(I.indexOf(o.gridlocalization.decimalseparator)!=-1){if(o._selection(j).start>I.indexOf(o.gridlocalization.decimalseparator)){return true}}}for(var O=0;O=11){return false}})}}if(g.initeditor){var B=r;var r=this.getCellValueByKey(G,g.displayfield);g.initeditor(!this.treeGrid?n:G,r,j,B,w,t)}break;case"custom":case"template":if(!this.editorsCache){this.editorsCache=new Array()}var k=b("
              ").appendTo(e);var x=b.trim(g.datafield).split(" ").join("");if(x.indexOf(".")!=-1){x=x.replace(".","")}var z=this.editorsCache["templateeditor_"+x];if(g.columntype=="custom"){var z=this.editorsCache["customeditor_"+x+"_"+G]}var B=r;var r=this.getCellValueByKey(G,g.displayfield);if(!z){var j=b("
              ");j.width(u);j.height(t);z=j;if(r===null){r=""}if(g.columntype!="custom"){this.editorsCache["templateeditor_"+x]=j}else{this.editorsCache["customeditor_"+x+"_"+G]=j}j.appendTo(k);if(g.createeditor){g.createeditor(!this.treeGrid?n:G,r,j,B,u,t)}}else{var j=z;j.width(u);j.height(t);j.appendTo(k)}if(g.initeditor){g.initeditor(!this.treeGrid?n:G,r,j,B,u,t)}this._editors.push({column:g,editor:j});break}}}this.editKey=G;this.beginUpdate();var F=this.getrowdisplayindex(m);this._raiseEvent("rowBeginEdit",{key:G,index:F,boundIndex:n,row:this.rowsByKey[G]});if(E){var m=this.rowsByKey[G];var v=null;var l=null;if(m){v=m[q.datafield];l=m[q.displayfield]}this._raiseEvent("cellBeginEdit",{value:v,displayValue:l,key:G,index:F,dataField:q.datafield,displayField:q.displayfield,boundIndex:n,row:this.rowsByKey[G]})}this.endUpdate(false)},_toNumber:function(f){if(!f.indexOf&&f!=undefined){f=f.toString()}if(f.indexOf(this.gridlocalization.currencysymbol)>-1){f=f.replace(this.gridlocalization.currencysymbol,"")}var c=function(l,j,k){var h=l;if(j==k){return l}var i=h.indexOf(j);while(i!=-1){h=h.replace(j,k);i=h.indexOf(j)}return h};f=c(f,this.gridlocalization.thousandsseparator,"");f=f.replace(this.gridlocalization.decimalseparator,".");if(f.indexOf(this.gridlocalization.percentsymbol)>-1){f=f.replace(this.gridlocalization.percentsymbol,"")}var g="";for(var d=0;d1){if(b.jqx.dataFormat){m=b.jqx.dataFormat.parsedate(e,h.cellsFormat,this.gridlocalization)}if(m=="Invalid Date"||m==null){m=""}}}}if(h.displayfield!=h.datafield){m={label:m,value:m}}break}}if(h.geteditorvalue){var c=this.getCellValueByKey(d,h.displayfield);m=h.geteditorvalue(!this.treeGrid?k:d,c,j)}}return m},_validateEditors:function(c){var k=this;var d=true;var s=k.rowsByKey[c];var l=k.getrowindex(s);var m=k._editors;var c=k.editKey;var p=k._getuirow(c);for(var h=0;h=0||G.indexOf("datetimeinput")>=0||G.indexOf("combobox")>=0||G.indexOf("menu")>=0){if(i.jqxWidget.isOpened){var F=i.jqxWidget.isOpened();if(F){i.jqxWidget.close()}}}}};var z="customeditor_"+v.displayfield+"_"+p;var y="templateeditor_"+v.displayfield;if(k.editorsCache[z]){var w=b(k.editorsCache[z]).data();var A=k.editorsCache[z];if(!w.jqxWidget&&b(A).children()[0]&&b(b(A).children()[0]).data().jqxWidget){w=b(b(A).children()[0]).data()}E(w);k.editorsCache[z].detach()}if(k.editorsCache[y]){k.editorsCache[y].detach();var w=b(k.editorsCache[y]).data();var A=k.editorsCache[y];if(!w.jqxWidget&&b(A).children()[0]&&b(b(A).children()[0]).data().jqxWidget){w=b(b(A).children()[0]).data()}E(w)}}if(C!=u){k.beginUpdate();k._raiseEvent("cellValueChanged",{value:C,oldValue:u,dataField:v.datafield,displayField:v.displayfield,key:p,index:l,row:t});k.endUpdate(false)}}};k.updaterowbykey(k.editKey,h,false,s)}}if(!d){return false}}k._detachEditors(e);return true},_detachEditors:function(l){var g=this;var m=g.rowsByKey[l];var i=g.getrowindex(m);if(g.editorsCache){for(var h in g.editorsCache){var f=b(g.editorsCache[h]).data();if(f&&f.jqxWidget){var c=f.jqxWidget.element.className;if(c.indexOf("dropdownlist")>=0||c.indexOf("datetimeinput")>=0||c.indexOf("combobox")>=0||c.indexOf("menu")>=0){if(f.jqxWidget.isOpened){var e=f.jqxWidget.isOpened();if(e){f.jqxWidget.close()}}}}b(g.editorsCache[h]).detach()}}g.beginUpdate();var d=g.getrowdisplayindex(m);if(g.editSettings.editSingleCell){var m=g.rowsByKey[l];var k=null;var j=null;if(m){k=m[g.editColumn.datafield];j=m[g.editColumn.displayfield]}g._raiseEvent("cellEndEdit",{value:k,displayValue:j,key:l,index:d,dataField:g.editColumn.datafield,displayField:g.editColumn.displayfield,boundIndex:i,row:g.rowsByKey[l]})}g._raiseEvent("rowEndEdit",{key:l,index:d,boundIndex:i,row:g.rowsByKey[l]});g.endUpdate(false);g.editColumn=null;g.editKey=null;g._renderrows();g._renderhorizontalscroll();g.host.focus();setTimeout(function(){g.host.focus()},10)},_showvalidationpopup:function(r,e,s,m){if(s==undefined){var s=this.gridlocalization.validationstring}m.addClass(this.toThemeProperty("jqx-grid-validation-label"));var p=b("
              ");var o=b("
              ");p.html(s);o.addClass(this.toThemeProperty("jqx-grid-validation-arrow-up"));p.addClass(this.toThemeProperty("jqx-grid-validation"));p.addClass(this.toThemeProperty("jqx-rc-all"));p.hide();o.hide();p.prependTo(this.table);o.prependTo(this.table);var h=this.hScrollInstance;var j=h.value;var g=parseInt(j);var l=this.getColumn(e).uielement;if(!r){return}var k=r;p.css("top",parseInt(k.position().top)+30+"px");var c=parseInt(p.css("top"));o.css("top",c-11);o.removeClass();o.addClass(this.toThemeProperty("jqx-grid-validation-arrow-up"));var f=false;if(c>=this._table.height()){o.removeClass(this.toThemeProperty("jqx-grid-validation-arrow-up"));o.addClass(this.toThemeProperty("jqx-grid-validation-arrow-down"));c=parseInt(k.position().top)-k.outerHeight()-5;if(c<0){c=0;o.removeClass(this.toThemeProperty("jqx-grid-validation-arrow-down"));f=true}p.css("top",c+"px");o.css("top",c+p.outerHeight()-9)}var n=-g+parseInt(b(l).position().left);var q=parseInt(this._table.css("left"));if(isNaN(q)){q=0}if(q!=0){g=0}o.css("left",g+n+30);var d=p.width();if(d+n>this.host.width()-20){var i=d+n-this.host.width()+40;n-=i}if(!f){p.css("left",g+n)}else{p.css("left",g+parseInt(b(l).position().left)-p.outerWidth())}m.mouseenter(function(){if(m.hasClass("jqx-grid-validation-label")){p.show();o.show()}});m.mouseleave(function(){p.hide();o.hide()});if(!this.popups){this.popups=new Array()}this.popups[this.popups.length]={validation:p,validationrow:o}},addRow:function(d,p,j,n){if(p!=undefined){this._datachanged=true;if(j==undefined){j="last"}var o=false;var k=this.that;if(d==null){var f=this.dataview.filters&&this.dataview.filters.length>0;var m=!f?this.dataview.totalrecords:this.source.records.length;if(!this.pageable){if(this.source._source.totalrecords){this.dataview.totalrecords=this.source._source.totalrecords}else{if(this.source._source.totalRecords){this.dataview.totalrecords=this.source._source.totalRecords}else{if(this.source.hierarchy.length!==0){this.dataview.totalrecords=this.source.hierarchy.length}else{this.dataview.totalrecords=this.source.records.length}}}var m=!f?this.dataview.totalrecords:this.source.records.length}if(!b.isArray(p)){d=this.dataview.getid(this.dataview.source.id,p,m);if(this.getColumn(this.dataview.source.id)){p[this.dataview.source.id]=d}}else{var c=new Array();b.each(p,function(e,q){var r=k.dataview.getid(k.dataview.source.id,p[e],m+e);c.push(r);if(k.getColumn(k.dataview.source.id)){p[e][k.dataview.source.id]=r}});d=c}}else{if(!b.isArray(p)){if(this.getColumn(this.dataview.source.id)){p[this.dataview.source.id]=d}}else{b.each(p,function(e,q){var r=d[e];if(k.getColumn(k.dataview.source.id)){p[e][k.dataview.source.id]=r}})}}var i=this.treeGrid?(this.treeGrid.virtualModeCreateRecords?true:false):false;var g=function(t,e,y,r){if(t._loading){throw new Error("jqxDataTable: "+t.loadingErrorMessage);return false}var q=t.vScrollInstance.value;var x=false;if(!b.isArray(y)){y.uid=e;t.rowsByKey[e]=y;if(e==n){n=null}x=t.source.addRecord(y,r,n,i)}else{b.each(y,function(z,A){var B=null;if(e!=null&&e[z]!=null){B=e[z]}this.uid=B;t.rowsByKey[B]=this;if(e==n){n=null}x=t.source.addRecord(this,r,n,i)})}if(t.groups&&t.groups.length>0){var u=Object.prototype.toString;var w=t.groups[0];Object.prototype.toString=(typeof w=="function")?w:function(){return this[w]};if(!t.source.records.sort){var v=new Array();var s=0;b.each(data,function(){v[startindex+s++]=this});data=v}t.source.records.sort(function(A,z){if(A===undefined){A=null}if(z===undefined){z=null}if(A===null&&z===null){return 0}if(A===null&&z!==null){return -1}if(A!==null&&z===null){return 1}var D=0;var C=0;if(A&&A.uid){D=A.uid}if(z&&z.uid){C=z.uid}A=A.toString();z=z.toString();if(b.jqx.dataFormat.isNumber(A)&&b.jqx.dataFormat.isNumber(z)){if(Az){return 1}return 0}else{if(b.jqx.dataFormat.isDate(A)&&b.jqx.dataFormat.isDate(z)){if(Az){return 1}return 0}else{if(!b.jqx.dataFormat.isNumber(A)&&!b.jqx.dataFormat.isNumber(z)){A=String(A).toLowerCase();z=String(z).toLowerCase()}}}try{if(Az){return 1}}catch(B){var E=B}if(typeof(D)=="number"){if(DC){return 1}}return 0});Object.prototype.toString=u}t.dataview._filteredData=null;t.dataview._sortData=null;t.dataview._sortHierarchyData=null;if(t._updating==undefined||t._updating==false){t.refresh()}if(t.source&&t.source._knockoutdatasource&&!t._updateFromAdapter&&t.autokoupdates){if(t.source._source._localdata){t.source.suspendKO=true;t.source._source._localdata.push(y);t.source.suspendKO=false}}t.vScrollInstance.setPosition(q);return x};if(this.source.addrow){var h=function(e,q){if(e==true||e==undefined){if(q!=undefined){d=q}g(k,d,p,j)}};try{if(!k.treeGrid){o=this.source.addrow(d,p,j,h)}else{o=this.source.addrow(d,p,j,n,h)}if(o==undefined){o=true}}catch(l){o=false}if(o==false){return false}}else{g(this,d,p,j)}return o}return false},deleteRow:function(c){var d=this._getkey(c);this.deleterowbykey(d)},deleterowbykey:function(g){if(g!=undefined){this._datachanged=true;var h=false;var f=this.that;var d=function(m,l){if(m._loading){throw new Error("jqxDataTable: "+m.loadingErrorMessage);return false}m.dataview._filteredData=null;m.dataview._sortData=null;m.dataview._sortHierarchyData=null;var o=false;var p=m.vScrollInstance.value;if(!b.isArray(l)){var o=false;if(m.rowsByKey[l]){o=true;if(m.rowinfo[l].selected){m.unselectrowbykey(l,false)}if(m.treeGrid){var n=m._names();var k=m.rowsByKey[l][n.parent]}delete m.rowsByKey[l];if(m.treeGrid){if(m.rowinfo[l]){var i=m.rowinfo[l].row.records;var j=function(q){for(var r=0;r0&&v.originalRecord){v.originalRecord[o.columns.records[u].datafield]=t[o.columns.records[u].datafield]}}r=true}};s(n);if(o.treeGrid){n=o.treeGrid.getRow(l);s(n)}}else{b.each(l,function(w,x){var v=o.rowsByKey[this];var u=function(z,y){if(!v){r=false}else{v[this]=t[w]}r=true};u(this,v);if(o.treeGrid){v=o.treeGrid.getRow(this);u(this,v)}})}var m=o.vScrollInstance.value;if(g==undefined||g==true){if(o._updating==undefined||o._updating==false){o._renderrows()}}if(o.showAggregates&&o._updatecolumnsaggregates){o._updatecolumnsaggregates()}if(o.source&&o.source._knockoutdatasource&&!o._updateFromAdapter&&o.autokoupdates){if(o.source._source._localdata){var n=o.rowsByKey[l];var p=o.getrowindex(n);var q=o.source._source._localdata()[p];o.source.suspendKO=true;o.source._source._localdata.replace(q,b.extend({},n));o.source.suspendKO=false}}o.vScrollInstance.setPosition(m);return r};if(this.source.updaterow){var e=function(l){if(l==true||l==undefined){d(f,c,k);if(i){i()}f._renderrows(false)}};try{j=this.source.updaterow(c,k,e);if(j==undefined){j=true}}catch(h){j=false}}else{j=d(f,c,k);if(j&&i){i()}f._renderrows(false)}return j}return false},lockRow:function(c){var d=this._getkey(c);this.lockrowbykey(d)},unlockRow:function(c){var d=this._getkey(c);this.unlockrowbykey(d)},lockrowbykey:function(c){if(this.rowinfo[c]){this.rowinfo[c].locked=true}else{this.rowinfo[c]={locked:true}}this._renderrows()},unlockrowbykey:function(c){if(this.rowinfo[c]){this.rowinfo[c].locked=false}else{this.rowinfo[c]={locked:false}}this._renderrows()},selectRow:function(c){var d=this._getkey(c);this.selectrowbykey(d)},unselectRow:function(c){var d=this._getkey(c);this.unselectrowbykey(d)},selectrowbykey:function(e,h,f){if(h!="keyboard"&&h!="mouse"){this._lastSelectedKey=e}var g=f!==false?true:false;this._doSelection(e,true,g);var i=this.rowsByKey[e];var d=this.getrowindex(i);var c=this.getrowdisplayindex(i);this._raiseEvent("rowSelect",{key:e,index:c,boundIndex:d,row:this.rowsByKey[e]})},unselectrowbykey:function(e,f){var g=f!==false?true:false;this._doSelection(e,false,g);var h=this.rowsByKey[e];var d=this.getrowindex(h);var c=this.getrowdisplayindex(h);this._raiseEvent("rowUnselect",{key:e,index:c,boundIndex:d,row:this.rowsByKey[e]})},getSelection:function(){var c=new Array();if(this.rowinfo){for(var e in this.rowinfo){var d=this.rowinfo[e];if(d.selected){c.push(d.row)}}}return c},showdetailsbykey:function(k){if(!this.rowDetails){return}var l=this.rowinfo[k];if(l){l.expanded=true;var f=b(this._table.children()[1]).children(("[data-key="+k+"]"));var i=b(this._pinnedTable.children()[1]).children(("[data-key="+k+"]"));if(f){var c=i.children();var h=b(c[0]);if(this.rtl){var h=b(c[c.length-1])}if(!this.rtl){h.removeClass(this.toThemeProperty("jqx-grid-group-collapse"));h.addClass(this.toThemeProperty("jqx-grid-group-expand"));h.removeClass(this.toThemeProperty("jqx-icon-arrow-right"));h.addClass(this.toThemeProperty("jqx-icon-arrow-down"))}else{h.removeClass(this.toThemeProperty("jqx-grid-group-collapse-rtl"));h.addClass(this.toThemeProperty("jqx-grid-group-expand-rtl"));h.removeClass(this.toThemeProperty("jqx-icon-arrow-left"));h.addClass(this.toThemeProperty("jqx-icon-arrow-down"))}f.next().show();var d=i.next();d.show();if(b.jqx.browser.msie&&b.jqx.browser.version<8){f.next().children().show();i.next().children().show()}if(!l.initialized){var j=l.detailsHeight;var m=this.initRowDetails(k,l.row,b(b(d).children().children().children()[0]),l);l.details=b(d).children().children().children()[0];l.initialized=true;if(m===false||l.detailsHeight!=j){if(m===false){l.expanded=false;l.nodetails=true;d.hide()}this._renderrows()}}this._updateScrollbars();if(this.height==="auto"||this.height===null||this.autoheight){this._arrange()}var g=this.getrowindex(l.row);var e=this.getrowdisplayindex(l.row);this._raiseEvent("rowExpand",{row:l.row,index:e,boundIndex:g,rowKey:k})}}},hidedetailsbykey:function(h){if(!this.rowDetails){return}var j=this.rowinfo[h];if(j){j.expanded=false;var d=b(this._table.children()[1]).children(("[data-key="+h+"]"));var e=b(this._pinnedTable.children()[1]).children(("[data-key="+h+"]"));if(d){var g=e.children();var i=b(g[0]);if(this.rtl){var i=b(g[g.length-1])}if(!this.rtl){i.addClass(this.toThemeProperty("jqx-grid-group-collapse"));i.removeClass(this.toThemeProperty("jqx-grid-group-expand"));i.addClass(this.toThemeProperty("jqx-icon-arrow-right"));i.removeClass(this.toThemeProperty("jqx-icon-arrow-down"))}else{i.addClass(this.toThemeProperty("jqx-grid-group-collapse-rtl"));i.removeClass(this.toThemeProperty("jqx-grid-group-expand-rtl"));i.addClass(this.toThemeProperty("jqx-icon-arrow-left"));i.removeClass(this.toThemeProperty("jqx-icon-arrow-down"))}d.next().hide();e.next().hide();if(b.jqx.browser.msie&&b.jqx.browser.version<8){d.next().children().hide();e.next().children().hide()}this._updateScrollbars();if(this.height==="auto"||this.height===null||this.autoheight){this._arrange()}var f=this.getrowindex(j.row);var c=this.getrowdisplayindex(j.row);this._raiseEvent("rowCollapse",{row:j.row,index:c,boundIndex:f,rowKey:h})}}},_getvirtualcolumnsindexes:function(d,l,h,k,c){if(this.rowDetails||this.rtl||this.editcell||(this.width&&this.width.toString().indexOf("%")>=0)||this.exporting){return{start:0,end:h+k}}var e=0;var i=-1;var f=h+k;if(this.autorowheight){return{start:0,end:h+k}}if(!c){for(var g=0;g=d&&i==-1){i=g}if(e>l+d){f=g;break}}}f++;if(f>h+k){f=h+k}if(i==-1){i=0}return{start:i,end:f}},_renderhorizontalscroll:function(){var t=this.hScrollInstance;var u=t.value;if(this.hScrollBar.css("visibility")==="hidden"){t.value=0;u=0}var h=parseInt(u);if(this.table==null){return}var q=this.columnsrow;var r=0;var i=this.columns.records.length-r;var e=this.columns.records;var l=this.source.records.length==0;if(this.rtl){if(this.hScrollBar.css("visibility")!="hidden"){h=t.max-h}}if(l&&!this._haspinned){this.table[0].style.left=-h+"px";q[0].style.marginLeft=-h+"px"}else{if(this._haspinned||this._haspinned==undefined){for(var w=0;w0:false;if(this.columns&&this.columns.records){for(var e=0;e0){if(filtertype==="stringfilter"){h.jqxDropDownList({selectedIndex:2})}else{h.jqxDropDownList({selectedIndex:0})}}}}},applyFilters:function(){if(this.editable){if(this.editKey!=null){var c=this.endroweditbykey(this.editKey)}}this.dataview._filteredData=null;this.dataview._sortData=null;this.dataview._sortHierarchyData=null;if(this.serverProcessing){this.dataview.pagenum=0;this.updateBoundData("filter")}else{this.goToPage(0);this.refresh()}if(arguments&&arguments.length>0){if(this._updateSimpleFilter){if(this.filtercolumnsList){var d=this.filtercolumnsList.jqxDropDownList("getSelectedItem").value;this._updateSimpleFilter(d)}}if(this._updateFilterRow){this._updateFilterRow()}}this._raiseEvent("filter",{filters:this.dataview.filters})},sortBy:function(d,f){this.dataview._filteredData=null;this.dataview._sortData=null;this.dataview._sortHierarchyData=null;if(this._loading){throw new Error("jqxDataTable: "+this.loadingErrorMessage);return false}if(this.editable){if(this.editKey!=null){var c=this.endroweditbykey(this.editKey)}}if(d==null){f=null;d=this.sortcolumn}if(d){var e=this;if(f=="a"||f=="asc"||f=="ascending"||f==true){ascending=true}else{ascending=false}if(f!=null){e.sortdirection={ascending:ascending,descending:!ascending}}else{e.sortdirection={ascending:false,descending:false}}if(f!=null){e.sortcolumn=d}else{e.sortcolumn=null}if(e.source.sort){e.dataview.sortfield=d;if(f==null){e.dataview.sortfielddirection=""}else{e.dataview.sortfielddirection=ascending?"asc":"desc"}if(e.source.sort&&!this._loading){e.source.sort(d,f)}}e.dataview.sortBy(d,f);e._raiseEvent("sort",{sortcolumn:this.sortcolumn,sortdirection:this.sortdirection})}if(!this.serverProcessing){this.refresh()}else{this.updateBoundData("sort")}},_togglesort:function(d){var f=this;if(this.disabled){return}if(d.sortable&&f.sortable){var c={sortcolumn:this.sortcolumn,sortdirection:this.sortdirection};var e=null;if(c.sortcolumn!=null&&c.sortcolumn==d.displayfield){e=c.sortdirection.ascending;if(e==true){e=false}else{e=null}}else{e=true}f.sortBy(d.displayfield,e)}},_renderfilter:function(){var h=this;var j=b("
              ");j.height(22);var o=j.find("input");var g=j.find("div:first");j.addClass(this.toThemeProperty("jqx-rc-all"));j.addClass(this.toThemeProperty("jqx-widget"));j.addClass(this.toThemeProperty("jqx-input-group"));o.addClass(this.toThemeProperty("jqx-input"));o.addClass(this.toThemeProperty("jqx-rc-l"));o.addClass(this.toThemeProperty("jqx-input-group-addon"));o.addClass(this.toThemeProperty("jqx-widget"));o.addClass(this.toThemeProperty("jqx-widget-content"));g.addClass(this.toThemeProperty("jqx-fill-state-normal"));g.addClass(this.toThemeProperty("jqx-rc-r"));g.addClass(this.toThemeProperty("jqx-input-group-addon"));g.find("div").addClass(this.toThemeProperty("jqx-icon-search"));if(this.rtl){o.addClass(this.toThemeProperty("jqx-rtl"));o.css("direction","rtl")}this.filter.children().remove();this.filterbutton=g;var d=new Array();for(var f=0;f"+this.gridlocalization.filtersearchstring+"");this.filter.append(l);var c=b("
              ");this.filter.append(c);if(c.jqxDropDownList){c.jqxDropDownList({theme:this.theme,enableBrowserBoundsDetection:true,autoDropDownHeight:p,rtl:h.rtl,dropDownWidth:220,selectedIndex:0,width:"auto",height:20,source:d,displayMember:"label",valueMember:"value"})}this.filtercolumnsList=c;var n=function(q){h.filterinput.val("");for(var r=0;r=0){x=x.replace(h.gridlocalization.decimalseparator,".")}}if(x.indexOf(h.gridlocalization.currencysymbol)>=0){x=x.replace(h.gridlocalization.currencysymbol,"")}if(x.indexOf(h.gridlocalization.percentagesymbol)>=0){x=x.replace(h.gridlocalization.percentagesymbol,"")}}var y=A.createfilter(C,x,"EQUAL",null,B.cellsFormat,h.gridlocalization)}else{var y=A.createfilter(C,x,"CONTAINS")}}A.operator=i;A.addfilter(0,y);return A};if(h.filterMode!=="simple"){if(u){var v=u.value;var t=h.getColumn(v);var s=w(t,r,"and");if(r.length>0){h.removeFilter(v);h.addFilter(v,s);h.applyFilters()}else{h.removeFilter(v);h.applyFilters()}if(h.filterMode==="advanced"){if(h._updateFilterRow){h._updateFilterRow(true)}}}}else{h.clearFilters(false,false);if(r.length>0){for(var q=0;q"+this.gridlocalization.filterstring+"");j.append(e);this.addHandler(e,"click",function(q){var i=function(u){if(h.filterrow){for(var x=0;x");k.attr("title",h.gridlocalization.filterclearstring);k.addClass(h.toThemeProperty("jqx-icon-close"));j.append(k);k.hide();h.filtericon=k;k.click(function(){h.clearFilters();h.filtericon.fadeOut(200)});if(h.dataview.filters.length>0){if(h.filterMode!="advanced"){n(h.dataview.filters[0].datafield)}else{if(h._updateFilterRow){h._updateFilterRow()}}}},_renderadvancedfilter:function(){var h=this;var c=function(){h.clearFilters(false,false);var n=h.filtercolumnsList.jqxDropDownList("getSelectedItem").value;var p=h.filterinput.val();for(var m=0;m0||(u.length==0&&k=="NOT_NULL")||(u.length==0&&k=="NOT_EMPTY")||(u.length==0&&k=="EMPTY")||(u.length==0&&k=="NULL")){var r=l.displayfield;var v=new b.jqx.filter();if(filtertype=="numericfilter"){if(h.gridlocalization.decimalseparator==","){if(u.indexOf(h.gridlocalization.decimalseparator)>=0){u=u.replace(h.gridlocalization.decimalseparator,".")}}if(u.indexOf(h.gridlocalization.currencysymbol)>=0){u=u.replace(h.gridlocalization.currencysymbol,"")}if(u.indexOf(h.gridlocalization.percentagesymbol)>=0){u=u.replace(h.gridlocalization.percentagesymbol,"")}}var j=v.createfilter(filtertype,u,k,null,l.cellsFormat,h.gridlocalization);v.addfilter(0,j);h.addFilter(r,v)}}if(h.dataview.filters.length>0){h.applyFilters()}else{h.clearFilters()}if(h.dataview.filters.length==0){h.filtericon.fadeOut(200)}else{h.filtericon.fadeIn(200)}};var e=function(){var m=b("
              ").appendTo(h.filter);h.filterrow=m;m[0].cells=new Array();m.height(24);m.width(h.table.width());var k=0;var j=h.filtercolumnsList.jqxDropDownList("getSelectedItem").value;var l=h.filterinput.val();b.each(h.columns.records,function(){var p=this;var n=b("
              ").appendTo(m);n.css("position","absolute");n.css("left",k+parseInt(p.uielement[0].style.left));if(p.pinned){n.css("z-index",h.tableZIndex+h.columns.records.length);n.addClass(h.toThemeProperty("jqx-widget-header"))}m[0].cells.push(n[0]);if(!this.filterable){return true}var o=b("").appendTo(n);o.keydown(function(r){if(r.keyCode===13){c()}});if(p.displayfield===j){o.val(l)}o.addClass(h.toThemeProperty("jqx-input"));o.addClass(h.toThemeProperty("jqx-rc-all"));o.addClass(h.toThemeProperty("jqx-widget"));o.addClass(h.toThemeProperty("jqx-widget-content"));var q=b("
              ").appendTo(n);q.append(b("
              "));o.focus(function(){h.ensureColumnVisible(p.displayfield);h.filter[0].scrollLeft=0;h.ensureColumnVisible(p.displayfield);setTimeout(function(){h.filter[0].scrollLeft=0;h.ensureColumnVisible(p.displayfield)},10)});q.click(function(){var t=b("
              ");t.insertAfter(q);q.remove();var r=h.getcolumntypebydatafield(p);var s=h._getfiltersbytype(r);if(r==="string"){index=2}else{index=0}t.jqxDropDownList({theme:h.theme,enableBrowserBoundsDetection:true,renderMode:"simple",arrowSize:0,selectedIndex:index,rtl:h.rtl,dropDownWidth:230,dropDownHeight:180,width:20,height:20,source:s,selectionRenderer:function(){return"
              "}});h.addHandler(t,"close",function(u){o.focus();setTimeout(function(){o.focus()},10)});t.removeAttr("tabindex");t.find("div").removeAttr("tabindex");t.jqxDropDownList("open")});o[0].style.width=p.width-6-22+"px"});b("
              ").appendTo(m)};e();var i=b("
              ").appendTo(h.filter);var f=b("").appendTo(i);var g=b("").appendTo(i);var d=0;f.css("left",d);g.css("left",d);f.jqxButton({theme:h.theme});g.jqxButton({theme:h.theme});g.click(function(){h.filtercolumnsList.jqxDropDownList({disabled:false});h.filterinput.removeClass(h.toThemeProperty("jqx-fill-state-disabled"));h.filterinput.attr("disabled",false);h.filterbutton.removeClass(h.toThemeProperty("jqx-fill-state-disabled"));h.filter.find(".filterrow").addClass("filterrow-hidden");h.filter.find(".filterrow").hide();h._arrange()});f.click(function(){c()});h._renderhorizontalscroll()},_getfiltertype:function(c){var d="stringfilter";switch(c){case"number":case"int":case"float":case"decimal":d="numericfilter";break;case"boolean":case"bool":d="booleanfilter";break;case"date":case"time":d="datefilter";break;case"string":d="stringfilter";break}return d},getcolumntypebydatafield:function(e){var f=this;var d="string";var c=f.source.datafields||((f.source._source)?f.source._source.datafields:null);if(c){var g="";b.each(c,function(){if(this.name==e.displayfield){if(this.type){g=this.type}return false}});if(g){return g}}return d},_getfiltersbytype:function(c){var d=this;var e="";switch(c){case"number":case"float":case"int":e=d.gridlocalization.filternumericcomparisonoperators;break;case"date":e=d.gridlocalization.filterdatecomparisonoperators;break;case"boolean":case"bool":e=d.gridlocalization.filterbooleancomparisonoperators;break;case"string":default:e=d.gridlocalization.filterstringcomparisonoperators;break}return e},_getcellvalue:function(c,e){var d=null;d=e[c.datafield];if(c.displayfield!=null){d=e[c.displayfield]}if(d==null){d=""}return d},_renderrows:function(ap){if(this.editable){if(this.editKey!=null){if(ap!==false){var M=this.endroweditbykey(this.editKey)}}}if(this.treeGrid){this.treeGrid._renderrows();return}if(this._loading){return}if(this._updating){return}if(this.rendering){this.rendering()}var ab=this;var T=0;this.table[0].rows=new Array();var H=this.toTP("jqx-cell")+" "+this.toTP("jqx-widget-content");if(this.rtl){H+=" "+this.toTP("jqx-cell-rtl")}var K=this.columns.records.length;var ao=b.jqx.browser.msie&&b.jqx.browser.version<8;if(ao){this.host.attr("hideFocus","true")}var R=ab.groups.length;var ai=new Array();var k=this.source.records;k=this.dataview.evaluate(k);this.dataViewRecords=k;if(this.dataview.pagesize=="all"||!this.pageable||this.serverProcessing){var u=k;if(this.pageable&&this.serverProcessing&&k.length>this.dataview.pagesize){var u=k.slice(this.dataview.pagesize*this.dataview.pagenum,this.dataview.pagesize*this.dataview.pagenum+this.dataview.pagesize)}}else{var u=k.slice(this.dataview.pagesize*this.dataview.pagenum,this.dataview.pagesize*this.dataview.pagenum+this.dataview.pagesize)}if(ab.groups&&ab.groups.length>0){var P=this.pageable?this.dataview.pagesize*this.dataview.pagenum:0;var z=function(w){var au=0;var i=new Array();for(var c=0;cab.dataview.pagesize*ab.dataview.pagenum&&au<=ab.dataview.pagesize*ab.dataview.pagenum+ab.dataview.pagesize){i.push(j)}if(au>ab.dataview.pagesize*ab.dataview.pagenum+ab.dataview.pagesize){break}}return i};if(this.pageSizeMode==="root"){var v=ab.source.getGroupedRecords(ab.groups,"records","label",null,"data",null,"parent",k,0);ab.rootRecordsLength=v.length;v=z(v)}else{var v=ab.source.getGroupedRecords(ab.groups,"records","label",null,"data",null,"parent",u,P)}var y=function(j,w){for(var av=0;av0){var aw=y(c.records,new Array());for(var au=0;auZ.maxwidth){e=Z.maxwidth}var l=b('
              ');b(document.body).append(l);var n=l.find("td");aq=1+parseInt(n.css("padding-left"))+parseInt(n.css("padding-right"));l.remove();break}}var ak=this.rtl?" "+this.toTP("jqx-grid-table-rtl"):"";var B="";var ar="
              ";var I=0;var s=K;for(var al=0;alZ.maxwidth){e=Z.maxwidth}e-=aq;if(e<0){e=0}if(ao){var ac=e;if(al==I){ac++}if(Z.rowDetailscolumn){var ac=ac+4;ar+="";B+=""}else{ar+="";B+=""}}else{ar+="";B+=""}aa+=e}B+="";ar+="";this._hiddencolumns=false;var g=false;if(this.rowDetails&&this._pinnedTable){this._pinnedTable.find("[data-role=details]").detach();this._table.find("[data-role=details]").detach()}if(U===0){var o='';var m=this.host.height();if(this.pageable){m-=this.pagerHeight;if(this.pagerPosition==="both"){m-=this.pagerHeight}}m-=this.columnsHeight;if(this.filterable){var ag=this.filter.find(".filterrow");var D=this.filter.find(".filterrow-hidden");var C=1;if(D.length>0){C=0}m-=this.filterHeight+this.filterHeight*ag.length*C}if(this.showstatusbar){m-=this.statusBarHeight}if(this.showAggregates){m-=this.aggregatesHeight}if(m<25){m=25}if(this.hScrollBar[0].style.visibility!="hidden"){m-=this.hScrollBar.outerHeight()}if(this.height==="auto"||this.height===null||this.autoheight){m=300}var l='";o+=l;B+=o;ar+=o;this.table[0].style.width=aa+2+"px";T=aa}var q=this.getRows();var x=new Array();for(var am=0;am';var E='';if(R>0){if(G.level';var E=''}}var p=0;var S=0;for(var al=0;alae.maxwidth){e=ae.maxwidth}e-=aq;if(e<0){e=0}var H=this.toTP("jqx-cell")+" "+this.toTP("jqx-grid-cell")+" "+this.toTP("jqx-item");if(ae.pinned){H+=" "+this.toTP("jqx-grid-cell-pinned")}if(this.sortcolumn===ae.displayfield){H+=" "+this.toTP("jqx-grid-cell-sort")}if(this.altRows&&am%2!=0){H+=" "+this.toTP("jqx-grid-cell-alt")}if(this.rtl){H+=" "+this.toTP("jqx-cell-rtl")}var O="";if(R>0){if(G.levelat.maxwidth){e=at.maxwidth}A-=aq;if(A<0){A=0}if(!at.hidden){ac+=A}}e=ac}else{H+=" "+this.toTP("jqx-grid-cell-pinned")}}}var l='";af+='" class="'+H+'">';af+=aj;af+="";if(!ae.pinned){o+=l;if(g){E+=af}}else{E+=l;o+=l}if(R>0&&!ao){if(G.level";E+="";B+=o;ar+=E;if(!this.rowinfo[G.uid]){this.rowinfo[G.uid]={group:Y,row:G,details:null,detailsHeight:200,initialized:false,expanded:false}}else{if(!("group" in this.rowinfo[G.uid])){this.rowinfo[G.uid].group=Y}if(!("row" in this.rowinfo[G.uid])){this.rowinfo[G.uid].row=G}if(!("details" in this.rowinfo[G.uid])){this.rowinfo[G.uid].details=null}if(!("detailsHeight" in this.rowinfo[G.uid])){this.rowinfo[G.uid].detailsHeight=200}if(!("initialized" in this.rowinfo[G.uid])){this.rowinfo[G.uid].initialized=false}if(!("expanded" in this.rowinfo[G.uid])){this.rowinfo[G.uid].expanded=false}}if(this.serverProcessing){this.rowinfo[G.uid].row=G}if(this.rowDetails){var F=this.rowinfo[G.uid].detailsHeight;if(this.rowinfo[G.uid]){if(this.rowinfo[G.uid].expanded){var ah='';B+=ah;ar+=ah}}B+="
              ';l+=this.gridlocalization.emptydatastring;l+="
              0){if(G.level0&&ao&&Y&&al>=R){l+="font-size: 1px; border-color: transparent; color: transparent;";af+="font-size: 1px; border-color: transparent; color: transparent;"}if(ae.pinned){l+="pointer-events: auto;";af+="pointer-events: auto;"}if(!Y&&ae.rowDetailscolumn){if(this.rowinfo[G.uid]){if(!this.rowinfo[G.uid].nodetails){if(this.rowinfo[G.uid].expanded){if(!this.rtl){H+=" "+this.toTP("jqx-grid-group-expand")}else{H+=" "+this.toTP("jqx-grid-group-expand-rtl")}H+=" "+this.toTP("jqx-icon-arrow-down")}else{if(!this.rtl){H+=" "+this.toTP("jqx-grid-group-collapse");H+=" "+this.toTP("jqx-icon-arrow-right")}else{H+=" "+this.toTP("jqx-grid-group-collapse-rtl");H+=" "+this.toTP("jqx-icon-arrow-left")}}}}else{if(!this.rtl){H+=" "+this.toTP("jqx-grid-group-collapse");H+=" "+this.toTP("jqx-icon-arrow-right")}else{H+=" "+this.toTP("jqx-grid-group-collapse-rtl");H+=" "+this.toTP("jqx-icon-arrow-left")}}}if(!this.autoRowHeight||(this.autoRowHeight&&!ae.autoCellHeight)){H+=" "+this.toTP("jqx-grid-cell-nowrap ")}var aj=ab._getcellvalue(ae,G);var f=ae.cellsFormat;if(R>0){if(G.level=0||aj.indexOf(" ng-")>=0)){x.push({rowKey:G.uid,row:d,column:ae.datafield,value:aj,columnIndex:al})}}}else{if(this.groupsRenderer){aj=this.groupsRenderer(aj,G,G.level)}}l+='" class="'+H+'">';l+=aj;l+="
              ";ar+="";if(g){if(ab.WinJS){MSApp.execUnsafeLocalFunction(function(){ab.table.html(ar+B)})}else{ab.table[0].innerHTML=ar+B}var W=this.table.find("#table"+this.element.id);var X=this.table.find("#pinnedtable"+this.element.id);X.css("float","left");X.css("pointer-events","none");W.css("float","left");X[0].style.position="absolute";W[0].style.position="relative";W[0].style.zIndex=V-10;X[0].style.zIndex=V+10;this._table=W;this._table[0].style.left="0px";this._pinnedTable=X;this._pinnedTable[0].style.left="0px";this._pinnedTable[0].style.width=T+"px";this._table[0].style.width=T+"px";if(this.rtl){if(T>parseInt(this.element.style.width)&&this._haspinned){this._pinnedTable[0].style.left=3-T+parseInt(this.element.style.width)+"px"}}if(this.rowDetails){for(var am=0;am0){var an=this._table[0].rows;b.each(x,function(){var w=this.row;var au=this.rowKey;var j=this.column;var i=this.columnIndex;var t=ab._getuirow(au);if(t){var c=t[0].cells[i];if(b.jqx.angularCompile){b.jqx.angularCompile(c,"
              "+c.innerHTML+"
              ")}}})}if(this.rendered){this.rendered()}},getcolumnindex:function(c){var d=this.getColumn(c);var e=this.columns.records.indexOf(d);return e},setcolumnindex:function(e,i,j){var h=this.getColumn(e);if(h.pinned){return}if(h.hidden){return}if(h.checkboxcolumn){return}if(h.grouped){return}var l=this.columns.records.indexOf(h);this.columns.records.splice(l,1);this.columns.records.splice(i,0,h);var f=0;var n=this.headerZIndex;this.columnsrow.children().detach();var k=this.toThemeProperty("jqx-grid-cell");k+=" "+this.toThemeProperty("jqx-grid-cell-pinned");k+=" "+this.toThemeProperty("jqx-item");var m=this;var c=null;if(m.filterrow!=undefined){var c=b(m.filterrow.children()[0])}this.columnsrow[0].cells=[];var g=false;b.each(this.columns.records,function(p,s){var q=this.uielement;m.columnsrow.append(q);if(!m.rtl){q.css("z-index",n--)}else{q.css("z-index",n++)}var o=!m.rtl?250+n-1:250+n+1;if(this.pinned){q.css("z-index",o)}var r=this.width;q.css("left",f);m.columnsrow[0].cells[m.columnsrow[0].cells.length]=q[0];if(this.hidden){g=true}if(!(this.hidden&&this.hideable)){f+=r}});if(this.groupable){var d=this.groups.length;if(d>0){if(l-d>=0){l-=d;i-=d}}}if(this.rowDetails){if(l-1>=0){l--;i--}}if(this.selectionMode=="checkbox"){if(l-1>=0){l--;i--}}var h=this._columns[l];this._columns.splice(l,1);this._columns.splice(i,0,h);this.resize();this._rendercolumnGroups();this._raiseEvent("columnReordered",{dataField:h.datafield,oldIndex:l,newIndex:i})},_pinnedColumnsLength:function(){var c=0;b.each(this.columns.records,function(){if(this.pinned){c++}if(this.grouped){c++}});if(this.rowDetails){c++}if(this.selectionMode=="checkbox"){c++}return c},_handlecolumnsReorder:function(){var g=this;var h=-1;var d=false;if(!g.columnsReorder){return}var f="mousemove.reorder"+this.element.id;var e="mousedown.reorder"+this.element.id;var i="mouseup.reorder"+this.element.id;var c=false;if(this.isTouchDevice()&&this.touchmode!==true){c=true;f=b.jqx.mobile.getTouchEventName("touchmove")+".reorder"+this.element.id;e=b.jqx.mobile.getTouchEventName("touchstart")+".reorder"+this.element.id;i=b.jqx.mobile.getTouchEventName("touchend")+".reorder"+this.element.id}this.removeHandler(b(document),f);this.addHandler(b(document),f,function(x){if(g.resizing){return true}if(g.reordercolumn!=null){var m=parseInt(x.pageX);var u=parseInt(x.pageY);if(c){var t=g.getTouches(x);var p=t[0];if(p!=undefined){m=parseInt(p.pageX);u=parseInt(p.pageY)}}var j=g.host.coord();var w=parseInt(j.left);var k=parseInt(j.top);if(g.dragmousedownoffset==undefined||g.dragmousedownoffset==null){g.dragmousedownoffset={left:0,top:0}}var B=parseInt(m)-parseInt(g.dragmousedownoffset.left);var s=parseInt(u)-parseInt(g.dragmousedownoffset.top);g.reordercolumn.css({left:B+"px",top:s+"px"});d=false;if(m>=w&&m<=w+g.host.width()){if(u>=k&&u<=k+g.host.height()){d=true}}h=-1;if(d){g.reordercolumnicon.removeClass(g.toThemeProperty("jqx-grid-dragcancel-icon"));g.reordercolumnicon.addClass(g.toThemeProperty("jqx-grid-drag-icon"));var n=g.columnsheader.coord();var q=n.top+g.columnsheader.height();if(g.columnsdropline!=null){if(u>=n.top&&u<=q){h=g._handlereordercolumnsdroplines(m);if(g.columnGroups){if(h!=-1){var l=0;l+=g._pinnedColumnsLength();var o=h.index;if(o>=l){var y=g.columns.records[o];if(y!=undefined){var v=g.columns.records.indexOf(g.getColumn(y.datafield));if(y.datafield==null){var v=g.columns.records.indexOf(g.getcolumnbytext(y.text))}var r=b.data(g.reordercolumn[0],"reorderrecord");var A=g.columns.records.indexOf(g.getColumn(r));var z=y;if(A=p){var s=g.columns.records[q];if(s!=undefined){var u=g.columns.records.indexOf(g.getColumn(s.datafield));if(s.datafield==null){var u=g.columns.records.indexOf(g.getcolumnbytext(s.text))}if(g.columnGroups){var r=s;if(xu){g.setcolumnindex(k,u)}}}}}}if(g.columnsdropline!=null){g.columnsdropline.remove();g.columnsdropline=null}}}})},getcolumnbytext:function(d){var c=null;if(this.columns.records){b.each(this.columns.records,function(){if(this.text==d){c=this;return false}})}return c},_handlereordercolumnsdroplines:function(i){var c=this;var h=-1;var e=c._pinnedColumnsLength();var g=parseInt(c.host.coord().left);var d=g+c.host.width();var f=c.vScrollBar.css("visibility")!="hidden"?19:0;if(!c.rtl){f=0}b.each(c.columnsbounds,function(j){if(j>=e){if(this.width==0){return true}if(i<=this.left+this.width/2){if(i>d){c.columnsdropline.fadeOut();return false}c.columnsdropline.css("left",f+parseInt(this.left)+"px");c.columnsdropline.css("top",parseInt(this.top)+"px");c.columnsdropline.height(this.height);c.columnsdropline.fadeIn("slow");h={index:j,position:"before"};return false}else{if(i>=this.left+this.width/2){if(this.left+this.width>d){c.columnsdropline.fadeOut();return false}c.columnsdropline.css("left",f+1+this.left+this.width);c.columnsdropline.css("top",this.top);c.columnsdropline.height(this.height);c.columnsdropline.fadeIn("slow");h={index:j,position:"after"}}}}});return h},_createreordercolumn:function(d,f,i){var h=this;var g=f;if(h.reordercolumn){h.reordercolumn.remove()}if(h.columnsdropline){h.columnsdropline.remove()}h.reordercolumn=b("
              ");var k=d.clone();h.reordercolumn.css("z-index",999999);k.css("border-width","1px");k.css("opacity","0.4");var j=b(k.find("."+h.toThemeProperty("jqx-grid-column-menubutton")));if(j.length>0){j.css("display","none")}var c=b(k.find(".jqx-icon-close"));if(c.length>0){c.css("display","none")}h.reordercolumnicon=b('
              ');h.reordercolumnicon.addClass(h.toThemeProperty("jqx-grid-drag-icon"));h.reordercolumn.css("float","left");h.reordercolumn.css("position","absolute");var e=h.host.coord();k.width(d.width()+16);h.reordercolumn.append(k);h.reordercolumn.height(d.height());h.reordercolumn.width(k.width());h.reordercolumn.append(h.reordercolumnicon);b(document.body).append(h.reordercolumn);k.css("margin-left",0);k.css("left",0);k.css("top",0);h.reordercolumn.css("left",g.left+h.dragmousedown.left);h.reordercolumn.css("top",g.top+h.dragmousedown.top);if(i!=undefined&&i){h.columnsdropline=b('
              ');h.columnsdropline.width(2);h.columnsdropline.addClass(h.toThemeProperty("jqx-grid-group-drag-line"));b(document.body).append(h.columnsdropline)}},_handlecolumnsdragreorder:function(d,g){if(this.reordercolumn){this.reordercolumn.remove()}if(this.columnsdropline){this.columnsdropline.remove()}this.dragmousedown=null;this.dragmousedownoffset=null;this.columndragstarted=false;this.reordercolumn=null;var h=this;var f;var c=false;if(this.isTouchDevice()&&this.touchmode!==true){c=true}var e="mousedown.drag";var f="mousemove.drag";if(c){e=b.jqx.mobile.getTouchEventName("touchstart")+".drag";f=b.jqx.mobile.getTouchEventName("touchmove")+".drag"}else{this.addHandler(g,"dragstart",function(i){return false})}this.addHandler(g,e,function(k){if(false==d.draggable){return true}if(h.resizing){return true}h.__drag=true;var j=k.pageX;var i=k.pageY;if(c){var l=h.getTouches(k);var n=l[0];j=n.pageX;i=n.pageY}h.dragmousedown={left:j,top:i};var m=b(k.target).coord();h.dragmousedownoffset={left:parseInt(j)-parseInt(m.left),top:parseInt(i-m.top)};if(k.preventDefault){k.preventDefault()}return true});this.addHandler(g,f,function(k){if(!d.draggable){return true}if(undefined==d.datafield){return true}if(d.pinned){return true}if(h.resizing){return true}if(h.dragmousedown){var j=k.pageX;var i=k.pageY;if(c){var m=h.getTouches(k);var o=m[0];if(o!=undefined){j=o.pageX;i=o.pageY}}f={left:j,top:i};if(!h.columndragstarted&&h.reordercolumn==null){var l=Math.abs(f.left-h.dragmousedown.left);var n=Math.abs(f.top-h.dragmousedown.top);if(l>3||n>3){h._createreordercolumn(g,f,true);b(document.body).addClass("jqx-disableselect");b.data(h.reordercolumn[0],"reorderrecord",d.datafield)}}}})},getTouches:function(c){return b.jqx.mobile.getTouches(c)},_handlecolumnsResize:function(){var i=this;if(this.columnsResize){var k=false;if(i.isTouchDevice()){k=true}var g="mousemove.resize"+this.element.id;var d="mousedown.resize"+this.element.id;var e="mouseup.resize"+this.element.id;if(k){var g=b.jqx.mobile.getTouchEventName("touchmove")+".resize"+this.element.id;var d=b.jqx.mobile.getTouchEventName("touchstart")+".resize"+this.element.id;var e=b.jqx.mobile.getTouchEventName("touchend")+".resize"+this.element.id}this.removeHandler(b(document),g);this.addHandler(b(document),g,function(n){if(i.resizablecolumn!=null&&!i.disabled&&i.resizing){if(i.resizeline!=null){var s=i.resizablecolumn.columnelement;var p=i.host.coord();var v=parseInt(i.resizestartline.coord().left);var l=v-i._startcolumnwidth;var w=i.resizablecolumn.column.minwidth;if(w=="auto"){w=0}else{w=parseInt(w)}var m=i.resizablecolumn.column.maxwidth;if(m=="auto"){m=0}else{m=parseInt(m)}var q=n.pageX;if(k){var t=b.jqx.mobile.getTouches(n);var r=t[0];q=r.pageX}l+=w;var u=m>0?v+m:0;var o=m==0?true:i._startcolumnwidth+q-v=p.left&&q>=l){if(u!=0&&n.pageX=p.left&&q<=p.left+i.host.width()){i.resizeline.css("left",q);if(k){return false}}}}}}if(!k&&i.resizablecolumn!=null){return false}});this.removeHandler(b(document),d);this.addHandler(b(document),d,function(m){if(i.resizablecolumn!=null&&!i.disabled){var l=i.resizablecolumn.columnelement;if(l.coord().top+l.height()+5m.pageY){i.resizablecolumn=null;return}i._startcolumnwidth=i.resizablecolumn.column.width;i.resizablecolumn.column._width=null;b(document.body).addClass("jqx-disableselect");b(document.body).addClass("jqx-position-reset");i._mouseDownResize=new Date();i.resizing=true;i._resizecolumn=i.resizablecolumn.column;i.resizeline=i.resizeline||b('
              ');i.resizestartline=i.resizestartline||b('
              ');i.resizebackground=i.resizebackground||b('
              ');i.resizebackground.css("opacity",0.01);i.resizebackground.css("cursor","col-resize");i.resizeline.css("cursor","col-resize");i.resizestartline.css("cursor","col-resize");i.resizeline.addClass(i.toThemeProperty("jqx-grid-column-resizeline"));i.resizestartline.addClass(i.toThemeProperty("jqx-grid-column-resizestartline"));b(document.body).append(i.resizeline);b(document.body).append(i.resizestartline);b(document.body).append(i.resizebackground);var n=i.resizablecolumn.columnelement.coord();i.resizebackground.css("left",i.host.coord().left);i.resizebackground.css("top",i.host.coord().top);i.resizebackground.width(i.host.width());i.resizebackground.height(i.host.height());i.resizebackground.css("z-index",999999999);var o=function(q){if(!i.rtl){q.css("left",parseInt(n.left)+i._startcolumnwidth)}else{q.css("left",parseInt(n.left))}var s=0;var t=i.showtoolbar?i.toolbarHeight:0;s+=t;var v=i.showstatusbar?i.statusBarHeight:0;s+=v;var r=i.showAggregates?i.aggregatesHeight:0;s+=r;if(i.pageable&&i.pagerPosition!="bottom"){s+=i.pagerHeight}if(i.filterable){s+=i.filter.height()}var p=0;if(i.pageable&&i.pagerPosition!="top"){p=i.pagerHeight}var u=i.hScrollBar.css("visibility")!="hidden"?i.scrollBarSize:0;q.css("top",parseInt(n.top));q.css("z-index",9999999999);if(i.columnGroups){q.height(i.host.height()+i.resizablecolumn.columnelement.height()-p-s-u-i.columnGroupslevel*i.columnsHeight)}else{q.height(i.host.height()-p-s-u)}q.show("fast")};o(i.resizeline);o(i.resizestartline);i.dragmousedown=null}});var f=function(){b(document.body).removeClass("jqx-disableselect");b(document.body).removeClass("jqx-position-reset");if(!i.resizing){return}i._mouseUpResize=new Date();var t=i._mouseUpResize-i._mouseDownResize;if(t<200){i.resizing=false;if(i._resizecolumn!=null&&i.resizeline!=null&&i.resizeline.css("display")=="block"){i._resizecolumn=null;i.resizeline.hide();i.resizestartline.hide();i.resizebackground.remove()}return}i.resizing=false;if(i.disabled){return}var n=i.host.width();if(i.vScrollBar[0].style.visibility!="hidden"){n-=20}if(n<0){n=0}if(i._resizecolumn!=null&&i.resizeline!=null&&i.resizeline.css("display")=="block"){var u=parseInt(i.resizeline.css("left"));var o=parseInt(i.resizestartline.css("left"));var s=i._startcolumnwidth+u-o;if(i.rtl){var s=i._startcolumnwidth-u+o}var r=i._resizecolumn.width;i._resizecolumn.width=s;if(i._resizecolumn._percentagewidth!=undefined){i._resizecolumn._percentagewidth=(s/n)*100}for(var q=0;qthis.maxwidth&&this.maxwidth!="auto"){m=this.maxwidth}k-=Math.round(m)}else{if(this.width!="auto"&&!this._width){k-=this.width}else{j+=this.text}}}});var f=this.columnsheader.find("#columntable"+this.element.id);if(f.length==0){return}var d=0;var g=f.find(".jqx-grid-column-header");var e=0;b.each(this.columns.records,function(m,r){var o=b(g[m]);var l=false;var q=this.width;var p=this.width;if(this.width.toString().indexOf("%")!=-1||this._percentagewidth!=undefined){if(this._percentagewidth!=undefined){q=parseFloat(this._percentagewidth)*c/100}else{q=parseFloat(this.width)*c/100}q=Math.round(q);l=true}if(this.width!="auto"&&!this._width&&!l){if(parseInt(o[0].style.width)!=this.width){o.width(this.width)}}else{if(l){if(qthis.maxwidth&&this.maxwidth!="auto"){q=this.maxwidth;this.width=q}if(parseInt(o[0].style.width)!=q){o.width(q);this.width=q}}else{var n=Math.floor(k*(this.text.length/j.length));if(isNaN(n)){n=this.minwidth}var s=(k*(this.text.length/j.length))-n;d+=s;if(d>=1){d-=1;n++}if(d>=0.5&&m==i.columns.records.length-1){n++}if(n<0){$element=b(""+this.text+"");b(document.body).append($element);n=10+$element.width();$element.remove()}if(nthis.maxwidth){n=this.maxwidth}this._width="auto";this.width=n;o.width(this.width)}}if(parseInt(o[0].style.left)!=e){o.css("left",e)}if(!(this.hidden)){e+=this.width}this._requirewidthupdate=true;if(p!==this.width){h=true}});this.columnsheader.width(2+e);f.width(this.columnsheader.width());this._resizecolumnGroups();if(h){this._renderrows()}if(this.showAggregates){this._refreshcolumnsaggregates()}},_rendercolumnheaders:function(){var r=this;if(this._updating){return}this._columnsbydatafield=new Array();this.columnsheader.find("#columntable"+this.element.id).remove();var g=b('
              ');g[0].cells=new Array();var l=0;var h=0;var s="";var u=this.host.width();var f=u;var w=new Array();var t=new Array();b.each(this.columns.records,function(j,k){if(!(this.hidden)){if(this.width!="auto"&&!this._width){if(this.widththis.maxwidth&&this.maxwidth!="auto"){u-=this.maxwidth}else{if(this.width.toString().indexOf("%")!=-1){var k=0;k=parseFloat(this.width)*f/100;if(kthis.maxwidth&&this.maxwidth!="auto"){k=this.maxwidth}u-=k}else{if(typeof this.width=="string"){this.width=parseInt(this.width)}u-=this.width}}}}else{s+=this.text}}if(this.pinned||this.grouped||this.checkboxcolumn){if(r._haspinned){this.pinned=true}w[w.length]=this}else{t[t.length]=this}});if(!this.rtl){for(var o=0;o=this.columns.records.length-w.length;o--){this.columns.replace(o,w[e++])}for(var m=0;m
              ');if(r.rtl&&J===0){x[0].style.borderLeftColor="transparent"}if(r.columnGroups){x[0].style.height=n+"px";x[0].style.bottom="0px";if(this.pinned){x[0].style.zIndex=K}}this.uielement=x;this.element=x;if(this.classname!=""&&this.classname){x.addClass(this.classname)}var C=this.width;var D=false;if(this.width===null){this.width="auto"}if(this.width.toString().indexOf("%")!=-1||this._percentagewidth!=undefined){if(this._percentagewidth!=undefined){C=parseFloat(this._percentagewidth)*f/100}else{C=parseFloat(this.width)*f/100}C=Math.round(C);D=true}if(this.width!="auto"&&!this._width&&!D){if(Cthis.maxwidth&&this.maxwidth!="auto"){C=this.maxwidth}x[0].style.width=parseInt(C)+"px"}else{if(D){if(Cthis.maxwidth&&this.maxwidth!="auto"){C=this.maxwidth}if(this._percentagewidth==undefined||this.width.toString().indexOf("%")!=-1){this._percentagewidth=this.width}x.width(C);this.width=C}else{var G=Math.floor(u*(this.text.length/s.length));var E=(u*(this.text.length/s.length))-G;c+=E;if(c>=1){c-=1;G++}if(c>=0.5&&J==r.columns.records.length-1){G++}if(isNaN(G)){G=this.minwidth}if(G<0){$element=b(""+this.text+"");b(document.body).append($element);G=10+$element.width();$element.remove()}if(Gthis.maxwidth){G=this.maxwidth}this._width="auto";this.width=parseInt(G);C=this.width;x.width(this.width)}}if(this.hidden){x.css("display","none")}var k=b(x.children()[0]);g[0].cells[J]=x[0];var p=false;var I=false;var z=this.renderer!=null?this.renderer(this.text,this.align,n):r._rendercolumnheader(this.text,this.align,n,r);if(z==null){z=r._rendercolumnheader(this.text,this.align,n,r)}if(this.renderer!=null){z=b(z)}p=true;if(r.WinJS){MSApp.execUnsafeLocalFunction(function(){k.append(b(z))})}else{if(this.renderer){k.append(b(z))}else{if(z){k[0].innerHTML=z}}}if(z!=null){var B=b('
              ');k.append(B);var N=B.children();this.sortasc=N[1];this.sortdesc=N[2];this.filtericon=N[0];this.iconscontainer=B;if(r.rtl){B.css("margin-left","0px");B.css("left","0px");b(this.sortasc).css("float","left");b(this.filtericon).css("float","left");b(this.sortdesc).css("float","left")}}g.append(x);if(r.columnsReorder&&this.draggable&&r._handlecolumnsdragreorder){r._handlecolumnsdragreorder(this,x)}var L=this;r.addHandler(x,"click",function(i){if(L.checkboxcolumn){return true}if(r._togglesort){if(!r._loading){r._togglesort(L)}}i.preventDefault()});if(r.columnsResize&&!I){var y=false;var j="mousemove";if(r.isTouchDevice()){y=true;j=b.jqx.mobile.getTouchEventName("touchstart")}r.addHandler(x,j,function(O){if(!L.resizable){r.resizablecolumn=null;return true}var i=parseInt(O.pageX);var Q=5;var T=parseInt(x.coord().left);if(r.hasTransform){T=b.jqx.utilities.getOffset(x).left}if(r._handlecolumnsResize){if(y){var P=b.jqx.mobile.getTouches(O);var S=P[0];i=S.pageX;Q=40;if(i>=T+L.width-Q){r.resizablecolumn={columnelement:x,column:L};x.css("cursor","col-resize")}else{x.css("cursor","");r.resizablecolumn=null}return true}var R=L.width;if(r.rtl){R=0}if(i>=T+R-Q){if(i<=T+R+Q){r.resizablecolumn={columnelement:x,column:L};x.css("cursor","col-resize");return false}else{x.css("cursor","");r.resizablecolumn=null}}else{x.css("cursor","");if(i0){this.columnsheader.width(2+h)}else{this.columnsheader.width(h)}this.columnsrow=g;r.columnsheader.append(g);g.width(h);if(this._handlecolumnsdragdrop){this._handlecolumnsdragdrop()}if(this._handlecolumnsReorder){this._handlecolumnsReorder()}if(this._handlecolumnsResize){this._handlecolumnsResize()}if(this.columnGroups){this._rendercolumnGroups()}},_rendercolumnGroups:function(){if(!this.columnGroups){return}var o=0;for(var l=0;l');var k=b(this._rendercolumnheader(q.text,q.align,this.columnsHeight,this));f.append(k);f[0].style.left=d+"px";if(d===0){f[0].style.borderLeftColor="transparent"}f[0].style.top=p+"px";f[0].style.height=r+"px";f[0].style.width=-1+q.width+"px";e.append(f);q.element=f}}}},_resizecolumnGroups:function(){if(!this.columnGroups){return}for(var d=0;d0){d.removeHandler(c,"mouseenter");d.removeHandler(c,"mouseleave");var e=b(f.filtericon);d.removeHandler(e,"mousedown");d.removeHandler(e,"click");d.removeHandler(c,"click")}},_calculateaggregate:function(k,o,d,h){if(!k.datafield){return null}var e=k.aggregates;if(!e){e=o}if(e){var f=new Array();for(var n=0;n0){r(u[t].records)}}};r(h);h=q}if(this.treeGrid&&this.filterable&&this.dataview.filters.length>0){var p=new Array();for(var n=0;n=g){if(m){if(m[k.datafield].sum!=undefined||m[k.datafield].avg!=undefined){var j=this.source.getAggregatedData([{name:k.datafield,aggregates:e,formatStrings:f}],this.gridlocalization,s,c);if(m[k.datafield].sum!=undefined){m[k.datafield].sum=j[k.datafield].sum}if(m[k.datafield].avg!=undefined){m[k.datafield].avg=j[k.datafield].avg}}}}}return m}else{var m=this.source.getAggregatedData([{name:k.datafield,aggregates:e}],this.gridlocalization,h,c);if(this.treeGrid&&m){if(m[k.datafield].sum!=undefined||m[k.datafield].avg!=undefined){var g=this.source._source.hierarchy&&this.source._source.hierarchy.groupingDataFields?this.source._source.hierarchy.groupingDataFields.length:0;if(g==0||c>=g){var j=this.source.getAggregatedData([{name:k.datafield,aggregates:e}],this.gridlocalization,s,c);if(m[k.datafield].sum!=undefined){m[k.datafield].sum=j[k.datafield].sum}if(m[k.datafield].avg!=undefined){m[k.datafield].avg=j[k.datafield].avg}}}}return m}}}return null},getcolumnaggregateddata:function(d,h,i,e){var f=this.getColumn(d);if(!f){return""}var k=(i==undefined||i==false)?false:i;if(h==null){return""}var c=f.aggregates;f.aggregates=null;var j=this._calculateaggregate(f,h,k,e);var g={};if(j){g=j[d];f.aggregates=c}return g},_updatecolumnaggregates:function(e,h,c){var f=this;if(!h){c.children().remove();c.html("");if(e.aggregatesRenderer){var g={};if(e.aggregates){g=this.getcolumnaggregateddata(e.datafield,e.aggregates)}var d=e.aggregatesRenderer({},e,c,null);c.html(d)}return}c.children().remove();c.html("");if(e.aggregatesRenderer){if(h){var d=e.aggregatesRenderer(h[e.datafield],e,c,this.getcolumnaggregateddata(e.datafield,e.aggregates),"aggregates");c.html(d)}}else{b.each(h,function(){var j=this;for(g in j){var k=b('
              ');var i=g;i=f._getaggregatename(i);k.html(i+":"+j[g]);if(f.rtl){k.addClass(f.toThemeProperty("jqx-rtl"))}c.append(k)}})}},_getaggregatetype:function(d){switch(d){case"min":case"max":case"count":case"avg":case"product":case"var":case"varp":case"stdev":case"stdevp":case"sum":return d}var c=d;for(var e in d){c=e;break}return c},_getaggregatename:function(d){var c=d;switch(d){case"min":c="Min";break;case"max":c="Max";break;case"count":c="Count";break;case"avg":c="Avg";break;case"product":c="Product";break;case"var":c="Var";break;case"stdevp":c="StDevP";break;case"stdev":c="StDev";break;case"varp":c="VarP";case"sum":c="Sum";break}if(d===c&&typeof(c)!="string"){for(var e in d){c=e;break}}return c},_updatecolumnsaggregates:function(){var g=this.getRows();if(this.dataViewRecords){g=this.dataViewRecords}var c=this.columns.records.length;if(undefined!=this.aggregates[0].cells){for(var f=0;f');var f=0;var m=this.columns.records.length;var l=this.toThemeProperty("jqx-grid-cell");if(this.rtl){l+=" "+this.toThemeProperty("jqx-grid-cell-rtl");f=0;c.css("border-left-width","0px");this.aggregates.css("border-left-color","transparent")}l+=" "+this.toThemeProperty("jqx-grid-cell-pinned");var n=m+10;var o=new Array();this.aggregates[0].cells=o;for(var h=0;hg.maxwidth){d=g.maxwidth}var e=l;if(g.cellsalign){e+=" "+this.toThemeProperty("jqx-"+g.cellsalign+"-align")}var k=b('
              ');c.append(k);k.css("left",f);if(!this.rtl){k.css("z-index",n--)}else{k.css("z-index",n++);if(h==0){k.css("border-left-width","0px")}}k.width(d);k[0].style.left=f+"px";if(!(g.hidden&&g.hideable)){f+=d}else{k.css("display","none")}o[o.length]=k[0];this._updatecolumnaggregates(g,i,k)}if(b.jqx.browser.msie&&b.jqx.browser.version<8){c.css("z-index",n--)}c.width(parseInt(f)+2);c.height(this.aggregatesHeight);this.aggregates.children().remove();this.aggregates.append(c);this.aggregates.removeClass(this.toThemeProperty("jqx-widget-header"));this.aggregates.addClass(l);this.aggregates.css("border-bottom-color","transparent");this.aggregates.css("border-top-width","1px");if(this.rtl&&this.hScrollBar.css("visibility")!="hidden"){this._renderhorizontalscroll()}},destroy:function(){var h=this;if(h.columns&&h.columns.records){for(var f=0;f0){j.jqxDropDownList("destroy")}}}if(h.filtercolumnsList){h.filtercolumnsList.jqxDropDownList("destroy")}}if(h.pageable){if(h.pagershowrowscombotop&&h.pagershowrowscombotop.jqxDropDownList){h.pagershowrowscombotop.jqxDropDownList("destroy")}if(h.pagershowrowscombobottom&&h.pagershowrowscombobottom.jqxDropDownList){h.pagershowrowscombobottom.jqxDropDownList("destroy")}var l=h.pagerbuttonsbottom.find("a");h.removeHandler(l,"click");h.removeHandler(l,"mouseenter");h.removeHandler(l,"mouseleave");l.remove();var l=h.pagerbuttonstop.find("a");h.removeHandler(l,"click");h.removeHandler(l,"mouseenter");h.removeHandler(l,"mouseleave");l.remove();if(h.pagernexttop){h.pagernexttop.jqxButton("destroy");h.pagerprevioustop.jqxButton("destroy");h.pagernextbottom.jqxButton("destroy");h.pagerpreviousbottom.jqxButton("destroy");h.pagerfirsttop.jqxButton("destroy");h.pagerfirstbottom.jqxButton("destroy");h.pagerlasttop.jqxButton("destroy");h.pagerlastbottom.jqxButton("destroy")}}h._removeHandlers();h.vScrollBar.jqxScrollBar("destroy");h.hScrollBar.jqxScrollBar("destroy");delete h.vScrollBar;delete h.hScrollBar;delete h._mousewheelfunc;b.jqx.utilities.resize(h.host,null,true);h.host.remove()},propertyChangedHandler:function(e,l,d,k){if(this.isInitialized==undefined||this.isInitialized==false){return}if(k!==d){if(l=="filterable"){e._render()}else{if(l==="height"){e.host.height(e.height);e.host.width(e.width);e._updatesize(false,true)}else{if(l==="width"){e.host.height(e.height);e.host.width(e.width);e._updatesize(true,false)}else{if(l==="source"){e.updateBoundData()}else{if(l==="columns"||l==="columnGroups"){e._columns=null;e._render()}else{if(l==="rtl"){e.content.css("left","");e.columns=e._columns;e.vScrollBar.jqxScrollBar({rtl:k});e.hScrollBar.jqxScrollBar({rtl:k});e._render()}else{if(l==="pagerMode"){e.pagerMode=k;e._initpager()}else{if(l=="pageSizeOptions"){e._initpager();var j=false;for(var f=0;f0){c.jqxDropDownList({theme:e.theme})}if(e.filtercolumnsList){e.filtercolumnsList.jqxDropDownList({theme:e.theme})}}e.refresh()}else{e.refresh()}}}}}}}}}}}}}}}}}},_rendercolumnheader:function(f,g,c,d){var e="4px";if(d.columnGroups){e=(c/2-this._columnheight/2);if(e<0){e=4}e+="px"}else{if(this.columnsHeight!=25){e=(this.columnsHeight/2-this._columnheight/2);if(e<0){e=4}e+="px"}}return'
              '+f+"
              "}});function a(c,d){this.owner=c;this.datafield=null;this.displayfield=null;this.text="";this.sortable=true;this.editable=true;this.hidden=false;this.hideable=true;this.groupable=true;this.renderer=null;this.cellsRenderer=null;this.columntype=null;this.cellsFormat="";this.align="left";this.cellsalign="left";this.width="auto";this.minwidth=25;this.maxwidth="auto";this.pinned=false;this.visibleindex=-1;this.filterable=true;this.filter=null;this.resizable=true;this.draggable=true;this.initeditor=null;this.createeditor=null;this.destroyeditor=null;this.geteditorvalue=null;this.autoCellHeight=true;this.validation=null;this.classname="";this.cellclassname="";this.aggregates=null;this.aggregatesRenderer=null;this.rendered=null;this.exportable=true;this.nullable=true;this.columngroup=null;this.columntype="textbox";this.getcolumnproperties=function(){return{nullable:this.nullable,sortable:this.sortable,hidden:this.hidden,groupable:this.groupable,width:this.width,align:this.align,editable:this.editable,minwidth:this.minwidth,maxwidth:this.maxwidth,resizable:this.resizable,datafield:this.datafield,text:this.text,exportable:this.exportable,cellsalign:this.cellsalign,pinned:this.pinned,cellsFormat:this.cellsFormat,columntype:this.columntype,classname:this.classname,cellclassname:this.cellclassname,menu:this.menu}},this.setproperty=function(e,f){if(this[e]){var g=this[e];this[e]=f;this.owner._columnPropertyChanged(this,e,f,g)}else{if(this[e.toLowerCase()]){var g=this[e.toLowerCase()];this[e.toLowerCase()]=f;this.owner._columnPropertyChanged(this,e.toLowerCase(),f,g)}}};this._initfields=function(f){if(f!=null){var e=this;if(b.jqx.hasProperty(f,"dataField")){this.datafield=b.jqx.get(f,"dataField")}if(b.jqx.hasProperty(f,"displayField")){this.displayfield=b.jqx.get(f,"displayField")}else{this.displayfield=this.datafield}if(b.jqx.hasProperty(f,"columnType")){this.columntype=b.jqx.get(f,"columnType")}if(b.jqx.hasProperty(f,"validation")){this.validation=b.jqx.get(f,"validation")}if(b.jqx.hasProperty(f,"autoCellHeight")){this.autoCellHeight=b.jqx.get(f,"autoCellHeight")}if(b.jqx.hasProperty(f,"text")){this.text=b.jqx.get(f,"text")}else{this.text=this.displayfield}if(b.jqx.hasProperty(f,"sortable")){this.sortable=b.jqx.get(f,"sortable")}if(b.jqx.hasProperty(f,"hidden")){this.hidden=b.jqx.get(f,"hidden")}if(b.jqx.hasProperty(f,"groupable")){this.groupable=b.jqx.get(f,"groupable")}if(b.jqx.hasProperty(f,"renderer")){this.renderer=b.jqx.get(f,"renderer")}if(b.jqx.hasProperty(f,"align")){this.align=b.jqx.get(f,"align")}if(b.jqx.hasProperty(f,"cellsAlign")){this.cellsalign=b.jqx.get(f,"cellsAlign")}if(b.jqx.hasProperty(f,"cellsFormat")){this.cellsFormat=b.jqx.get(f,"cellsFormat")}if(b.jqx.hasProperty(f,"width")){this.width=b.jqx.get(f,"width")}if(b.jqx.hasProperty(f,"minWidth")){this.minwidth=b.jqx.get(f,"minWidth")}if(b.jqx.hasProperty(f,"maxWidth")){this.maxwidth=b.jqx.get(f,"maxWidth")}if(b.jqx.hasProperty(f,"cellsRenderer")){this.cellsRenderer=b.jqx.get(f,"cellsRenderer")}if(b.jqx.hasProperty(f,"columnType")){this.columntype=b.jqx.get(f,"columnType")}if(b.jqx.hasProperty(f,"pinned")){this.pinned=b.jqx.get(f,"pinned")}if(b.jqx.hasProperty(f,"filterable")){this.filterable=b.jqx.get(f,"filterable")}if(b.jqx.hasProperty(f,"filter")){this.filter=b.jqx.get(f,"filter")}if(b.jqx.hasProperty(f,"resizable")){this.resizable=b.jqx.get(f,"resizable")}if(b.jqx.hasProperty(f,"draggable")){this.draggable=b.jqx.get(f,"draggable")}if(b.jqx.hasProperty(f,"editable")){this.editable=b.jqx.get(f,"editable")}if(b.jqx.hasProperty(f,"initEditor")){this.initeditor=b.jqx.get(f,"initEditor")}if(b.jqx.hasProperty(f,"createEditor")){this.createeditor=b.jqx.get(f,"createEditor")}if(b.jqx.hasProperty(f,"destroyEditor")){this.destroyeditor=b.jqx.get(f,"destroyEditor")}if(b.jqx.hasProperty(f,"getEditorValue")){this.geteditorvalue=b.jqx.get(f,"getEditorValue")}if(b.jqx.hasProperty(f,"className")){this.classname=b.jqx.get(f,"className")}if(b.jqx.hasProperty(f,"cellClassName")){this.cellclassname=b.jqx.get(f,"cellClassName")}if(b.jqx.hasProperty(f,"aggregates")){this.aggregates=b.jqx.get(f,"aggregates")}if(b.jqx.hasProperty(f,"aggregatesRenderer")){this.aggregatesRenderer=b.jqx.get(f,"aggregatesRenderer")}if(b.jqx.hasProperty(f,"rendered")){this.rendered=b.jqx.get(f,"rendered")}if(b.jqx.hasProperty(f,"exportable")){this.exportable=b.jqx.get(f,"exportable")}if(b.jqx.hasProperty(f,"nullable")){this.nullable=b.jqx.get(f,"nullable")}if(b.jqx.hasProperty(f,"columnGroup")){this.columngroup=b.jqx.get(f,"columnGroup")}if(!f instanceof String&&!(typeof f=="string")){for(var g in f){if(!e.hasOwnProperty(g)){if(!e.hasOwnProperty(g.toLowerCase())){c.host.remove();throw new Error("jqxDataTable: Invalid property name - "+g+".")}}}}}};this._initfields(d);return this}b.jqx.dataCollection=function(c){this.records=new Array();this.owner=c;this.updating=false;this.beginUpdate=function(){this.updating=true};this.resumeupdate=function(){this.updating=false};this.clear=function(){this.records=new Array()};this.replace=function(e,d){this.records[e]=d};this.isempty=function(d){if(this.records[d]==undefined){return true}return false};this.initialize=function(d){if(d<1){d=1}this.records[d-1]=-1};this.length=function(){return this.records.length};this.indexOf=function(d){return this.records.indexOf(d)};this.add=function(d){if(d==null){return false}this.records[this.records.length]=d;return true};this.insertAt=function(e,d){if(e==null||e==undefined){return false}if(d==null){return false}if(e>=0){if(ec){return 1}return 0;case"date":case"time":if(dc){return 1}return 0;case"string":case"text":d=String(d).toLowerCase();c=String(c).toLowerCase();break}}else{if(b.jqx.dataFormat.isNumber(d)&&b.jqx.dataFormat.isNumber(c)){if(dc){return 1}return 0}else{if(b.jqx.dataFormat.isDate(d)&&b.jqx.dataFormat.isDate(c)){if(dc){return 1}return 0}else{if(!b.jqx.dataFormat.isNumber(d)&&!b.jqx.dataFormat.isNumber(c)){d=String(d).toLowerCase();c=String(c).toLowerCase()}}}}}try{if(dc){return 1}}catch(e){var g=e}return 0};this._equals=function(d,c){return(this._compare(d,c)===0)};this.evaluate=function(p){if(this.grid.serverProcessing){if(p){if(this.grid.source._source.id==""||this.grid.source._source.id==null){if(this.grid.pageable){var c=this.grid.pageSize*this.pagenum;this.grid.rowsByKey=new Array();var h=this;b.each(p,function(i){this.uid=c;h.grid.rowsByKey[this.uid]=this;c++})}}}return p}var d=new Array();if(this.filters.length){var j=new Array();var o=function(s,w){for(var u=0;u0)){var n=new Array();var k=function(r,s){for(var q=0;q0){k(t,t.records)}}};k(null,p);o.call(this,n,d);for(var e=0;e0)){var h=this;var l=new Array();this._sortData=null;var f=function(t,q){h._sortData=null;var r=null;if(h.source.hierarchy.groupingDataFields){if(q&&q.length>0&&q[0].level0){return b(j,d).text()}if(this.rows&&j!=""&&j!=undefined&&this.rows.length>0){var h=this.rows[this.rows.length-1][j];if(h==null){h=null}for(var f=1;f<=100;f++){var g=this.grid.rowsByKey[f+h];if(!g){if(this.grid&&this.grid.treeGrid&&this.grid.treeGrid.virtualModeCreateRecords){var g=this.grid.rowsByKey["jqx"+h+f];if(g){continue}return"jqx"+h+f}return h+f}}}if(j!=undefined){if(j.toString().length>0){var c=b(d).attr(j);if(c!=null&&c.toString().length>0){if(this.grid&&this.grid.treeGrid&&this.grid.treeGrid.virtualModeCreateRecords){return"jqx"+c}return c}}}if(this.rows&&this.rows.length>0){var g=this.grid.rowsByKey[e];if(g){var h=this.rows[this.rows.length-1][j];if(h==null){h=""}for(var f=1;f<=1000;f++){var g=this.grid.rowsByKey[f+h];if(!g){if(this.grid&&this.grid.treeGrid&&this.grid.treeGrid.virtualModeCreateRecords){var g=this.grid.rowsByKey["jqx"+h+f];if(g){continue}return"jqx"+h+f}return h+f}}}}if(this.grid&&this.grid.treeGrid&&this.grid.treeGrid.virtualModeCreateRecords){var g=this.grid.rowsByKey["jqx"+e];if(!g){return"jqx"+e}else{for(var f=e+1;f<=100;f++){var g=this.grid.rowsByKey["jqx"+f];if(!g){var g=this.grid.rowsByKey["jqx"+f];if(g){continue}return"jqx"+f}}}}return e};this.generatekey=function(){var c=function(){return(((1+Math.random())*16)|0)};return(""+c()+c()+"-"+c()+"-"+c())};return this}})(jqxBaseFramework); \ No newline at end of file diff --git a/htdocs/public/jqwidgets/jqxdate.js b/htdocs/public/jqwidgets/jqxdate.js deleted file mode 100644 index 5551df08..00000000 --- a/htdocs/public/jqwidgets/jqxdate.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -jQWidgets v4.0.0 (2016-Jan) -Copyright (c) 2011-2016 jQWidgets. -License: http://jqwidgets.com/license/ -*/ - -(function(f){f.jqx.timeSpan=function(){var q={ticksPerMillisecond:10000,millisecondsPerTick:1/10000,ticksPerSecond:1000*10000,secondsPerTick:1/(1000*10000),ticksPerMinute:1000*10000*60,minutesPerTick:1/(1000*10000*60),ticksPerHour:1000*10000*3600,hoursPerTick:1/(1000*10000*3600),ticksPerDay:1000*10000*3600*24,daysPerTick:1/(1000*10000*3600*24),millisPerSecond:1000,millisPerMinute:1000*60,millisPerHour:1000*60*60,millisPerDay:1000*60*60*24,_ticks:0};f.extend(true,this,q);var r=this;r.ticks=function(){return r._ticks};r.days=function(){return parseInt(r._ticks/r.ticksPerDay)};r.timeToMS=function(v,z,x,w){var y=v*3600+z*60+x+w/1000;return parseInt(y*r.ticksPerSecond)};r.hours=function(){return parseInt(r._ticks/r.ticksPerHour)%24};r.milliseconds=function(){return parseInt(r._ticks/r.ticksPerMillisecond)%1000};r.minutes=function(){return parseInt(r._ticks/r.ticksPerMinute)%60};r.seconds=function(){return parseInt(r._ticks/r.ticksPerSecond)%60};r.totalDays=function(){return parseInt(r._ticks*r.daysPerTick)};r.totalHours=function(){return parseInt(r._ticks*r.hoursPerTick)};r.totalMilliseconds=function(){var v=r._ticks*r.millisecondsPerTick;return parseInt(v)};r.totalMinutes=function(){return parseInt(r._ticks*r.minutesPerTick)};r.totalSeconds=function(){return parseInt(r._ticks*r.secondsPerTick)};if(arguments.length===1){r._ticks=arguments[0]}else{if(arguments.length===3){r._ticks=r.timeToMS(arguments[0],arguments[1],arguments[2])}else{if(arguments.length===4){var u=arguments[0];var n=arguments[1];var p=arguments[2];var t=arguments[3];var o=0;var s=(u*3600*24+n*3600+p*60+t)*1000+o;r._ticks=s*r.ticksPerMillisecond}else{if(arguments.length===5){var u=arguments[0];var n=arguments[1];var p=arguments[2];var t=arguments[3];var o=arguments[4];var s=(u*3600*24+n*3600+p*60+t)*1000+o;r._ticks=s*r.ticksPerMillisecond}}}}r.add=function(w){var v=r._ticks+w._ticks;var x=new f.jqx.timeSpan(v);return x};r.substract=function(w){var v=_ticks-w._ticks;return new f.jqx.timeSpan(v)};r.duration=function(){if(r._ticks>=0){return new f.jqx.timeSpan(r._ticks)}else{return new f.jqx.timeSpan(-r._ticks)}};r.equals=function(v){return r._ticks==v._ticks};r.valueOf=function(){return r._ticks};r.compare=function(w,v){if(w._ticks>v._ticks){return 1}if(w._ticks=0?0.5:-0.5);return new f.jqx.timeSpan(v*r.ticksPerMillisecond)};r.fromDays=function(v){return r.interval(v,r.millisPerDay)};r.fromHours=function(v){return r.interval(v,r.millisPerHour)};r.fromMilliseconds=function(v){return r.interval(v,1)};r.fromMinutes=function(v){return r.interval(v,r.millisPerMinute)};r.fromSeconds=function(v){return r.interval(v,r.millisPerSecond)};r.fromTicks=function(v){return new f.jqx.timeSpan(v)};return r};var g=[{id:"Local",offset:0,offsetHours:0,displayName:"",supportsDaylightSavingTime:false},{id:"Dateline Standard Time",offset:-720,offsetHours:-12,displayName:"(UTC-12:00) International Date Line West",supportsDaylightSavingTime:false},{id:"UTC-11",offset:-660,offsetHours:-11,displayName:"(UTC-11:00) Coordinated Universal Time-11",supportsDaylightSavingTime:false},{id:"Hawaiteratoran Standard Time",offset:-600,offsetHours:-10,displayName:"(UTC-10:00) Hawaiterator",supportsDaylightSavingTime:false},{id:"Alaskan Standard Time",offset:-540,offsetHours:-9,displayName:"(UTC-09:00) Alaska",supportsDaylightSavingTime:true},{id:"Pacific Standard Time (Mexico)",offset:-480,offsetHours:-8,displayName:"(UTC-08:00) Baja California",supportsDaylightSavingTime:true},{id:"Pacific Standard Time",offset:-480,offsetHours:-8,displayName:"(UTC-08:00) Pacific Time (US & Canada)",supportsDaylightSavingTime:true},{id:"US Mountain Standard Time",offset:-420,offsetHours:-7,displayName:"(UTC-07:00) Arizona",supportsDaylightSavingTime:false},{id:"Mountain Standard Time (Mexico)",offset:-420,offsetHours:-7,displayName:"(UTC-07:00) Chihuahua, La Paz, Mazatlan",supportsDaylightSavingTime:true},{id:"Mountain Standard Time",offset:-420,offsetHours:-7,displayName:"(UTC-07:00) Mountain Time (US & Canada)",supportsDaylightSavingTime:true},{id:"Central Standard Time",offset:-360,offsetHours:-6,displayName:"(UTC-06:00) Central Time (US & Canada)",supportsDaylightSavingTime:true},{id:"Central America Standard Time",offset:-360,offsetHours:-6,displayName:"(UTC-06:00) Central America",supportsDaylightSavingTime:false},{id:"Canada Central Standard Time",offset:-360,offsetHours:-6,displayName:"(UTC-06:00) Saskatchewan",supportsDaylightSavingTime:false},{id:"Central Standard Time (Mexico)",offset:-360,offsetHours:-6,displayName:"(UTC-06:00) Guadalajara, Mexico City, Monterrey",supportsDaylightSavingTime:true},{id:"SA Pacific Standard Time",offset:-300,offsetHours:-5,displayName:"(UTC-05:00) Bogota, Lima, Quito, Rio Branco",supportsDaylightSavingTime:false},{id:"Eastern Standard Time",offset:-300,offsetHours:-5,displayName:"(UTC-05:00) Eastern Time (US & Canada)",supportsDaylightSavingTime:true},{id:"US Eastern Standard Time",offset:-300,offsetHours:-5,displayName:"(UTC-05:00) Indiana (East)",supportsDaylightSavingTime:true},{id:"Venezuela Standard Time",offset:-270,offsetHours:-4.5,displayName:"(UTC-04:30) Caracas",supportsDaylightSavingTime:false},{id:"Atlantic Standard Time",offset:-240,offsetHours:-4,displayName:"(UTC-04:00) Atlantic Time (Canada)",supportsDaylightSavingTime:true},{id:"Paraguay Standard Time",offset:-240,offsetHours:-4,displayName:"(UTC-04:00) Asuncion",supportsDaylightSavingTime:true},{id:"Central Brazilian Standard Time",offset:-240,offsetHours:-4,displayName:"(UTC-04:00) Cuiaba",supportsDaylightSavingTime:true},{id:"Pacific SA Standard Time",offset:-240,offsetHours:-4,displayName:"(UTC-04:00) Santiago",supportsDaylightSavingTime:true},{id:"SA Western Standard Time",offset:-240,offsetHours:-4,displayName:"(UTC-04:00) Georgetown, La Paz, Manaus, San Juan",supportsDaylightSavingTime:false},{id:"Newfoundland Standard Time",offset:-210,offsetHours:-3.5,displayName:"(UTC-03:30) Newfoundland",supportsDaylightSavingTime:true},{id:"SA Eastern Standard Time",offset:-180,offsetHours:-3,displayName:"(UTC-03:00) Cayenne, Fortaleza",supportsDaylightSavingTime:false},{id:"Argentina Standard Time",offset:-180,offsetHours:-3,displayName:"(UTC-03:00) Buenos Aires",supportsDaylightSavingTime:true},{id:"E. South America Standard Time",offset:-180,offsetHours:-3,displayName:"(UTC-03:00) Brasilia",supportsDaylightSavingTime:true},{id:"Bahia Standard Time",offset:-180,offsetHours:-3,displayName:"(UTC-03:00) Salvador",supportsDaylightSavingTime:true},{id:"Montevideo Standard Time",offset:-180,offsetHours:-3,displayName:"(UTC-03:00) Montevideo",supportsDaylightSavingTime:true},{id:"Greenland Standard Time",offset:-180,offsetHours:-3,displayName:"(UTC-03:00) Greenland",supportsDaylightSavingTime:true},{id:"UTC-02",offset:-120,offsetHours:-2,displayName:"(UTC-02:00) Coordinated Universal Time-02",supportsDaylightSavingTime:false},{id:"Mid-Atlantic Standard Time",offset:-120,offsetHours:-2,displayName:"(UTC-02:00) Mid-Atlantic - Old",supportsDaylightSavingTime:true},{id:"Azores Standard Time",offset:-60,offsetHours:-1,displayName:"(UTC-01:00) Azores",supportsDaylightSavingTime:true},{id:"Cape Verde Standard Time",offset:-60,offsetHours:-1,displayName:"(UTC-01:00) Cape Verde Is.",supportsDaylightSavingTime:false},{id:"Morocco Standard Time",offset:0,offsetHours:0,displayName:"(UTC) Casablanca",supportsDaylightSavingTime:true},{id:"UTC",offset:0,offsetHours:0,displayName:"(UTC) Coordinated Universal Time",supportsDaylightSavingTime:false},{id:"GMT Standard Time",offset:0,offsetHours:0,displayName:"(UTC) Dublin, Edinburgh, Lisbon, London",supportsDaylightSavingTime:true},{id:"Greenwich Standard Time",offset:0,offsetHours:0,displayName:"(UTC) Monrovia, Reykjavik",supportsDaylightSavingTime:false},{id:"Central European Standard Time",offset:60,offsetHours:1,displayName:"(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb",supportsDaylightSavingTime:true},{id:"Namibia Standard Time",offset:60,offsetHours:1,displayName:"(UTC+01:00) Windhoek",supportsDaylightSavingTime:true},{id:"W. Central Africa Standard Time",offset:60,offsetHours:1,displayName:"(UTC+01:00) West Central Africa",supportsDaylightSavingTime:false},{id:"W. Europe Standard Time",offset:60,offsetHours:1,displayName:"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",supportsDaylightSavingTime:true},{id:"Central Europe Standard Time",offset:60,offsetHours:1,displayName:"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague",supportsDaylightSavingTime:true},{id:"Romance Standard Time",offset:60,offsetHours:1,displayName:"(UTC+01:00) Brussels, Copenhagen, Madrid, Paris",supportsDaylightSavingTime:true},{id:"FLE Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius",supportsDaylightSavingTime:true},{id:"South Africa Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Harare, Pretoria",supportsDaylightSavingTime:false},{id:"Turkey Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Istanbul",supportsDaylightSavingTime:true},{id:"GTB Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Athens, Bucharest",supportsDaylightSavingTime:true},{id:"Libya Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Tripoli",supportsDaylightSavingTime:true},{id:"E. Europe Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) E. Europe",supportsDaylightSavingTime:true},{id:"Jordan Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Amman",supportsDaylightSavingTime:true},{id:"Middle East Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Beirut",supportsDaylightSavingTime:true},{id:"Egypt Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Cairo",supportsDaylightSavingTime:true},{id:"Syria Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Damascus",supportsDaylightSavingTime:true},{id:"Israel Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Jerusalem",supportsDaylightSavingTime:true},{id:"Arab Standard Time",offset:180,offsetHours:3,displayName:"(UTC+03:00) Kuwait, Riyadh",supportsDaylightSavingTime:false},{id:"E. Africa Standard Time",offset:180,offsetHours:3,displayName:"(UTC+03:00) Nairobi",supportsDaylightSavingTime:false},{id:"Arabic Standard Time",offset:180,offsetHours:3,displayName:"(UTC+03:00) Baghdad",supportsDaylightSavingTime:true},{id:"Kaliningrad Standard Time",offset:180,offsetHours:3,displayName:"(UTC+03:00) Kaliningrad, Minsk",supportsDaylightSavingTime:true},{id:"Iran Standard Time",offset:210,offsetHours:3.5,displayName:"(UTC+03:30) Tehran",supportsDaylightSavingTime:true},{id:"Mauritius Standard Time",offset:240,offsetHours:4,displayName:"(UTC+04:00) Port Louis",supportsDaylightSavingTime:true},{id:"Georgian Standard Time",offset:240,offsetHours:4,displayName:"(UTC+04:00) Tbilisi",supportsDaylightSavingTime:false},{id:"Caucasus Standard Time",offset:240,offsetHours:4,displayName:"(UTC+04:00) Yerevan",supportsDaylightSavingTime:true},{id:"Arabian Standard Time",offset:240,offsetHours:4,displayName:"(UTC+04:00) Abu Dhabi, Muscat",supportsDaylightSavingTime:false},{id:"Azerbaijan Standard Time",offset:240,offsetHours:4,displayName:"(UTC+04:00) Baku",supportsDaylightSavingTime:true},{id:"Russian Standard Time",offset:240,offsetHours:4,displayName:"(UTC+04:00) Moscow, St. Petersburg, Volgograd",supportsDaylightSavingTime:true},{id:"Afghanistan Standard Time",offset:270,offsetHours:4.5,displayName:"(UTC+04:30) Kabul",supportsDaylightSavingTime:false},{id:"Pakistan Standard Time",offset:300,offsetHours:5,displayName:"(UTC+05:00) Islamabad, Karachi",supportsDaylightSavingTime:true},{id:"West Asia Standard Time",offset:300,offsetHours:5,displayName:"(UTC+05:00) Ashgabat, Tashkent",supportsDaylightSavingTime:false},{id:"India Standard Time",offset:330,offsetHours:5.5,displayName:"(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi",supportsDaylightSavingTime:false},{id:"Sri Lanka Standard Time",offset:330,offsetHours:5.5,displayName:"(UTC+05:30) Sri Jayawardenepura",supportsDaylightSavingTime:false},{id:"Nepal Standard Time",offset:345,offsetHours:5.75,displayName:"(UTC+05:45) Kathmandu",supportsDaylightSavingTime:false},{id:"Central Asia Standard Time",offset:360,offsetHours:6,displayName:"(UTC+06:00) Astana",supportsDaylightSavingTime:false},{id:"Bangladesh Standard Time",offset:360,offsetHours:6,displayName:"(UTC+06:00) Dhaka",supportsDaylightSavingTime:true},{id:"Ekaterinburg Standard Time",offset:360,offsetHours:6,displayName:"(UTC+06:00) Ekaterinburg",supportsDaylightSavingTime:true},{id:"Myanmar Standard Time",offset:390,offsetHours:6.5,displayName:"(UTC+06:30) Yangon (Rangoon)",supportsDaylightSavingTime:false},{id:"SE Asia Standard Time",offset:420,offsetHours:7,displayName:"(UTC+07:00) Bangkok, Hanoi, Jakarta",supportsDaylightSavingTime:false},{id:"N. Central Asia Standard Time",offset:420,offsetHours:7,displayName:"(UTC+07:00) Novosibirsk",supportsDaylightSavingTime:true},{id:"Ulaanbaatar Standard Time",offset:480,offsetHours:8,displayName:"(UTC+08:00) Ulaanbaatar",supportsDaylightSavingTime:false},{id:"China Standard Time",offset:480,offsetHours:8,displayName:"(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi",supportsDaylightSavingTime:false},{id:"Singapore Standard Time",offset:480,offsetHours:8,displayName:"(UTC+08:00) Kuala Lumpur, Singapore",supportsDaylightSavingTime:false},{id:"North Asia Standard Time",offset:480,offsetHours:8,displayName:"(UTC+08:00) Krasnoyarsk",supportsDaylightSavingTime:true},{id:"Taipei Standard Time",offset:480,offsetHours:8,displayName:"(UTC+08:00) Taipei",supportsDaylightSavingTime:false},{id:"W. Australia Standard Time",offset:480,offsetHours:8,displayName:"(UTC+08:00) Perth",supportsDaylightSavingTime:true},{id:"Korea Standard Time",offset:540,offsetHours:9,displayName:"(UTC+09:00) Seoul",supportsDaylightSavingTime:false},{id:"North Asia East Standard Time",offset:540,offsetHours:9,displayName:"(UTC+09:00) Irkutsk",supportsDaylightSavingTime:true},{id:"Tokyo Standard Time",offset:540,offsetHours:9,displayName:"(UTC+09:00) Osaka, Sapporo, Tokyo",supportsDaylightSavingTime:false},{id:"AUS Central Standard Time",offset:570,offsetHours:9.5,displayName:"(UTC+09:30) Darwin",supportsDaylightSavingTime:false},{id:"Cen. Australia Standard Time",offset:570,offsetHours:9.5,displayName:"(UTC+09:30) Adelaide",supportsDaylightSavingTime:true},{id:"West Pacific Standard Time",offset:600,offsetHours:10,displayName:"(UTC+10:00) Guam, Port Moresby",supportsDaylightSavingTime:false},{id:"Tasmania Standard Time",offset:600,offsetHours:10,displayName:"(UTC+10:00) Hobart",supportsDaylightSavingTime:true},{id:"E. Australia Standard Time",offset:600,offsetHours:10,displayName:"(UTC+10:00) Brisbane",supportsDaylightSavingTime:false},{id:"AUS Eastern Standard Time",offset:600,offsetHours:10,displayName:"(UTC+10:00) Canberra, Melbourne, Sydney",supportsDaylightSavingTime:true},{id:"Yakutsk Standard Time",offset:600,offsetHours:10,displayName:"(UTC+10:00) Yakutsk",supportsDaylightSavingTime:true},{id:"Vladivostok Standard Time",offset:660,offsetHours:11,displayName:"(UTC+11:00) Vladivostok",supportsDaylightSavingTime:true},{id:"Central Pacific Standard Time",offset:660,offsetHours:11,displayName:"(UTC+11:00) Solomon Is., New Caledonia",supportsDaylightSavingTime:false},{id:"Magadan Standard Time",offset:720,offsetHours:12,displayName:"(UTC+12:00) Magadan",supportsDaylightSavingTime:true},{id:"Kamchatka Standard Time",offset:720,offsetHours:12,displayName:"(UTC+12:00) Petropavlovsk-Kamchatsky - Old",supportsDaylightSavingTime:true},{id:"Fiji Standard Time",offset:720,offsetHours:12,displayName:"(UTC+12:00) Fiji",supportsDaylightSavingTime:true},{id:"New Zealand Standard Time",offset:720,offsetHours:12,displayName:"(UTC+12:00) Auckland, Wellington",supportsDaylightSavingTime:true},{id:"UTC+12",offset:720,offsetHours:12,displayName:"(UTC+12:00) Coordinated Universal Time+12",supportsDaylightSavingTime:false},{id:"Tonga Standard Time",offset:780,offsetHours:13,displayName:"(UTC+13:00) Nuku'alofa",supportsDaylightSavingTime:false},{id:"Samoa Standard Time",offset:780,offsetHours:13,displayName:"(UTC+13:00) Samoa",supportsDaylightSavingTime:true}];var a=[0,31,59,90,120,151,181,212,243,273,304,334,365];var m=[0,31,60,91,121,152,182,213,244,274,305,335,366];var j=365*4+1;var c=(365*4+1)*25-1;var h=((365*4+1)*25-1)*4+1;var d=(((365*4+1)*25-1)*4+1)*4;var b=(((365*4+1)*25-1)*4+1)*4+((365*4+1)*25-1)*3-367;var l=(((365*4+1)*25-1)*4+1)*25-366;var k=0;var i=((((365*4+1)*25-1)*4+1)*25-366)*(1000*10000*3600*24)-1;var e=((((365*4+1)*25-1)*4+1)*25-366)*(1000*60*60*24);f.jqx.date=function(){var r=this;r.ticksPerMillisecond=10000;r.millisecondsPerTick=1/10000;r.ticksPerSecond=1000*10000;r.secondsPerTick=1/(1000*10000);r.ticksPerMinute=1000*10000*60;r.minutesPerTick=1/(1000*10000*60);r.ticksPerHour=1000*10000*3600;r.hoursPerTick=1/(1000*10000*3600);r.ticksPerDay=1000*10000*3600*24;r.daysPerTick=1/(1000*10000*3600*24);r.millisPerSecond=1000;r.millisPerMinute=1000*60;r.millisPerHour=1000*60*60;r.millisPerDay=1000*60*60*24;r.daysPerYear=365;r.daysPer4Years=j;r.daysPer100Years=c;r.daysPer400Years=h;r.daysTo1601=d;r.daysTo1899=b;r.daysTo10000=l;r.minTicks=0;r.maxTicks=i;r.maxMillis=e;r.datePartYear=0;r.datePartDayOfYear=1;r.datePartMonth=2;r.datePartDay=3;r.daysToMonth365=a;r.daysToMonth366=m;r.minValue=new Date(0);r.maxValue=new Date(((((365*4+1)*25-1)*4+1)*25-366)*(1000*10000*3600*24)-1);r.ticksMask=4611686018427388000;r.flagsMask=13835058055282164000;r.localMask=9223372036854776000;r.ticksCeiling=4611686018427388000;r.kindUnspecified=0;r.kindUtc=4611686018427388000;r.kindLocal=9223372036854776000;r.kindLocalAmbiguousDst=13835058055282164000;r.kindShift=62;r.regexTrim=/^\s+|\s+$/g;r.regexInfinity=/^[+-]?infinity$/i;r.regexHex=/^0x[a-f0-9]+$/i;r.regexParseFloat=/^[+-]?\d*\.?\d*(e[+-]?\d+)?$/;r.calendar={"/":"/",":":":",firstDay:0,days:{names:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],namesAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],namesShort:["Su","Mo","Tu","We","Th","Fr","Sa"]},months:{names:["January","February","March","April","May","June","July","August","September","October","November","December",""],namesAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""]},AM:["AM","am","AM"],PM:["PM","pm","PM"],eras:[{name:"A.D.",start:null,offset:0}],twoDigitYearMax:2029,patterns:{d:"M/d/yyyy",D:"dddd, MMMM dd, yyyy",t:"h:mm tt",T:"h:mm:ss tt",f:"dddd, MMMM dd, yyyy h:mm tt",F:"dddd, MMMM dd, yyyy h:mm:ss tt",M:"MMMM dd",Y:"yyyy MMMM",S:"yyyy\u0027-\u0027MM\u0027-\u0027dd\u0027T\u0027HH\u0027:\u0027mm\u0027:\u0027ss",ISO:"yyyy-MM-dd hh:mm:ss",ISO2:"yyyy-MM-dd HH:mm:ss",d1:"dd.MM.yyyy",d2:"dd-MM-yyyy",zone1:"yyyy-MM-ddTHH:mm:ss-HH:mm",zone2:"yyyy-MM-ddTHH:mm:ss+HH:mm",custom:"yyyy-MM-ddTHH:mm:ss.fff",custom2:"yyyy-MM-dd HH:mm:ss.fff"},percentsymbol:"%",currencysymbol:"$",currencysymbolposition:"before",decimalseparator:".",thousandsseparator:","};r.dateData=0;r.timeZone=null;r.timeZones=g;r.internalMS=function(){return r.dateData};r.getDatePart=function(y){var x=r.internalMS();var z=parseInt(x/r.millisPerDay);var G=parseInt(z/r.daysPer400Years);z-=G*r.daysPer400Years;var B=parseInt(z/r.daysPer100Years);if(B==4){B=3}z-=B*r.daysPer100Years;var D=parseInt(z/r.daysPer4Years);z-=D*r.daysPer4Years;var E=parseInt(z/r.daysPerYear);if(E==4){E=3}if(y==r.datePartYear){return parseInt(G*400+B*100+D*4+E+1)}z-=E*r.daysPerYear;if(y==r.datePartDayOfYear){return parseInt(z+1)}var C=E==3&&(D!=24||B==3);var F=C?r.daysToMonth366:r.daysToMonth365;var A=z>>5+1;while(z>=F[A]){A++}if(y==r.datePartMonth){return parseInt(A)}return parseInt(z-F[A-1]+1)};r.dayOfWeek=function(){var y=r.dateData;var x=parseInt(y/r.millisPerDay+1)%7;return x},r.dayOfYear=function(){return r.getDatePart(r.datePartDayOfYear)};r.weekOfYear=function(z){var x=r.toDate();var C=z||r.calendar.firstDay;var B=new Date(x.getFullYear(),0,1);var y=B.getDay()-C;y=(y>=0?y:y+7);var A=Math.floor((x.getTime()-B.getTime()-(x.getTimezoneOffset()-B.getTimezoneOffset())*60000)/86400000)+1;var D;if(y<4){D=Math.floor((A+y-1)/7)+1;if(D>52){nYear=new Date(x.getFullYear()+1,0,1);nday=nYear.getDay()-C;nday=nday>=0?nday:nday+7;D=nday<4?1:53}}else{D=Math.floor((A+y-1)/7)}return D};r.subtract=function(x){return new f.jqx.timeSpan(r.dateData*r.ticksPerMillisecond-x.dateData*r.ticksPerMillisecond)};r.dateToMS=function(z,A,x){if(z>=1&&z<=9999&&A>=1&&A<=12){z=parseInt(z);var D=r.isLeapYear(z)?r.daysToMonth366:r.daysToMonth365;if(x>=1&&x<=D[A]-D[A-1]){var C=z-1;var B=C*365+parseInt(C/4)-parseInt(C/100)+parseInt(C/400)+D[A-1]+x-1;return B*r.millisPerDay}}};r.isLeapYear=function(x){if(x<1||x>9999){throw new Error("Year out of Range")}return x%4==0&&(x%100!=0||x%400==0)};r.timeToMS=function(x,B,z,y){if(x>=0&&x<24&&B>=0&&B<60&&z>=0&&z<60){var A=parseInt(x*3600+B*60+z);if(y>0&&y<1000){return(A*r.millisPerSecond)+y}return A*r.millisPerSecond}};r.daysInMonth=function(x,y){if(y<1||y>12){throw new Error("Month out of Range")}var z=r.isLeapYear(x)?r.daysToMonth366:r.daysToMonth365;return z[y]-z[y-1]};r.arrayIndexOf=function(A,z){if(A.indexOf){return A.indexOf(z)}for(var x=0,y=A.length;x=C){return A}}return 0};r.toUpper=function(x){return x.split("\u00A0").join(" ").toUpperCase()};r.toUpperArray=function(x){var A=[];for(var z=0,y=x.length;z=0){A=ad.substring(ad.indexOf(":")-2);A=r.trim(A);R=ad.substring(0,ad.indexOf(":")-2)}else{if(ad.toUpperCase().indexOf("AM")>=0){A=ad.substring(ad.toUpperCase().indexOf("AM")-2);A=r.trim(A);R=ad.substring(0,ad.toUpperCase().indexOf("AM")-2)}else{if(ad.toUpperCase().indexOf("PM")>=0){A=ad.substring(ad.toUpperCase().indexOf("PM")-2);A=r.trim(A);R=ad.substring(0,ad.toUpperCase().indexOf("PM")-2)}}}var x=new Date();var ac=false;if(R){for(var ak=0;ak=0){D=R.split(af[ak]);break}}var z=new Array();var P=new Array();var Y=new Array();var K=null;var aq=null;for(var ak=0;ak2){K=ak;break}}}for(var ak=0;ak2){aq=ak;break}}}for(var ak=0;ak0){x=ah[0];ac=true}}if(A){var aa=A.indexOf(":")>=0?A.split(":"):A;var C=r.parseDate(A,"h:mm tt",ae)||r.parseDate(A,"HH:mm:ss.fff",ae)||r.parseDate(A,"HH:mm:ss.ff",ae)||r.parseDate(A,"h:mm:ss tt",ae)||r.parseDate(A,"HH:mm:ss.tttt",ae)||r.parseDate(A,"HH:mm:ss",ae)||r.parseDate(A,"HH:mm",ae)||r.parseDate(A,"HH",ae);var Q=0,B=0,T=0,V=0;if(C&&C.getTime()!=NaN){Q=C.getHours();B=C.getMinutes();T=C.getSeconds();V=C.getMilliseconds()}else{if(aa.length==1){Q=parseInt(aa[0])}if(aa.length==2){Q=parseInt(aa[0]);B=parseInt(aa[1])}if(aa.length==3){Q=parseInt(aa[0]);B=parseInt(aa[1]);if(aa[2].indexOf(".")>=0){T=parseInt(aa[2].toString().split(".")[0]);V=parseInt(aa[2].toString().split(".")[1])}else{T=parseInt(aa[2])}}if(aa.length==4){Q=parseInt(aa[0]);B=parseInt(aa[1]);T=parseInt(aa[2]);V=parseInt(aa[3])}}if(x&&!isNaN(Q)&&!isNaN(B)&&!isNaN(T)&&!isNaN(V)){x.setHours(Q,B,T,V);ac=true}}if(ac){return x}}if(ad!=null){var W=null;var D=[":","/","-"];var ai=true;for(var H=0;Hy};r.expandYear=function(C,A){var y=new Date(),x=r.getEra(y);if(A<100){var z=C.twoDigitYearMax;z=typeof z==="string"?new Date().getFullYear()%100+parseInt(z,10):z;var B=r.getEraYear(y,C,x);A+=B-(B%100);if(A>z){A-=100}}return A};r.parseDate=function(S,Z,N){if(N==undefined||N==null){N=r.calendar}S=r.trim(S);var K=N,ae=r.getParseRegExp(K,Z),E=new RegExp(ae.regExp).exec(S);if(E===null){return null}var aa=ae.groups,Q=null,I=null,ad=null,ac=null,J=null,C=0,V,U=0,ab=0,x=0,z=null,L=false;for(var W=0,Y=aa.length;W1&&Z.length=r.maxMillis){throw new Error("Out of Range")}if(y===false){r.dateData=(z+A);return r}var x=new f.jqx.date(z+A);x.timeZone=r.timeZone;return x};r.addDays=function(y,x){return r.add(y,r.millisPerDay,x)};r.clone=function(){var x=new f.jqx.date(r.dateData);x.timeZone=r.timeZone;return x};r.clearTime=function(){var A=r.month();var z=r.year();var y=r.day();var x=new f.jqx.date(z,A,y,0,0,0,0);x.timeZone=r.timeZone;return x};r.addHours=function(y,x){return r.add(y,r.millisPerHour,x)};r.addMilliseconds=function(y,x){return r.add(y,1,x)};r.addMinutes=function(y,x){return r.add(y,r.millisPerMinute,x)};r.addMonths=function(z,B){if(z<-120000||z>120000){throw new Error("Invalid Months Value")}var F=parseInt(r.getDatePart(r.datePartYear));var x=parseInt(r.getDatePart(r.datePartMonth));var D=parseInt(r.getDatePart(r.datePartDay));var C=x-1+z;if(C>=0){x=C%12+1;F=F+C/12}else{x=12+(C+1)%12;F=F+(C-11)/12}F=parseInt(F);if(F<1||F>9999){throw new Error("Year out of range")}var E=r.daysInMonth(F,x);if(D>E){D=E}if(B===false){r.dateData=(r.dateToMS(F,x,D)+r.internalMS()%r.millisPerDay);return r}var A=new f.jqx.date((r.dateToMS(F,x,D)+r.internalMS()%r.millisPerDay));A.timeZone=r.timeZone;return A};r.addSeconds=function(y,x){return r.add(y,r.millisPerSecond,x)};r.addYears=function(y,x){return r.addMonths(y*12,x)};r.getTimeZoneOffset=function(){var y=new Date();var x=new Date(y.getFullYear(),0,1);var z=new Date(y.getFullYear(),6,1);var A=y.getTimezoneOffset()2){if(f.type(arguments[0])==="string"){var o=r.tryparseDate(arguments[0],arguments[2],arguments[1]);r.dateData=r.dateToMS(o.getFullYear(),o.getMonth()+1,o.getDate())+r.timeToMS(o.getHours(),o.getMinutes(),o.getSeconds(),o.getMilliseconds())}else{var t=arguments[0];var s=arguments[1];var u=arguments[2];var q=arguments[3];var p=arguments[4];var n=arguments[5];var w=arguments[6];if(q===undefined){q=0}if(p===undefined){p=0}if(n===undefined){n=0}if(w===undefined){w=0}s--;var o=new Date(t,s,u,q,p,n,w);if(t<1970){o.setFullYear(t)}r.dateData=r.dateToMS(o.getFullYear(),o.getMonth()+1,o.getDate())+r.timeToMS(o.getHours(),o.getMinutes(),o.getSeconds(),o.getMilliseconds())}}}}}return r}})(jqxBaseFramework);if(!Array.prototype.filter){Array.prototype.filter=function(b){if(this===void 0||this===null){throw new TypeError()}var f=Object(this);var a=f.length>>>0;if(typeof b!=="function"){throw new TypeError()}var e=[];var d=arguments[1];for(var c=0;c=0){e.value=e.value.replace(/\,/g,"/");var d=new Date(e.value);if(d!=undefined&&!isNaN(d)){e.value=a.jqx._jqxDateTimeInput.getDateTime(d)}}}}}this._initTimeRange();this._validateTimeRange();e.host.attr("data-role","input");e.render();a.jqx.aria(this);if(e.getDate()!=null){a.jqx.aria(this,"aria-label","Current focused date is "+e.getDate().toLocaleString())}else{a.jqx.aria(this,"aria-label","Current focused date is Null")}if(e.minDate!==e.defaultMinDate){e.min=e.minDate}if(e.maxDate!==e.defaultMaxDate){e.max=e.maxDate}e.setMaxDate(e.max,false);e.setMinDate(e.min,false);if(e.selectionMode=="range"){if(b){var c=e.host.attr("value");var g=c.substring(0,c.indexOf("-"));var f=c.substring(c.indexOf("-")+1);var k=new Date(g);var j=new Date(f);if(k!=undefined&&!isNaN(k)){if(j!=undefined&&!isNaN(j)){e.setRange(k,j)}}}else{if(e.getDate()!=null){e.setRange(e.getDate(),e.getDate())}}}},_validateTimeRange:function(){if(this.timeRange){var b=this.value.dateTime.getHours();var c=this.value.dateTime.getMinutes();if(b<=this.timeRange.minHour){this.value._setHours(this.timeRange.minHour);if(c=this.timeRange.maxHour){this.value._setHours(this.timeRange.maxHour);if(c>this.timeRange.maxMinute){this.value._setMinutes(this.timeRange.maxMinute);this._updateEditorsValue()}else{this._updateEditorsValue()}}}},_initTimeRange:function(){if(this.timeRange){if(this.timeRange.min){var c=null;if(this.timeRange.min.indexOf("AM")>=0||this.timeRange.min.indexOf("PM")>=0){c=this.timeRange.min.indexOf("AM")>=0?"AM":"PM"}var d=this.timeRange.min.split(":");var b=parseInt(d[0]);var f=parseInt(d[1]);if(c){this.timeRange.minDefaultHour=b;this.timeRange.minMeridian=c}if(c&&c=="PM"){b+=12}this.timeRange.minHour=b;this.timeRange.minMinute=f}if(this.timeRange.max){var c=null;if(this.timeRange.max.indexOf("AM")>=0||this.timeRange.max.indexOf("PM")>=0){c=this.timeRange.max.indexOf("AM")>=0?"AM":"PM"}var e=this.timeRange.max.split(":");var b=parseInt(e[0]);var f=parseInt(e[1]);if(c){this.timeRange.maxDefaultHour=b;this.timeRange.maxMeridian=c}if(c&&c=="PM"){b+=12}this.timeRange.maxHour=b;this.timeRange.maxMinute=f}}},_format:function(d,e,b){var f=false;try{if(Globalize!=undefined){f=true}}catch(c){}if(a.global){return a.global.format(d,e,this.culture)}else{if(f){try{var e=Globalize.format(d,e,this.culture);return e}catch(c){return Globalize.format(d,e)}}else{if(a.jqx.dataFormat){if(d instanceof Date){return a.jqx.dataFormat.formatdate(d,e,this.localization.calendar)}else{if(typeof d==="number"){return a.jqx.dataFormat.formatnumber(d,e,this.localization.calendar)}else{return a.jqx.dataFormat.formatdate(d,e,this.localization.calendar)}}}else{throw new Error("jqxDateTimeInput: Missing reference to globalize.js.")}}}},render:function(){var l=this;l._removeHandlers();l.element.innerHTML="";l.host.attr({role:"textbox"});l.id=a.jqx.utilities.createId();var f=a.jqx.utilities.createId();var k=a.jqx.utilities.createId();l._setSize();if(l.width==null){l.width=l.host.width();l.host.width(l.width)}l.touch=a.jqx.mobile.isTouchDevice();var c=a("
              ").appendTo(l.host);l.dateTimeInput=a("").appendTo(c);l.dateTimeInput.addClass(l.toThemeProperty("jqx-reset"));l.dateTimeInput.addClass(l.toThemeProperty("jqx-clear"));l.dateTimeInput.addClass(l.toThemeProperty("jqx-input-content"));l.dateTimeInput.addClass(l.toThemeProperty("jqx-widget-content"));l.dateTimeInput.addClass(l.toThemeProperty("jqx-rc-all"));l.dateTimeInput.attr("placeHolder",l.placeHolder);if(l.renderMode!="full"){l.dateTimeInput.remove()}var d=l.host.attr("name");if(d){l.dateTimeInput.attr("name",d)}if(l.host.attr("tabindex")){l.dateTimeInput.attr("tabindex",l.host.attr("tabindex"));l.host.removeAttr("tabindex")}if(l.rtl){l.dateTimeInput.css("direction","rtl");l.dateTimeInput.addClass("jqx-rtl")}l.calendarButton=a("
              ").appendTo(c);if(!l.rtl){l.calendarButton.addClass(l.toThemeProperty("jqx-action-button"))}else{l.calendarButton.addClass(l.toThemeProperty("jqx-action-button-rtl"))}l.calendarButtonIcon=a(l.calendarButton.children()[0]);l.calendarButtonIcon.addClass(l.toThemeProperty("jqx-icon"));l.calendarButtonIcon.addClass(l.toThemeProperty("jqx-icon-calendar"));l.calendarButton.addClass(l.toThemeProperty("jqx-fill-state-normal"));if(!l.rtl){l.calendarButton.addClass(l.toThemeProperty("jqx-rc-r"))}else{l.calendarButton.addClass(l.toThemeProperty("jqx-rc-l"))}l.timeButton=a("
              ").appendTo(c);if(!l.rtl){l.timeButton.addClass(l.toThemeProperty("jqx-action-button"))}else{l.timeButton.addClass(l.toThemeProperty("jqx-action-button-rtl"))}l.timeButtonIcon=a(l.timeButton.children()[0]);l.timeButtonIcon.addClass(l.toThemeProperty("jqx-icon"));l.timeButtonIcon.addClass(l.toThemeProperty("jqx-icon-time"));l.timeButton.addClass(l.toThemeProperty("jqx-fill-state-normal"));if(!l.rtl){l.timeButton.addClass(l.toThemeProperty("jqx-rc-r"))}else{l.timeButton.addClass(l.toThemeProperty("jqx-rc-l"))}var n=this;l._arrange();if(a.jqx._jqxCalendar!=null&&a.jqx._jqxCalendar!=undefined){try{var j="calendar"+l.id;var h=a(a.find("#"+j));if(h.length>0){h.remove()}a.jqx.aria(this,"aria-owns",j);a.jqx.aria(this,"aria-haspopup",true);a.jqx.aria(this,"aria-readonly",l.selectionMode=="range"?true:false);var b=a("
              ");if(a.jqx.utilities.getBrowser().browser=="opera"){b.hide()}b.appendTo(document.body);l.container=b;l.calendarContainer=a(a.find("#innerCalendar"+l.id)).jqxCalendar({restrictedDates:this.restrictedDates,changing:l.changing,change:l.change,enableViews:l.enableViews,selectableDays:l.selectableDays,views:l.views,rowHeaderWidth:l.rowHeaderWidth,titleHeight:l.titleHeight,columnHeaderHeight:l.columnHeaderHeight,_checkForHiddenParent:false,enableAutoNavigation:false,canRender:false,localization:l.localization,todayString:l.todayString,clearString:l.clearString,dayNameFormat:l.dayNameFormat,rtl:l.rtl,culture:l.culture,showFooter:l.showFooter,selectionMode:l.selectionMode,firstDayOfWeek:l.firstDayOfWeek,showWeekNumbers:l.showWeekNumbers,width:l.dropDownWidth,height:l.dropDownHeight,theme:l.theme});l.calendarContainer.css({position:"absolute",zIndex:l.popupZIndex,top:0,left:0});l.calendarContainer.addClass(l.toThemeProperty("jqx-popup"));if(a.jqx.browser.msie){l.calendarContainer.addClass(l.toThemeProperty("jqx-noshadow"))}l.timeContainer=a(a.find("#innerTime"+l.id));l.timeContainer.css({position:"absolute",zIndex:l.popupZIndex,top:0,left:0});l.timeContainer.addClass(l.toThemeProperty("jqx-popup"));if(a.jqx.browser.msie){l.timeContainer.addClass(l.toThemeProperty("jqx-noshadow"))}l._calendar=a.data(l.calendarContainer[0],"jqxCalendar").instance;var n=this;l._calendar.today=function(){n.today()};l._calendar.clear=function(){n.clear()};if(a.jqx.utilities.getBrowser().browser=="opera"){b.show()}b.height(parseInt(l.calendarContainer.height())+25);b.width(parseInt(l.calendarContainer.width())+25);if(l.selectionMode=="range"){l.readonly=true}if(l.animationType=="none"){l.container.css("display","none")}else{l.container.hide()}}catch(m){}}if(a.global){a.global.preferCulture(l.culture)}l.selectedText="";l._addHandlers();l.self=this;l.oldValue=l.getDate();l.items=new Array();l.editors=new Array();l._loadItems();l.editorText="";if(l.readonly==true){l.dateTimeInput.css("readonly",l.readonly)}l.dateTimeInput.css("text-align",l.textAlign);l.host.addClass(l.toThemeProperty("jqx-widget"));l.host.addClass(l.toThemeProperty("jqx-datetimeinput"));l.host.addClass(l.toThemeProperty("jqx-input"));l.host.addClass(l.toThemeProperty("jqx-overflow-hidden"));l.host.addClass(l.toThemeProperty("jqx-rc-all"));l.host.addClass(l.toThemeProperty("jqx-reset"));l.host.addClass(l.toThemeProperty("jqx-clear"));l.host.addClass(l.toThemeProperty("jqx-widget-content"));l.propertyChangeMap.disabled=function(e,q,p,r){if(r){e.host.addClass(n.toThemeProperty("jqx-input-disabled"));e.host.addClass(n.toThemeProperty("jqx-fill-state-disabled"))}else{e.host.removeClass(n.toThemeProperty("jqx-fill-state-disabled"));e.host.removeClass(n.toThemeProperty("jqx-input-disabled"))}a.jqx.aria(this,"aria-disabled",r)};if(l.disabled){l.host.addClass(l.toThemeProperty("jqx-input-disabled"));l.host.addClass(l.toThemeProperty("jqx-fill-state-disabled"));l.dateTimeInput.attr("disabled",true)}if(l.host.parents("form").length>0){l.addHandler(l.host.parents("form"),"reset",function(){setTimeout(function(){n.setDate(new Date())},10)})}if(l.cookies){var g=a.jqx.cookie.cookie("jqxDateTimeInput"+l.element.id);if(g!=null){l.setDate(new Date(g))}}if(a.jqx.browser.msie&&a.jqx.browser.version<8){if(l.host.parents(".jqx-window").length>0){var o=l.host.parents(".jqx-window").css("z-index");l.container.css("z-index",o+10);l.calendarContainer.css("z-index",o+10)}}if(l.culture!="default"){l._applyCulture()}if(l.value){if(l.calendarContainer.jqxCalendar("_isDisabled",l.value.dateTime)){l.dateTimeInput.addClass(l.toThemeProperty("jqx-input-invalid"))}else{l.dateTimeInput.removeClass(l.toThemeProperty("jqx-input-invalid"))}}},val:function(c){var b=this;if(arguments.length!=0){if(c==null){b.setDate(null)}if(b.selectionMode=="range"){b.setRange(arguments[0],arguments[1]);return b.getText()}if(c instanceof Date){b.setDate(c)}if(typeof(c)=="string"){if(c=="date"){return b.getDate()}b.setDate(c)}if(b._calendar.getDate()!=b.getDate()){b._calendar.setDate(b.getDate())}}return b.getText()},_setSize:function(){if(this.width!=null&&this.width.toString().indexOf("px")!=-1){this.host.width(this.width)}else{if(this.width!=undefined&&!isNaN(this.width)){this.host.width(this.width)}}if(this.height!=null&&this.height.toString().indexOf("px")!=-1){this.host.height(this.height)}else{if(this.height!=undefined&&!isNaN(this.height)){this.host.height(this.height)}}var e=false;if(this.width!=null&&this.width.toString().indexOf("%")!=-1){e=true;this.host.width(this.width)}if(this.height!=null&&this.height.toString().indexOf("%")!=-1){e=true;this.host.height(this.height)}var c=this;var d=function(){if(c.calendarContainer){c._arrange()}};if(e){if(this.calendarContainer){this._arrange();var b=this.host.width();if(this.dropDownWidth!="auto"){b=this.dropDownWidth}this.calendarContainer.jqxCalendar({width:b});this.container.width(parseInt(b)+25)}}a.jqx.utilities.resize(this.host,function(){d()})},_arrange:function(){if(this.height==null){this.height=27;this.host.height(27)}var d=parseInt(this.host.width());var b=parseInt(this.host.height());var h=this.buttonSize;var g=2;if(!this.showCalendarButton&&!this.showTimeButton){h=0;buttonHeight=0;this.calendarButton.hide();g=0}if(!this.showCalendarButton){this.calendarButton.hide()}else{this.calendarButton.show()}if(!this.showTimeButton){this.timeButton.hide()}else{this.timeButton.show()}var c=d-h-1*g;if(this.showTimeButton&&this.showCalendarButton){var c=d-2*h-1*g}else{if(this.showTimeButton||this.showCalendarButton){var c=d-h-1*g}}if(c>0){this.dateTimeInput[0].style.width=c+"px"}if(this.rtl){this.dateTimeInput[0].style.width=(-1+c+"px")}this.dateTimeInput[0].style.left="0px";this.dateTimeInput[0].style.top="0px";this.calendarButton[0].style.width=h+1+"px";this.calendarButton[0].style.left=1+c+"px";this.timeButton[0].style.width=h+1+"px";if(this.showCalendarButton){this.timeButton[0].style.left=1+this.calendarButton.width()+c+"px"}else{this.timeButton[0].style.left=1+c+"px"}if(this.renderMode!="full"){this.calendarButton[0].style.width="100%";this.calendarButton[0].style.left="0px";this.calendarButton.css("border","none");this.timeButton[0].style.width="100%";this.timeButton[0].style.left="0px";this.timeButton.css("border","none")}var e=this.dateTimeInput.height();if(e==0){e=parseInt(this.dateTimeInput.css("font-size"))+3;this.calendarButton.addClass(this.toThemeProperty("jqx-rc-all"));this.timeButton.addClass(this.toThemeProperty("jqx-rc-all"))}if(this.dateTimeInput[0].className.indexOf("jqx-rc-all")==-1){this.dateTimeInput.addClass(this.toThemeProperty("jqx-rc-all"))}var f=parseInt(b)/2-parseInt(e)/2;if(f>0){this.dateTimeInput[0].style.marginTop=parseInt(f)+"px"}if(this.rtl){this.calendarButton[0].style.width=h+"px";this.timeButton[0].style.width=h+"px";this.calendarButton.css("left","0px");if(this.showCalendarButton){this.timeButton.css("left",h+"px")}else{this.timeButton.css("left","0px")}this.dateTimeInput.css("left",this.calendarButton.width());if(this.showTimeButton&&this.showCalendarButton){this.dateTimeInput.css("left",this.timeButton.width()+this.calendarButton.width())}if(a.jqx.browser.msie&&a.jqx.browser.version<=8){this.dateTimeInput.css("left",1+this.calendarButton.width());if(this.showTimeButton&&this.showCalendarButton){this.dateTimeInput.css("left",1+this.timeButton.width()+this.calendarButton.width())}}}},_removeHandlers:function(){var b=this;this.removeHandler(a(document),"mousedown."+this.id);if(this.dateTimeInput){this.removeHandler(this.dateTimeInput,"keydown."+this.id);this.removeHandler(this.dateTimeInput,"blur");this.removeHandler(this.dateTimeInput,"focus");this.removeHandler(this.host,"focus");this.removeHandler(this.dateTimeInput,"mousedown");this.removeHandler(this.dateTimeInput,"mouseup");this.removeHandler(this.dateTimeInput,"keydown");this.removeHandler(this.dateTimeInput,"keyup");this.removeHandler(this.dateTimeInput,"keypress")}if(this.calendarButton!=null){this.removeHandler(this.calendarButton,"mousedown")}if(this.timeButton!=null){this.removeHandler(this.timeButton,"mousedown")}if(this.calendarContainer!=null){this.removeHandler(this.calendarContainer,"cellSelected");this.removeHandler(this.calendarContainer,"cellMouseDown")}this.removeHandler(a(window),"resize."+this.id)},isOpened:function(){var c=this;var b=a.data(document.body,"openedJQXCalendar"+this.id);if(b!=null&&b==c.calendarContainer){return true}return false},wheel:function(d,c){c.changeType="mouse";var e=0;if(!d){d=window.event}if(d.originalEvent&&d.originalEvent.wheelDelta){d.wheelDelta=d.originalEvent.wheelDelta}if(d.wheelDelta){e=d.wheelDelta/120}else{if(d.detail){e=-d.detail/3}}if(e){var b=c._handleDelta(e);if(!b){if(d.preventDefault){d.preventDefault()}d.returnValue=false;return b}else{return false}}if(d.preventDefault){d.preventDefault()}d.returnValue=false},_handleDelta:function(b){if(b<0){this.spinDown()}else{this.spinUp()}return false},focus:function(){try{var c=this;this._setSelectionStart(0);this._selectGroup(-1);this.dateTimeInput.focus();setTimeout(function(){c._setSelectionStart(0);c._selectGroup(-1);c.dateTimeInput.focus()},25)}catch(b){}},_addHandlers:function(){var e=this.element.id;var c=this.element;var d=this;if(this.host.parents()){this.addHandler(this.host.parents(),"scroll.datetimeinput"+this.element.id,function(f){var g=d.isOpened();if(g){d.close()}})}this.addHandler(this.host,"mouseenter",function(){if(!d.disabled&&d.enableHover){hovered=true;d.calendarButtonIcon.addClass(d.toThemeProperty("jqx-icon-calendar-hover"));d.calendarButton.addClass(d.toThemeProperty("jqx-fill-state-hover"))}});this.addHandler(this.host,"mouseleave",function(){if(!d.disabled&&d.enableHover){d.calendarButtonIcon.removeClass(d.toThemeProperty("jqx-icon-calendar-hover"));d.calendarButton.removeClass(d.toThemeProperty("jqx-fill-state-hover"))}});this.addHandler(this.host,"mousewheel",function(f){d.wheel(f,d)});this.addHandler(a(document),"mousedown."+this.id,this._closeOpenedCalendar,{me:this});if(a.jqx.mobile.isTouchDevice()){this.addHandler(a(document),a.jqx.mobile.getTouchEventName("touchstart")+"."+this.id,this._closeOpenedCalendar,{me:this})}this.addHandler(this.dateTimeInput,"keydown."+this.id,function(h){var g=a.data(document.body,"openedJQXCalendar"+d.id);if(g!=null&&g==d.calendarContainer){var f=d.handleCalendarKey(h,d);return f}});if(this.calendarContainer!=null){this.addHandler(this.calendarContainer,"keydown",function(f){if(f.keyCode==13){if(d.isOpened()){if(!d._calendar._viewAnimating&&d._calendar.view=="month"){d.hideCalendar("selected","keyboard");d.dateTimeInput.focus();return false}}return true}else{if(f.keyCode==9){if(d.isOpened()){d.hideCalendar("selected","keyboard");return true}}else{if(f.keyCode==27){if(d.isOpened()){d.hideCalendar(null,"keyboard");d.dateTimeInput.focus();return false}return true}}}d.timePopup=false;if(f.keyCode==84){d.timePopup=true}if(f.keyCode==115){if(d.isOpened()){d.hideCalendar("keyboard","keyboard");d.dateTimeInput.focus();return false}else{if(!d.isOpened()){d.showCalendar("keyboard","keyboard");d.dateTimeInput.focus();return false}}}if(f.altKey){if(f.keyCode==38){if(d.isOpened()){d.hideCalendar("keyboard","keyboard");d.dateTimeInput.focus();return false}}else{if(f.keyCode==40){if(!d.isOpened()){d.showCalendar("keyboard","keyboard");d.dateTimeInput.focus();return false}}}}});this.addHandler(this.calendarContainer,"cellSelected",function(g){if(d.closeCalendarAfterSelection){var f=a.data(document.body,"openedJQXCalendarValue");if(g.args.selectionType=="mouse"){if(d.selectionMode!="range"){d.hideCalendar("selected","mouse")}else{if(d._calendar._clicks==0){d.hideCalendar("selected","mouse")}}}}});this.addHandler(this.calendarContainer,"cellMouseDown",function(f){if(d.closeCalendarAfterSelection){if(d._calendar.value){a.data(document.body,"openedJQXCalendarValue",new a.jqx._jqxDateTimeInput.getDateTime(d._calendar.value.dateTime))}}})}this.addHandler(this.dateTimeInput,"blur",function(h){if(d.value!=null){d.isEditing=false;var g=d.value.dateTime.getDay();var f=d._oldDT;d._validateValue(true);if(h.stopPropagation){h.stopPropagation()}d._updateText();d._raiseEvent(9,h)}d.host.removeClass(d.toThemeProperty("jqx-fill-state-focus"))});this.addHandler(this.host,"focus",function(f){d.focus()});this.addHandler(this.dateTimeInput,"focus",function(g){if(d.value!=null){if(d.selectionMode!="range"){d._oldDT=new Date(d.value.dateTime)}else{d._oldDT=d.getRange()}var f=d._selection();d.isEditing=true;d._validateValue();d._updateText();d._setSelectionStart(0);d._selectGroup(-1,f);d.host.addClass(d.toThemeProperty("jqx-fill-state-focus"))}else{d._setSelectionStart(0);d._selectGroup(-1);d.host.addClass(d.toThemeProperty("jqx-fill-state-focus"))}if(g.stopPropagation){g.stopPropagation()}if(g.preventDefault){g.preventDefault();return false}});var b="mousedown";if(this.touch){b=a.jqx.mobile.getTouchEventName("touchstart")}this.addHandler(this.calendarButton,b,function(g){var h=d.container;var f=h.css("display")=="block";d.timePopup=false;d.calendarPopup=true;if(!d.disabled){if(!d.isanimating){if(f){d.hideCalendar();return false}else{d.showCalendar("mouse");g.preventDefault()}}}});this.addHandler(this.timeButton,b,function(g){var h=d.container;var f=h.css("display")=="block";d.timePopup=true;d.calendarPopup=false;if(!d.disabled){if(!d.isanimating){if(f){d.hideCalendar("mouse","mouse");return false}else{d.showCalendar("mouse");g.preventDefault()}}}});this.addHandler(this.dateTimeInput,"mousedown",function(f){return d._raiseEvent(2,f)});this.addHandler(this.dateTimeInput,"mouseup",function(f){return d._raiseEvent(3,f)});this.addHandler(this.dateTimeInput,"keydown",function(f){return d._raiseEvent(4,f)});this.addHandler(this.dateTimeInput,"keyup",function(f){return d._raiseEvent(5,f)});this.addHandler(this.dateTimeInput,"keypress",function(f){return d._raiseEvent(6,f)})},createID:function(){var b=Math.random()+"";b=b.replace(".","");b="99"+b;b=b/1;return"dateTimeInput"+b},setMaxDate:function(b,c){if(b==null){return}if(b!=null&&typeof(b)=="string"){b=new Date(b);if(b=="Invalid Date"){return}}this.maxDate=a.jqx._jqxDateTimeInput.getDateTime(b);if(this._calendar!=null){this._calendar.setMaxDate(b)}if(c!=false){if(this.getDate()!=null&&this.getDate()>b){this.setDate(b)}a.jqx.aria(this,"aria-valuemax",b);this._refreshValue();this._updateText()}},getMaxDate:function(){if(this.maxDate!=null&&this.maxDate!=undefined){return this.maxDate.dateTime}return null},setMinDate:function(b,c){if(b==null){return}if(b!=null&&typeof(b)=="string"){b=new Date(b);if(b=="Invalid Date"){return}}this.minDate=a.jqx._jqxDateTimeInput.getDateTime(b);if(this._calendar!=null){this._calendar.setMinDate(b)}if(c!=false){if(this.getDate()!=null&&this.getDate()=0){d=d.replace(/\,/g,"/");d=new Date(d);if(d=="Invalid Date"){d=f}}if(d.toString().indexOf("-")>=0){d=d.replace(/\-/g,"/");d=new Date(d);if(d=="Invalid Date"){d=f}}if(d!=""){var c=d;if(Globalize!=undefined){d=Globalize.parseDate(c,this.formatString,this.culture)}else{if(a.jqx.dataFormat){d=a.jqx.dataFormat.parsedate(c,this.formatString,this.localization.calendar)}else{d=new Date(d)}}if(d=="Invalid Date"){return}if(d===null&&c!==null){if(c!="Invalid Date"){d=c}}}}if(d==null||d=="null"||d=="undefined"){if(!this.allowNullDate){d=this.min}}if(d=="Invalid Date"){d=null}if(d==null||d=="null"||d=="undefined"||d===""){if(this.value!=null){this.value=null;this._calendar.setDate(null);this._refreshValue();if(this.cookies){if(this.value!=null){a.jqx.cookie.cookie("jqxDateTimeInput"+this.element.id,this.value.dateTime.toString(),this.cookieoptions)}}this._setSelectionStart(0);this._selectGroup(-1);this._raiseEvent("0",d,e);this._raiseEvent("9",d,e)}return}if(dthis.getMaxDate()){return}if(this.value==null){this.value=new a.jqx._jqxDateTimeInput.getDateTime(new Date());this.value._setHours(0);this.value._setMinutes(0);this.value._setSeconds(0);this.value._setMilliseconds(0)}if(d.getFullYear){this.value._setYear(d.getFullYear());this.value._setDay(1);this.value._setMonth(d.getMonth()+1);this.value._setHours(d.getHours());this.value._setMinutes(d.getMinutes());this.value._setSeconds(d.getSeconds());this.value._setMilliseconds(d.getMilliseconds());this.value._setDay(d.getDate())}this._validateTimeRange();this._refreshValue();if(this.cookies){if(this.value!=null){a.jqx.cookie.cookie("jqxDateTimeInput"+this.element.id,this.value.dateTime.toString(),this.cookieoptions)}}var b=this.getDate();var g=(b-e);if(g!=0){this._raiseEvent("0",d,e);this._raiseEvent("9",d,e);return true}},getDate:function(){if(this.value==undefined){return null}return new Date(this.value.dateTime)},getText:function(){return this.dateTimeInput.val()},setRange:function(d,c){if(d=="Invalid Date"){d=null}if(c=="Invalid Date"){c=null}if(d!=null&&typeof(d)=="string"){d=new Date(d);if(d=="Invalid Date"){return}}if(c!=null&&typeof(c)=="string"){c=new Date(c);if(c=="Invalid Date"){return}}if(d&&isNaN(d)&&d.toString()=="NaN"&&typeof(d)!="string"){return}if(c&&isNaN(c)&&c.toString()=="NaN"&&typeof(c)!="string"){return}this._calendar.setRange(d,c);if(c&&d&&(c.valueOf()!=d.valueOf())){this._range={from:d,to:c}}else{this._range=this._calendar.getRange()}var b=d;if(b!=null&&b.getFullYear){if(this.value==null){this.value=new a.jqx._jqxDateTimeInput.getDateTime(new Date());this.value._setHours(0);this.value._setMinutes(0);this.value._setSeconds(0);this.value._setMilliseconds(0)}this.value._setYear(b.getFullYear());this.value._setMonth(b.getMonth()+1);this.value._setHours(b.getHours());this.value._setMinutes(b.getMinutes());this.value._setSeconds(b.getSeconds());this.value._setMilliseconds(b.getMilliseconds());this.value._setDay(b.getDate())}this._refreshValue();if(this.value){this._raiseEvent("0",this.value.dateTime)}else{this._raiseEvent("0",null)}},getRange:function(){var b=this._calendar.getRange();if(this._range){var d=this._range.from;var c=this._range.to;if(c&&d&&(c.valueOf()!=d.valueOf())){if(b.from){b.from.setHours(d.getHours(),d.getMinutes(),d.getSeconds(),d.getMilliseconds())}if(b.to){b.to.setHours(c.getHours(),c.getMinutes(),c.getSeconds(),c.getMilliseconds())}}}return b},_validateValue:function(e){var b=false;for(var d=0;d1){c=1}}break;case"Character":break;case"Day":if(c<1){c=1}else{if(c>31){c=31}}break;case"FORMAT_hh":if(c<1){c=1}else{if(c>12){c=12}}break;case"FORMAT_HH":if(c<0){c=0}else{if(c>23){c=23}}break;case"Millisecond":if(c<0){c=0}else{if(c>999){c=999}}break;case"Minute":if(c<0){c=0}else{if(c>59){c=59}}break;case"Month":if(c<1){c=1}else{if(c>12){c=12}}break;case"ReadOnly":break;case"Second":if(c<0){c=0}else{if(c>59){c=59}}break;case"Year":if(cthis.maxDate.year){c=this.maxDate.year}}break}if(this.editors[d].value!=c){this.editors[d].value=c;b=true}}this.updateValue(e);if(this.value!=null&&e===true){if(this.value.dateTime>this.maxDate.dateTime){this._internalSetValue(this.maxDate);this._updateEditorsValue()}else{if(this.value.dateTime=0){this._selectGroup(e)}},spinDown:function(){var d=this.value;if(d==null){return}if(this.activeEditor!=null){var b=this.editors.indexOf(this.activeEditor);if(b==-1){return}if(this.items[b].type=="Day"){if(this.value!=null){this.activeEditor.maxValue=this.value._daysInMonth(this.value.year,this.value.month)}}var c=this.activeEditor.positions;this.activeEditor.decreaseValue(this.enableAbsoluteSelection);this.activeEditor.positions=c}if(this.isEditing){this.isEditing=false}this.updateValue();this.isEditing=true;this._updateText();var e=this.editors.indexOf(this.activeEditor);if(e>=0){this._selectGroup(e)}},_passKeyToCalendar:function(c){if(c.keyCode==13||c.keyCode==9){this.hideCalendar("selected","keyboard");return true}else{if(c.keyCode==27){var e=this.calendarContainer;var d=this._calendar;var f=this.closeCalendarAfterSelection;this.closeCalendarAfterSelection=false;d.setDate(this.value.dateTime);this.closeCalendarAfterSelection=f;this.hideCalendar()}}var f=this.closeCalendarAfterSelection;this.closeCalendarAfterSelection=false;var b=this._calendar._handleKey(c);this.closeCalendarAfterSelection=f;return b},handleCalendarKey:function(f,e){var c=a(f.target);var d=a.data(document.body,"openedJQXCalendar"+this.id);if(d!=null){if(d.length>0){var b=e._passKeyToCalendar(f);return b}}return true},_findPos:function(c){if(c==null){return}while(c&&(c.type=="hidden"||c.nodeType!=1||a.expr.filters.hidden(c))){c=c.nextSibling}var b=a(c).coord(true);return[b.left,b.top]},testOffset:function(h,f,c){var g=h.outerWidth();var k=h.outerHeight();var j=a(window).width()+a(window).scrollLeft();var e=a(window).height()+a(window).scrollTop();if(f.left+g>j){if(g>this.host.width()){var d=this.host.coord().left;var b=g-this.host.width();f.left=d-b+2}}if(f.left<0){f.left=parseInt(this.host.coord().left)+"px"}f.top-=Math.min(f.top,(f.top+k>e&&e>k)?Math.abs(k+c+23):0);return f},open:function(b){if(b=="time"){this.timePopup=true}else{this.timePopup=false}this.showCalendar()},close:function(b){this.hideCalendar()},_getBodyOffset:function(){var c=0;var b=0;if(a("body").css("border-top-width")!="0px"){c=parseInt(a("body").css("border-top-width"));if(isNaN(c)){c=0}}if(a("body").css("border-left-width")!="0px"){b=parseInt(a("body").css("border-left-width"));if(isNaN(b)){b=0}}return{left:b,top:c}},initTimePopup:function(){this.timePopupElement=a("
              ").appendTo(this.timeContainer);this.timePopupElement.addClass(this.toThemeProperty("jqx-widget-content jqx-widget jqx-date-time-input-popup"));var t="";t+="
               
               
               
               
              ::: 
               
              ";var m=this._getFormatValue(this.formatString);if(this.selectionMode!="range"){this.timePopupElement[0].innerHTML=t}else{this.timePopupElement[0].innerHTML="
              "+t+"-"+t+"
              "}this.timePopupElement.find(".jqx-icon-down").addClass(this.toThemeProperty("jqx-icon jqx-icon-arrow-down"));this.timePopupElement.find(".jqx-icon-up").addClass(this.toThemeProperty("jqx-icon jqx-icon-arrow-up"));var g=this.timePopupElement.find("input");g.addClass(this.toThemeProperty("jqx-input"));g.addClass(this.toThemeProperty("jqx-rc-all"));this.addHandler(g,"mousedown",function(v){v.stopPropagation()});var e=function(v){if(v.target.className.indexOf("hour")>=0){n._decrementHour(a(v.target))}if(v.target.className.indexOf("minute")>=0){n._decrementMinuteSecond(a(v.target))}if(v.target.className.indexOf("second")>=0){n._decrementMinuteSecond(a(v.target))}if(v.target.className.indexOf("millisecond")>=0){n._decrementMillisecond(a(v.target))}if(v.target.className.indexOf("meridian")>=0){n._decrementMeridian(a(v.target))}};var l=function(v){if(v.target.className.indexOf("hour")>=0){n._incrementHour(a(v.target))}if(v.target.className.indexOf("minute")>=0){n._incrementMinuteSecond(a(v.target))}if(v.target.className.indexOf("second")>=0){n._incrementMinuteSecond(a(v.target))}if(v.target.className.indexOf("millisecond")>=0){n._incrementMillisecond(a(v.target))}if(v.target.className.indexOf("meridian")>=0){n._incrementMeridian(a(v.target))}};var s=function(w,v){var x=0;if(!w){w=window.event}if(w.originalEvent&&w.originalEvent.wheelDelta){w.wheelDelta=w.originalEvent.wheelDelta}if(w.originalEvent&&w.originalEvent.deltaY!=undefined){x=-w.originalEvent.deltaY}if(w.wheelDelta){x=w.wheelDelta/120}else{if(w.detail){x=-w.detail/3}}if(x){if(document.activeElement==w.target&&w.target.nodeName.toLowerCase()=="input"){if(x<0){e(w)}else{l(w)}}if(w.preventDefault){w.preventDefault()}w.returnValue=false}if(w.preventDefault){w.preventDefault()}w.returnValue=false};this.addHandler(g,"wheel",function(v){s(v)});this.addHandler(g,"keydown",function(w){var v=a(w.target);if(w.ctrlKey){if(w.keyCode==38){if(n.isOpened()){n.hideCalendar("keyboard","keyboard");n.dateTimeInput.focus();return false}}else{if(w.keyCode==40){if(!n.isOpened()){n.showCalendar("keyboard","keyboard");n.dateTimeInput.focus();return false}}}}if(w.keyCode==40){e(w);w.preventDefault()}else{if(w.keyCode==38){l(w);w.preventDefault()}else{if(w.keyCode==13){w.preventDefault();n.hideCalendar("keyboard","keyboard");n.dateTimeInput.focus()}else{if(w.keyCode==27){w.preventDefault();n.hideCalendar("cancel");n.dateTimeInput.focus()}}}}});this.hourInput=a(g[0]);this.minuteInput=a(g[1]);this.secondInput=a(g[2]);this.mssecondInput=a(g[3]);this.meridianInput=a(g[4]);this.hourInput2=a(g[5]);this.minuteInput2=a(g[6]);this.secondInput2=a(g[7]);this.mssecondInput2=a(g[8]);this.meridianInput2=a(g[9]);var n=this;var p=this.timePopupElement.find(".increment-hour-column");this.hourIncrement=a(p[0]);this.hourIncrement2=a(p[1]);this.addHandler(g,"change",function(w){var v=a(w.target);if(v.val().length<=1){v.val("0"+a(w.target).val())}if(w.target.className.indexOf("hour")>=0){var x=parseInt(a(w.target).val());if(m.indexOf("HH")>=0){while(x>24){x=x-24}}else{while(x>12){x=x-12}}if(x<10){x="0"+x}if(v.val()!=x){v.val(x)}}if(w.target.className.indexOf("minute")>=0||w.target.className.indexOf("second")>=0){var x=parseInt(a(w.target).val());while(x>59){x--}if(x<10){x="0"+x}if(v.val()!=x){v.val(x)}}});this._incrementHour=function(v){var w=parseInt(v.val());w++;if(m.indexOf("HH")>=0){if(w>24){w=1}}else{if(w>12){w=1}}if(w<10){w="0"+w}v.val(w)};this._incrementMinuteSecond=function(v){var w=parseInt(v.val());w++;if(w>59){w=0}if(w<10){w="0"+w}v.val(w)};this._incrementMillisecond=function(v){var w=parseInt(v.val());w++;if(w>999){w=0}if(w<10){w="0"+w}v.val(w)};this._incrementMeridian=function(v){var w=v.val();if(w.toLowerCase().indexOf("a")>=0){w="PM"}else{w="AM"}v.val(w)};this._decrementHour=function(v){var w=parseInt(v.val());w--;if(m.indexOf("HH")>=0){if(w<0){w=23}}else{if(w<1){w=12}}if(w<10){w="0"+w}v.val(w)};this._decrementMinuteSecond=function(v){var w=parseInt(v.val());w--;if(w<0){w=59}if(w<10){w="0"+w}v.val(w)};this._decrementMillisecond=function(v){var w=parseInt(v.val());w--;if(w<0){w=999}if(w<10){w="0"+w}v.val(w)};this._decrementMeridian=function(v){var w=v.val();if(w.toLowerCase().indexOf("a")>=0){w="PM"}else{w="AM"}v.val(w)};this.addHandler(this.hourIncrement,"mousedown",function(v){v.stopPropagation();n._incrementHour(n.hourInput)});this.addHandler(this.hourIncrement2,"mousedown",function(v){v.stopPropagation();n._incrementHour(n.hourInput2)});var q=this.timePopupElement.find(".increment-minute-column");this.minuteIncrement=a(q[0]);this.minuteIncrement2=a(q[1]);this.addHandler(this.minuteIncrement,"mousedown",function(v){v.stopPropagation();n._incrementMinuteSecond(n.minuteInput)});this.addHandler(this.minuteIncrement2,"mousedown",function(v){v.stopPropagation();n._incrementMinuteSecond(n.minuteInput2)});var c=this.timePopupElement.find(".increment-second-column");this.secondIncrement=a(c[0]);this.secondIncrement2=a(c[1]);this.addHandler(this.secondIncrement,"mousedown",function(v){v.stopPropagation();n._incrementMinuteSecond(n.secondInput)});this.addHandler(this.secondIncrement2,"mousedown",function(v){v.stopPropagation();n._incrementMinuteSecond(n.secondInput2)});var d=this.timePopupElement.find(".increment-millisecond-column");this.millisecondsIncrement=a(d[0]);this.millisecondsIncrement2=a(d[1]);this.addHandler(this.millisecondsIncrement,"mousedown",function(v){v.stopPropagation();n._incrementMillisecond(n.mssecondInput)});this.addHandler(this.millisecondsIncrement2,"mousedown",function(v){v.stopPropagation();n._incrementMillisecond(n.mssecondInput2)});var j=this.timePopupElement.find(".increment-meridian-column");this.meridianIncrement=a(j[0]);this.meridianIncrement2=a(j[1]);this.addHandler(this.meridianIncrement,"mousedown",function(v){v.stopPropagation();n._incrementMeridian(n.meridianInput)});this.addHandler(this.meridianIncrement2,"mousedown",function(v){v.stopPropagation();n._incrementMeridian(n.meridianInput2)});var o=this.timePopupElement.find(".decrement-hour-column");this.hourDecrement=a(o[0]);this.hourDecrement2=a(o[1]);this.addHandler(this.hourDecrement,"mousedown",function(v){v.stopPropagation();n._decrementHour(n.hourInput)});this.addHandler(this.hourDecrement2,"mousedown",function(v){v.stopPropagation();n._decrementHour(n.hourInput2)});var k=this.timePopupElement.find(".decrement-minute-column");this.minuteDecrement=a(k[0]);this.minuteDecrement2=a(k[1]);this.addHandler(this.minuteDecrement,"mousedown",function(v){v.stopPropagation();n._decrementMinuteSecond(n.minuteInput)});this.addHandler(this.minuteDecrement2,"mousedown",function(v){v.stopPropagation();n._decrementMinuteSecond(n.minuteInput2)});var u=this.timePopupElement.find(".decrement-second-column");this.secondDecrement=a(u[0]);this.secondDecrement2=a(u[1]);this.addHandler(this.secondDecrement,"mousedown",function(v){v.stopPropagation();n._decrementMinuteSecond(n.secondInput)});this.addHandler(this.secondDecrement2,"mousedown",function(v){v.stopPropagation();n._decrementMinuteSecond(n.secondInput2)});var b=this.timePopupElement.find(".decrement-millisecond-column");this.millisecondsDecrement=a(b[0]);this.millisecondsDecrement2=a(b[1]);this.addHandler(this.millisecondsDecrement,"mousedown",function(v){v.stopPropagation();n._decrementMillisecond(n.mssecondInput)});this.addHandler(this.millisecondsDecrement2,"mousedown",function(v){v.stopPropagation();n._decrementMillisecond(n.mssecondInput2)});var f=this.timePopupElement.find(".decrement-meridian-column");this.meridianDecrement=a(f[0]);this.meridianDecrement2=a(f[1]);this.addHandler(this.meridianDecrement,"mousedown",function(v){v.stopPropagation();n._decrementMeridian(n.meridianInput)});this.addHandler(this.meridianDecrement2,"mousedown",function(v){v.stopPropagation();n._decrementMeridian(n.meridianInput2)});var r=this.timePopupElement.find("table");this.addHandler(this.timePopupElement,"mousedown",function(v){v.stopPropagation()});var h=function(v){var w=v.find("tr");if(m.indexOf("ss")==-1){n.secondInput.hide();n.secondInput2.hide();a(a(w[0]).children()[3]).hide();a(a(w[0]).children()[4]).hide();a(a(w[1]).children()[3]).hide();a(a(w[1]).children()[4]).hide();a(a(w[2]).children()[3]).hide();a(a(w[2]).children()[4]).hide()}if(m.indexOf("tt")==-1&&m.indexOf("hh")==-1){n.meridianInput.hide();n.meridianInput2.hide();a(a(w[0]).children()[7]).hide();a(a(w[0]).children()[8]).hide();a(a(w[1]).children()[7]).hide();a(a(w[1]).children()[8]).hide();a(a(w[2]).children()[7]).hide();a(a(w[2]).children()[8]).hide()}if(m.indexOf("zz")==-1){n.mssecondInput.hide();n.mssecondInput2.hide();a(a(w[0]).children()[5]).hide();a(a(w[0]).children()[6]).hide();a(a(w[1]).children()[5]).hide();a(a(w[1]).children()[6]).hide();a(a(w[2]).children()[5]).hide();a(a(w[2]).children()[6]).hide()}};if(r.length==1){h(r)}else{h(a(a(r)[1]));h(a(a(r)[2]))}},updateTimePopup:function(){var b=this._getFormatValue(this.formatString);if(this.selectionMode!="range"){var f=this.getDate();if(this.hourInput){if(f){var c=f.getHours();var h=f.getMinutes();var g=f.getHours();var e=f.getSeconds();var d=f.getMilliseconds()}else{var c=0;var h=0;var g=0;var e=0;var d=0}if(c>=12){g="PM";if(b.indexOf("HH")==-1){c-=12;if(c==0){c=12}}}else{g="AM"}if(this.meridianInput.css("display")!="none"){if(c==0){c=12}}if(c<10){c="0"+c}if(h<10){h="0"+h}if(e<10){e="0"+e}if(d<10){d="0"+d}this.hourInput.val(c);this.minuteInput.val(h);this.secondInput.val(e);this.mssecondInput.val(d);this.meridianInput.val(g)}}else{var f=this.getRange().from;if(this.hourInput){if(f){var c=f.getHours();var h=f.getMinutes();var g=f.getHours();var e=f.getSeconds();var d=f.getMilliseconds()}else{var c=0;var h=0;var g=0;var e=0;var d=0}if(c>=12){g="PM";if(b.indexOf("HH")==-1){c-=12;if(c==0){c=12}}}else{g="AM"}if(this.meridianInput.css("display")!="none"){if(c==0){c=12}}if(c<10){c="0"+c}if(h<10){h="0"+h}if(e<10){e="0"+e}if(d<10){d="0"+d}this.hourInput.val(c);this.minuteInput.val(h);this.secondInput.val(e);this.mssecondInput.val(d);this.meridianInput.val(g)}var f=this.getRange().to;if(this.hourInput2){if(f){var c=f.getHours();var h=f.getMinutes();var g=f.getHours();var e=f.getSeconds();var d=f.getMilliseconds()}else{var c=0;var h=0;var g=0;var e=0;var d=0}if(c>=12){g="PM";if(b.indexOf("HH")==-1){c-=12;if(c==0){c=12}}}else{g="AM"}if(this.meridianInput.css("display")!="none"){if(c==0){c=12}}if(c<10){c="0"+c}if(h<10){h="0"+h}if(e<10){e="0"+e}if(d<10){d="0"+d}this.hourInput2.val(c);this.minuteInput2.val(h);this.secondInput2.val(e);this.mssecondInput2.val(d);this.meridianInput2.val(g)}}},showCalendar:function(){var m=this.calendarContainer;var q=this._calendar;a.jqx.aria(this,"aria-expanded",true);if(this.showTimeButton){if(this.timePopup){if(!this.timePopupElement){this.initTimePopup()}this.calendarContainer.css("visibility","hidden");this.timeContainer.css("visibility","visible");this.updateTimePopup();var d=this.timeContainer.find("input");var s=0;for(var v=0;vthis.host.width()){var f=23;this.container.css("left",f+parseInt(Math.round(r))-u+"px")}else{this.container.css("left",25+parseInt(Math.round(r))+u+"px")}}if(this.enableBrowserBoundsDetection){var j=this.testOffset(m,{left:parseInt(this.container.css("left")),top:parseInt(n)},parseInt(this.host.outerHeight()));if(parseInt(this.container.css("top"))!=j.top){b=true;m.css("top",23);m.addClass(this.toThemeProperty("jqx-popup-up"))}else{m.css("top",0)}this.container.css("top",j.top);if(parseInt(this.container.css("left"))!=j.left){this.container.css("left",j.left)}}this._raiseEvent(7,m);if(this.animationType!="none"){this.container.css("display","block");var o=parseInt(m.outerHeight());m.stop();this.isanimating=true;this.opening=true;if(this.animationType=="fade"){m.css("margin-top",0);m.css("opacity",0);m.animate({opacity:1},this.openDelay,function(){p.isanimating=false;p.opening=false;a.data(document.body,"openedJQXCalendar"+p.id,m);p.calendarContainer.focus()});if(this.timePopup){this.timeContainer.css("margin-top",0);this.timeContainer.css("opacity",0);this.timeContainer.animate({opacity:1},this.openDelay,function(){p.isanimating=false;p.opening=false;a.data(document.body,"openedJQXCalendar"+p.id,m);p.timeContainer.focus()})}}else{m.css("opacity",1);if(this.timePopup){this.timeContainer.css("opacity",1)}if(b){m.css("margin-top",o)}else{m.css("margin-top",-o)}if(this.timePopup){if(b){this.timeContainer.css("margin-top",o)}else{this.timeContainer.css("margin-top",-o)}this.timeContainer.animate({"margin-top":0},this.openDelay,function(){p.isanimating=false;p.opening=false;a.data(document.body,"openedJQXCalendar"+p.id,m);p.timeContainer.focus()})}m.animate({"margin-top":0},this.openDelay,function(){p.isanimating=false;p.opening=false;a.data(document.body,"openedJQXCalendar"+p.id,m);p.calendarContainer.focus()})}}else{m.stop();p.isanimating=false;p.opening=false;m.css("opacity",1);m.css("margin-top",0);this.container.css("display","block");a.data(document.body,"openedJQXCalendar"+p.id,m);this.calendarContainer.focus();if(this.timePopup){this.timeContainer.stop();this.timeContainer.css("opacity",1);this.timeContainer.css("margin-top",0);this.timeContainer.focus()}}if(this.value==null){if(this._calendar&&this._calendar._getSelectedCell()){this._calendar._getSelectedCell().isSelected=false}}if(this.timePopup){this.timeButtonIcon.addClass(this.toThemeProperty("jqx-icon-time-pressed"));this.timeButton.addClass(this.toThemeProperty("jqx-fill-state-hover"));this.timeButton.addClass(this.toThemeProperty("jqx-fill-state-pressed"))}else{this.calendarButtonIcon.addClass(this.toThemeProperty("jqx-icon-calendar-pressed"));this.calendarButton.addClass(this.toThemeProperty("jqx-fill-state-hover"));this.calendarButton.addClass(this.toThemeProperty("jqx-fill-state-pressed"))}this.host.addClass(this.toThemeProperty("jqx-fill-state-focus"))},hideCalendar:function(k,p){if(p){this.changeType=p}var h=this.calendarContainer;var b=this.container;var q=this;a.jqx.aria(this,"aria-expanded",false);if(this.showTimeButton){if(this.timeContainer.css("visibility")!="hidden"&&k!="cancel"){if(this.selectionMode!="range"){var e=this.getDate();var g=parseInt(this.hourInput.val());var f=parseInt(this.minuteInput.val());var c=parseInt(this.secondInput.val());var r=parseInt(this.mssecondInput.val());var d=this.meridianInput.val();if(isNaN(g)){g=0}if(isNaN(f)){f=0}if(isNaN(c)){c=0}if(isNaN(r)){r=0}if(this.meridianInput.css("display")!="none"){if(d.toLowerCase().indexOf("p")>=0){if(g<12){g+=12}}if(d.toLowerCase().indexOf("a")>=0){if(g>=12){g-=12}}}if(!e){e=new Date()}e.setHours(g,f,c,r);this.setDate(e)}else{if(this.hourInput&&k!="selected"){var j=this.getRange();var g=parseInt(this.hourInput.val());var f=parseInt(this.minuteInput.val());var c=parseInt(this.secondInput.val());var r=parseInt(this.mssecondInput.val());var d=this.meridianInput.val();if(isNaN(g)){g=0}if(isNaN(f)){f=0}if(isNaN(c)){c=0}if(isNaN(r)){r=0}if(this.meridianInput.css("display")!="none"){if(d.toLowerCase().indexOf("p")>=0){if(g<12){g+=12}}if(d.toLowerCase().indexOf("a")>=0){if(g>=12){g-=12}}}var m=j.from;if(!m){m=new Date()}m.setHours(g,f,c,r);var g=parseInt(this.hourInput2.val());var f=parseInt(this.minuteInput2.val());var c=parseInt(this.secondInput2.val());var r=parseInt(this.mssecondInput2.val());var d=this.meridianInput2.val();if(f==""){f=0}if(c==""){c=0}if(r==""){r=0}if(this.meridianInput2.css("display")!="none"){if(d.toLowerCase().indexOf("p")>=0){if(g<12){g+=12}}if(d.toLowerCase().indexOf("a")>=0){if(g>=12){g-=12}}}var l=j.to;if(!l){l=new Date()}l.setHours(g,f,c,r);if(l.valueOf()0){var h=k[0].id.toString();var f=h.toString().substring(13);var j=a(document).find("#"+f);var o=b.data.me.hideCalendar();if(o!==false){a.data(document.body,"openedJQXCalendar"+b.data.me.id,null)}}}},_loadItems:function(){if(this.value!=null){this.items=new Array();var d=this._getFormatValue(this.formatString);this.items=this._parseFormatValue(d);this.editors=new Array();for(var b=0;b=1){e=d.format(d.value,0,d.items.length)}var b=d.dateTimeInput.val();if(b!=e){d._raiseEvent(1,d.value)}}if(d.selectionMode=="range"){var c=d.getRange();fromText=d.format(d.value,0,d.items.length);if(c.to){var g=a.jqx._jqxDateTimeInput.getDateTime(c.from);fromText=d.format(g,0,d.items.length);var f=a.jqx._jqxDateTimeInput.getDateTime(c.to);toText=d.format(f,0,d.items.length);var e=fromText+" - "+toText;if(e==" - "){e=""}}else{e=""}}d.dateTimeInput.val(e)},format:function(g,h,f){var b="";for(var e=h;e2;if(this.items[e].type=="FORMAT_AMPM"){d=true;if(this.editors[e].value==0){c=this.editors[e].amString}else{c=this.editors[e].pmString}}if(!d){c=this.items[e].dateParserInEditMode(new Number(this.editors[e].value),"d"+this.editors[e].maxEditPositions,this);while(c.length0){var d=this._getFormatValueGroupLength(f);var g=null;switch(f.substring(0,1)){case":":case"/":d=1;g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,1),"ReadOnly",this.culture);break;case'"':case"'":var b=f.indexOf(f[0],1);g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(1,1+Math.max(1,b-1)),"ReadOnly",this.culture);d=Math.max(1,b+1);break;case"\\":if(f.length>=2){g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(1,1),"ReadOnly",this.culture);d=2}break;case"d":case"D":if(d>2){g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"Day",this.culture)}else{g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"Day",this.culture)}break;case"f":case"F":if(d>7){d=7}if(d>3){g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"ReadOnly",this.culture)}else{g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"Millisecond",this.culture)}break;case"g":g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"ReadOnly",this.culture);break;case"h":g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"FORMAT_hh",this.culture);break;case"H":g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"FORMAT_HH",this.culture);break;case"m":g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"Minute",this.culture);break;case"M":if(d>4){d=4}g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"Month",this.culture);break;case"s":case"S":g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"Second",this.culture);break;case"t":case"T":g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"FORMAT_AMPM",this.culture);break;case"y":case"Y":if(d>1){g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"Year",this.culture)}else{d=1;g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,1),dateTimeFormatInfo,"ReadOnly",this.culture)}break;case"z":g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"ReadOnly",this.culture);break;default:d=1;g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,1),"ReadOnly",this.culture);break}c[e]=a.extend(true,{},g);f=f.substring(d);e++}return c},_getFormatValue:function(b){if(b==null||b.length==0){b="d"}if(b.length==1){switch(b.substring(0,1)){case"d":return this.localization.calendar.patterns.d;case"D":return this.localization.calendar.patterns.D;case"t":return this.localization.calendar.patterns.t;case"T":return this.localization.calendar.patterns.T;case"f":return this.localization.calendar.patterns.f;case"F":return this.localization.calendar.patterns.F;case"M":return this.localization.calendar.patterns.M;case"Y":return this.localization.calendar.patterns.Y;case"S":return this.localization.calendar.patterns.S}}if(b.length==2&&b.substring(0,1)=="%"){b=b.substring(1)}return b},_updateEditorsValue:function(){var j=this.value;if(j==null){return}var g=j.year;var h=j.day;var d=j.hour;var l=j.millisecond;var b=j.second;var c=j.minute;var f=j.month;if(this.items==null){return}for(var e=0;e=0&&d<12){this.editors[e].value=0}else{this.editors[e].value=1}break;case"Day":this.editors[e].value=h;break;case"FORMAT_hh":var k=d%12;if(k==0){k=12}this.editors[e].value=k;break;case"FORMAT_HH":this.editors[e].value=d;break;case"Millisecond":this.editors[e].value=l;break;case"Minute":this.editors[e].value=c;break;case"Month":this.editors[e].value=f;break;case"Second":this.editors[e].value=b;break;case"Year":this.editors[e].value=g;break}}},updateValue:function(z){if(this.isEditing){return}if(this.items&&this.items.length==0){return}var o=0;var s=1;var C=1;var l=0;var d=0;var J=0;var u=0;var I=1;var h=0;var m=false;var r=false;var D=false;var c=false;var b=false;var q=false;var x=false;var t=new Array();var e=null;var y=0;for(var B=0;B0&&I>0&&C>0&&u>=0&&l>=0&&J>=0&&d>=0){var K=this.value;if(K!=null){if(!m){s=K.year}if(!r){I=K.month}if(!D){C=K.day}}try{if(I>12){I=12}if(I<1){I=1}if(z&&K._daysInMonth(s,I)<=C){C=K._daysInMonth(s,I);if(t!=null&&t.length>0){for(B=0;B=12){l-=12}}else{if(l+12<24){l+=12}}}var g=this.value.dateTime.getDate();this.value._setYear(parseInt(s));this.value._setDay(C);this.value._setMonth(I);if(c){this.value._setHours(l)}if(b){this.value._setMinutes(u)}if(q){this.value._setSeconds(J)}if(x){this.value._setMilliseconds(d)}this._validateTimeRange()}catch(j){this.value=K}if(G!=null){var A=this.value.dateTime.getFullYear()==G.getFullYear()&&this.value.dateTime.getDate()==G.getDate()&&this.value.dateTime.getMonth()==G.getMonth()&&this.value.dateTime.getHours()==G.getHours()&&this.value.dateTime.getMinutes()==G.getMinutes()&&this.value.dateTime.getSeconds()==G.getSeconds();if(!A){if(this.changing){var n=this.changing(G,this.value.dateTime);if(n){this.value=a.jqx._jqxDateTimeInput.getDateTime(n)}}this._raiseEvent("0",this.value.dateTime);if(this.cookies){if(this.value!=null){a.jqx.cookie.cookie("jqxDateTimeInput"+this.element.id,this.value.dateTime.toString(),this.cookieoptions)}}if(this.change){this.change(this.value.dateTime)}}}}var f=this.editors.indexOf(this.activeEditor);var p=this.items[f];if(this.value){if(this.calendarContainer.jqxCalendar("_isDisabled",this.value.dateTime)){this.dateTimeInput.addClass(this.toThemeProperty("jqx-input-invalid"))}else{this.dateTimeInput.removeClass(this.toThemeProperty("jqx-input-invalid"))}}},_internalSetValue:function(b){this.value._setYear(parseInt(b.year));this.value._setDay(b.day);this.value._setMonth(b.month);this.value._setHours(b.hour);this.value._setMinutes(b.minute);this.value._setSeconds(b.second);this.value._setMilliseconds(b.milisecond)},_raiseEvent:function(c,o,f){var n=this.events[c];var g={};g.owner=this;if(o==null){o={}}if(f==null){f=o}var m=o.charCode?o.charCode:o.keyCode?o.keyCode:0;var p=true;var l=this.readonly;var b=new a.Event(n);b.owner=this;b.args=g;b.args.date=this.getDate();if(c==9){b.args.type=this.changeType;this.changeType=null}this.element.value=this.dateTimeInput.val();if(c==9&&this.selectionMode!="range"){var d=b.args.date;if(this._oldDT){if(d!=null){if(!(d.getFullYear()!=this._oldDT.getFullYear()||d.getMonth()!=this._oldDT.getMonth()||d.getDate()!=this._oldDT.getDate()||d.getHours()!=this._oldDT.getHours()||d.getMinutes()!=this._oldDT.getMinutes()||d.getSeconds()!=this._oldDT.getSeconds())){return true}}a.jqx.aria(this,"aria-valuenow",this.getDate());a.jqx.aria(this,"aria-valuetext",this.getText());if(this.getDate()!=null){a.jqx.aria(this,"aria-label","Current focused date is "+this.getDate().toLocaleString())}else{a.jqx.aria(this,"aria-label","Current focused date is Null")}}b.args.oldValue=f;b.args.newValue=b.args.date;if(this._oldDT){b.args.oldValue=this._oldDT}}if(this.selectionMode=="range"){b.args.date=this.getRange();if(this._oldDT){var d=b.args.date.from;if(c==9){var k=false;var j=false;var e=this._oldDT.from;if(d!=null&&e){if(!(d.getFullYear()!=e.getFullYear()||d.getMonth()!=e.getMonth()||d.getDate()!=e.getDate()||d.getHours()!=e.getHours()||d.getMinutes()!=e.getMinutes()||d.getSeconds()!=e.getSeconds())){k=true}}var d=b.args.date.to;if(d!=null){e=this._oldDT.to;if(e){if(!(d.getFullYear()!=e.getFullYear()||d.getMonth()!=e.getMonth()||d.getDate()!=e.getDate()||d.getHours()!=e.getHours()||d.getMinutes()!=e.getMinutes()||d.getSeconds()!=e.getSeconds())){j=true}}}if(k&&j){return true}var k=b.args.date.from;if(k==null){k=""}else{k=k.toString()}var j=b.args.date.to;if(j==null){j=""}else{j=j.toString()}a.jqx.aria(this,"aria-valuenow",k+"-"+j);a.jqx.aria(this,"aria-valuetext",this.getText());if(k&&j){a.jqx.aria(this,"aria-label","Current focused range is "+k.toLocaleString()+"-"+j.toLocaleString())}}}b.args.oldValue=f;b.args.newValue=b.args.date;if(this._oldDT){b.args.oldValue=this._oldDT}}if(this.host.css("display")=="none"){return true}if(c!=2&&c!=3&&c!=4&&c!=5&&c!=6){p=this.host.trigger(b);if(b.stopPropagation){b.stopPropagation()}}var h=this;if(!l){if(c==2&&!this.disabled){setTimeout(function(){h.isEditing=true;if(this.selectionMode=="range"){h._selectGroup(-1)}else{h._selectGroup(-1)}},25)}}if(c==4){if(l||this.disabled){if(m==8||m==46){this.isEditing=false;if(this.allowKeyboardDelete){if(this.allowNullDate){this.setDate(null)}else{if(this.selectionMode!="range"){this.setDate(this.getMinDate())}else{this.setRange(this.getMinDate(),this.getMinDate())}}}}if(m==9){return true}if(!o.altKey){return false}}p=this._handleKeyDown(o,m)}else{if(c==5){if(m==9){return true}if(l||this.disabled){return false}}else{if(c==6){if(m==9){return true}if(l||this.disabled){return false}p=this._handleKeyPress(o,m)}}}return p},_doLeftKey:function(){if(this.activeEditor!=null){if(!this.isEditing){this.isEditing=true}var b=this.activeEditor;var d=false;var e=this.editors.indexOf(this.activeEditor);var c=e;if(this.enableAbsoluteSelection){if(e>=0&&this.activeEditor.positions>0){this.activeEditor.positions--;this._selectGroup(e);return}}while(e>0){this.activeEditor=this.editors[--e];this._selectGroup(e);if(this.items[e].type!="ReadOnly"){d=true;break}}if(!d){if(c>=0){this.activeEditor=this.editors[c]}}if(this.activeEditor!=null&&b!=this.activeEditor){if(this.items[e].type!="ReadOnly"){if(this.enableAbsoluteSelection){this.activeEditor.positions=this.activeEditor.maxEditPositions-1}else{this.activeEditor.positions=0}}}if(this.activeEditor!=b){this._validateValue();this._updateText();this._selectGroup(this.editors.indexOf(this.activeEditor));return true}else{return false}}},_doRightKey:function(){if(this.activeEditor!=null){if(!this.isEditing){this.isEditing=true}var b=this.activeEditor;var d=false;var e=this.editors.indexOf(this.activeEditor);var c=e;if(this.enableAbsoluteSelection){if(e>=0&&this.activeEditor.positions2){break}d=true;break}}if(!d){if(c>=0){this.activeEditor=this.editors[c]}}if(this.activeEditor!=null&&this.activeEditor!=b){if(this.items[e].type!="ReadOnly"){this.activeEditor.positions=0}}if(this.activeEditor!=b){this._validateValue();this._updateText();this._selectGroup(this.editors.indexOf(this.activeEditor));return true}else{return false}}},_saveSelectedText:function(){var b=this._selection();var d="";var c=this.dateTimeInput.val();if(b.start>0||b.length>0){for(i=b.start;i1){c=1}}break;case"Character":break;case"Day":if(c<1){c=1}else{if(c>31){c=31}}break;case"FORMAT_hh":if(c<1){c=1}else{if(c>12){c=12}}break;case"FORMAT_HH":if(c<0){c=0}else{if(c>23){c=23}}break;case"Millisecond":if(c<0){c=0}else{if(c>99){c=99}}break;case"Minute":if(c<0){c=0}else{if(c>59){c=59}}break;case"Month":if(c<1){c=1}else{if(c>12){c=12}}break;case"ReadOnly":break;case"Second":if(c<0){c=0}else{if(c>59){c=59}}break;case"Year":if(cthis.maxDate.year){c=this.maxDate.year}}break}if(d.value!=c){b=true}if(!b){this.isEditing=false;this._validateValue();this._updateText();this.isEditing=true;this._doRightKey();return true}return false}}},_handleKeyPress:function(k,o){var n=this._selection();var b=this;var d=k.ctrlKey||k.metaKey;if((d&&o==97)||(d&&o==65)){return true}if(o==8){if(n.start>0){b._setSelectionStart(n.start)}return false}if(o==46){if(n.start=0){this.changeType="keyboard";var f=String.fromCharCode(o);var l=parseInt(f);if(f=="p"||f=="a"||f=="A"||f=="P"){if(this.activeEditor.item.type=="FORMAT_AMPM"){if(this.activeEditor.value==0&&(f=="p"||f=="P")){this.spinUp()}else{if(this.activeEditor.value==1&&(f=="a"||f=="A")){this.spinDown()}}}}if(!isNaN(l)){if(this.container.css("display")=="block"){this.hideCalendar()}this.updateValue();this._updateText();var h=false;var j=this.editors.indexOf(this.activeEditor);var c=null;this.isEditing=true;if(j.type!="ReadOnly"){c=this.activeEditor}if(c!=null&&c.positions==0){this.editorText=""}if(this.activeEditor==null){this.activeEditor=this.editors[0]}if(this.activeEditor==null){return false}this.activeEditor.insert(f);if(c!=null&&this.editorText.length>=c.maxEditPositions){this.editorText=""}this.editorText+=f;var p=this._selectWithAdvancePattern();if(this.activeEditor.positions==this.activeEditor.maxEditPositions){var g=this._getLastEditableEditorIndex();if(this.editors.indexOf(this.activeEditor)==g&&p&&this.enableAbsoluteSelection){this.activeEditor.positions=this.activeEditor.maxEditPositions-1}else{this.activeEditor.positions=0}}h=true;this.updateValue();this._updateText();this._selectGroup(this.editors.indexOf(this.activeEditor));return false}}var m=this._isSpecialKey(o);return m},_getLastEditableEditorIndex:function(){var b=0;var c=this;for(itemIndex=this.items.length-1;itemIndex>=0;itemIndex--){if(this.items[itemIndex].type!="ReadOnly"){return itemIndex}}return -1},_handleKeyDown:function(h,o){var g=this;this.timePopup=false;if(o==84){this.timePopup=true}if(h.keyCode==115){if(g.isOpened()){g.hideCalendar("keyboard","keyboard");return false}else{if(!g.isOpened()){g.showCalendar("keyboard","keyboard");return false}}}if(h.altKey){if(h.keyCode==38){if(g.isOpened()){g.hideCalendar("keyboard","keyboard");return false}}else{if(h.keyCode==40){if(!g.isOpened()){g.showCalendar("keyboard","keyboard");return false}}}}else{if(h.ctrlKey){this.timePopup=true;if(h.keyCode==38){if(g.isOpened()){g.hideCalendar("keyboard","keyboard");return false}}else{if(h.keyCode==40){if(!g.isOpened()){g.showCalendar("keyboard","keyboard");return false}}}}}if(g.isOpened()){if(h.keyCode==9){g.hideCalendar("selected","keyboard");return true}return}var m=g._selection();var b=h.ctrlKey||h.metaKey;if((b&&o==99)||(b&&o==67)){g._saveSelectedText(h);return true}if((b&&o==122)||(b&&o==90)){return false}if((b&&o==118)||(b&&o==86)||(h.shiftKey&&o==45)){var l=g.val();var j=this;var c=a('')}else{e.selection.insertContent('
               
              ')}var g=b(window).scrollTop();var h=b(e.editorDocument).find(".jqx-editor-paste-element");h.css("top",g+"px");if(e.editor[0].createTextRange){l.preventDefault();var j=e.editor[0].createTextRange();j.moveToElementText(h[0]);j.execCommand("Paste")}else{var i=e.editorDocument.createRange();i.selectNodeContents(h[0]);e.selectRange(i)}if(e.pasteMode=="text"&&!b.jqx.browser.mozilla){h.select()}e.marker=h;setTimeout(function(){e.selectRange(n);var r=function(A){var y=e.editorDocument.createElement("div");var z=e.editorDocument.createDocumentFragment();y.innerHTML=A;while(y.firstChild){z.appendChild(y.firstChild)}return z};if(e.pasteMode!="text"){var x=r(e.marker.html());if(x.firstChild&&x.firstChild.className==="jqx-editor-paste-element"){var p=[];for(var u=0,s=x.childNodes.length;u"))}var o=document.createElement("div");o.appendChild(x.cloneNode(true));var w=o.innerHTML}else{var w=e.marker.val();if(e.marker.html()!=""&&e.marker.val().indexOf("\n")==-1){var w=e.marker.html();w=w.replace(/ /gm,"");w=w.replace(/\n\n/gm,"\n");w=w.replace(/]*>/gi,"\n");w=w.replace(/]*>/gi,"\n");w=w.replace(/]*>/gi,"\n");e.marker.html(w);var w=e.marker.text()}}var q=k(w,e.pasteMode=="text");var v=e.getRange();e.selection.insertContent(q+" ");e.marker.remove();var t=b(e.editorDocument).find("#INSERTION_MARKER");e.selection.selectNode(t[0],true);if(e.getRange().setStartAfter){e.getRange().setStartAfter(t[0])}t.remove();e.selection.collapse(false);t.removeAttr("id");e._refreshTools();e.changed=true},100);e.updating=false;e.readOnly=false});e.addHandler(e.editor,"keyup.editor"+e.element.id,function(i){if(e._documentMode=="source"){return true}if(e.updating||e.disabled||!e.editable){if(i.preventDefault){i.preventDefault()}if(i.stopPropagation){i.stopPropagation()}return false}e.range=e.getRange();e.changed=true;var h=i||window.event;var g=h.keyCode;var j=[8,9,13,33,34,35,36,37,38,39,40,40,45,46];if(b.inArray(h.keyCode,j)!=-1||(h.keyCode==65&&h.ctrlKey&&!h.altKey&&!h.shiftKey)){e._refreshTools(null,true,h.keyCode)}});e.addHandler(e.editor,"click.editor"+e.element.id,function(g){if(e._documentMode=="source"){return true}if(e.editImage){b(e.editImage).removeClass("jqx-editor-focus");e.editImage=null}if(g.target.tagName.toLowerCase()=="img"){var h=g.target;e.editImage=h;b(e.editImage).addClass("jqx-editor-focus")}});e.addHandler(e.editor,"dblclick.editor"+e.element.id,function(g){if(e._documentMode=="source"){return true}if(g.target.tagName.toLowerCase()=="img"){var h=g.target;if(b("#imageWindow"+this.element.id).length>0){e.editImage=h;e._updateImageWindow()}}})},_updateLinkWindow:function(){var g=this;var i=b("#linkWindow"+this.element.id);i.jqxWindow({position:{center:g.widget}});i.jqxWindow("open");var e=i.find("input");var h=i.find(".jqx-editor-link-checkbox");var f=i.find("button:first");var d=b(i.find("button")[1]);if(g.editLink&&g.editLink.href){e[0].value=g.editLink.href||"";e[1].value=b(g.editLink).text()||g.editLink.href;h.val(b(g.editLink).attr("target")=="_blank");d.show()}else{e[0].value="";e[1].value="";if(!g.selection.isCollapsed()){var j=g.selection.getText();if(j.match(/^(?!:\/\/)([a-zA-Z0-9]+\.)?[a-zA-Z0-9][a-zA-Z0-9-]+\.[a-zA-Z]{2,6}?$/i)){e[0].value=j}else{e[1].value=j}}h.val(false);d.hide()}if(e[0].value.length>0){f.jqxButton({disabled:false})}else{f.jqxButton({disabled:true})}},_updateImageWindow:function(){var g=this;var i=g.editImage;if(!i){i=b("")[0]}var h=b("#imageWindow"+this.element.id);h.jqxWindow({position:{center:g.widget}});h.jqxWindow("open");var e=h.find("input");var d=b(h.find("button")[1]);if(g.editImage){d.show()}else{d.hide()}e[0].value=i.src;if(e[0].value==""){e[0].value=""}e[1].value=i.alt;if(i.style.width!="auto"){e[2].value=i.style.width}else{e[2].value=""}if(i.style.height!="auto"){e[3].value=i.style.height}else{e[3].value=""}if(i.style.marginLeft&&i.style.marginLeft!="0px"){e[4].value=i.style.marginLeft}else{e[4].value=""}if(i.style.marginTop&&i.style.marginTop!="0px"){e[5].value=i.style.marginTop}else{e[5].value=""}var j=h.find(".jqx-editor-align");var f=b(i).css("float");if(f=="left"){j.jqxDropDownList({selectedIndex:1})}else{if(f=="right"){j.jqxDropDownList({selectedIndex:2})}else{j.jqxDropDownList({selectedIndex:0})}}},_removeHandlers:function(){var d=this;if(d.editor){d.removeHandler(d.editor,"blur.editor"+d.element.id);d.removeHandler(d.editor,"focus.editor"+d.element.id);d.removeHandler(d.editor,"click.editor"+d.element.id);d.removeHandler(d.editor,"mousedown.editor"+d.element.id);d.removeHandler(d.editor,"mouseup.editor"+d.element.id);d.removeHandler(d.editor,"keyup.editor"+d.element.id);d.removeHandler(d.editor,"keydown.editor"+d.element.id);d.removeHandler(d.editor,"beforedeactivate.editor"+d.element.id);d.removeHandler(d.editor,"dblclick.editor"+d.element.id)}if(d.toolbar){d.removeHandler(d.toolbar,"mousedown.editor"+d.element.id)}},getParentByTag:function(e,d){var d=d.toLowerCase(),f=e;do{if(d==""||f.nodeName.toLowerCase()==d){return f}}while(f=f.parentNode);return e},isStyleProperty:function(g,f,j,i){var f=f.toLowerCase(),h=g;do{if(h.nodeName.toLowerCase()==f&&h.style[j]==i){return !0}}while(h=h.parentNode);return !1},setStyleProperty:function(e,d){this.style[d]=!1;var f=this.getParentByTag(e,d);f&&f.tagName.toLowerCase()==d&&(this.style[d]=!0);if(d=="del"&&this.getParentByTag(e,"strike")&&this.getParentByTag(e,"strike").tagName.toLowerCase()=="strike"){this.style.del=!0}},updateStyle:function(f){var g=this;var f=g.getSelectedElement()?g.getSelectedElement():f;if(!f||!g.setStyleProperty){return}try{if(window.getComputedStyle){if(f.nodeName.toLowerCase()=="#text"){f=g.editor[0]}var d=window.getComputedStyle(f,null);var i=((d.getPropertyValue("font-weight")==401)?700:d.getPropertyValue("font-weight"));g.style={fontStyle:d.getPropertyValue("font-style"),fontSize:d.getPropertyValue("font-size"),textDecoration:d.getPropertyValue("text-decoration"),fontWeight:i,fontFamily:d.getPropertyValue("font-family"),textAlign:d.getPropertyValue("text-align"),color:g._rgbToHex(d.color),backColor:g._rgbToHex(d.backgroundColor)};g.style.fontStyle=d.getPropertyValue("font-style");g.style.vAlign=d.getPropertyValue("vertical-align");g.style.del=g.isStyleProperty(f,"span","textDecoration","line-through");g.style.u=g.isStyleProperty(f,"span","textDecoration","underline");var h=function(l){var k="transparent";var e="rgba(0, 0, 0, 0)";while(l&&(window.getComputedStyle(l).backgroundColor==k||window.getComputedStyle(l).backgroundColor==e)){l=l.parentNode}return l?window.getComputedStyle(l).backgroundColor:k};if(!g.style.backColor){g.style.backColor=g._rgbToHex(h(f))}}else{var d=f.currentStyle;g.style={fontStyle:d.fontStyle,fontSize:d.fontSize,textDecoration:d.textDecoration,fontWeight:d.fontWeight,fontFamily:d.fontFamily,textAlign:d.textAlign,color:g._rgbToHex(d.color),backColor:g._rgbToHex(d.backgroundColor)}}g.setStyleProperty(f,"h1");g.setStyleProperty(f,"h2");g.setStyleProperty(f,"h3");g.setStyleProperty(f,"h4");g.setStyleProperty(f,"h5");g.setStyleProperty(f,"h6");g.setStyleProperty(f,"del");g.setStyleProperty(f,"sub");g.setStyleProperty(f,"sup");g.setStyleProperty(f,"u");if(f.nodeName.toLowerCase()=="a"){if(g.style.textDecoration=="underline"){g.style.u=true}}if(g.style.h1||g.style.h2||g.style.h3||g.style.h4||g.style.h5||g.style.h6){g.style.heading=true}}catch(j){return null}},_refreshTools:function(e,f,n){var k=this;if(k.updating){return}var e=k.getSelectedElement()?k.getSelectedElement():e;if(!e||!k.setStyleProperty){return}k.updateStyle(e);var o=k.readOnly;k.readOnly=true;if(k.tools!==false){var j=k.tools.split(" ");var l=k.tools.split(" | ");var m=function(i){b.each(i,function(q,r){var p=k.commands[this];if(!p){return true}switch(p.type){case"list":p.widget.jqxDropDownList("clearSelection");p.widget.jqxDropDownList({disabled:k.disabled});break;case"colorPicker":p.val(p.value);p.widget.jqxDropDownButton({disabled:k.disabled});break;case"toggleButton":p.widget.jqxToggleButton("unCheck");p.widget.jqxToggleButton({disabled:k.disabled});break;case"button":default:p.widget.jqxButton({disabled:k.disabled});break}})};if(l.length==0){m(j)}else{for(var h=0;h=0){if(w>8)+", "+((J&16711680)>>16)+")"};var F=r(k.editorDocument.queryCommandValue(t.command));if(t.command=="backcolor"){if(k.style.backColor==null){F="#FFFFFF"}}var z=k._rgbToHex(F);if(z){t.val(z)}else{if(t.command=="forecolor"){t.val(k.style.color)}else{if(t.command=="backcolor"){t.val(k.style.backColor)}}}break;case"toggleButton":if(t.command=="viewsource"){return}if(!t.command){return}var q=false;var p=k.editorDocument.queryCommandState(t.command)&&k.editorDocument.queryCommandEnabled(t.command);if(t.command=="createlink"&&e.nodeName.toLowerCase()=="a"){var y=true;if(b(e).text().indexOf(k.selection.getText())==-1&&k.selection.getText()!=""){y=false}if(y){if(k.linkPopup){k.linkPopup.remove()}p=true;k.linkPopup=b("").appendTo(k.editor);var u=b(e).coord();var v=u.left;if(u.left+k.linkPopup.width()>k.editor.width()){v=k.editor.width()-k.linkPopup.width()-15}k.linkPopup.offset({top:b(e).height()+u.top+5,left:v});k.addHandler(k.linkPopup,"mousedown",function(K){if(K.target&&K.target.href){var J=b(K.target).index();switch(J){case 1:k.editor.focus();k.selection.selectNode(e,true);k.commands.link.widget.trigger("click");break;case 2:try{k.editor.focus();k.selection.selectNode(e);k.execute("unlink");k.commands.underline.toggled=false;k.selection.collapse(false);k._refreshTools()}catch(L){}break;default:window.open(K.target.href,"_blank");break}}if(K.preventDefault){K.preventDefault()}if(K.stopPropagation){K.stopPropagation()}return false})}}if(t.command=="bold"){if(k.style.fontWeight&&(k.style.fontWeight>=600||k.style.fontWeight=="bold")){q=true}if(k.selection.isCollapsed()){t.toggled=p}else{t.toggled=p||q}p=t.toggled}else{if(t.command=="italic"){if(k.style.fontStyle&&k.style.fontStyle=="italic"){q=true}if(!f){p=t.toggled}else{t.toggled=p}}else{if(t.command=="underline"){if(k.style.u){q=true}if(!f){p=t.toggled}else{t.toggled=p}}else{if(t.command=="justifyleft"){if(k.style.textAlign=="left"){q=true}}else{if(t.command=="justifyright"){if(k.style.textAlign=="right"){q=true}}else{if(t.command=="justifycenter"){if(k.style.textAlign=="center"){q=true}}else{if(t.command=="justifyfull"){if(k.style.textAlign=="justify"){q=true}}else{b.each(k.style,function(J,K){if(t.command==J.toLowerCase()){q=true}})}}}}}}}var G=p;if(q&&t.command.indexOf("justify")!=-1){t.widget.jqxToggleButton("check")}else{if(G){t.widget.jqxToggleButton("check")}else{if(q&&k.range.collapsed===false){t.widget.jqxToggleButton("check")}else{if(b.jqx.browser.msie&&b.jqx.browser.version<9&&q&&!k.selection.isCollapsed()){t.widget.jqxToggleButton("check")}}}}break;case"button":default:if(t.refresh){t.refresh(t.widget,k.style)}break}})};if(l.length==0){g(j)}else{for(var h=0;h0){b(".jqx-editor-dropdownpicker").jqxDropDownButton("close")}if(b(".jqx-editor-dropdownlist").length>0){b(".jqx-editor-dropdownlist").jqxDropDownList("close")}}if(d.preventDefault){d.preventDefault()}if(d.stopPropagation){d.stopPropagation()}d.cancelBubble=true;d.returnValue=false},_addCommandHandler:function(g,f,i,h,d){var e=this;if(!i&&d.init){i="custom"}switch(i){case"custom":switch(d.type){case"list":action=function(j){if(e._documentMode!="source"){if(j.args.type!="none"){d.value=b(this).val();e.execute("custom",d);if(!e.readOnly){e._refreshTools()}}}e._preventDefault(j,false)};break;case"colorPicker":action=function(l){if(e._documentMode!="source"){var j=b(d.colorPicker).find("td").removeClass("jqx-editor-color-picker-selected-cell");if(l.target.nodeName.toLowerCase()=="div"){var k=b(l.target).css("background-color");b(l.target).parent().addClass("jqx-editor-color-picker-selected-cell")}else{var k=b(l.target).find("div").css("background-color");b(l.target).addClass("jqx-editor-color-picker-selected-cell")}b("#bar-"+i).css("background",k);d.widget.val=function(){var n=function(p){if(typeof p!="number"){return p}return"rgb("+(p&255)+", "+((p&65280)>>8)+", "+((p&16711680)>>16)+")"};var o=n(k);var m=e._rgbToHex(o);return m};d.widget.jqxDropDownButton("close");e.execute("custom",d)}e._preventDefault(l);return false};break;case"button":case"toggleButton":default:action=function(j){if(b(".jqx-editor-dropdownpicker").length>0){b(".jqx-editor-dropdownpicker").jqxDropDownButton("close")}if(b(".jqx-editor-dropdownlist").length>0){b(".jqx-editor-dropdownlist").jqxDropDownList("close")}e._preventDefault(j);var l=b(this).attr("data-command");var k=this;if(e._documentMode!="source"){if(d.toggle){d.toggle()}e.execute("custom",d);e._refreshTools()}return false};break}break;case"formatblock":action=function(j){if(e._documentMode!="source"){if(j.args.type!="none"){e.execute(b(this).attr("data-command"),"<"+b(this).val()+">",d);if(!e.readOnly){e.commands.bold.toggled=false;e._refreshTools()}}}e._preventDefault(j,false)};break;case"fontsize":action=function(j){if(e._documentMode!="source"){if(j.args.type!="none"){var l=b(this).val();var m="xx-small,x-small,small,medium,large,x-large,xx-large".split(",");var k=b(this).jqxDropDownList("getSelectedIndex")+1;var k=1+m.indexOf(l);e.execute(b(this).attr("data-command"),k,d)}}e._preventDefault(j,false)};break;case"fontname":action=function(j){if(e._documentMode!="source"){if(j.args.type!="none"){var k=b(this).val();e.execute(b(this).attr("data-command"),k,d)}}e._preventDefault(j,false)};break;case"forecolor":case"backcolor":action=function(l){if(e._documentMode!="source"){var j=b(d.colorPicker).find("td").removeClass("jqx-editor-color-picker-selected-cell");if(l.target.nodeName.toLowerCase()=="div"){var k=b(l.target).css("background-color");b(l.target).parent().addClass("jqx-editor-color-picker-selected-cell")}else{var k=b(l.target).find("div").css("background-color");b(l.target).addClass("jqx-editor-color-picker-selected-cell")}b("#bar-"+i).css("background",k);d.widget.jqxDropDownButton("close");e.execute(i,k,d)}e._preventDefault(l);return false};break;case"viewsource":action=function(j){if(e.linkPopup){e.linkPopup.remove()}d.toggle();e.setMode(d.toggled);if(b(".jqx-editor-dropdownpicker").length>0){b(".jqx-editor-dropdownpicker").jqxDropDownButton("close")}if(b(".jqx-editor-dropdownlist").length>0){b(".jqx-editor-dropdownlist").jqxDropDownList("close")}e._preventDefault(j);return false};break;case"insertimage":action=function(j){e._insertImageAction(j,e,d)};break;case"createlink":action=function(j){e._createLinkAction(j,e,d)};break;default:action=function(j){if(b(".jqx-editor-dropdownpicker").length>0){b(".jqx-editor-dropdownpicker").jqxDropDownButton("close")}if(b(".jqx-editor-dropdownlist").length>0){b(".jqx-editor-dropdownlist").jqxDropDownList("close")}e._preventDefault(j);var m=b(this).attr("data-command");var k=this;if(e._documentMode!="source"){if(m=="underline"){if(e.getSelectedElement()){var l=e.getSelectedElement();if(l&&l.nodeName.toLowerCase()=="a"){if(d.toggled){b(l).css("text-decoration","none")}else{b(l).css("text-decoration","underline")}d.toggle();e._refreshTools();return false}}}if(d.toggle){d.toggle()}e.execute(m,b(this).val(),d);e._refreshTools()}return false};break}e.addHandler(g,f,action);return false},_createLinkAction:function(d,k,l){var k=this;if(k._documentMode=="source"){k._preventDefault(d);return}if(!k.focused){k.editor.focus()}k.range=k.getRange();var e=k.getSelectedElement();if(e.nodeName.toLowerCase()=="a"){k.editLink=e}else{k.editLink=null}if(b("#linkWindow"+this.element.id).length>0){if(k.editLink){k.selection.selectNode(e,true)}k._updateLinkWindow();k._preventDefault(d);return false}var m=b("");m[0].id="linkWindow"+this.element.id;var j=m.find("input");j.addClass(k.toThemeProperty("jqx-widget"));j.addClass(k.toThemeProperty("jqx-widget-content"));j.addClass(k.toThemeProperty("jqx-input"));var i=m.find(".jqx-editor-link-checkbox").jqxCheckBox({theme:k.theme,height:23,width:180});var g=m.find("button:first").jqxButton({theme:k.theme,disabled:true});var o=b(m.find("button")[1]).jqxButton({theme:k.theme});var h=m.find("button:last").jqxButton({theme:k.theme});g.val(k.localization.Ok);h.val(k.localization.Cancel);o.val(k.localization.Remove);k.addHandler(h,!b.jqx.mobile.isTouchDevice()?"click":b.jqx.mobile.getTouchEventName("touchstart"),function(p){k.editor.focus();k.selectRange(k.range);k._refreshTools();k._preventDefault(p)});if(!k.editLink||(k.editLink&&!k.editLink.href)){o.hide()}var f=false;k.addHandler(b(j[0]),"focus",function(){if(j[1].value==""||j[1].value==j[0].value){f=true}else{f=false}});k.addHandler(b(j[1]),"keyup",function(p){if(p.keyCode){if(p.keyCode==13){g.trigger("click")}if(p.keyCode==27){h.trigger("click")}}});k.addHandler(b(j[0]),"keyup change",function(p){if(j[0].value.length>0){g.jqxButton({disabled:false})}else{g.jqxButton({disabled:true})}if(f){j[1].value=j[0].value}if(p.keyCode){if(p.keyCode==13){g.trigger("click")}if(p.keyCode==27){h.trigger("click")}}});k.addHandler(o,!b.jqx.mobile.isTouchDevice()?"click":b.jqx.mobile.getTouchEventName("touchstart"),function(p){m.jqxWindow("close");try{k.editor.focus();k.selection.selectNode(k.editLink);k.execute("unlink");k.selection.collapse(false);k.commands.underline.toggled=false;k._refreshTools()}catch(q){}k._preventDefault(p)});k.addHandler(g,!b.jqx.mobile.isTouchDevice()?"click":b.jqx.mobile.getTouchEventName("touchstart"),function(s){var q=m.find("input");var r=b(""+(q[1].value||q[0].value)+"");if(i.val()){r.attr("target","_blank")}r[0].href=b.trim(q[0].value);if(q[0].value.indexOf("http")==-1&&q[0].value.indexOf("mailto")==-1){r[0].href="http://"+b.trim(q[0].value)}if(!k.focused){k.editor.focus()}if(k.range){k.selectRange(k.range)}if(k.editLink){b(k.editLink).remove()}k.execute("insertHTML",""+r[0].outerHTML+" ",l);k.editor.focus();var p=b(k.editorDocument).find("#INSERTION_MARKER");k.selection.selectNode(p[0],true);if(k.getRange().setStartAfter){k.getRange().setStartAfter(p[0])}p.remove();k.selection.collapse(false);k._refreshTools();k._preventDefault(s)});k.updating=true;m.appendTo(document.body);k.addHandler(m,"open",function(){k.updating=true;setTimeout(function(){k.range=k.getRange();b(j[0]).focus()},25)});m.jqxWindow({resizable:false,width:280,okButton:g,cancelButton:h,theme:k.theme,isModal:true,position:{center:k.widget}});k.addHandler(m,"close",function(){k.updating=false});if(!k.focused){k.editor.focus();k.selectRange(k.range)}if(k.editLink){j[0].value=k.editLink.href||"";j[1].value=b(k.editLink).text();i.val(b(k.editLink).attr("target")=="_blank")}else{if(!k.selection.isCollapsed()){var n=k.selection.getText();if(n.match(/^(?!:\/\/)([a-zA-Z0-9]+\.)?[a-zA-Z0-9][a-zA-Z0-9-]+\.[a-zA-Z]{2,6}?$/i)){j[0].value=n}else{j[1].value=n}}}if(j[0].value.length>0){g.jqxButton({disabled:false})}else{g.jqxButton({disabled:true})}k._preventDefault(d);return false},_insertImageAction:function(j,i,g){if(i._documentMode=="source"){i._preventDefault(j);return}if(!i.focused){i.editor.focus()}i.range=i.getRange();if(b("#imageWindow"+this.element.id).length>0){i._updateImageWindow();i._preventDefault(j);return false}var h=b("
              "+i.localization["Insert Image"]+"
              "+i.localization.URL+":
              "+i.localization["Alt Text"]+":
              "+i.localization.Width+":
              "+i.localization.Height+":
              "+i.localization.HSpace+":
              "+i.localization.VSpace+":
              "+i.localization.Align+":
              ");h[0].id="imageWindow"+this.element.id;var e=h.find("input");e.addClass(i.toThemeProperty("jqx-widget"));e.addClass(i.toThemeProperty("jqx-widget-content"));e.addClass(i.toThemeProperty("jqx-input"));h.find(".jqx-editor-align").jqxDropDownList({autoDropDownHeight:true,selectedIndex:0,theme:i.theme,height:23,width:180,source:[i.localization["not set"],i.localization.Left,i.localization.Right]});var f=h.find("button:first").jqxButton({theme:i.theme});var k=h.find("button:last").jqxButton({theme:i.theme});var d=b(h.find("button")[1]).jqxButton({theme:i.theme});f.val(i.localization.Ok);k.val(i.localization.Cancel);d.val(i.localization.Remove);d.hide();i.addHandler(d,!b.jqx.mobile.isTouchDevice()?"click":b.jqx.mobile.getTouchEventName("touchstart"),function(l){b(i.editImage).removeClass("jqx-editor-focus");b(i.editImage).remove();i.editImage=null;i._preventDefault(l);h.jqxWindow("close");i._raiseEvent("change")});i.addHandler(k,!b.jqx.mobile.isTouchDevice()?"click":b.jqx.mobile.getTouchEventName("touchstart"),function(l){b(i.editImage).removeClass("jqx-editor-focus");i.editImage=null;i._preventDefault(l)});i.addHandler(f,!b.jqx.mobile.isTouchDevice()?"click":b.jqx.mobile.getTouchEventName("touchstart"),function(o){b(i.editImage).removeClass("jqx-editor-focus");var m=h.find("input");var p=i.editImage?b(i.editImage):b('');var n=p.attr("src",m[0].value).attr("unselectable","on");if(m[1].value){n.attr("alt",m[1].value).attr("title",m[1].value)}if(m[2].value&&!isNaN(parseInt(m[2].value))){n.width(m[2].value)}else{n.css("width","auto")}if(m[3].value&&!isNaN(parseInt(m[3].value))){n.height(m[3].value)}else{n.css("height","auto")}if(m[4].value){if(m[4].value.toString()=="auto"){n.css("margin-left","auto");n.css("margin-right","auto")}else{if(m[4].value.toString().indexOf("%")!=-1){n.css("margin-left",parseInt(m[4].value)+"%");n.css("margin-right",parseInt(m[4].value)+"%")}else{n.css("margin-left",parseInt(m[4].value)+"px");n.css("margin-right",parseInt(m[4].value)+"px")}}}else{n.css("margin-left","0px");n.css("margin-right","0px")}if(m[5].value){if(m[5].value.toString()=="auto"){n.css("margin-top","auto");n.css("margin-bottom","auto")}else{if(m[5].value.toString().indexOf("%")!=-1){n.css("margin-top",parseInt(m[5].value)+"%");n.css("margin-bottom",parseInt(m[5].value)+"%")}else{n.css("margin-top",parseInt(m[5].value)+"px");n.css("margin-bottom",parseInt(m[5].value)+"px")}}}else{n.css("margin-top","0px");n.css("margin-bottom","0px")}var q=h.find(".jqx-editor-align").jqxDropDownList("selectedIndex");if(q==1){n.css("float","left")}else{if(q==2){n.css("float","right")}else{if(q==0){n.css("float","none")}}}n.css("resize",false);n[0].oncontrolselect=function(){return false};n[0].selectstart=function(){return false};if(!i.editImage){if(!i.focused){i.editor.focus()}if(i.range){i.selectRange(i.range)}i.execute("insertHTML",n[0].outerHTML+" ",g);i.editor.focus();var l=b(i.editorDocument).find("#INSERTION_MARKER");i.selection.selectNode(l[0],true);if(i.getRange().setStartAfter){i.getRange().setStartAfter(l[0])}l.remove();i.selection.collapse(false);i._refreshTools();i._preventDefault(o)}i.editImage=null;i._preventDefault(o)});h.appendTo(document.body);i.updating=true;i.addHandler(h,"open",function(){i.updating=true;setTimeout(function(){i.range=i.getRange();b(e[0]).focus()},25)});h.jqxWindow({resizable:false,width:280,okButton:f,cancelButton:k,theme:i.theme,isModal:true,position:{center:i.widget}});i.addHandler(h,"close",function(){i.updating=false});if(!i.focused){i.editor.focus();i.selectRange(i.range)}i._preventDefault(j);return false},editmode:function(f){var e=this;if(!f&&!e.readOnly){e._removeHandlers();e.editor.attr("contentEditable",false);var d=document.createTextNode(e.editor.html());var g=b("
              ");g.html(d).attr({id:"sourceText",contentEditable:true}).css("height","100%");e.editor.html(g);if(e.buttons.hasOwnProperty("html")){e.buttons.html.addClass("active")}g.focus()}else{if(f&&e.readOnly){var d=e.editor.find("#sourceText").text();e.editor.html(d);if(e.buttons.hasOwnProperty("html")){e.buttons.html.removeClass("active")}e.editor.attr("contentEditable",true);e._addHandlers()}}e.readOnly=!f},setMode:function(f){var i=this;if(!i.range){i.editor.focus();i.range=i.getRange()}var h;var e=i.editor[0];if(f){i._documentMode="source";var k=new c();var j=k.HTMLtoXML(e.innerHTML);j=k.FormatHTML(j);h=document.createTextNode(j);e.innerHTML="";var d=document.createElement("pre");e.contentEditable=false;d.style.height="100%";d.style.margin="0px";d.style.outline="none";d.style.display="block";d.id="sourceText";d.contentEditable=true;d.appendChild(h);e.appendChild(d);this.readOnly=true}else{this._documentMode="html";if(document.all){e.innerHTML=e.innerText}else{if(e.textContent){e.innerHTML=e.textContent}else{h=document.createRange();h.selectNodeContents(e.firstChild);e.innerHTML=h.toString()}}e.contentEditable=true;i.readOnly=false;i._refreshTools();i.editor.focus();i.selection.selectNode(i.editor[0]);i.editor.scrollTop(0);i.selection.collapse(true)}b.each(this.commands,function(){if(this.widget){if(this.command!="viewsource"){switch(this.type){case"list":this.widget.jqxDropDownList({disabled:f});break;case"colorPicker":this.widget.jqxDropDownButton({disabled:f});break;case"button":this.widget.jqxButton({disabled:f});break;case"toggleButton":this.widget.jqxToggleButton({toggled:false,disabled:f});break}}}});i.editor.focus();if(b.jqx.browser.mozilla){var g=b("anchor");i.editor.prepend(g);g.focus();g.remove();i.selection.collapse(true)}if(i.commands.html.widget){i.commands.html.widget.jqxToggleButton({toggled:f=="source"||f==true});i.commands.html.toggled=f=="source"||f==true}},execute:function(i,f,e){var g=this;if(!g.readOnly){var j=g.editorDocument;if(g._documentMode=="source"){return}g.changeType="mouse";if(g.linkPopup){g.linkPopup.remove()}g.editor.focus();if(b.jqx.browser.mozilla){}if(b.jqx.mobile.isTouchDevice()){setTimeout(function(){},25)}var d=function(m){try{if(m.command&&m.command.toLowerCase()=="inserthtml"){var l=g.getRange();var n=m.value;if(n.toString().indexOf("<")==-1){n=""+m.value+""}g.selection.insertContent(""+n+" ");g.selectRange(l);setTimeout(function(){var p=b(g.editorDocument).find("#INSERTION_MARKER");g.selection.selectNode(b(p).prev()[0],true);p.remove();g.selection.collapse(false)},10)}else{if(m.command){if(j.queryCommandEnabled(m.command)){j.execCommand(m.command,false,m.value)}else{return false}}else{if(j.queryCommandEnabled(m)){j.execCommand(m,false,m)}else{return false}}}}catch(o){}};if(i=="custom"){var h=f.action(f.widget,g.editor);if(h){d(h)}}else{try{if(e&&e.action){var h=e.action(e.widget,g.editor);d(h)}else{if(j.queryCommandEnabled(i)){j.execCommand(i,false,f)}else{if(i=="insertHTML"){g.selection.insertContent(f)}else{return false}}}}catch(k){if(i=="insertHTML"){g.selection.insertContent(f)}else{return false}}}if(b.jqx.mobile.isTouchDevice()){setTimeout(function(){if(g.iframe){g.iframe[0].contentWindow.focus()}},500)}g._raiseEvent("change",{command:i,args:f});g.changed=true;g.range=g.getRange()}},destroy:function(){var h=this;h._removeHandlers();var l=h.tools.split(" ");var g=h.tools.split(" | ");b.jqx.utilities.resize(this.host,null,true);var f=function(i){b.each(i,function(n,o){var m=h.commands[this];if(!m){return true}switch(m.type){case"list":m.widget.jqxDropDownList("destroy");break;case"colorPicker":m.colorPicker.remove();m.widget.jqxDropDownButton("destroy");break;case"toggleButton":m.widget.jqxToggleButton("destroy");break;case"custom":if(h.destroyTool){h.destroyTool(this)}break;case"button":default:m.widget.jqxToggleButton("destroy");if(m.command==="insertimage"){if(b("#imageWindow"+h.element.id).length>0){b("#imageWindow"+h.element.id).find(".jqx-editor-align").jqxDropDownList("destroy");b("#imageWindow"+h.element.id).find("button").jqxButton("destroy")}}else{if(m.command==="createlink"){if(b("#linkWindow"+h.element.id).length>0){b("#linkWindow"+h.element.id).find(".jqx-editor-align").jqxDropDownList("destroy");b("#linkWindow"+h.element.id).find("button").jqxButton("destroy");b("#linkWindow"+h.element.id).find(".jqx-editor-link-checkbox").jqxCheckBox("destroy")}}}break}})};if(g.length==0){f(l)}else{for(var e=0;e0){j.jqxWindow("destroy")}if(k&&k.length>0){k.jqxWindow("destroy")}if(h.inline){h.toolbar.remove()}else{h.widget.remove();h.host.remove()}h.iframe.remove();h.iframe=null;h.selection=null;h.editorDocument=null;h.contentEditableElement=null},val:function(d){if(d!=undefined&&typeof d!="object"){this.editor.html(d)}return this.editor.html()},_raiseEvent:function(h,e){if(e==undefined){e={owner:null}}if(this._documentMode=="source"){return true}var f=h;e.type=this.changeType;this.changeType=null;args=e;args.owner=this;var g=new b.Event(f);g.owner=this;g.args=args;if(this._textArea){var d=b(this._textArea).trigger(g)}else{var d=this.host.trigger(g)}e=g.args;return d}});var a=function(d){var e={initialize:function(f){this.document=f},getSelection:function(){return(this.document.getSelection)?this.document.getSelection():this.document.selection},getRange:function(){var f=this.getSelection();if(!f){return null}try{return f.rangeCount>0?f.getRangeAt(0):(this.document.createRange?this.document.createRange():this.document.selection.createRange())}catch(g){return this.document.body.createTextRange()}},selectRange:function(f){if(f.select){f.select()}else{var g=this.getSelection();if(g.addRange){g.removeAllRanges();g.addRange(f)}}},selectNode:function(i,j){var h=this.getRange();var g=this.getSelection();if(h.moveToElementText){h.moveToElementText(i);h.select()}else{if(g.addRange){try{j?h.selectNodeContents(i):h.selectNode(i);g.removeAllRanges();g.addRange(h)}catch(f){var k=f}}else{g.setBaseAndExtent(i,0,i,1)}}return i},isCollapsed:function(){var f=this.getRange();if(f.item){return false}return f.boundingWidth==0||this.getSelection().isCollapsed},collapse:function(f){var h=this.getRange();var g=this.getSelection();if(h.select){h.collapse(f);h.select()}else{f?g.collapseToStart():g.collapseToEnd()}},getContent:function(){var h=this.getRange();var f=b("
              ")[0];if(this.isCollapsed()){return""}if(h.cloneContents){f.appendChild(h.cloneContents())}else{if(h.item!=undefined||h.htmlText!=undefined){b(f).html(h.item?h.item(0).outerHTML:h.htmlText)}else{b(f).html(h.toString())}}var g=b(f).html();return g},getText:function(){var g=this.getRange();var f=this.getSelection();return this.isCollapsed()?"":g.text||(f.toString?f.toString():"")},getNode:function(){var g=this.getRange();if(!b.jqx.browser.msie||b.jqx.browser.version>=9){var f=null;if(g){f=g.commonAncestorContainer;if(!g.collapsed){if(g.startContainer==g.endContainer){if(g.startOffset-g.endOffset<2){if(g.startContainer.hasChildNodes()){f=g.startContainer.childNodes[g.startOffset]}}}}while(typeof(f)!="element"){f=f.parentNode}}return d.id(f)}return d.id(g.item?g.item(0):g.parentElement())},insertContent:function(i){var h=this.getRange();if(h.pasteHTML){h.pasteHTML(i);h.collapse(false);h.select()}else{if(h.insertNode){h.deleteContents();if(h.createContextualFragment){h.insertNode(h.createContextualFragment(i))}else{var j=this.document;var g=j.createDocumentFragment();var f=j.createElement("div");g.appendChild(f);f.outerHTML=i;h.insertNode(g)}}}}};e.initialize(d);return e};var c=function(){var n=/^<([-A-Za-z0-9_]+)((?:\s+\w+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/,f=/^<\/([-A-Za-z0-9_]+)[^>]*>/,j=/([-A-Za-z0-9_]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g;var i=e("area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed");var d=e("address,applet,blockquote,button,center,dd,del,dir,div,dl,dt,fieldset,form,frameset,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul");var l=e("a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var");var g=e("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr");var m=e("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected");var k=e("script,style");var h=this.HTMLParser=function(p,x){var s,t,q,u=[],v=p;u.last=function(){return this[this.length-1]};while(p){t=true;if(!u.last()||!k[u.last()]){if(p.indexOf("");if(s>=0){if(x.comment){x.comment(p.substring(4,s))}p=p.substring(s+3);t=false}}else{if(p.indexOf("]*>"),function(y,z){z=z.replace(//g,"$1").replace(//g,"$1");if(x.chars){x.chars(z)}return""});r("",u.last())}v=p}r();function o(y,B,C,z){B=B.toLowerCase();if(d[B]){while(u.last()&&l[u.last()]){r("",u.last())}}if(g[B]&&u.last()==B){r("",B)}z=i[B]||!!z;if(!z){u.push(B)}if(x.start){var A=[];C.replace(j,function(E,D){var F=arguments[2]?arguments[2]:arguments[3]?arguments[3]:arguments[4]?arguments[4]:m[D]?D:"";A.push({name:D,value:F,escaped:F.replace(/(^|[^\\])"/g,'$1\\"')})});if(x.start){x.start(B,A,z)}}}function r(y,A){if(!A){var B=0}else{for(var B=u.length-1;B>=0;B--){if(u[B].toLowerCase()==A.toLowerCase()){break}}}if(B>=0){for(var z=u.length-1;z>=B;z--){if(x.end){x.end(u[z])}}u.length=B}}};this.HTMLtoXML=function(p){var o="";p=p.replace(/\r/ig,"");p=p.replace(/\n/ig,"");h(p,{start:function(q,s,r){o+="<"+q;for(var t=0;t"},end:function(q){o+="\r\n"},chars:function(q){o+=q},comment:function(q){o+=""}});return o};this.FormatHTML=function(D,r){var H,C,A,u,v,G;r=r||{};C=r.indent_size||4;A=r.indent_char||" ";v=r.brace_style||"collapse";u=Infinity;G=r.unformatted||["a","span","bdo","em","strong","dfn","code","samp","kbd","var","cite","abbr","acronym","q","sub","sup","tt","i","b","big","small","u","s","strike","font","ins","del","pre","address","dt","h1","h2","h3","h4","h5","h6"];function q(){this.pos=0;this.token="";this.current_mode="CONTENT";this.tags={parent:"parent1",parentcount:1,parent1:""};this.tag_type="";this.token_text=this.last_token=this.last_text=this.token_type="";this.Utils={whitespace:"\n\r\t ".split(""),single_token:"br,input,link,meta,!doctype,basefont,base,area,hr,wbr,param,img,isindex,?xml,embed,?php,?,?=".split(","),extra_liners:"head,body,/html".split(","),in_array:function(J,t){for(var I=0;I=this.input.length){return J.length?J.join(""):["","TK_EOF"]}t=this.input.charAt(this.pos);this.pos++;this.line_char_count++;if(this.Utils.in_array(t,this.Utils.whitespace)){if(J.length){K=true}this.line_char_count--;continue}else{if(K){if(this.line_char_count>=this.max_char){J.push("\n");for(var I=0;I","igm");L.lastIndex=this.pos;var I=L.exec(this.input);var M=I?I.index:this.input.length;if(this.pos=this.input.length){return M.length?M.join(""):["","TK_EOF"]}K=this.input.charAt(this.pos);this.pos++;this.line_char_count++;if(this.Utils.in_array(K,this.Utils.whitespace)){t=true;this.line_char_count--;continue}if(K==="'"||K==='"'){if(!M[1]||M[1]!=="!"){K+=this.get_unformatted(K);t=true}}if(K==="="){t=false}if(M.length&&M[M.length-1]!=="="&&K!==">"&&t){if(this.line_char_count>=this.max_char){this.print_newline(false,M);this.line_char_count=0}else{M.push(" ");this.line_char_count++}t=false}if(K==="<"){O=this.pos-1}M.push(K)}while(K!==">");var P=M.join("");var I;if(P.indexOf(" ")!=-1){I=P.indexOf(" ")}else{I=P.indexOf(">")}var N=P.substring(1,I).toLowerCase();if(P.charAt(P.length-2)==="/"||this.Utils.in_array(N,this.Utils.single_token)){this.tag_type="SINGLE"}else{if(N==="script"){this.record_tag(N);this.tag_type="SCRIPT"}else{if(N==="style"){this.record_tag(N);this.tag_type="STYLE"}else{if(this.Utils.in_array(N,G)){var L=this.get_unformatted("",P);M.push(L);if(O>0&&this.Utils.in_array(this.input.charAt(O-1),this.Utils.whitespace)){M.splice(0,0,this.input.charAt(O-1))}J=this.pos-1;if(this.Utils.in_array(this.input.charAt(J+1),this.Utils.whitespace)){M.push(this.input.charAt(J+1))}this.tag_type="SINGLE"}else{if(N.charAt(0)==="!"){if(N.indexOf("[if")!=-1){if(P.indexOf("!IE")!=-1){var L=this.get_unformatted("-->",P);M.push(L)}this.tag_type="START"}else{if(N.indexOf("[endif")!=-1){this.tag_type="END";this.unindent()}else{if(N.indexOf("[cdata[")!=-1){var L=this.get_unformatted("]]>",P);M.push(L);this.tag_type="SINGLE"}else{var L=this.get_unformatted("-->",P);M.push(L);this.tag_type="SINGLE"}}}}else{if(N.charAt(0)==="/"){this.retrieve_tag(N.substring(1));this.tag_type="END"}else{this.record_tag(N);this.tag_type="START"}if(this.Utils.in_array(N,this.Utils.extra_liners)){this.print_newline(true,this.output)}}}}}}return M.join("")};this.get_unformatted=function(I,J){if(J&&J.indexOf(I)!=-1){return""}var t="";var K="";var L=true;do{if(this.pos>=this.input.length){return K}t=this.input.charAt(this.pos);this.pos++;if(this.Utils.in_array(t,this.Utils.whitespace)){if(!L){this.line_char_count--;continue}if(t==="\n"||t==="\r"){K+="\n";this.line_char_count=0;continue}}K+=t;this.line_char_count++;L=true}while(K.indexOf(I)==-1);return K};this.get_token=function(){var t;if(this.last_token==="TK_TAG_SCRIPT"||this.last_token==="TK_TAG_STYLE"){var I=this.last_token.substr(7);t=this.get_contents_to(I);if(typeof t!=="string"){return t}return[t,"TK_"+I]}if(this.current_mode==="CONTENT"){t=this.get_content();if(typeof t!=="string"){return t}else{return[t,"TK_CONTENT"]}}if(this.current_mode==="TAG"){t=this.get_tag();if(typeof t!=="string"){return t}else{var J="TK_TAG_"+this.tag_type;return[t,J]}}};this.get_full_indent=function(t){t=this.indent_level+t||0;if(t<1){return""}return Array(t+1).join(this.indent_string)};this.printer=function(K,J,t,M,L){this.input=K||"";this.output=[];this.indent_character=J;this.indent_string="";this.indent_size=t;this.brace_style=L;this.indent_level=0;this.max_char=M;this.line_char_count=0;for(var I=0;I0){this.indent_level--}}};return this}H=new q();H.printer(D,A,C,u,v);while(true){var w=H.get_token();H.token_text=w[0];H.token_type=w[1];if(H.token_type==="TK_EOF"){break}switch(H.token_type){case"TK_TAG_START":H.print_newline(false,H.output);H.print_token(H.token_text);H.indent();H.current_mode="CONTENT";break;case"TK_TAG_STYLE":case"TK_TAG_SCRIPT":H.print_newline(false,H.output);H.print_token(H.token_text);H.current_mode="CONTENT";break;case"TK_TAG_END":if(H.last_token==="TK_CONTENT"&&H.last_text===""){var F=H.token_text.match(/\w+/)[0];var y=H.output[H.output.length-1].match(/<\s*(\w+)/);if(y===null||y[1]!==F){H.print_newline(true,H.output)}}H.print_token(H.token_text);H.current_mode="CONTENT";break;case"TK_TAG_SINGLE":var o=H.token_text.match(/^\s*<([a-z]+)/i);if(!o||!H.Utils.in_array(o[1],G)){H.print_newline(false,H.output)}H.print_token(H.token_text);H.current_mode="CONTENT";break;case"TK_CONTENT":if(H.token_text!==""){H.print_token(H.token_text)}H.current_mode="TAG";break;case"TK_STYLE":case"TK_SCRIPT":if(H.token_text!==""){H.output.push("\n");var x=H.token_text;if(r.indent_scripts=="keep"){var z=0}else{if(r.indent_scripts=="separate"){var z=-H.indent_level}else{var z=1}}var p=H.get_full_indent(z);var s=x.match(/^\s*/)[0];var B=s.match(/[^\n\r]*$/)[0].split(H.indent_string).length-1;var E=H.get_full_indent(z-B);x=x.replace(/^\s*/,p).replace(/\r\n|\r|\n/g,"\n"+E).replace(/\s*$/,"");if(x){H.print_token(x);H.print_newline(true,H.output)}}H.current_mode="TAG";break}H.last_token=H.token_type;H.last_text=H.token_text}return H.output.join("")};function e(r){var q={},o=r.split(",");for(var p=0;p
              ");this._header=this.host.children("div:eq(0)");this._content=this.host.children("div:eq(1)");if(this.headerPosition=="bottom"){this._header.detach();this.host.append(this._header)}this._header_text=this._header.children("div:eq(0)");var d=this._header_text[0].className;this._header.addClass(d);this._header_text.removeClass();if(!this.rtl){this._header_text.addClass(this.toThemeProperty("jqx-expander-header-content"))}else{this._header_text.addClass(this.toThemeProperty("jqx-expander-header-content-rtl"))}this._header.append("
              ");this._arrow=this._header.children("div:eq(1)");if(this.showArrow==true){this._arrow.css("display","inherit")}else{this._arrow.css("display","none")}this.tI=-1;if(this._header.attr("tabindex")==undefined){this.tI++;this._header.attr("tabindex",this.tI)}if(this._content.attr("tabindex")==undefined){this.tI++;this._content.attr("tabindex",this.tI)}this._setTheme();this._checkContent();var b="Invalid jqxExpander structure. Please add only two child div elements to your jqxExpander div that will represent the expander's header and content.";try{if(this._header.length==0||this._content.length==0||this.host.children().length<2||this.host.children().length>2){throw b}}catch(c){alert(c)}this._expandChecker;this._initialized;if(this.expanded==true){if(this.headerPosition=="top"){this._arrow.addClass(this.toThemeProperty("jqx-icon-arrow-up"));this._arrow.addClass(this.toThemeProperty("jqx-icon-arrow-up-selected"));this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-bottom"));this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-expanded"))}else{if(this.headerPosition=="bottom"){this._arrow.addClass(this.toThemeProperty("jqx-icon-arrow-down"));this._arrow.addClass(this.toThemeProperty("jqx-icon-arrow-down-selected"));this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-top"));this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-expanded-top"))}}if(this.initContent){this._setSize();this.initContent()}this._initialized=true;this._expandChecker=0}else{if(this.expanded==false){this._arrow.removeClass(this.toThemeProperty("jqx-icon-arrow-down-selected"));this._arrow.removeClass(this.toThemeProperty("jqx-icon-arrow-up-selected"));if(this.headerPosition=="top"){this._arrow.addClass(this.toThemeProperty("jqx-icon-arrow-down"));this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-top"))}else{if(this.headerPosition=="bottom"){this._arrow.addClass(this.toThemeProperty("jqx-icon-arrow-up"));this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-bottom"))}}this._initialized=false;this._expandChecker=1;this._content.css("display","none")}}this._setSize();if(this.disabled==false){this._toggle()}this._keyBoard();var e=this;a.jqx.utilities.resize(this.host,function(){e.invalidate()})},destroy:function(){this.removeHandler(a(window),"resize.expander"+this.widgetID);this.host.remove();a(this.element).removeData("jqxExpander")},focus:function(){try{if(this.disabled==false){this._header.focus()}}catch(b){}},propertyChangedHandler:function(b,c,e,d){if(c=="expanded"){if(d==true&&e==false){this.expanded=false;this.expand()}else{if(d==false&&e==true){this.expanded=true;this.collapse()}}}else{this.refresh()}},_raiseEvent:function(g,e){var c=this.events[g];var f=new a.Event(c);f.owner=this;f.args=e;try{var b=this.host.trigger(f)}catch(d){}return b},resize:function(c,b){this.width=c;this.height=b;this._setSize()},_setSize:function(){this.host.width(this.width);this.host.height(this.height);this._header.height("auto");this._header.css("min-height",this._arrow.height());var c=this.arrowPosition;if(this.rtl){switch(c){case"left":c="right";break;case"right":c="left";break}}if(c=="right"){this._header_text.css({"float":"left","margin-left":"0px"});this._arrow.css({"float":"right",position:"relative"})}else{if(c=="left"){if(this.width=="auto"){this._header_text.css({"float":"left","margin-left":"17px"});this._arrow.css({"float":"left",position:"absolute"})}else{this._header_text.css({"float":"right","margin-left":"0px"});this._arrow.css({"float":"left",position:"relative"})}}}this._arrow.css("margin-top",this._header_text.height()/2-this._arrow.height()/2);if(this.height=="auto"){this._content.height("auto");this._contentHeight=this._content.height()}else{this._content.height("auto");var b=Math.round(this.host.height())-Math.round(this._header.outerHeight())-1;if(b<0){b=0}if(!this._contentHeight){this._contentHeight=this._content.height()}if(b!=this._contentHeight){this._content.height(b);this._contentHeight=Math.round(this._content.outerHeight())}else{this._content.height(this._contentHeight)}}},_toggle:function(){var b=this;if(this._isTouchDevice==false){this._header.removeClass(this.toThemeProperty("jqx-expander-header-disabled"));switch(this.toggleMode){case"click":this.addHandler(this._header,"click.expander"+this.widgetID,function(){b._animate()});break;case"dblclick":this.addHandler(this._header,"dblclick.expander"+this.widgetID,function(){b._animate()});break;case"none":this._header.addClass(this.toThemeProperty("jqx-expander-header-disabled"));break}}else{if(this.toggleMode!="none"){this.addHandler(this._header,a.jqx.mobile.getTouchEventName("touchstart")+"."+this.widgetID,function(){b._animate()})}else{return}}},_animate:function(){if(this.expanded==true){this.collapse();this._header.addClass(this.toThemeProperty("jqx-fill-state-hover"));this._header.addClass(this.toThemeProperty("jqx-expander-header-hover"));if(this.headerPosition=="top"){this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-top-hover"));this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-down-hover"))}else{if(this.headerPosition=="bottom"){this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-bottom-hover"));this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-up-hover"))}}}else{this.expand();this._header.removeClass(this.toThemeProperty("jqx-fill-state-hover"));this._header.removeClass(this.toThemeProperty("jqx-expander-header-hover"));if(this.headerPosition=="top"){this._arrow.removeClass(this.toThemeProperty("jqx-expander-arrow-top-hover"));this._arrow.removeClass(this.toThemeProperty("jqx-expander-arrow-down-hover"))}else{if(this.headerPosition=="bottom"){this._arrow.removeClass(this.toThemeProperty("jqx-expander-arrow-bottom-hover"));this._arrow.removeClass(this.toThemeProperty("jqx-expander-arrow-up-hover"))}}}},_removeHandlers:function(){this.removeHandler(this._header,"click.expander"+this.widgetID);this.removeHandler(this._header,"dblclick.expander"+this.widgetID);this.removeHandler(this._header,"mouseenter.expander"+this.widgetID);this.removeHandler(this._header,"mouseleave.expander"+this.widgetID)},_setTheme:function(){var b=this;this.host.addClass(this.toThemeProperty("jqx-widget"));this._header.addClass(this.toThemeProperty("jqx-widget-header"));this._content.addClass(this.toThemeProperty("jqx-widget-content"));if(this.rtl==true){this.host.addClass(this.toThemeProperty("jqx-rtl"))}if(this.disabled==false){this._header.removeClass(this.toThemeProperty("jqx-expander-header-disabled"));this.host.removeClass(this.toThemeProperty("jqx-fill-state-disabled"));if(this.expanded==true){this._header.addClass(this.toThemeProperty("jqx-fill-state-pressed"));this._header.addClass(this.toThemeProperty("jqx-expander-header-expanded"))}else{this._header.addClass(this.toThemeProperty("jqx-fill-state-normal"));this._header.removeClass(this.toThemeProperty("jqx-expander-header-expanded"))}this._hovered=false;if(!b._isTouchDevice){this.addHandler(this._header,"mouseenter.expander"+this.widgetID,function(){b._hovered=true;if(b._expandChecker==1){b._header.removeClass(b.toThemeProperty("jqx-fill-state-normal"));b._header.removeClass(b.toThemeProperty("jqx-fill-state-pressed"));b._header.addClass(b.toThemeProperty("jqx-fill-state-hover"));b._header.addClass(b.toThemeProperty("jqx-expander-header-hover"));if(b.headerPosition=="top"){if(b.expanded){b._arrow.addClass(b.toThemeProperty("jqx-icon-arrow-up-hover"))}else{b._arrow.addClass(b.toThemeProperty("jqx-icon-arrow-down-hover"))}b._arrow.addClass(b.toThemeProperty("jqx-expander-arrow-top-hover"));b._arrow.addClass(b.toThemeProperty("jqx-expander-arrow-down-hover"))}else{if(b.headerPosition=="bottom"){if(b.expanded){b._arrow.addClass(b.toThemeProperty("jqx-icon-arrow-down-hover"))}b._arrow.addClass(b.toThemeProperty("jqx-expander-arrow-bottom-hover"));b._arrow.addClass(b.toThemeProperty("jqx-expander-arrow-up-hover"))}}}});this.addHandler(this._header,"mouseleave.expander"+this.widgetID,function(){b._hovered=false;b._header.removeClass(b.toThemeProperty("jqx-fill-state-hover"));b._arrow.removeClass(b.toThemeProperty("jqx-icon-arrow-up-hover"));b._arrow.removeClass(b.toThemeProperty("jqx-icon-arrow-down-hover"));b._header.removeClass(b.toThemeProperty("jqx-expander-header-hover"));if(b.headerPosition=="top"){b._arrow.removeClass(b.toThemeProperty("jqx-expander-arrow-top-hover"));b._arrow.removeClass(b.toThemeProperty("jqx-expander-arrow-down-hover"))}else{if(b.headerPosition=="bottom"){b._arrow.removeClass(b.toThemeProperty("jqx-expander-arrow-bottom-hover"));b._arrow.removeClass(b.toThemeProperty("jqx-expander-arrow-up-hover"))}}if(b._expandChecker==1){b._header.addClass(b.toThemeProperty("jqx-fill-state-normal"))}else{b._header.addClass(b.toThemeProperty("jqx-fill-state-pressed"))}})}}else{this.host.addClass(this.toThemeProperty("jqx-fill-state-disabled"));this._header.addClass(this.toThemeProperty("jqx-expander-header-disabled"))}this.host.addClass(this.toThemeProperty("jqx-expander"));this._header.addClass(this.toThemeProperty("jqx-expander-header"));this._content.addClass(this.toThemeProperty("jqx-expander-content"));if(this.headerPosition=="top"){this._content.addClass(this.toThemeProperty("jqx-expander-content-bottom"))}else{if(this.headerPosition=="bottom"){this._content.addClass(this.toThemeProperty("jqx-expander-content-top"))}}this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow"))},_checkContent:function(){this._cntntEmpty=/^\s*$/.test(this._content.html());if(this._cntntEmpty==true){this._content.height(0);this._content.addClass(this.toThemeProperty("jqx-expander-content-empty"))}else{this._content.height(this._contentHeight);this._content.removeClass(this.toThemeProperty("jqx-expander-content-empty"))}},_keyBoard:function(){var b=this;this._focus();this.addHandler(this.host,"keydown.expander"+this.widgetID,function(c){var d=false;if((b.focusedH==true||b.focusedC==true)&&b.disabled==false){switch(c.keyCode){case 13:case 32:if(b.toggleMode!="none"){if(b.focusedH==true){b._animate()}d=true}break;case 38:if(c.ctrlKey==true&&b.focusedC==true){b._header.focus()}d=true;break;case 40:if(c.ctrlKey==true&&b.focusedH==true){b._content.focus()}d=true;break}return true}if(d&&c.preventDefault){c.preventDefault()}return !d})},_focus:function(){var b=this;this.addHandler(this._header,"focus.expander"+this.widgetID,function(){b.focusedH=true;a.jqx.aria(b._header,"aria-selected",true);b._header.addClass(b.toThemeProperty("jqx-fill-state-focus"))});this.addHandler(this._header,"blur.expander"+this.widgetID,function(){b.focusedH=false;a.jqx.aria(b._header,"aria-selected",false);b._header.removeClass(b.toThemeProperty("jqx-fill-state-focus"))});this.addHandler(this._header_text,"focus.expander"+this.widgetID,function(){b._header.focus()});this.addHandler(this._arrow,"focus.expander"+this.widgetID,function(){b._header.focus()});this.addHandler(this._content,"focus.expander"+this.widgetID,function(){b.focusedC=true;b._content.addClass(b.toThemeProperty("jqx-fill-state-focus"))});this.addHandler(this._content,"blur.expander"+this.widgetID,function(){b.focusedC=false;b._content.removeClass(b.toThemeProperty("jqx-fill-state-focus"))})}})})(jqxBaseFramework); \ No newline at end of file diff --git a/htdocs/public/jqwidgets/jqxfileupload.js b/htdocs/public/jqwidgets/jqxfileupload.js deleted file mode 100644 index 3f729f21..00000000 --- a/htdocs/public/jqwidgets/jqxfileupload.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -jQWidgets v4.0.0 (2016-Jan) -Copyright (c) 2011-2016 jQWidgets. -License: http://jqwidgets.com/license/ -*/ - -(function(a){a.jqx.jqxWidget("jqxFileUpload","",{});a.extend(a.jqx._jqxFileUpload.prototype,{defineInstance:function(){var b={width:null,height:"auto",uploadUrl:"",fileInputName:"",autoUpload:false,multipleFilesUpload:true,accept:null,browseTemplate:"",uploadTemplate:"",cancelTemplate:"",localization:null,renderFiles:null,disabled:false,rtl:false,events:["select","remove","uploadStart","uploadEnd"]};a.extend(true,this,b)},createInstance:function(){var b=this;if(b.host.jqxButton===undefined){throw new Error("jqxFileUpload: Missing reference to jqxbuttons.js")}if(a.jqx.browser.msie){if(a.jqx.browser.version<11){b._ieOldWebkit=true;if(a.jqx.browser.version<8){b._ie7=true}}}else{if(a.jqx.browser.webkit){b._ieOldWebkit=true}}b._fluidWidth=typeof b.width==="string"&&b.width.charAt(b.width.length-1)==="%";b._fluidHeight=typeof b.height==="string"&&b.height.charAt(b.height.length-1)==="%";b._render(true)},_render:function(b){var c=this;c._setSize();c._addClasses();if(b===true){c._appendElements()}else{c._removeHandlers()}c._addHandlers();if(c._ie7){c._borderAndPadding("width",c.host);if(c.height!=="auto"){c._borderAndPadding("height",c.host)}}a.jqx.utilities.resize(c.host,null,true);a.jqx.utilities.resize(c.host,function(){if(c._fluidWidth){if(c._ie7){c.host.css("width",c.width);c._borderAndPadding("width",c.host)}for(var f=0;f0){for(var b=c._fileRows.length-1;b>=0;b--){c._uploadQueue.push(c._fileRows[b])}c._uploadFile(c._fileRows[0])}},cancelFile:function(b){var c=this;c._removeSingleFileRow(c._fileRows[b])},cancelAll:function(){var c=this;if(c._fileRows.length>0){for(var b=0;b8){e._uploadButton[o](e.toThemeProperty("jqx-file-upload-button-upload-rtl-ie"))}for(var i=0;i'+c+"");g.host.append(g._browseButton);g._browseButton.jqxButton({theme:g.theme,width:b,template:g.browseTemplate,disabled:g.disabled});g._browseButton.after('
              ');g._bottomButtonsContainer=a('
              ');g.host.append(g._bottomButtonsContainer);g._uploadButton=a('");g._bottomButtonsContainer.append(g._uploadButton);g._uploadButton.jqxButton({theme:g.theme,width:e,template:g.uploadTemplate,disabled:g.disabled});g._cancelButton=a('");g._bottomButtonsContainer.append(g._cancelButton);g._cancelButton.jqxButton({theme:g.theme,width:f,template:g.cancelTemplate,disabled:g.disabled});g._bottomButtonsContainer.after('
              ');if(g.rtl){g._browseButton.addClass(g.toThemeProperty("jqx-file-upload-button-browse-rtl"));g._cancelButton.addClass(g.toThemeProperty("jqx-file-upload-button-cancel-rtl"));g._uploadButton.addClass(g.toThemeProperty("jqx-file-upload-button-upload-rtl"));if(a.jqx.browser.msie&&a.jqx.browser.version>8){g._uploadButton.addClass(g.toThemeProperty("jqx-file-upload-button-upload-rtl-ie"))}}g._uploadIframe=a('');g.host.append(g._uploadIframe);g._iframeInitialized=false;g._uploadQueue=[];g._forms=[];g._addFormAndFileInput();g._fileRows=[]},_addFormAndFileInput:function(){var f=this;var i=f.element.id;var e=a('
              ');f.host.append(e);var d=a('');if(f.accept){d.attr("accept",f.accept)}e.append(d);if(f._ieOldWebkit){var c=f._browseButton.position();var g=f._browseButton.outerWidth();var h=f._browseButton.outerHeight();var b=f.rtl&&f._ie7?12:0;e.css({left:c.left-b,top:c.top,width:g,height:h});e.addClass(f.toThemeProperty("jqx-file-upload-form-ie9"));d.addClass(f.toThemeProperty("jqx-file-upload-file-input-ie9"));f.addHandler(e,"mouseenter.jqxFileUpload"+i,function(){f._browseButton.addClass(f.toThemeProperty("jqx-fill-state-hover"))});f.addHandler(e,"mouseleave.jqxFileUpload"+i,function(){f._browseButton.removeClass(f.toThemeProperty("jqx-fill-state-hover"))});f.addHandler(e,"mousedown.jqxFileUpload"+i,function(){f._browseButton.addClass(f.toThemeProperty("jqx-fill-state-pressed"))});f.addHandler(a(document),"mouseup.jqxFileUpload"+i,function(){if(f._browseButton.hasClass("jqx-fill-state-pressed")){f._browseButton.removeClass(f.toThemeProperty("jqx-fill-state-pressed"))}})}f.addHandler(d,"change.jqxFileUpload"+i,function(){var l=this.value,j;if(!a.jqx.browser.mozilla){if(l.indexOf("fakepath")!==-1){l=l.slice(12)}else{l=l.slice(l.lastIndexOf("\\")+1)}}if(a.jqx.browser.msie&&a.jqx.browser.version<10){j="IE9 and earlier do not support getting the file size."}else{j=this.files[0].size}var k=f._addFileRow(l,e,d,j);if(f._fileRows.length===1){f._browseButton.css("margin-bottom","10px");f._hideButtons(false)}if(f._ieOldWebkit){f.removeHandler(e,"mouseenter.jqxFileUpload"+i);f.removeHandler(e,"mouseleave.jqxFileUpload"+i);f.removeHandler(e,"mousedown.jqxFileUpload"+i)}f._addFormAndFileInput();f.removeHandler(d,"change.jqxFileUpload"+i);if(f.autoUpload===true){f._uploadFile(k)}});if(f._ieOldWebkit===true){f.addHandler(d,"click.jqxFileUpload"+i,function(j){if(f.multipleFilesUpload===false&&f._fileRows.length>0){j.preventDefault()}})}f._forms.push({form:e,fileInput:d})},_addFileRow:function(f,b,e,d){var h=this,l,g,m,j,n,i="Cancel",k="Upload File";l=a('
              ');if(h._fileRows.length===0){h._browseButton.after(l)}else{h._fileRows[h._fileRows.length-1].fileRow.after(l)}if(!h.renderFiles){g=a('
              '+f+"
              ");l.append(g);if(h.localization){if(h.localization.cancelFileTooltip){i=h.localization.cancelFileTooltip}if(h.localization.uploadFileTooltip){k=h.localization.uploadFileTooltip}}j=a('
              ');l.append(j);n=a('
              ');l.append(n);m=a('
              ');l.append(m);if(h.rtl){g.addClass(h.toThemeProperty("jqx-file-upload-file-name-rtl"));j.addClass(h.toThemeProperty("jqx-file-upload-file-cancel-rtl"));n.addClass(h.toThemeProperty("jqx-file-upload-file-upload-rtl"));m.addClass(h.toThemeProperty("jqx-file-upload-loading-element-rtl"))}h._setMaxWidth({fileNameContainer:g,uploadFile:n,cancelFile:j})}else{l.html(h.renderFiles(f))}if(h._ie7){h._borderAndPadding("width",l);h._borderAndPadding("height",l);if(!h.renderFiles){h._borderAndPadding("height",g);h._borderAndPadding("height",n);h._borderAndPadding("height",j)}}var c={fileRow:l,fileNameContainer:g,fileName:f,uploadFile:n,cancelFile:j,loadingElement:m,form:b,fileInput:e,index:h._fileRows.length};h._addFileHandlers(c);h._fileRows.push(c);h._raiseEvent("0",{file:f,size:d});return c},_setMaxWidth:function(c){var e=this;var f=c.cancelFile.outerWidth(true)+c.uploadFile.outerWidth(true);var b=e._ie7?6:0;var d=e.host.width()-parseInt(e.host.css("padding-left"),10)-parseInt(e.host.css("padding-right"),10)-f-b-7;c.fileNameContainer.css("max-width",d)},_addFileHandlers:function(b){var c=this;if(!c.renderFiles){var d=c.element.id;c.addHandler(b.uploadFile,"mouseenter.jqxFileUpload"+d,function(){if(c.disabled===false){b.uploadFile.addClass(c.toThemeProperty("jqx-fill-state-hover"))}});c.addHandler(b.uploadFile,"mouseleave.jqxFileUpload"+d,function(){if(c.disabled===false){b.uploadFile.removeClass(c.toThemeProperty("jqx-fill-state-hover"))}});c.addHandler(b.uploadFile,"click.jqxFileUpload"+d,function(){if(c.disabled===false){c._uploadFile(b)}});c.addHandler(b.cancelFile,"mouseenter.jqxFileUpload"+d,function(){if(c.disabled===false){b.cancelFile.addClass(c.toThemeProperty("jqx-fill-state-hover"))}});c.addHandler(b.cancelFile,"mouseleave.jqxFileUpload"+d,function(){if(c.disabled===false){b.cancelFile.removeClass(c.toThemeProperty("jqx-fill-state-hover"))}});c.addHandler(b.cancelFile,"click.jqxFileUpload"+d,function(){if(c.disabled===false){c._removeSingleFileRow(b)}})}},_removeSingleFileRow:function(c){var d=this;d._removeFileRow(c);d._fileRows.splice(c.index,1);if(d._fileRows.length===0){setTimeout(function(){d._browseButton.css("margin-bottom",0)},400);d._hideButtons(true)}else{for(var b=0;b0){b._uploadFile(b._uploadQueue[b._uploadQueue.length-1])}}})},_removeHandlers:function(b){var d=this;var e=d.element.id;d.removeHandler(d._browseButton,"click.jqxFileUpload"+e);d.removeHandler(d._uploadButton,"click.jqxFileUpload"+e);d.removeHandler(d._cancelButton,"click.jqxFileUpload"+e);d.removeHandler(d._uploadIframe,"load.jqxFileUpload"+e);if(b===true){var c=d._forms[d._forms.length-1];d.removeHandler(c.fileInput,"change.jqxFileUpload"+e);if(d._ieOldWebkit){d.removeHandler(c.form,"mouseenter.jqxFileUpload"+e);d.removeHandler(c.form,"mouseleave.jqxFileUpload"+e);d.removeHandler(c.form,"mousedown.jqxFileUpload"+e);d.removeHandler(a("body"),"mouseup.jqxFileUpload"+e)}}}})})(jqxBaseFramework); \ No newline at end of file diff --git a/htdocs/public/jqwidgets/jqxformattedinput.js b/htdocs/public/jqwidgets/jqxformattedinput.js deleted file mode 100644 index b7836e05..00000000 --- a/htdocs/public/jqwidgets/jqxformattedinput.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -jQWidgets v4.0.0 (2016-Jan) -Copyright (c) 2011-2016 jQWidgets. -License: http://jqwidgets.com/license/ -*/ - -(function(a){a.jqx.jqxWidget("jqxFormattedInput","",{});a.extend(a.jqx._jqxFormattedInput.prototype,{defineInstance:function(){var b={width:null,height:null,radix:10,decimalNotation:"default",value:"0",min:"-9223372036854775808",max:"9223372036854775807",upperCase:false,spinButtons:true,spinButtonsStep:1,dropDown:false,dropDownWidth:null,popupZIndex:20000,placeHolder:"",roundedCorners:true,disabled:false,rtl:false,changeType:null,_opened:false,$popup:a("
                "),item:'
              • ',events:["open","close","change","radixChange"]};a.extend(true,this,b)},createInstance:function(){var b=this;b._Long();b._regex={2:new RegExp(/([0-1])/),8:new RegExp(/([0-7])/),10:new RegExp(/([0-9\-])/),16:new RegExp(/([0-9]|[a-f])/i)};b.render()},render:function(){var e=this;e._radixNumber=e._getRadix(e.radix);if(e.value!==""){e._number=new e.longObj.math.Long.fromString((e.value).toString(),e._radixNumber)}if(e.baseHost){e.host=e.baseHost;e.element=e.host[0]}if(this.element.nodeName.toLowerCase()==="div"){this.baseHost=this.element;var b=this.host.find("input");var d=false;a.each(b,function(){var f=this.type;if(f===null||f==="text"||f==="textarea"){b=a(this);d=true;return false}});if(!d){throw new Error("jqxFormattedInput: Missing Text Input in the Input Group")}if(b.length>0){this.baseHost=a(this.element);this.host=b;this.element=b[0];this.baseHost.addClass(this.toThemeProperty("jqx-widget"));this.baseHost.addClass(this.toThemeProperty("jqx-rc-all"));this.baseHost.addClass(this.toThemeProperty("jqx-input-group"));var c=this.baseHost.children();a.each(c,function(f){a(this).addClass(e.toThemeProperty("jqx-input-group-addon"));a(this).removeClass(e.toThemeProperty("jqx-rc-all"));if(f===0){a(this).addClass(e.toThemeProperty("jqx-rc-l"))}if(f===c.length-1){a(this).addClass(e.toThemeProperty("jqx-rc-r"))}if(this!==e.element){a(this).addClass(e.toThemeProperty("jqx-fill-state-normal"))}if(this.nodeName.toLowerCase()==="div"){e.appendSpinButtons=function(i){e._spinButtonsContainer=a(i);e._spinButtonsContainer.addClass(e.toThemeProperty("jqx-formatted-input-spin-buttons-container"));var h='
                ';e._upbutton=a(h);e._spinButtonsContainer.append(e._upbutton);e._downbutton=a(h);e._spinButtonsContainer.append(e._downbutton);e._upArrow=e._upbutton.find("div");e._upArrow.addClass(e.toThemeProperty("jqx-icon-arrow-up"));e._downArrow=e._downbutton.find("div");e._downArrow.addClass(e.toThemeProperty("jqx-icon-arrow-down"));e._spinButtonsStepLong=new e.longObj.math.Long.fromNumber(e.spinButtonsStep)};var g=function(h){e._addon=a(h);e._addon.addClass(e.toThemeProperty("jqx-formatted-input-addon"));if(!e._arrow){e._arrow=a('
                ');e._arrow.appendTo(e._addon)}};if(e.rtl===false){if(!e._spinButtonsContainer&&e.spinButtons===true){e.appendSpinButtons(this)}else{if(!e._addon&&e.dropDown===true&&((f===2)||(f===1&&e.spinButtons===false))){g(this)}}}else{if(!e._addon&&e.dropDown===true){g(this);if(e.spinButtons===true){e._addon.addClass(e.toThemeProperty("jqx-formatted-input-addon-rtl"))}}else{if(!e._spinButtonsContainer&&e.spinButtons===true&&((f===1)||(f===0&&e.dropDown===false))){e.appendSpinButtons(this);e._spinButtonsContainer.addClass(e.toThemeProperty("jqx-formatted-input-spin-buttons-container-rtl"));if(e.dropDown===true){e._addon.addClass(e.toThemeProperty("jqx-formatted-input-addon-rtl"))}}}}}})}}e._inputAndAddon=e.host;if(e.baseHost){if(e._spinButtonsContainer){e._inputAndAddon=e._inputAndAddon.add(e._spinButtonsContainer)}if(e._addon){e._inputAndAddon=e._inputAndAddon.add(e._addon)}}e.removeHandlers();this.addHandlers();if(this.rtl){this.host.addClass(this.toThemeProperty("jqx-rtl"))}this.host.attr("role","textbox");a.jqx.aria(this,"aria-autocomplete","both");a.jqx.aria(this,"aria-disabled",this.disabled);a.jqx.aria(this,"aria-readonly",false);a.jqx.aria(this,"aria-multiline",false);a.jqx.aria(this,"aria-haspopup",true);if(e.value!==""&&e.value!==null){if(e.upperCase===true){e.host.addClass(e.toThemeProperty("jqx-formatted-input-upper-case"))}else{e.host.addClass(e.toThemeProperty("jqx-formatted-input-lower-case"))}if(e._radixNumber===10&&e.decimalNotation==="exponential"){e.element.value=e._getDecimalNotation("exponential")}else{e.element.value=e.value}}else{if(e._spinButtonsContainer){e._spinButtonsContainer.addClass(e.toThemeProperty("jqx-fill-state-disabled"))}}if(e._radixNumber!==10&&e.min.toString()==="-9223372036854775808"){e._minLong=new e.longObj.math.Long.fromNumber(e.min)}else{e._setMinMax("min")}if(e._radixNumber!==10&&e.max.toString()==="9223372036854775807"){e._maxLong=new e.longObj.math.Long.fromNumber(e.max)}else{e._setMinMax("max")}},_refreshClasses:function(c){var b=c?"addClass":"removeClass";this.host[b](this.toThemeProperty("jqx-widget-content"));this.host[b](this.toThemeProperty("jqx-input"));this.host[b](this.toThemeProperty("jqx-formatted-input"));this.host[b](this.toThemeProperty("jqx-widget"));this.$popup[b](this.toThemeProperty("jqx-popup"));if(a.jqx.browser.msie){this.$popup[b](this.toThemeProperty("jqx-noshadow"))}this.$popup[b](this.toThemeProperty("jqx-input-popup"));this.$popup[b](this.toThemeProperty("jqx-menu"));this.$popup[b](this.toThemeProperty("jqx-menu-vertical"));this.$popup[b](this.toThemeProperty("jqx-menu-dropdown"));this.$popup[b](this.toThemeProperty("jqx-widget"));this.$popup[b](this.toThemeProperty("jqx-widget-content"));if(this.roundedCorners){this.host[b](this.toThemeProperty("jqx-rc-all"));this.$popup[b](this.toThemeProperty("jqx-rc-all"));if(this.baseHost){this.baseHost[b](this.toThemeProperty("jqx-rc-all"));if(this.rtl===false){this.host[b](this.toThemeProperty("jqx-rc-l"));if(this._addon){this._addon[b](this.toThemeProperty("jqx-rc-r"))}}else{this.host[b](this.toThemeProperty("jqx-rc-r"));if(this._addon){this._addon[b](this.toThemeProperty("jqx-rc-l"))}}}}else{this.host.removeClass(this.toThemeProperty("jqx-rc-all"));this.$popup.removeClass(this.toThemeProperty("jqx-rc-all"));if(this.baseHost){this.baseHost.removeClass(this.toThemeProperty("jqx-rc-all"));if(this.rtl===false){this.host.removeClass(this.toThemeProperty("jqx-rc-l"));if(this._addon){this._addon.removeClass(this.toThemeProperty("jqx-rc-r"))}}else{this.host.removeClass(this.toThemeProperty("jqx-rc-r"));if(this._addon){this._addon.removeClass(this.toThemeProperty("jqx-rc-l"))}}}}if(this.disabled){this.host[b](this.toThemeProperty("jqx-fill-state-disabled"));if(this.baseHost){if(this._spinButtonsContainer){this._spinButtonsContainer[b](this.toThemeProperty("jqx-fill-state-disabled"))}if(this._addon){this._addon[b](this.toThemeProperty("jqx-fill-state-disabled"))}}}else{this.host.removeClass(this.toThemeProperty("jqx-fill-state-disabled"));if(this.baseHost&&this.value!==""&&this.value!==null){if(this._spinButtonsContainer){this._spinButtonsContainer.removeClass(this.toThemeProperty("jqx-fill-state-disabled"))}if(this._addon){this._addon.removeClass(this.toThemeProperty("jqx-fill-state-disabled"))}}}},selectAll:function(){var b=this.host;setTimeout(function(){if("selectionStart" in b[0]){b[0].focus();b[0].setSelectionRange(0,b[0].value.length)}else{var c=b[0].createTextRange();c.collapse(true);c.moveEnd("character",b[0].value.length);c.moveStart("character",0);c.select()}},10)},selectLast:function(){var b=this.host;this.selectStart(b[0].value.length)},selectFirst:function(){this.selectStart(0)},selectStart:function(c){var b=this.host;setTimeout(function(){if("selectionStart" in b[0]){b[0].focus();b[0].setSelectionRange(c,c)}else{var d=b[0].createTextRange();d.collapse(true);d.moveEnd("character",c);d.moveStart("character",c);d.select()}},10)},focus:function(){try{this.host.focus();var c=this;setTimeout(function(){c.host.focus()},25)}catch(b){}},refresh:function(){var f=this;this._refreshClasses(false);this._refreshClasses(true);if(!this.baseHost){if(this.width){this.host.width(this.width)}if(this.height){this.host.height(this.height)}}else{if(this.width){this.baseHost.width(this.width)}if(this.height){this.baseHost.height(this.height);var e=0;var j=this.baseHost.height()-2;if(a.jqx.browser.msie&&a.jqx.browser.version<8){this.baseHost.css("display","inline-block")}a.each(this.baseHost.children(),function(){a(this).css("height","100%");if(a.jqx.browser.msie&&a.jqx.browser.version<8){a(this).css("height",j+"px")}if(this!==f.element){e+=a(this).outerWidth()}});var c=(typeof f.width==="string"&&f.width.charAt(f.width.length-1)==="%")?1:0;this.host.css("width",this.baseHost.width()-e-c+"px");if(a.jqx.browser.msie&&a.jqx.browser.version<9){if(f._spinButtonsContainer){if(f.rtl===false||f.rtl===true&&f._addon){f._spinButtonsContainer.css("border-left-width","0")}}if(f._addon){if(f.rtl===false){f._addon.css("border-left-width","0")}else{if(!f._spinButtonsContainer){f._addon.css("border-right-width","0")}}}var h=0;if(a.jqx.browser.version<8){var g=0;var d=parseInt(f.host.css("border-left-width"),10)+parseInt(f.host.css("border-right-width"),10);var i=parseInt(f.host.css("padding-left"),10)+parseInt(f.host.css("padding-right"),10);if(f._spinButtonsContainer){d+=parseInt(f._spinButtonsContainer.css("border-left-width"),10)+parseInt(f._spinButtonsContainer.css("border-right-width"),10);i+=parseInt(f._spinButtonsContainer.css("padding-left"),10)+parseInt(f._spinButtonsContainer.css("padding-right"),10);if(!f._addon){g=2}}if(f._addon){d+=parseInt(f._addon.css("border-left-width"),10)+parseInt(f._addon.css("border-right-width"),10);i+=parseInt(f._addon.css("padding-left"),10)+parseInt(f._addon.css("padding-right"),10);if(!f._spinButtonsContainer){g=2}}f.host.width(f.host.width()-(i+d)-g);h=6}f.host.height(f.baseHost.height()-(parseInt(f.host.css("border-top-width"),10)+parseInt(f.host.css("border-bottom-width"),10)+parseInt(f.host.css("padding-top"),10)+parseInt(f.host.css("padding-bottom"),10)+h));var b=f.host.height()+"px";f.host.css("min-height",b);f.host.css("line-height",b)}}}this.host.attr("disabled",this.disabled);if(!this.host.attr("placeholder")){this._refreshPlaceHolder()}},_refreshPlaceHolder:function(){if("placeholder" in this.element){this.host.attr("placeHolder",this.placeHolder)}else{var b=this;if(this.element.value===""){this.element.value=this.placeHolder;this.host.focus(function(){if(b.element.value===b.placeHolder){b.element.value=""}});this.host.blur(function(){if(b.element.value===""||b.element.value===b.placeHolder){b.element.value=b.placeHolder}})}}},destroy:function(){this.removeHandlers();if(this.baseHost){a.jqx.utilities.resize(this.baseHost,null,true);this.baseHost.remove()}else{a.jqx.utilities.resize(this.host,null,true);this.host.remove()}if(this.$popup){this.$popup.remove()}},propertyChangedHandler:function(b,d,g,f){if(d==="placeHolder"){b._refreshPlaceHolder();return}if(d==="theme"){a.jqx.utilities.setTheme(g,f,b.host);return}if(d==="disabled"){a.jqx.aria(b,"aria-disabled",b.disabled)}if(d==="value"&&g.toString().toUpperCase()!==f.toString().toUpperCase()){b.val(f);return}if(g!==f&&d==="radix"){b._changeRadix(f);return}if(g!==f&&d==="decimalNotation"&&b._radixNumber===10){if(f==="exponential"){b.element.value=b._getDecimalNotation("exponential")}else{b.element.value=b._number.toString(10)}}if(g!==f&&(d==="min"||d==="max")){b._setMinMax(d);b._validateValue(b.value,true);b.value=b.element.value;return}if(g!==f&&(d==="upperCase")&&b.element.value!==""){if(f===true){b.host.removeClass(b.toThemeProperty("jqx-formatted-input-lower-case"));b.host.addClass(b.toThemeProperty("jqx-formatted-input-upper-case"))}else{b.host.removeClass(b.toThemeProperty("jqx-formatted-input-upper-case"));b.host.addClass(b.toThemeProperty("jqx-formatted-input-lower-case"))}return}function c(i,j){var k=b.host.width();var h=i.outerWidth();if(j===false){b.host.width(k+h);i.hide();if(b.rtl===true){if(b.spinButtons===true){b._spinButtonsContainer.addClass(b.toThemeProperty("jqx-formatted-input-spin-buttons-container-rtl-border"))}if(b.dropDown===true){b._addon.removeClass(b.toThemeProperty("jqx-formatted-input-addon-rtl"))}}}else{b.host.width(k-h);i.show();if(b.rtl===true&&b.spinButtons===true&&b.dropDown===true){b._spinButtonsContainer.removeClass(b.toThemeProperty("jqx-formatted-input-spin-buttons-container-rtl-border"));b._addon.addClass(b.toThemeProperty("jqx-formatted-input-addon-rtl"))}}}function e(j,l){if(l===true){var k=a("
                ");if(b.baseHost){var h=b.baseHost.children("div");if((b.rtl===false&&j==="spinButtons")||(b.rtl===true&&j==="dropDown")){h.before(k)}else{h.after(k)}b.render();b.host.width(b.host.width()-k.outerWidth())}else{var n=b.element.id;b.host.removeAttr("id");b.host.wrap('
                ');var m=a("#"+n);if(b.rtl===false){m.append(k)}else{m.prepend(k)}var i=b.host.data();i.jqxFormattedInput.host=m;i.jqxFormattedInput.element=m[0];b.baseHost=m;b.baseHost.data(i);b.render();b.refresh()}}}if(d==="spinButtons"){if(g!==f){if(b._spinButtonsContainer){c(b._spinButtonsContainer,f)}else{e("spinButtons",f)}return}else{return}}if(g!==f&&d==="spinButtonsStep"){b._spinButtonsStepLong=new b.longObj.math.Long.fromNumber(f)}if(d==="dropDown"){if(g!==f){if(b._addon){c(b._addon,f)}else{e("dropDown",f)}return}else{return}}b.refresh()},select:function(d,e,b){var c=this;if(!b){b=c.$popup.find(".jqx-fill-state-pressed").attr("data-value")}c._changeRadix(parseInt(b,10));c._setMaxLength(true);c.close()},val:function(g){var f=this;if((g||g==="")&&!(typeof g==="object"&&a.isEmptyObject(g)===true)&&g!=="binary"&&g!=="octal"&&g!=="decimal"&&g!=="exponential"&&g!=="scientific"&&g!=="engineering"&&g!=="hexadecimal"){g=g.toString();if(g.toUpperCase()!==f.element.value.toString().toUpperCase()){var b=f.element.value;if(f.upperCase===true){g=g.toUpperCase()}var e=g.split("");for(var c=0;c=96&&o<=105){m=o-96;o=o-48}if(k.altKey===true){if(o===40){if(j._addon){this.open()}return}else{if(o===38){if(j._addon){this.close()}return}}}if(k.ctrlKey===true){if(o===67){return}else{if(o===65){j.selectAll();return}}}var d=[8,9,13,37,38,39,40,46,88];var i=j._regex[""+j._radixNumber+""];if(d.indexOf(o)===-1&&(!i.test(m)&&!i.test(k.key)&&!i.test(k["char"]))){k.preventDefault();return false}else{var l=j.host[0].selectionStart;var g=j.host[0].selectionEnd-l;var f=this._getCaretPosition(this.host[0]);var b=this.element.value;var c=b.split("");if(o===8){if(g>0){c.splice(l,g)}else{c.splice(f-1,1)}}else{if(o===46){if(g>0){c.splice(l,g)}else{c.splice(f,1)}}else{if(o===88){if(k.ctrlKey===true){if(g>0){c.splice(l,g)}}else{k.preventDefault()}}else{if(o===189){if(c[0]==="-"){c.splice(0,1);j._minus=false}else{c.splice(0,0,"-");j._minus=true}k.preventDefault()}else{var h=d.indexOf(o)===-1?m:"";if(g>0){c.splice(l,g);c.splice(l,0,h)}else{c.splice(f,0,h)}}}}}c=c.join("");if(c!==b){var n=j._validateValue(c,false);if(n===false){j._inputAndAddon.addClass(j.toThemeProperty("jqx-input-invalid"))}else{j._inputAndAddon.removeClass(j.toThemeProperty("jqx-input-invalid"))}}}},keypress:function(c){var b=this;if(b.suppressKeyPressRepeat){return}b.move(c)},keyup:function(c){var b=this;switch(c.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(this._opened){this.select(c,this)}else{b._change()}break;case 27:if(!this._opened){return}this.close();break;case 189:if(b._radixNumber===10){if(b._minus===true){b.element.value="-"+b.element.value}else{b.element.value=b.element.value.slice(1)}}break}c.stopPropagation();c.preventDefault();if(b.element.value!==""){if(b.upperCase){b.host.addClass(b.toThemeProperty("jqx-formatted-input-upper-case"))}else{b.host.addClass(b.toThemeProperty("jqx-formatted-input-lower-case"))}if(b._spinButtonsContainer){b._spinButtonsContainer.removeClass(b.toThemeProperty("jqx-fill-state-disabled"))}}else{b.host.removeClass(b.toThemeProperty("jqx-formatted-input-upper-case jqx-formatted-input-lower-case"));if(b._spinButtonsContainer){b._spinButtonsContainer.addClass(b.toThemeProperty("jqx-fill-state-disabled"))}}},_getCaretPosition:function(b){var d=0;if(document.selection){b.focus();var c=document.selection.createRange();c.moveStart("character",-b.value.length);d=c.text.length}else{if(b.selectionStart||b.selectionStart==="0"){d=b.selectionStart}}return(d)},onBlur:function(){var b=this;if(b._opened){b.close()}b._setMaxLength();b._inputAndAddon.removeClass(b.toThemeProperty("jqx-fill-state-focus"));b._change();if(b._radixNumber===10&&b.decimalNotation==="exponential"){b.element.value=b._getDecimalNotation("exponential")}b._refreshPlaceHolder()},onFocus:function(){var b=this;b._setMaxLength(true);b._inputAndAddon.addClass(b.toThemeProperty("jqx-fill-state-focus"));if(b._radixNumber===10&&b.decimalNotation==="exponential"){b.element.value=b._number.toString(10)}},click:function(c){c.stopPropagation();c.preventDefault();var b=a(c.target).attr("data-value");this.select(c,this,b)},mouseenter:function(b){this.$popup.find(".jqx-fill-state-pressed").removeClass(this.toThemeProperty("jqx-fill-state-pressed"));a(b.currentTarget).addClass(this.toThemeProperty("jqx-fill-state-pressed"))},_change:function(){var c=this;var b=c.value;var d=c._validateValue(c.element.value,true);c._inputAndAddon.removeClass(c.toThemeProperty("jqx-input-invalid"));if(d.toUpperCase()!==b.toString().toUpperCase()){c._raiseEvent("2",{value:d,oldValue:b,radix:c._radixNumber});c.value=d}},_getRadix:function(b){switch(b){case 10:case"decimal":return 10;case 2:case"binary":return 2;case 8:case"octal":return 8;case 16:case"hexadecimal":return 16}},_setPopupOptions:function(){var b=this;b._popupOptions=new Array();if(b.value!==""){b._popupOptions.push(b._number.toString(2)+" (BIN)");b._popupOptions.push(b._number.toString(8)+" (OCT)");b._popupOptions.push(b._number.toString(10)+" (DEC)");b._popupOptions.push(b._number.toString(16)+" (HEX)")}else{b._popupOptions.push("BIN");b._popupOptions.push("OCT");b._popupOptions.push("DEC");b._popupOptions.push("HEX")}},_validateValue:function(e,g){var d=this;if(e!==""){var f=new d.longObj.math.Long.fromString((e).toString(),d._radixNumber);if(f.lessThan(d._minLong)){if(g){d._number=d._minLong;var c=d._minLong.toString(d._radixNumber);if(d._radixNumber===16&&d.upperCase===true){c=c.toUpperCase()}d.element.value=c;return c}else{return false}}else{if(f.greaterThan(d._maxLong)){if(g){d._number=d._maxLong;var b=d._maxLong.toString(d._radixNumber);if(d._radixNumber===16&&d.upperCase===true){b=b.toUpperCase()}d.element.value=b;return b}else{return false}}else{if(g){d._number=f;d.element.value=e;return e}else{return true}}}}else{if(g){d.element.value="";return e}else{return true}}},_getNegativeDecimal:function(l,h){var o=l;if(h===8){var n=new Array();for(var f=0;f<11;f++){var b=parseInt(l.charAt(f),8).toString(2);while(b.length!==3){b="0"+b}n.push(b)}o=n.join("");if(o.charAt(0)==="0"){o=o.slice(1)}}else{if(h===16){var p=new Array();for(var e=0;e<8;e++){var m=parseInt(l.charAt(e),16).toString(2);while(m.length!==4){m="0"+m}p.push(m)}o=p.join("")}}var d="";for(var c=0;c=0){k=k.toFixed(j)}var i=k+"×10"+e._toSuperScript((parseInt(m,10)-l).toString());return i}var g=h(f);if(c==="scientific"){return d(g)}else{if(c==="engineering"){return b(g)}else{return g}}},_toSuperScript:function(h,g){var f="-0123456789";var d="⁻⁰¹²³⁴⁵⁶⁷⁸⁹";var c="";for(var e=0;e=0;n--){var q=s.charAt(n);var b;if(q==="0"){if(d===true){b="1";d=false}else{b="0"}}else{if(d===true){b="0"}else{b="1"}}g=b+""+g}switch(r){case 2:return g;case 8:g="00"+g;var f="";for(var m=22;m>=1;m--){var p=g[m*3-3]+""+g[m*3-2]+""+g[m*3-1];f=parseInt(p,2).toString(8)+""+f}return f;case 16:var e="";for(var h=16;h>=1;h--){var c=g[h*4-4]+""+g[h*4-3]+""+g[h*4-2]+""+g[h*4-1];e=parseInt(c,2).toString(16)+""+e}return e}},_Long:function(){var c=this;c.longObj=new Object();var b=c.longObj;b.math=new Object();b.math.Long=new Object();b.math.Long=function(d,e){this.lowBits=d|0;this.highBits=e|0};b.math.Long.IntCache={};b.math.Long.fromInt=function(d){if(-128<=d&&d<128){var f=b.math.Long.IntCache[d];if(f){return f}}var e=new b.math.Long(d|0,d<0?-1:0);if(-128<=d&&d<128){b.math.Long.IntCache[d]=e}return e};b.math.Long.fromNumber=function(d){if(isNaN(d)||!isFinite(d)){return b.math.Long.ZERO}else{if(d<=-b.math.Long.TWO_PWR_63_DBL_){return b.math.Long.MIN_VALUE}else{if(d+1>=b.math.Long.TWO_PWR_63_DBL_){return b.math.Long.MAX_VALUE}else{if(d<0){return b.math.Long.fromNumber(-d).negate()}else{return new b.math.Long((d%b.math.Long.TWO_PWR_32_DBL_)|0,(d/b.math.Long.TWO_PWR_32_DBL_)|0)}}}}};b.math.Long.fromBits=function(d,e){return new b.math.Long(d,e)};b.math.Long.fromString=function(f,j){if(f.length===0){throw new Error("number format error: empty string")}var g=j||10;if(g<2||36=0){throw new Error('number format error: interior "-" character: '+f)}}var k=b.math.Long.fromNumber(Math.pow(g,8));var m=b.math.Long.ZERO;for(var e=0;e=0)?this.lowBits:b.math.Long.TWO_PWR_32_DBL_+this.lowBits};b.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative()){if(this.equals(b.math.Long.MIN_VALUE)){return 64}else{return this.negate().getNumBitsAbs()}}else{var e=this.highBits!==0?this.highBits:this.lowBits;for(var d=31;d>0;d--){if((e&(1<0};b.math.Long.prototype.greaterThanOrEqual=function(d){return this.compare(d)>=0};b.math.Long.prototype.compare=function(e){if(this.equals(e)){return 0}var d=this.isNegative();var f=e.isNegative();if(d&&!f){return -1}if(!d&&f){return 1}if(this.subtract(e).isNegative()){return -1}else{return 1}};b.math.Long.prototype.negate=function(){if(this.equals(b.math.Long.MIN_VALUE)){return b.math.Long.MIN_VALUE}else{return this.not().add(b.math.Long.ONE)}};b.math.Long.prototype.add=function(k){var i=this.highBits>>>16;var e=this.highBits&65535;var l=this.lowBits>>>16;var f=this.lowBits&65535;var n=k.highBits>>>16;var g=k.highBits&65535;var o=k.lowBits>>>16;var h=k.lowBits&65535;var p=0,j=0,d=0,m=0;m+=f+h;d+=m>>>16;m&=65535;d+=l+o;j+=d>>>16;d&=65535;j+=e+g;p+=j>>>16;j&=65535;p+=i+n;p&=65535;return b.math.Long.fromBits((d<<16)|m,(p<<16)|j)};b.math.Long.prototype.subtract=function(d){return this.add(d.negate())};b.math.Long.prototype.multiply=function(k){if(this.isZero()){return b.math.Long.ZERO}else{if(k.isZero()){return b.math.Long.ZERO}}if(this.equals(b.math.Long.MIN_VALUE)){return k.isOdd()?b.math.Long.MIN_VALUE:b.math.Long.ZERO}else{if(k.equals(b.math.Long.MIN_VALUE)){return this.isOdd()?b.math.Long.MIN_VALUE:b.math.Long.ZERO}}if(this.isNegative()){if(k.isNegative()){return this.negate().multiply(k.negate())}else{return this.negate().multiply(k).negate()}}else{if(k.isNegative()){return this.multiply(k.negate()).negate()}}if(this.lessThan(b.math.Long.TWO_PWR_24_)&&k.lessThan(b.math.Long.TWO_PWR_24_)){return b.math.Long.fromNumber(this.toNumber()*k.toNumber())}var i=this.highBits>>>16;var e=this.highBits&65535;var l=this.lowBits>>>16;var f=this.lowBits&65535;var n=k.highBits>>>16;var g=k.highBits&65535;var o=k.lowBits>>>16;var h=k.lowBits&65535;var p=0,j=0,d=0,m=0;m+=f*h;d+=m>>>16;m&=65535;d+=l*h;j+=d>>>16;d&=65535;d+=f*o;j+=d>>>16;d&=65535;j+=e*h;p+=j>>>16;j&=65535;j+=l*o;p+=j>>>16;j&=65535;j+=f*g;p+=j>>>16;j&=65535;p+=i*h+e*o+l*g+f*n;p&=65535;return b.math.Long.fromBits((d<<16)|m,(p<<16)|j)};b.math.Long.prototype.div=function(f){if(f.isZero()){throw new Error("division by zero")}else{if(this.isZero()){return b.math.Long.ZERO}}var i,k;if(this.equals(b.math.Long.MIN_VALUE)){if(f.equals(b.math.Long.ONE)||f.equals(b.math.Long.NEG_ONE)){return b.math.Long.MIN_VALUE}else{if(f.equals(b.math.Long.MIN_VALUE)){return b.math.Long.ONE}else{var d=this.shiftRight(1);i=d.div(f).shiftLeft(1);if(i.equals(b.math.Long.ZERO)){return f.isNegative()?b.math.Long.ONE:b.math.Long.NEG_ONE}else{k=this.subtract(f.multiply(i));var m=i.add(k.div(f));return m}}}}else{if(f.equals(b.math.Long.MIN_VALUE)){return b.math.Long.ZERO}}if(this.isNegative()){if(f.isNegative()){return this.negate().div(f.negate())}else{return this.negate().div(f).negate()}}else{if(f.isNegative()){return this.div(f.negate()).negate()}}var g=b.math.Long.ZERO;k=this;while(k.greaterThanOrEqual(f)){i=Math.max(1,Math.floor(k.toNumber()/f.toNumber()));var l=Math.ceil(Math.log(i)/Math.LN2);var j=(l<=48)?1:Math.pow(2,l-48);var e=b.math.Long.fromNumber(i);var h=e.multiply(f);while(h.isNegative()||h.greaterThan(k)){i-=j;e=b.math.Long.fromNumber(i);h=e.multiply(f)}if(e.isZero()){e=b.math.Long.ONE}g=g.add(e);k=k.subtract(h)}return g};b.math.Long.prototype.modulo=function(d){return this.subtract(this.div(d).multiply(d))};b.math.Long.prototype.not=function(){return b.math.Long.fromBits(~this.lowBits,~this.highBits)};b.math.Long.prototype.and=function(d){return b.math.Long.fromBits(this.lowBits&d.lowBits,this.highBits&d.highBits)};b.math.Long.prototype.or=function(d){return b.math.Long.fromBits(this.lowBits|d.lowBits,this.highBits|d.highBits)};b.math.Long.prototype.xor=function(d){return b.math.Long.fromBits(this.lowBits^d.lowBits,this.highBits^d.highBits)};b.math.Long.prototype.shiftLeft=function(f){f&=63;if(f===0){return this}else{var d=this.lowBits;if(f<32){var e=this.highBits;return b.math.Long.fromBits(d<>>(32-f)))}else{return b.math.Long.fromBits(0,d<<(f-32))}}};b.math.Long.prototype.shiftRight=function(f){f&=63;if(f===0){return this}else{var e=this.highBits;if(f<32){var d=this.lowBits;return b.math.Long.fromBits((d>>>f)|(e<<(32-f)),e>>f)}else{return b.math.Long.fromBits(e>>(f-32),e>=0?0:-1)}}};b.math.Long.prototype.shiftRightUnsigned=function(f){f&=63;if(f===0){return this}else{var e=this.highBits;if(f<32){var d=this.lowBits;return b.math.Long.fromBits((d>>>f)|(e<<(32-f)),e>>>f)}else{if(f===32){return b.math.Long.fromBits(e,0)}else{return b.math.Long.fromBits(e>>>(f-32),0)}}}}}})})(jqxBaseFramework); \ No newline at end of file diff --git a/htdocs/public/jqwidgets/jqxgauge.js b/htdocs/public/jqwidgets/jqxgauge.js deleted file mode 100644 index 9a7ef334..00000000 --- a/htdocs/public/jqwidgets/jqxgauge.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -jQWidgets v4.0.0 (2016-Jan) -Copyright (c) 2011-2016 jQWidgets. -License: http://jqwidgets.com/license/ -*/ - -(function(d){var b={defineInstance:function(){var e={width:350,height:350,radius:"50%",endAngle:270,startAngle:30,int64:false,value:0,min:0,max:220,disabled:false,ticksDistance:"20%",colorScheme:"scheme01",animationDuration:400,showRanges:true,easing:"easeOutCubic",labels:null,pointer:null,cap:null,caption:null,border:null,ticksMinor:null,ticksMajor:null,tickMode:"default",niceInterval:false,style:null,ranges:[],_radius:100,_border:null,_radiusDifference:2,_pointer:null,_labels:[],_cap:null,_ticks:[],_ranges:[],_gauge:null,_caption:null,_animationTimeout:10,renderer:null,_animations:[],aria:{"aria-valuenow":{name:"value",type:"number"},"aria-valuemin":{name:"min",type:"number"},"aria-valuemax":{name:"max",type:"number"},"aria-disabled":{name:"disabled",type:"boolean"}}};d.extend(true,this,e);return e},createInstance:function(f){var e=this;e.that=this;d.jqx.aria(e);e._radius=e.radius;e.endAngle=e.endAngle*Math.PI/180+Math.PI/2;e.startAngle=e.startAngle*Math.PI/180+Math.PI/2;if(e.int64==="s"){if(!d.jqx.longInt){throw new Error("jqxGauge: Missing reference to jqxdata.js")}d.jqx.longInt(e);e._value64=new d.jqx.math().fromString(e.value.toString(),10);e._min64=new d.jqx.math().fromString(e.min.toString(),10);e._max64=new d.jqx.math().fromString(e.max.toString(),10)}else{if(e.int64==="u"){try{BigNumber}catch(g){throw new Error("jqxGauge: Missing reference to bignumber.js")}e._value64=new BigNumber(e.value);e._min64=new BigNumber(e.min);e._max64=new BigNumber(e.max)}else{e.value=new Number(e.value)}}e._refresh();e.renderer.getContainer().css("overflow","hidden");if(e.int64!==false){e.setValue(e._value64,0)}else{e.setValue(e.value,0)}d.jqx.utilities.resize(e.host,function(){e._refresh()});e.host.addClass(e.toThemeProperty("jqx-widget"))},_validateEasing:function(){return !!d.easing[this.easing]},_validateProperties:function(){if(this.startAngle===this.endAngle){throw new Error("The end angle can not be equal to the start angle!")}if(!this._validateEasing()){this.easing="linear"}this.ticksDistance=this._validatePercentage(this.ticksDistance,"20%");this.border=this._borderConstructor(this.border,this);this.style=this.style||{fill:"#ffffff",stroke:"#E0E0E0"};this.ticksMinor=new this._tickConstructor(this.ticksMinor,this);this.ticksMajor=new this._tickConstructor(this.ticksMajor,this);this.cap=new this._capConstructor(this.cap,this);this.pointer=new this._pointerConstructor(this.pointer,this);this.labels=new this._labelsConstructor(this.labels,this);this.caption=new this._captionConstructor(this.caption,this);for(var e=0;e";this._gaugeParent=i.children();this._gaugeParent.width(h);this._gaugeParent.height(e);this.renderer.init(this._gaugeParent)},_initRenderer:function(e){if(!d.jqx.createRenderer){throw"Please include a reference to jqxdraw.js"}return d.jqx.createRenderer(this,e)},_refresh:function(){var e=this;if(!e.renderer){e._isVML=false;e.host.empty();e._initRenderer(e.host)}var f=e.renderer;if(!f){return}if(e._ranges){d(e._ranges).remove()}if(e._pointer){d(e._pointer).remove()}if(e._labels){d(e._labels).remove()}if(e._cap){d(e._cap).remove()}if(e._ticks){d(e._ticks).remove()}if(e._border){d(e._border).remove()}if(e._caption){d(e._caption).remove()}e._caption=null;e._labels=[];e._cap=null;e._ticks=[];e._ranges=[];e._border=null;e._pointer=null;e._validateProperties();e._removeElements();e._hostInit();e._render();e.setValue(this.value,0)},val:function(e){if(arguments.length==0||typeof(e)=="object"){return this.value}this.setValue(e,0)},refresh:function(){this._refresh.apply(this,Array.prototype.slice(arguments))},_outerBorderOffset:function(){var e=parseInt(this.border.style["stroke-width"],10)||1;return e/2},_removeCollection:function(f){for(var e=0;e=1?i:new Number(i).toFixed(2),distance:p._getDistance(p._getLabelsDistance()),style:p.labels.className})}}if(p.int64==="s"){if(this.tickMode==="default"){n=new d.jqx.math().fromString((r.interval).toString(),10);if(this.niceInterval){q=this._getNiceInterval("radial")}else{q=new d.jqx.math().fromString((g.interval).toString(),10)}}else{startToEnd=this._max64.subtract(this._min64);n=startToEnd.div(new d.jqx.math().fromString((r.number).toString(),10));q=startToEnd.div(new d.jqx.math().fromString((g.number).toString(),10))}if(this.niceInterval){m(this._min64);e(this._min64);var f=this._min64.subtract(this._min64.modulo(q)).add(q);for(var l=f,k=f;l.lessThan(this._max64)||k.lessThan(this._max64);l=l.add(n),k=k.add(q)){if(k.lessThanOrEqual(this._max64)&&g.visible){m(k);o[k.toString()]=true;if(l.equals(f)){if(Math.abs(this._getAngleByValue(k)-this._getAngleByValue(this.min))*this._innerRadius>this._getMaxLabelSize()["height"]){e(k)}}else{if((k.add(q)).lessThan(this._max64)){e(k)}else{if(Math.abs(this._getAngleByValue(k)-this._getAngleByValue(this.max))*this._innerRadius>this._getMaxLabelSize()["height"]){e(k)}}}}if(!o[l.toString()]&&r.visible&&l.lessThanOrEqual(p._max64)){h(l)}}m(this._max64);e(this._max64)}else{for(var l=new d.jqx.math().fromString((p.min).toString(),10),k=new d.jqx.math().fromString((p.min).toString(),10);l.lessThanOrEqual(p._max64)||k.lessThanOrEqual(p._max64);l=l.add(n),k=k.add(q)){if(k.lessThanOrEqual(p._max64)&&g.visible){m(k);o[k.toString()]=true}if(!o[l.toString()]&&r.visible&&l.lessThanOrEqual(p._max64)){h(l)}}}}else{if(p.int64==="u"){if(this.tickMode==="default"){n=new BigNumber(r.interval);if(this.niceInterval){q=this._getNiceInterval("radial")}else{q=new BigNumber(g.interval)}}else{startToEnd=this._max64.subtract(this._min64);n=startToEnd.divide(new BigNumber(r.number));q=startToEnd.divide(new BigNumber(g.number))}if(this.niceInterval){m(this._min64);e(this._min64);var f=this._min64.subtract(this._min64.mod(q)).add(q);for(var l=f,k=f;l.compare(this._max64)===-1||k.compare(this._max64)===-1;l=l.add(n),k=k.add(q)){if(k.compare(this._max64)!==1&&g.visible){m(k);o[k.toString()]=true;if(l.compare(f)===0){if(Math.abs(this._getAngleByValue(k)-this._getAngleByValue(this.min))*this._innerRadius>this._getMaxLabelSize()["height"]){e(k)}}else{if((k.add(q)).compare(this._max64)===-1){e(k)}else{if(Math.abs(this._getAngleByValue(k)-this._getAngleByValue(this.max))*this._innerRadius>this._getMaxLabelSize()["height"]){e(k)}}}}if(!o[l.toString()]&&r.visible&&(l.compare(p._max64)!==1)){h(l)}}m(this._max64);e(this._max64)}else{for(var l=new BigNumber(p.min),k=new BigNumber(p.min);(l.compare(p._max64)!==1)||(k.compare(p._max64)!==1);l=l.add(n),k=k.add(q)){if((k.compare(p._max64)!==1)&&g.visible){m(k);o[k.toString()]=true}if(!o[l.toString()]&&r.visible&&(l.compare(p._max64)!==1)){h(l)}}}}else{if(this.tickMode==="default"){n=r.interval;if(this.niceInterval){q=this._getNiceInterval("radial")}else{q=g.interval}}else{startToEnd=this.max-this.min;n=startToEnd/r.number;q=startToEnd/g.number}if(this.niceInterval){m(this.min);e(this.min);var f=this.min-(this.min%q)+q;for(var l=f,k=f;lthis._getMaxLabelSize()["height"]){e(k)}}else{if(k+qthis._getMaxLabelSize()["height"]){e(k)}}}}if(!o[l.toFixed(5)]&&r.visible&&l<=this.max){h(l)}}m(this.max);e(this.max)}else{for(var l=this.min,k=this.min;l<=this.max||k<=this.max;l+=n,k+=q){if(k<=this.max&&g.visible){m(k);o[k.toFixed(5)]=true}if(!o[l.toFixed(5)]&&r.visible&&l<=this.max){h(l)}}}}}this._handleTicksVisibility()},_handleTicksVisibility:function(){if(!this.ticksMinor.visible){this.host.children(".jqx-gauge-tick-minor").css("visibility","hidden")}else{this.host.children(".jqx-gauge-tick-minor").css("visibility","visible")}if(!this.ticksMajor.visible){this.host.children(".jqx-gauge-tick-major").css("visibility","hidden")}else{this.host.children(".jqx-gauge-tick-major").css("visibility","visible")}},_getSize:function(e){if(e.toString().indexOf("%")>=0){e=(parseInt(e,10)/100)*this._innerRadius}e=parseInt(e,10);return e},_getDistance:function(e){return this._getSize(e)+(this._originalRadius-this._innerRadius)},_drawTick:function(s){var l=this.that;var j=s.angle,g=s.distance,q=s.size,k=l._outerBorderOffset(),e=l._originalRadius,i=e-g,m=i-q,h=e+k+i*Math.sin(j),o=e+k+i*Math.cos(j),f=e+k+m*Math.sin(j),n=e+k+m*Math.cos(j),p;s.style["class"]=l.toThemeProperty("jqx-gauge-tick-"+s.type);if(l._isVML){h=Math.round(h);f=Math.round(f);o=Math.round(o);n=Math.round(n)}p=l.renderer.line(h,o,f,n,s.style);l._ticks.push(p)},_addRanges:function(){var f="visible";if(!this.showRanges){f="hidden"}else{var e=this.ranges;for(var g=0;gh){h=j}if(e>h){h=e}}return h},_getRangeDistance:function(i,e){var h=this._getLabelsDistance(),f=this._getDistance(i),g=this._getMaxRangeSize();if(this.labels.position==="outside"){if(hn.max))){return}var q=n.int64?n._getAngleByValue(m._startValue64):n._getAngleByValue(m.startValue),j=n.int64?n._getAngleByValue(m._endValue64):n._getAngleByValue(m.endValue);var o=n._originalRadius,f=o-n._getRangeDistance(m.startDistance,m.startWidth),s=o-n._getRangeDistance(m.endDistance,m.endWidth),l=m.startWidth,e=m.endWidth,k=n._outerBorderOffset(),i={x:o+k+f*Math.sin(q),y:o+k+f*Math.cos(q)},r={x:o+k+s*Math.sin(j),y:o+k+s*Math.cos(j)},t=n._getProjectionPoint(q,o+k,f,l),p=n._getProjectionPoint(j,o+k,s,e),h="default",u,m;if(Math.abs(j-q)>Math.PI){h="opposite"}if(n._isVML){u=n._rangeVMLRender(i,r,o,t,p,e,l,f,s,h)}else{u=n._rangeSVGRender(i,r,o,t,p,e,l,f,s,h)}m.style.visibility=g;m.style["class"]=n.toThemeProperty("jqx-gauge-range");m=n.renderer.path(u,m.style);n._ranges.push(m)},_rangeSVGRender:function(i,m,k,o,l,e,j,f,n,h){var p="",f=k-f,n=k-n,g=["0,1","0,0"];if(h==="opposite"){g=["1,1","1,0"]}p="M"+i.x+","+i.y+" ";p+="A"+(k-f)+","+(k-f)+" 100 "+g[0]+" "+m.x+","+m.y+" ";p+="L "+(l.x)+","+(l.y)+" ";p+="A"+(k-e-f)+","+(k-e-f)+" 100 "+g[1]+" "+(o.x)+","+(o.y)+" ";p+="L "+(i.x)+","+(i.y)+" ";p+="z";return p},_rangeVMLRender:function(p,m,h,w,i,l,n,q,s,f){h-=h-q+10;var o="",r=Math.floor(h+(n+l)/2),q=Math.floor(h-q),s=Math.floor(s),t={x:(w.x+i.x)/2,y:(w.y+i.y)/2},e=Math.sqrt((i.x-w.x)*(i.x-w.x)+(i.y-w.y)*(i.y-w.y)),v=Math.floor(t.x+Math.sqrt(h*h-(e/2)*(e/2))*(w.y-i.y)/e),u=Math.floor(t.y+Math.sqrt(h*h-(e/2)*(e/2))*(i.x-w.x)/e),x={x:(p.x+m.x)/2,y:(p.y+m.y)/2},g=Math.sqrt((m.x-p.x)*(m.x-p.x)+(m.y-p.y)*(m.y-p.y)),k=Math.floor(x.x+Math.sqrt(Math.abs(r*r-(g/2)*(g/2)))*(p.y-m.y)/g),j=Math.floor(x.y+Math.sqrt(Math.abs(r*r-(g/2)*(g/2)))*(m.x-p.x)/g);if(f==="opposite"){v=Math.floor(t.x-Math.sqrt(h*h-(e/2)*(e/2))*(w.y-i.y)/e);u=Math.floor(t.y-Math.sqrt(h*h-(e/2)*(e/2))*(i.x-w.x)/e);k=Math.floor(x.x-Math.sqrt(Math.abs(r*r-(g/2)*(g/2)))*(p.y-m.y)/g);j=Math.floor(x.y-Math.sqrt(Math.abs(r*r-(g/2)*(g/2)))*(m.x-p.x)/g)}h=Math.floor(h);m={x:Math.floor(m.x),y:Math.floor(m.y)};p={x:Math.floor(p.x),y:Math.floor(p.y)};w={x:Math.floor(w.x),y:Math.floor(w.y)};i={x:Math.floor(i.x),y:Math.floor(i.y)};o="m "+m.x+","+m.y;o+="at "+(k-r)+" "+(j-r)+" "+(r+k)+" "+(r+j)+" "+m.x+","+m.y+" "+p.x+","+p.y;o+="l "+w.x+","+w.y;o+="m "+m.x+","+m.y;o+="l "+i.x+","+i.y;o+="at "+(v-h)+" "+(u-h)+" "+(h+v)+" "+(h+u)+" "+i.x+","+i.y+" "+w.x+","+w.y;o+="qx "+w.x+" "+w.y;return o},_getProjectionPoint:function(i,f,h,g){var e={x:f+(h-g)*Math.sin(i),y:f+(h-g)*Math.cos(i)};return e},_addLabels:function(h){var g=this,f=g._getLabelInterval();if(g.labels.visible){var j=this._getDistance(this._getLabelsDistance()),i;if(g.int64==="s"){for(var e=new d.jqx.math().fromNumber(g.min.toString(),10);e.lessThanOrEqual(g._max64);e=e.add(f)){if(e.lessThan(g._min64)||e.greaterThan(g._max64)){break}this._addLabel({angle:this._getAngleByValue(e),value:e.toString(),distance:j,style:this.labels.className})}}else{if(g.int64==="u"){for(var e=new BigNumber(g.min);e.compare(g._max64)!==1;e=e.add(f)){if((e.compare(g._min64)===-1)||(e.compare(g._max64)===1)){break}this._addLabel({angle:this._getAngleByValue(e),value:e.toString(),distance:j,style:this.labels.className})}}else{for(var e=this.min;e<=this.max;e+=f){this._addLabel({angle:this._getAngleByValue(e),value:f>=1?e:new Number(e).toFixed(2),distance:j,style:this.labels.className})}}}}},_getLabelsDistance:function(){var g=this._getMaxLabelSize(),f=this._getDistance(this.labels.distance),e=this._getDistance(this.ticksDistance);g=g.width;if(this.labels.position==="inside"){return e+g-5}else{if(this.labels.position==="outside"){if(f<(e-g*1.5)){return f}return Math.max(e-g*1.5,0.6*g)}}return this.labels.distance},_addLabel:function(s){var j=this.that;var g=s.angle,f=j._originalRadius,p=f-s.distance,h=j.labels.offset,q=j.labels.formatValue,i=j._outerBorderOffset(),n=f+i+p*Math.sin(g)+h[0],l=f+i+p*Math.cos(g)+h[1],o=s.value,k=s.style||"",e,m;if(typeof q==="function"){o=q(o)}e=j.renderer.measureText(o,0,{"class":k});m=j.renderer.text(o,Math.round(n)-e.width/2,Math.round(l),e.width,e.height,0,{"class":this.toThemeProperty("jqx-gauge-label")});j._labels.push(m)},_addCaption:function(){if(this.caption.visible!==false){var i=this.that;var k=i.caption.value,j=i.toThemeProperty("jqx-gauge-caption"),g=i.caption.offset,m=i.renderer.measureText(k,0,{"class":j}),h=i._getPosition(this.caption.position,m,g),e=i.caption.style,f=i._outerBorderOffset(),l=i.renderer.text(k,h.left+f,h.top+f,m.width,m.height,0,{"class":j});this._caption=l}},_getPosition:function(e,f,j){var i=0,h=0,g=this._originalRadius;switch(e){case"left":i=(g-f.width)/2;h=g-f.height/2;break;case"right":i=g+(g-f.width)/2;h=g-f.height/2;break;case"bottom":i=(2*g-f.width)/2;h=(g+2*g-f.height)/2;break;default:i=(2*g-f.width)/2;h=(g+f.height)/2;break}return{left:i+j[0],top:h+j[1]}},_addPointer:function(){var g="visible";if(!this.pointer.visible){g="hidden"}var f=this._originalRadius,i=this._getSize(this.pointer.length),j=i*0.9,k=this._getAngleByValue(this.value),e=this.pointer.pointerType,h;h=this._computePointerPoints(this._getSize(this.pointer.width),k,i,e!=="default");this._pointer=this.renderer.path(h,this.pointer.style);d(this._pointer).css("visibility",g)},_computePointerPoints:function(e,g,h,f){if(!f){return this._computeArrowPoints(e,g,h)}else{return this._computeRectPoints(e,g,h)}},_computeArrowPoints:function(n,g,k){var f=this._originalRadius-0.5,l=Math.sin(g),q=Math.cos(g),j=this._outerBorderOffset(),o=f+j+k*l,m=f+j+k*q,i=f+j+n*q,e=f+j-n*l,h=f+j-n*q,s=f+j+n*l,p;if(this._isVML){i=Math.round(i);h=Math.round(h);e=Math.round(e);s=Math.round(s);o=Math.round(o);m=Math.round(m)}p="M "+i+","+e+" L "+h+","+s+" L "+o+","+m+"";return p},_computeRectPoints:function(q,i,o){var f=this._originalRadius,p=Math.sin(i),t=Math.cos(i),u=o,l=this._outerBorderOffset(),n=f+l-q*t+o*p,h=f+l+q*p+o*t,m=f+l+q*t+o*p,g=f+l-q*p+o*t,k=f+l+q*t,e=f+l-q*p,j=f+l-q*t,v=f+l+q*p,s;if(this._isVML){k=Math.round(k);j=Math.round(j);e=Math.round(e);v=Math.round(v);n=Math.round(n);h=Math.round(h);m=Math.round(m);g=Math.round(g)}s="M "+k+","+e+" L "+j+","+v+" L "+n+","+h+" "+m+","+g;return s},_getAngleByValue:function(s){var v=this,p=v.startAngle,t=p-v.endAngle,e,k,o,n,h;if(v.int64!==false){if(v.int64==="s"){s=new d.jqx.math().fromString(s.toString(),10)}else{s=new BigNumber(s)}e=v._min64;k=v._max64;o=k.subtract(e);n=s.subtract(e);if(v.int64==="u"){n=n.intPart()}var f=o.toString(),j,r=n.toString(),g;if(f.length>15){var u=f.length-15;f=f.slice(0,15)+"."+f.slice(15);j=parseFloat(f);if(r.length>u){var q=r.length-u;r=r.slice(0,q)+"."+r.slice(q)}else{if(r.length===u){r="0."+r}else{var m="0.";for(var l=0;l=f.min)){var i=f._getAngleByValue(h),e=f.pointer.pointerType,g=f._computePointerPoints(f._getSize(f.pointer.width),i,f._getSize(f.pointer.length),e!=="default");if(f._isVML){if(f._pointer){d(f._pointer).remove()}f._pointer=f.renderer.path(g,f.pointer.style)}else{f.renderer.attr(f._pointer,{d:g})}if(f.int64!==false){f.value=h.toString();if(f.int64==="s"){f._value64=new d.jqx.math().fromString(f.value,10)}else{f._value64=new BigNumber(f.value)}}else{f.value=h}d.jqx.aria(f,"aria-valuenow",h.toString())}},resize:function(f,e){this.width=f;this.height=e;this.refresh()},propertyChangedHandler:function(e,f,h,g){if(g==h){return}if(f=="min"){if(e.int64==="s"){e._min64=new d.jqx.math().fromString(g.toString(),10)}else{if(e.int64==="u"){e._min64=new BigNumber(g)}else{this.min=parseInt(g)}}d.jqx.aria(e,"aria-valuemin",g)}if(f=="max"){if(e.int64==="s"){e._max64=new d.jqx.math().fromString(g.toString(),10)}else{if(e.int64==="u"){e._max64=new BigNumber(g)}else{this.max=parseInt(g)}}d.jqx.aria(e,"aria-valuemax",g)}if(f==="disabled"){if(g){this.disable()}else{this.enable()}d.jqx.aria(this,"aria-disabled",g)}else{if(f==="value"){this.value=h;this.setValue(g)}else{if(f==="startAngle"){this.startAngle=this.startAngle*Math.PI/180+Math.PI/2}else{if(f==="endAngle"){this.endAngle=this.endAngle*Math.PI/180+Math.PI/2}else{if(f==="colorScheme"){this.pointer.style=null;this.cap.style=null}else{if(f==="radius"){this._radius=g}}}}if(f!=="animationDuration"&&f!=="easing"){this._refresh()}}}if(this.renderer instanceof d.jqx.HTML5Renderer){this.renderer.refresh()}},_tickConstructor:function(g,e){if(this.host){return new this._tickConstructor(g,e)}g=g||{};this.size=e._validatePercentage(g.size,"10%");function f(h,i){if(e.int64===false){h[i]=parseFloat(g[i])}else{h[i]=g[i]}if(!h[i]){h[i]=5}}f(this,"interval");f(this,"number");this.style=g.style||{stroke:"#898989","stroke-width":1};if(typeof g.visible==="undefined"){this.visible=true}else{this.visible=g.visible}},_capConstructor:function(g,e){var f=e._getColorScheme(e.colorScheme)[0];if(this.host){return new this._capConstructor(g,e)}g=g||{};if(typeof g.visible==="undefined"){this.visible=true}else{this.visible=g.visible}this.size=e._validatePercentage(g.size,"4%");this.style=g.style||{fill:f,"stroke-width":"1px",stroke:f,"z-index":30}},_pointerConstructor:function(g,e){var f=e._getColorScheme(e.colorScheme)[0];if(this.host){return new this._pointerConstructor(g,e)}g=g||{};if(typeof g.visible==="undefined"){this.visible=true}else{this.visible=g.visible}this.pointerType=g.pointerType;if(this.pointerType!=="default"&&this.pointerType!=="rectangle"){this.pointerType="default"}this.style=g.style||{"z-index":0,stroke:f,fill:f,"stroke-width":1};this.length=e._validatePercentage(g.length,"70%");this.width=e._validatePercentage(g.width,"2%")},_labelsConstructor:function(f,e){if(this.host){return new this._labelsConstructor(f,e)}f=f||{};if(typeof f.visible==="undefined"){this.visible=true}else{this.visible=f.visible}this.offset=f.offset;if(!(this.offset instanceof Array)){this.offset=[0,-10]}if(!f.interval){f.interval=20}if(e.int64!==false){this.interval=f.interval;if(e.int64==="s"){this._interval64=new d.jqx.math().fromString(f.interval.toString(),10)}else{this._interval64=new BigNumber(f.interval)}}else{this.interval=parseFloat(f.interval)}if(!f.number){f.number=5}this.number=f.number;this.distance=e._validatePercentage(f.distance,"38%");this.position=f.position;if(this.position!=="inside"&&this.position!=="outside"){this.position="none"}this.formatValue=f.formatValue;if(typeof this.formatValue!=="function"){this.formatValue=function(g){return g}}},_captionConstructor:function(f,e){if(this.host){return new this._captionConstructor(f,e)}f=f||{};if(typeof f.visible==="undefined"){this.visible=true}else{this.visible=f.visible}this.value=f.value||"";this.position=f.position;if(this.position!=="bottom"&&this.position!=="top"&&this.position!=="left"&&this.position!=="right"){this.position="bottom"}this.offset=f.offset;if(!(this.offset instanceof Array)){this.offset=[0,0]}},_rangeConstructor:function(f,e){if(this.host){return new this._rangeConstructor(f,e)}f=f||{};this.startDistance=e._validatePercentage(f.startDistance,"5%");this.endDistance=e._validatePercentage(f.endDistance,"5%");this.style=f.style||{fill:"#000000",stroke:"#111111"};this.startWidth=parseFloat(f.startWidth,10);if(!this.startWidth){this.startWidth=10}this.startWidth=Math.max(this.startWidth,2);this.endWidth=parseFloat(f.endWidth,10);if(!this.endWidth){this.endWidth=10}this.endWidth=Math.max(this.endWidth,2);if(f.startValue===undefined){f.startValue=0}if(f.endValue===undefined){f.endValue=100}if(e.int64!==false){this.startValue=f.startValue;this.endValue=f.endValue;if(e.int64==="s"){this._startValue64=new d.jqx.math().fromString(f.startValue.toString(),10);this._endValue64=new d.jqx.math().fromString(f.endValue.toString(),10)}else{this._startValue64=new BigNumber(f.startValue);this._endValue64=new BigNumber(f.endValue)}}else{this.startValue=parseFloat(f.startValue,10);this.endValue=parseFloat(f.endValue,10)}},_borderConstructor:function(f,e){if(this.host){return new this._borderConstructor(f,e)}f=f||{};this.size=e._validatePercentage(f.size,"10%");this.style=f.style||{stroke:"#cccccc"};if(typeof f.showGradient==="undefined"){this.showGradient=true}else{this.showGradient=f.showGradient}if(typeof f.visible==="undefined"){this.visible=true}else{this.visible=f.visible}}};var c={_events:["valueChanging","valueChanged"],_animationTimeout:10,_schemes:[{name:"scheme01",colors:["#307DD7","#AA4643","#89A54E","#71588F","#4198AF"]},{name:"scheme02",colors:["#7FD13B","#EA157A","#FEB80A","#00ADDC","#738AC8"]},{name:"scheme03",colors:["#E8601A","#FF9639","#F5BD6A","#599994","#115D6E"]},{name:"scheme04",colors:["#D02841","#FF7C41","#FFC051","#5B5F4D","#364651"]},{name:"scheme05",colors:["#25A0DA","#309B46","#8EBC00","#FF7515","#FFAE00"]},{name:"scheme06",colors:["#0A3A4A","#196674","#33A6B2","#9AC836","#D0E64B"]},{name:"scheme07",colors:["#CC6B32","#FFAB48","#FFE7AD","#A7C9AE","#888A63"]},{name:"scheme08",colors:["#3F3943","#01A2A6","#29D9C2","#BDF271","#FFFFA6"]},{name:"scheme09",colors:["#1B2B32","#37646F","#A3ABAF","#E1E7E8","#B22E2F"]},{name:"scheme10",colors:["#5A4B53","#9C3C58","#DE2B5B","#D86A41","#D2A825"]},{name:"scheme11",colors:["#993144","#FFA257","#CCA56A","#ADA072","#949681"]},{name:"scheme12",colors:["#105B63","#EEEAC5","#FFD34E","#DB9E36","#BD4932"]},{name:"scheme13",colors:["#BBEBBC","#F0EE94","#F5C465","#FA7642","#FF1E54"]},{name:"scheme14",colors:["#60573E","#F2EEAC","#BFA575","#A63841","#BFB8A3"]},{name:"scheme15",colors:["#444546","#FFBB6E","#F28D00","#D94F00","#7F203B"]},{name:"scheme16",colors:["#583C39","#674E49","#948658","#F0E99A","#564E49"]},{name:"scheme17",colors:["#142D58","#447F6E","#E1B65B","#C8782A","#9E3E17"]},{name:"scheme18",colors:["#4D2B1F","#635D61","#7992A2","#97BFD5","#BFDCF5"]},{name:"scheme19",colors:["#844341","#D5CC92","#BBA146","#897B26","#55591C"]},{name:"scheme20",colors:["#56626B","#6C9380","#C0CA55","#F07C6C","#AD5472"]},{name:"scheme21",colors:["#96003A","#FF7347","#FFBC7B","#FF4154","#642223"]},{name:"scheme22",colors:["#5D7359","#E0D697","#D6AA5C","#8C5430","#661C0E"]},{name:"scheme23",colors:["#16193B","#35478C","#4E7AC7","#7FB2F0","#ADD5F7"]},{name:"scheme24",colors:["#7B1A25","#BF5322","#9DA860","#CEA457","#B67818"]},{name:"scheme25",colors:["#0081DA","#3AAFFF","#99C900","#FFEB3D","#309B46"]},{name:"scheme26",colors:["#0069A5","#0098EE","#7BD2F6","#FFB800","#FF6800"]},{name:"scheme27",colors:["#FF6800","#A0A700","#FF8D00","#678900","#0069A5"]}],_getScale:function(e,g,f){if(e&&e.toString().indexOf("%")>=0){e=parseInt(e,10)/100;return f[g]()*e}return parseInt(e,10)},_removeElements:function(){this.host.children(".chartContainer").remove();this.host.children("#tblChart").remove()},_getLabelInterval:function(){var g=this,h=g.labels,e;if(g.tickMode==="default"){if(g.niceInterval){e=g._getNiceInterval(g.widgetName==="jqxGauge"?"radial":"linear")}else{if(g.int64===false){e=h.interval}else{if(!h._interval64){h._interval64=g.int64==="s"?new d.jqx.math().fromNumber(h.interval):new BigNumber(h.interval)}e=h._interval64}}}else{if(g.int64===false){var f=g.max-g.min;e=f/h.number}else{var f=g._max64.subtract(g._min64);if(g.int64==="s"){e=f.div(new d.jqx.math().fromNumber(h.number))}else{e=f.divide(new BigNumber(h.number))}}}return e},_getMaxLabelSize:function(){var h=this.max,e=this.min;if(this._getLabelInterval().toString()<1){e=new Number(e).toFixed(2);h=new Number(h).toFixed(2)}var g=this.renderer.measureText(h,0,{"class":this.toThemeProperty("jqx-gauge-label")}),f=this.renderer.measureText(e,0,{"class":this.toThemeProperty("jqx-gauge-label")});if(f.width>g.width){return f}return g},disable:function(){this.disabled=true;this.host.addClass(this.toThemeProperty("jqx-fill-state-disabled"))},enable:function(){this.disabled=false;this.host.removeClass(this.toThemeProperty("jqx-fill-state-disabled"))},destroy:function(){var e=this;if(e._timeout){clearTimeout(this._timeout)}e._timeout=null;d.jqx.utilities.resize(e.host,null,true);e._removeElements();e.renderer.clear();e.renderer=null;var f=d.data(e.element,"jqxGauge");if(f){delete f.instance}e.host.children().remove();e._caption=null;e._caption=null;e._pointer=null;e._labels=[];e._cap=null;e._ticks=[];e._ranges=[];e._border=null;e._gauge=null;e._caption=null;e.renderer=null;e._animations=[];e.host.removeData();e.host.removeClass();e.host.remove();e.that=null;e.element=null;e._gaugeParent=null;delete e._gaugeParent;delete e.element;delete e.host},_validatePercentage:function(f,e){if(parseFloat(f)!==0&&(!f||!parseInt(f,10))){f=e}return f},_getColorScheme:function(f){var e;for(var g=0;ge.max){f=e.max}if(f